- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种用于移动机器人平台组建的通信规约设计和实现.doc
一种用于移动机器人平台组建的通信规约设计和实现
【 摘 要 】 为解决移动机器人平台构建流程中上位机和下位机的通信链路问题,提出一种可靠的通信规约。该规约具有完备的自校验和握手机制,可有效剔除因传输误码和控制逻辑有误而混入的错误;具有灵活的扩展性,仅需调整少量字段便可实现机器人功能的调整,且不损害对历史版本的兼容性。本规约在基于跨平台图形框架Qt中实现并验证。
【 关键词 】 移动机器人;Qt;通信规约
1 引言
搭建自有移动机器人平台是机器人研究的起点。基于模块化设计思想,构建移动机器人平台时,可将系统分为两部分:上位机和下位机。上位机负责转译用户对机器人的控制指令,并采集和处理上层传感器数据;下位机将上位机对机器人的控制指令翻译为驱动电机的控制字,以使机器人按照用户预期运动,并实现PID等控制策略。于是,构建连接上位机和下位机的通信规约是移动机器人平台构建中重要的问题。目前,一些商用的移动机器人平台例如Segway、Pioneer,都采用上位机下位机构架,并通过规约相连。但规约部分并不对用户开放。领域内很难找到开源的规约作为参考。
考虑移动机器人在真实作业环境中的多种需求,本文提出一种可靠的移动机器人上位机与下位机之间的通信规约。并基于开源的跨平台的图形编程框架Qt实现。本文所提出的通讯规约的实现细节也在知名的代码共享平台Github上开源,可无偿用于科研和教育。
2 设计目标
在实际应用场合,移动机器人上位机和下位机间的通讯规约需要考虑几个因素:首先,移动机器人作业环境复杂,规约应具有完备的自校验机制,同时,下位机驱动能力因电机选型而异,还应校验用户指令中的逻辑错误;其次,鉴于不同的出错可能,规约应具备完善的通信握手机制,能实现错包或误码后的重发;再者,规约应具备灵活的可扩展性,以应对用户指令随不同应用和控制场景的转变而添加或更新;此外,当上位机与下位机之间的通信链路变为无线时,一个上位机可管理多个下位机,构建完备的寻址机制也是必须的。
3 规约设计
本规约设计的底层构建于RS232硬件协议,在设计上参考了文献[4],市场上现有的嵌入式板卡几乎都自带串口,很多其它接口例如USB都可通过现成的硬件解决方案转为串口。将所有的与数值有关的字段都直接以二进制传输,并不转译为ASCII码,以最大限度地节省传输数据量。
a) 字段描述
规约以语句为单位,包含9个字段,至少包含8字节,各字段定义如下。
起始标志位:0x7E,标志一条消息的开始,作为ASCII码对应的字符‘~’。
规约版本号:用以规避规约后期扩展而造成的版本冲突。初始版本号为0x10,每次规约升级需同时更新版本号。
目标地址:消息发送目的地的地址。例如,上位机地址为0x00,下位机地址为0x01,当系统包含多个下位机时,地址可扩展。
命令类型标识或响应标识:命令类型标识表示了命令类型,响应标识标志了该语句是针对何种类型命令的响应。该字段的部分值定义示于表格 2(篇幅所限,仅列出部分定义)。
命令下发标识或响应返回状态:该字段为复用字段,上位机向下位机下发命令的规约包中,该字段为“下发标识”并统一置为0xFF,标志前述命令类型为下发。而下位机对上位机的响应返回握手包中该字段依据不同的下发信息而变化,进而指示了对特定命令响应执行状态。请参见表 1所示。
参数段长度:指明后续的参数段长度,单位为字节。机器人的不同运动状态对应不同的参数段。通过参数段长度可间接计算整个指令以字节为单位的长度,即,参数段长度加上8。
参数段:指示了上位机向下位机下发的某一指令的具体命令参数,可以有多个字节也可以没有。总长度需和参数段长度相吻合,参数段中的内容可包含几类:
笛卡尔坐标、极坐标和相对运动。
校验和:除起始标识和结束标识及校验和位本身的所有字段的模256和。
结束标识:0x0D,标志一条消息的结束。
b) 功能扩展
仅需调整规约的少量字段便可实现机器人功能的升级,且不损害对历史版本的兼容性。规约的不同功能可通过调整“命令类型标识或响应标识”字段的赋值实现,因为本规约数据包中的“命令下发标识或响应返回状态”字段是复用的,与其对应,参数段的定义是不同的。
c) 规约举例
为更清晰地说明规约构成,举例如下:假设要完成的功能:让机器人运动到当前机载笛卡尔坐标系的点(-210cm,321cm),则下发的命令消息各字段内容如表 3第一行所示,下位机接收到了该命令消息,发现校验和错误,则返回响应消息如表 3第二行所示。
4 规约的实现
a) 总体思路
实现所提出通信规约的核心步骤是解析接收到的符合规约标准的规约数据包,通过各项校
原创力文档


文档评论(0)