无线网络控制在机器人中的应用文档格式.docx
《无线网络控制在机器人中的应用文档格式.docx》由会员分享,可在线阅读,更多相关《无线网络控制在机器人中的应用文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
1.3.1无线广域网
无线广域网络是移动电话及数据服务所使用的通讯网络,覆盖范围可以达到十几公里乃至上百公里。
无线广域网主要有2G、2.5G及3G等,主要采用GSM,GPRS,CDMA等技术。
(1)2G。
2G即第二代蜂窝通信系统规范,主要应用于GSM(GlobalSystemforMobile)即全球移动系统。
它的工作频段在890MHz到915MHz之间(用于用户到基站的传输)和935MHz到960MHz之间(用于基站到用户的传输),提供了9.6kbps的数据传输率。
图1-2GSM的基本结构
(2)2.5G.2.5G即第二代半蜂窝通信系统规范,主要采用GPRS(GeneralPacketRadioService)技术,即通用分组无线业务。
GPRS是一种工作于20kHz信道的基于FDMA/TDMA的分级交换无线技术,支持从144kbps~384kbps的速率。
GPRS是分组交换,在每个帧分配给用户多个时隙。
(3)3G.3G即第三代蜂窝通信系统规范。
3G的主要特征是可提供丰富多彩的移动多媒体业务,传输速率在高速移动环境中支持144kbps,慢速移动环境中支持384kbps,静止状态下支持2Mbps。
1.3.2无线城域网
无线城域网络覆盖范围可以达到十公里。
宽带无线接入(BWA,BroadbandWirelessAccess)技术与系统是无线移动通信的一个重要技术与应用领域,具有经济便捷、容量高、覆盖面广、可快速提供宽带业务等优点.
无线宽带城域网技术是以IEEE802.16系列标准为代表的宽带无线接入热点技术。
1999年IEEE成立了IEEE802.16工作组专门研究宽带固定无线接入规范,目标是要建立一个全球统一的宽带无线接入标准。
最早的IEEE802.16标准于2001年12月正式发布,之后该标准不断丰富,先后推出了802.16a、802.16c、802.16d以及802.16e标准等。
1.3.3无线局域网
无线局域网(WLAN,WirelessLocalAreaNetwork)是在有线局域网络的基础上发展起来的,使局域网上的计算机具有可移动性,能快速、方便的解决有线方式不易实现的连通问题,它是计算机网络与无线通信技术相结合的产物。
特点如下:
灵活移动性;
安装便捷;
经济节约;
可扩展性强;
便于维护和管理。
1.3.4无线个域网
无线个域网(WPAN,WirelessPersonalAreaNetwork)是指对个人操作空间(POS,PersonalOperationSpace)中的电子设备进行无线互联而形成的无线网络,它的核心思想是用新的无线传输技术代替传统的有线传输技术,实现个人信息终端的智能化互连,组建个人化的办公或者家用信息网络。
使用动态拓扑以适应网络节点的移动性。
其优点是:
按需建网、容错、连接不受限制;
一种装置用做主控,其他装置作为从属装置。
WPAN特点:
小范围通信(一般通信范围在10m左右)、低功耗、低成本、低复杂性、低数据速率等。
1.4无线通信网络的应用前景
无线通信网络在现实生活中得应用十分广泛,可用于无线图像传输系统,无线远程机器人控制系统,无线智能家居网络系统,无线车载通信系统等等的设计中,为工业控制,医学,军事等社会生活的诸多领域做出了很大的贡献。
人类在无线通信网络的研究探讨之路还依旧很远,同时,无线通信网络的应用与发展前景也是一片大好。
2.系统方案分析确定
2.1系统需求分析与功能要求
该队列表演系统采用集中式群体体系结构,由一个主控制器和100个机器小车节点构成。
对主控制器进行编程实现一系列队形变化的队列表演,每个动作在限制时间内完成,运动过程中保持队形整齐,队列变化衔接过渡自然有序。
单机器人小车接受主控制器的指令,执行基本的动作:
前行、后退、左转、右转,根据参数种类不同执行具体的行进距离和旋转角度,精确完成指定动作幅度,降低执行误差。
分析队列变化规律,设计队列协调协议,对队列变化动作进行统一编程、存储、控制,指定队形之间变换的动作集合,实时、准确对单机器人小车进行控制,保证有序的进行队列变化。
无线通信协议是系统稳定、可靠运行的关键技术,分析系统控制信息,采用合理的方式完成主控制器和机器小车节点之间的通信,保证控制信息准确无误传递。
主控制器实时控制机器人小车节点,通过无线方式,准确无误的实现通信,保证机器小车控制命令精准,达到控制效果。
2.2系统协议实现方案
协议(protocol)是指两个或两个以上实体为了开展某项活动,经过协商后达成的一致意见。
协议总是指某一层的协议。
准确地说,它是在同等层之间的实体通信时,有关通信规则和约定的集合就是该层协议,例如物理层协议、传输层协议、应用层协议。
计算机通信网是由许多具有信息交换和处理能力的节点互连而成的。
要使整个网络有条不紊地工作,就要求每个节点必须遵守一些事先约定好的有关数据格式及时序等的规则。
这些为实现网络数据交换而建立的规则、约定或标准就称为网络协议。
协议是通信双方为了实现通信而设计的约定或通话规则。
为满足系统的需求和性能要求,分析系统各层次的通信特点,制定各层协议,简化、统一控制指令。
协议由三要素组成:
(1)语法:
即数据与控制信息的结构或格式;
(2)语义:
即需要发出何种控制信息,完成何种动作以及做出何种响应;
(3)时序,即事件实现顺序的详细说明。
本系统单车控制协议:
系统控制中单机器人小车的行为种类虽然只有四种,但执行幅度连续变化,为实现控制方式统一,制定单车控制协议。
分析单机器人小车的动作行为集合,提取控制信息和数据,采用合适的编码方式和数据校验方式,设计控制信息结构,制定单机器人小车控制协议。
关键问题:
指令的通用性、完善性,控制信息的负载、安全性。
本系统队列协调协议:
系统队列表演的队列形式多种多样,这给编程和控制带来极大不便。
为简化编程,采用较统一的通信控制方式,制定队列协调协议。
对队列表演中的队形变化进行分析归纳,抽象提取队列变化的一致性信息,将队列变化拆分成控制信息和数据结构,并设计编码方式和数据校验方式,制定系统队列协调协议。
队列变化的特征提取,控制命令易于表达、编程,节省内存空间。
本系统无线通信协议系统采用无线方式传输控制信息,无线通信协议的稳定性、安全性、可靠性直接影响系统的控制质量。
根据系统的控制协议,即单车控制协议、队列协调协议,设计可靠的通信方式和完善的出错检验机制,制定无线通信协议。
保证主控制器和节点之间、节点与节点之间的可靠通信。
满足系统控制实时性要求,可靠的出错检验、纠错机制。
2.3系统主控制器设计
根据系统需求和性能要求,选择控制器和无线通信模块,设计控制器系统结构,发挥控制器和无线模块的高效。
设计主控制器的硬件电路;
结合单车控制协议、队列协调协议、无线通信协议,设计软件实现方法,设计各功能模块软件,简化队列表演的编程方法。
合理设计硬件结构,提高MCU利用率,在MCU上高效地实现控制协议。
2.4系统节点控制器设计
分析单车行为,结合系统需求和性能要求,选择节点控制器和无线通信模块。
设计节点控制器的硬件电路;
分析单车控制协议和队列协调协议,对不同协议进行不同的处理,准确控制单车执行动作,或通过无线模块控制其他节点控制器,设计各功能模块软件。
准确执行主控制器的控制指令,动态改变节点角色为组控制器。
2.5本章小结
本章对系统进行了初步分析,明确了系统设计的总体方案。
结合需求和性能要求,制定了各个模块的分析方法、设计任务,并提出了各模块的关键问题。
3.队列表演通信协议制定
3.1单车控制协议
3.1.1单车行为分析
在我们组的无线网络控制在队列表演中的应用中,我们的控制对象是100辆小车,通过发送控制命令来控制小车实现小车队列表演的效果。
在设计中我们为每一辆小车编号作为小车的地址,并且在控制时设定了不同形式的分组,按各种方式完成不同分组的队列表演,有整体一个分组的,也有编队的,主要完成是一些全体前移、分组前移、全体后退、分组后退、全体左转、分组左转、全体右转、分组右转、全体调头、分组调头和自旋转等简单的动作。
3.1.2控制协议分析设计
单车控制协议主要由报文和传输控制组成。
报文是由控制信息和数据信息组成的最小信息实体,每个报文可以划分成3个部分:
协议号、数据信息、校验和。
这三部分的表示意义如表1所示。
表3-1协议字段含义表
协议字段
意义
协议号
惟一表示一个协议的标志
数据
本次协议传送的数据这里的数据是一个字节流
校验和
根据一定的校验和算法生成的校验和值
协议号字段中通常包含协议编号、发送者、接收者。
数据字段主要是按实际要控制的对象行为而特定的一些命令。
校验和字段是用来校验数据在传输过程中是否出错,当接收端接收到协议时首先使用特定算法生成校验和并判断与协议自带的校验和是否相等。
如果不相等说明传输过程中数据出现差错不再对协议中的数据作任何处理或返回错误信息。
加上校验和字段避免造成因线路传输故障造成的数据错误。
由于本文主要是研究系统中单车行为的控制,因此在单车控制协议的设计过程中,最主要考虑的是数据字段的设计,接收者通过规定好的规则对传输的数据进行解码,得到要执行的任务。
协议号字段的分配如下图:
图3-1分配图
其中协议编号占一个字节,发送者端口地址占一个字节,接收者地址占一个字节。
协议编号是指该协议属于协议组中的哪一条协议,单车控制协议与队列分组协议组成一个协议组,在进行单车控制时可能选择对单个小车进行控制也可能分组对小车进行控制,因此需要一个专门的分组协议来调整队形。
在我们的规定中协议编号位主要用最后两个位,00表示分组协议,01表示单车控制协议。
接收者地址占一个字节,8个位如下图
图3-2
在设计中我们对100辆小车分别编号1到100作为小车的地址。
单个控制小车,地址字节取值范围为00000001~01100100。
数据字段的设定是本协议的重要部分,数据字段的设计主要是定制一下数据对应的执行动作,数据字段占四个字节,数据字段的结构如下图,
图3-3
其中动作、步长各占一个字节,步数占10个位,执行时间占14个位。
由图可以看出,动作位分成四个部分,分别实现四种不同方式的行为,具体动作包括前移、后退、左转、右转、调头和旋转,其中调头可以分为从左边进行和从右边进行,可以归结到左转
和右转
。
步长是每次移动或转过的最小单位,当单车执行的动作是前进或后退时,协议规定每一步长代表1mm,当单车执行的动作是转向时每一步长代表
步数是指接收到一次数据后单车移动或转过的次数,移动的距离或转过的角度是根据步长来确定的,当执行调头时,步数设为00,1011,0100即
,当执行自旋转时,步数应设为01,0101,0100即
,之所以选择10位是从两个方面来考虑的,首先要自旋转步数就需要9位二进制才能表示,第二是从数据传输的快速性来考虑的,数据段越短越好。
执行时间是指单车在接收到数据信息后在什么时间开始执行,执行时间的设计主要是为了保证单车执行动作的一致性,在我们的设计系统中,单车的执行过程是在单车接收动作命令的时候要回送确认信号,再接收到同一的同步行动命令之后才开始动作,为了避免通信过程中数据的丢失,从可靠性和一致性方面考虑,我们首先设定一个执行时间,无论后来有没有收到同步执行的命令,单车都按照之前设定的执行时间执行响应的动作。
3.1.3结束语
本部分结合网络通信中相关协议的知识,根据实际的需要,制定了一种自定义的简单的应用层协议,完成了小组的对单车的队列表演的控制中的单车控制协议的设计。
3.2队列协调协议
3.2.1队形控制问题分析
在机器人群体队形控制过程中,通常需要建立一个或者多个参考点。
每一个机器人根据自己的参考点计算出其在队形中合适的位置,使系统在整体上产生所需要的几何形状。
这些参考点可以坐落在某一机器人上,也可以坐落于机器人外。
对于队形控制来说,主要可以分为以下三方面的研究内容:
(1)固定队形完全保持适合于对机器人之间的位置有非常严格要求的任务,此时,机器人之间的相对位置关系应当绝对不变;
(2)固定队形不完全保持任务允许机器人在运动中由于环境约束等原因偏离自己的理想队形位置,偏离后机器人的系统会努力尽快恢复原先队形;
(3)可变队形控制系统可以根据任务和环境的需要在多种队形中切换。
本文简单起见,只是对100辆小车进行有限几种形式的队列表演,即全体前移、分组前移、全体后退、分组后退、全体左转、分组左转、全体右转、分组右转、全体调头、分组调头和自旋转等简单的动作。
3.2.2队列协调协议分析设计
我们可以把队列表演的过程分为几个不同的队形阶段,举个简单的例子,比如队形一中100辆小车集体向前移动5个步长,队形二中100辆小车集体向后移动4个步长等等。
在每个队形阶段中,我们可以对所有小车进行的动作进行分组,把进行相同动作表演的小车分为一组,例如上述例子中的队形一中共可分为1个组,选取其中一个节点作为leader节点,令其对组内的成员进行相同的动作控制。
但这其中存在一个问题,就是组内成员如果过大,若采用面向连接的通信方式,则leader节点与成员节点间的通信时间会很长,不满足系统的实时性需求,若采用无连接的通信方式,则系统的可靠性就不能够很好的满足。
基于此,在划分组的时候,如果每个组的成员变量数目大于10个的话,就自动划分为多个组,使得每个组的成员数目不大于10个,这样就能兼顾系统的实时性需求与系统的可靠性需求。
协议号字段分配如下图所示:
协议编号
发送者
接收者
其中协议编号占一个字节,发送者地址占一个字节,接收者地址也占一个字节。
协议编号是指该协议属于协议组中的哪一条协议,单车控制协议与队列分组协议组成一个协议组,在进行控制时可能是选择对每个分组的leader进行控制,即为队列分组协议;
也可能是选择对每个分组中的组员进行控制,即为单车控制协议。
在协议编号字节中,00000000表示队列分组协议,00000001表示单车控制协议。
在发送者和接收者地址字节中,00000001表示第1辆小车,01100100表示第100辆小车,其余的小车地址号则类推。
数据字段主要包含以下几个部分:
执行的动作类型、动作步数、步长、组员数目、组员地址、指令执行时间定时。
动作类型
动作步数
步长
组员数目
组员地址
指令执行时间定时
长度为1个
字节
长度为10个字节
长度为1个字节
长度为2个字节
前进位
后退位
左转位
右转位
00无动作00无动作00无动作00无动作
01前进01后退01左转01右转
图3-4
如上图所示,动作类型占一个字节,包含四种基本的动作:
前进、后退、左转、右转,队列表演中的其他动作可以由这四种基本动作复合而来;
步长为每次移动的最小距离或是转动的最小角度,协议规定移动的步长为1mm,而转动的步长则为1°
,长度为一个字节;
动作步数为此次动作执行的步长数目,例如当执行左转的指令时,动作步数为0000000010110100,即180°
,当执行自旋转指令时,动作步数则设为0000000101010100,即360°
,长度为两个字节;
组员数目为每组里面的成员数目,最大上限值设为10个,这样可以在满足系统可靠性的要求下,更好的满足系统的实时性要求,长度为一个字节;
组员地址长度为十个字节,因为每个组员的地址长度为一个字节,最多存储10个组员地址,故长度取为十个字节;
指令执行时间定时的作用是起到同步作用,在各个组的所有组员都接收到指令命令后,约定一个时间一起开始执行自己的相应动作指令,使得在整体上更好的满足同步性,因为不同组的组成员接收到指令的时间可能不一致,所以如果不同组的组成员在接收到指令时如果立即执行,在整体上可能就表现出了动作的不一致性,而且可能会随着队列表演的时间的进行,误差叠加,造成最终的表演同步性极差,所以这个字节的定时作用很重要。
3.2.3结束语
在本次的自定义协议设计中,参考了许多已经成熟的协议设计的思想,以及自定义协议的设计方法,并结合自己项目中的具体应用和要求,完成了队列协调协议(分组协议)的设计工作。
由于每次的队列表演任务是不同的,所以将表演中每个阶段的队形中做相同动作的小车进行分组操作,不仅能把主控制器的任务下放给几个组的leader以减轻主控制器的负担,还能大幅提高指令的执行效率,因为几个分组的leader对组员进行的控制是可以并行进行的;
再者,如果把每次进行表演所需的队形都存入主控制器中,不仅任务量繁重,而且可通用性及重复使用性也不高,这种基于任务的动态分组思想就能很好的解决这个问题,它可以按事先定义好的数据类型把每次的任务分解为几个不同的组,我们每次所需做的就是填充相应的数据类型中的数据,也就是我们协议中的数据字段,即该组完成什么类型的动作以及动作的步数等等,这样就大大提高了系统的通用性。
3.3NRF24l01无线通信协议
3.3.1NRF24l01无线通信模块介绍
nRF24l01是一款工作在2.4-2.5GHz世界通用ISM频段的单片无线收发器芯片。
无线收发器包括:
频率发生器、增强型ShockBurst模式控制器、功率放大器、晶体振荡器、调制器、解调器。
输出功率、频道选择和协议的设置可以通过SPI接口进行设置。
极低的电流消耗:
当工作在发射模式下发射功率为-6dBm时电流消耗为9.0mA,接收模式时为12.3mA。
掉电模式和待机模式下电流消耗更低。
特性:
真正的GFSK单收发芯片;
内置链路层;
增强型ShockBurst;
自动应答及重发功能;
地址及CRC检验功能;
数据传输率:
1或2Mbps;
SPI接口数据速率:
0-8Mbps;
125个可选工作频道;
很短的频道切换时间,可用于跳频;
与nRF24XX系列完全兼容;
可接受5V电平的输入;
20脚QEN4*4mm封装;
极低的晶振要求;
低成本电感和双面PCB板;
工作电压:
1.9-3.6V。
应用:
无线鼠标,键盘,游戏机操纵杆;
无线门禁;
无线数据通讯;
安防系统;
遥控装置;
遥感勘测;
智能运动设备;
工业传感器;
玩具等。
图3-5nRF24l01芯片的引脚图
NRF24l01有四种工作方式:
(1)收发方式:
包含EnhancedShockBurstTM收发模式、ShockBurstTM收发模式和直接收发模式3种。
(2)配置模式
(3)空闲模式:
NRF24L01的空闲模式是为了减小平均工作电流而设计,其最大的优点是,实现节能的同时,缩短芯片的起动时间。
在空闲模式下,部分片内晶振仍在工作,此时的工作电流跟外部晶振的频率有关。
(4)关机模式:
在关机模式下,为了得到最小的工作电流,一般此时的工作电流为900nA左右。
关机模式下,配置字的内容也会被保持在NRF24l01片内,这是该模式与断电状态最大的区别。
增强型ShockBurst的数据包结构如下:
NRF24l01的数据帧由前置码、地址码、包控制段、有效载荷、循环冗余校验
5部分组成。
如图4所示。
图3-6增强型ShockBurst的数据包结构
与于其他nRF24xx系列芯片的ShockBurst的数据包结构相比,nRF24L01增加了一个9bit大小的包控制段,通过包控制段中的数据包标志码(PID,PacketIDdentifier),可以将不同的数据包进行识别。
数据包识别和CRC校验应用于增强型ShockBurst模式下
每一包数据都包括两位的PID(数据包识别)来识别接收的数据是新数据包还是重发的数据包。
PID识别可以防止接收端同一数据包多次送入MCU在发送方每从MCU取得一包新数据后PID值加一。
PID和CRC校验应用在接收方识别接收的数据是重发的数据包还是新数据包。
如果在链接中有一些数据丢失了,则PID值与上一包数据的PID值相同。
如果一包数据拥有与上一包数据相同的PID值,nRF24L01将对两包数据的CRC值进行比较如果CRC值也相同的话就认为后面一包是前一包的重发数据包而被舍弃。
接收方:
接收方对新接收数据包的PID值与上一包进行比较。
如果PID值不同,则认为接收的数据包是新数据包。
如果PID值与上一包相同,则新接收的数据包有可能与前一包相同。
接收方必须确认CRC值是否相等,如果CRC值与前一包数据的CRC值相等,则认为是同一包数据并将其舍弃。
发送方:
每发送一包新的数据则发送方的PID值加一。
图3-7PID值生成和检测
3.3.2根据实际需要队系统无线通信作理论分析
我们这个系统是由主控制器和100个节点控制器组成。
每个控制器上都安装有NRF24l01无线通信模块。
根据节点控制器的队列表演需要,可以把表演动作分为前进、后退、左转(可以赋予不同的度数)、右转(可以赋予不同的度数)、
自旋转等。
起初设计:
(1)给100个节点控制器上的NRF24l01模块的1通道赋予相同的地址。
然后主控制器可根据此地址发数据,来控制100个控制器做一样的动作来实现小车整体一致表演。
但是,这样做有一个弊端,那就是这是一种点对多点的方式通信,由于节点控制器的数目较多,应答时必定会发生通信碰撞。
所以不是很可行。
(2)根据节点控制器队列表演的需要,先将节点控制器分成若干组。
然后给组内的节点控制器的NRf24l01模块的2通道赋予相同的地址,而组间的节点控制器的NRf24l01模块的2通道赋予不同的地址。
这样来实现小车分组表演方式。
但是,这种设计的弊端和
(1)中所谈到的弊端是一样的。
(3)给100个节点控制器上的NRF24l01模块的3通道赋予相同的地址。
这样,主控制器可以依据此来实现随意控制任何一个或者若干个小车来各自表演。
这样是点到点之间的通信,不会出现
(1)和
(2)中出现的问题。
但是,当控制的单车数量增加的时候,应答时间总和就会较长,实时性就会变得较差。
综合
(1)
(2)(3)中出现的问题,经过反复思考,作了一些改进,初步解决了以上问题。
改进设计:
当我们根据需要来编排节点控制器的队列表演形式时