2022年kobuki通信协议.docx





《2022年kobuki通信协议.docx》由会员分享,可在线阅读,更多相关《2022年kobuki通信协议.docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源附录:协议说明综述Kobuki 驱动程序与机器人通过预先设定好的协议进行通信;通常,驱动会发送指令给机器人, 并且得到机器人的反馈数据或传感器消息;这些命令和反馈数据被转换为bytestream通过串口通信;通信协议规定了bytestream 的规章和形式;一、流组成1、headerHeader 包括两个字节, header0 和 header1 ,它们是 kobuki驱动命令和机器人反馈数据bytestream 的固定值; Headers 用来检测 bytestream 的开头,相当于起始位;2、lengthLength 表示一个 bytestream中所包含的有效信息的长度;L
2、ength 占一个字节,它可以用来区分不同的 bytestream ,最小值为 3;3、payloadPayload 中包涵了 bytestream的中的实际数据即有效信息;Checksum 是整个 bytestream的完整性;下面是它的一段代码:中出来 headers 外的异或值;Checksum 过程确保了bytestreamunsignedintpacket_sizebuffer.size;unsignedcharcs0;forunsignedinti = 2; i packet_size; i+cs = bufferi;returncs .false:true;5、完整的 bytes
3、treamHeadersLengthPayloadHeader0Header1Sub-payload0Sub-payload1Sub-payload2Sub-payloadN-1Checksum一个 bytestream 可以分为四个部分: headers, length , payload 和 checksum;名字Header0Header1LengthPayloadChecksum大小说明1 字节0xAA1 字节0x551 字节有效信息的字节数N 字节有效信息1 字节3.1payloadPayload 有一些 sub-payload 组成;PayloadSub-payload 0Sub-
4、payload 1Sub-payload 2Sub-payload N-13.2sub-payload 组成sub-payload 可以分为三部分: header , length 和 data.名字HeaderLengthData大小1 字节1 字节N 字节说明预定义的标识符Data 的字节位数下面描述4、checksum以上表格显示了整个bytestream结构;Payload的最小长度为3 ,payload中包含 sub-payload ,它的长度为1.理论上这个数据包 bytestream 的最小长度为 7.欢迎下载精品学习资源二、数据类型Sub-payload 的数据字段是下面三种数
5、据类型的混合:byte , int 和 short ;名字说明字节长度位长数据范畴C/C+标识符Unsignedbyte8 位无符号整型180-255Unsigned charUint8_t16 位无符号整型2160-65535Unsigned shortUint16_t32 位无符号整型4320-4294967295Unsigned intUint32_tUnsigned short Unsigned int1、序列化反序列化序列化是将数据结构转化为bytestream的过程,反序列化是一个逆转过程;每个数据类型都通过 LSB -First order序列化和反序列化;这就意味着有效字节中的
6、最低位将最先进入bytestream;例如,整形数据2,864,434,3970xAABBCCDD序列化后是:0xDD所以, 0xDD 是最先进入0xCCbytestream 的;0xBB0xAA这里有 kobuki_driver 的模板函数来解决这个问题,buildVariable 和 buildBytes.三、命令包1、命令标识符IDNamedescription1Base control 底盘把握Control wheel motors 把握轮子电机2Reserved3Sound声音Play custom sounds播放定制声音4Sound sequence声音序列Play prede
7、fined sounds 播放预定义声音 5Reserved6Reserved7Reserved8Set power 整机功率Control external Powers 把握外部功率9Request extra 额外请求Request extra informations请求额外信息10Reserved11Reserved12General purpose output通用输出Control general purpose output 把握通用输出2、底盘把握通过把握轮子的电机来移动机器人;机器人将按弧线行进,半径mm速度mm/sNamesize数值十六进制数值说明Identifier1
8、10x01固定Length数据字段大小140x04固定速度2单位mm/sData半径2单位mm3、声音通过音符 note 和音长 duration 播放自定义声音Namesize数值十六进制数值说明Identifier130x03fixed固定LengthSize of data field130x03fixed固定note2数据duration1播放音符的音长按毫秒计警告:这个命令是在kobuki 的固件上实现的,而不是在驱动软件上;4、声音序列按以下说明播放预先定义的声音欢迎下载精品学习资源NamesizevalueValue in hexdescriptionIdentifier140x
9、04fixedLengthSize of data field110x01fixed0 for ON sound 1 for OFF sound2 for recharge sounddataSequence number13 for button sound 4 for error sound5 for cleaning start sound6 for cleaning end sound5、整机功率外部功率: 3.3V , 5V , 12V1A, 12V5A,它与外功率一样都是通用输出的一部分;NamesizevalueValue in hexDescriptionIdentifier1
10、80x08FixedLengthSize of data field120x02fixed欢迎下载精品学习资源DataPower control flags2设置打开外部功率的标记符0x01 外部功率 3.3V ch.0x02 外部功率 5V ch.0x04 外部功率 12V1A ch.0x08 外部功率 12V5A ch.欢迎下载精品学习资源警告:这个命令是在kobuki 的固件上实现的,而不是在驱动软件上;也可以查看: General Purpose Output6、额外请求从机器人请求额外的数据, 特殊是 kobuki 的版本信息: 硬件版本, 固件版本, 和 Unique Deivce
11、 IdentifierUDID,UDID 是独一无二的设备,因此可以用来识别多个机器人;NamesizevalueValue in hexdescriptionidentifier190x09FixedLengthSize of data field120x02Fixed欢迎下载精品学习资源dataRequest flags2Set the flags to request extra data 0x01 硬件版本0x02 固件版本0x08 设备 ID欢迎下载精品学习资源也可以 查看 :HardwareVersion FirmwareVersion, UniqueDevice IDentifi
12、erUDID7、通用输出这条命令包含多个对象,它把握LEDs,数字输出和外部功率NamesizevalueValue in hexdescription Identifier1120x0CFixedLengthSize of data field120x02FixedSet the flags to set high on output pins of expansion port为设置高压输出插脚的扩展端口,设置如下标识符:0x0001 数字输出 ch.00x0002 数字输出 ch.10x0004 数字输出 ch.2欢迎下载精品学习资源data数字输出 flags20x0008 数字输出
13、ch.3Set the flags to turn on enternal powers 打来外部功率时,设置如下标识符: 0x0010 外部功率 3.3V ch.0x0020 外部功率 5V ch.0x0040 外部功率 12V1A ch.0x0080 外部功率 12V5A ch. Set the flags to turn on LEDs欢迎下载精品学习资源打开 LED时,设置如下标识符:0x0100LED1 红色0x0200LED1 绿色0x0400LED2 红色0x0800LED2 绿色也可以查看: Set power四、反馈包反馈标识符机器人启动后,ID1Namekobuki 以 5
14、0Hz 的频率发送以下默认反馈;description11Basic sensor data 传感器数据 ReservedDocking IR对接红外Inertial sensor 惯性传感器 Cliff 防跌落 Current 电流 ReservedReserved Reserved Hardware version 硬件版本 Firmware version固件版本ReservedRaw data of 3-axis gyro 3 轴陀螺仪原始数据 ReservedReservedGeneral purpose input通用输入Reserved ReservedBasic core se
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 kobuki 通信协议

限制150内