关键词不能为空

当前您在: 主页 > 英语 >

kobuki通信协议

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 18:34
tags:

-

2021年2月1日发(作者:希望你不要介意)


附录:协议说明


综述



Kobuki


驱动程序与机器人通过预先设定好的协议进行通信。通常,驱动会发送指令 给机器人,


并且得到机器人的反馈数据或传感器消息。


这些命令 和反馈数据被转换为


bytestream


通过串口通


信。通信协议规定了


bytestream


的规 则和形式。



一、流组成


< p>
一个


bytestream


可以分为四个部分:< /p>


headers



length



payload



c hecksum




名字



大小



说明



Header0


1


字节



0xAA


Header1


1


字节



0x55


Length


1


字节



有效信息的字节数



Payload


N


字节



有效信息



Checksum


1


字节




1



header

< br>Header


包括两个字节,


header0

< p>


header1



它们 是


kobuki


驱动命令和机器人反馈数据

bytestream


的固定值。


Headers


用来检测


bytestream


的开始,相当于 起始位。



2



length

< br>Length


表示一个


bytestream

< p>
中所包含的有效信息的长度。


Length


占一个 字节,它可以用来区别


不同的


bytestream

< p>
,最小值为


3




3



payload


Payload


中包涵了


bytestream


的中的实际数据即有效信息。



3.1



payload


Payload


有一些


sub- payload


组成。



Sub- payload 0


Sub-payload 1


Payload


Sub-payload 2




Sub-payload N-1



3.2



sub-payload


组成



sub-payload


可以分为三部分:

header



length


和< /p>


data.


名字



大小



说明



Header


1


字节



预定义的标识符



Length


1


字节



Data


的字节位数



Data


N


字节



下面描述



4



checksum


Checksum


是整个


bytestream


中出来


headers


外的异或值。


Checksum


过程确保了


bytestr eam



完整性。



下面是它的一段代码:



unsigned



int


packet_size(());


unsigned



char


cs(0);


for


(


unsigned



int


i = 2; i < packet_size; i++)


{


cs ^= buffer[i];


}


return


cs ?


false


:


true


;


5


、完整的


bytestream



Headers


Header0


Header1


Lengt


h


Payload


Sub-payload0


Sub-payload1


Sub- payload


2


Sub-payload




N-1


Checksu


m


以上表格显示了整 个


bytestream


结构。



Payload


的最小长度为


3

< p>


payload


中包含


sub-payload


,它的长度为


1.

< br>理论上这个数据包(


bytestream


)的最小长度 为


7.


二、数据类型



Sub-payload


的数据字段是下面三种数据类型的混合 :


byte



int

< br>和


short




名字



Unsigned


byte


Unsigned


short


Unsigned int


说明



8


位无符号整型



16


位无符号整型



32


位无符号整型



字节长度



1


2


4


位长



8


16


32


数据范围



0-255


0-65535


0-4294967295


C/C++


标识符



Unsigned char


Unsigned short


Unsigned int


Uint8_t


Uint16_t


Uint32_t


1


、序列化—反序列化



序列化是将数据结构转化为


bytestream


的 过程,


反序列化是一个逆转过程。


每个数据类型都通过


LSB


-First order


< p>
















节< /p>









< p>



bytestream


。例如,整形数据


2,864,434,397


< p>
0xAABBCCDD


)序列化后是:



0xDD


0xCC


0xBB


0xAA


所以,


0xDD

< p>
是最先进入


bytestream


的。

< p>


这里有


kobuki_driver

< p>
的模板函数来解决这个问题,


buildVariable()

< p>


buildBytes().


三、命令包



1


、命令标识符



ID


1


2


3


4


5


6


7


8


9


10


11


12


Name


Base control


(底盘控制)



Reserved


Sound(


声音


)


Sound sequence


(声音序列)



Reserved


Reserved


Reserved


Set power


(整机功率)



Request extra


(额外请求)



Reserved


Reserved


General purpose output


(通用输出)



description


Control wheel motors


(控制轮子电机)




Play custom sounds


(播放定制声音)



Play predefined sounds (


播放预定义声音


)





Control external Powers


(控制外部功率)



Request extra informations


(请求额外信息)





Control general purpose output


(控制通用输出)



2


、底盘控制



通过控制轮子的电机来移动机器人。机器人将按弧线行进,半径



mm




速度




mm/s




Length


Data


Name


Identifier


数据字段大小



速度



半径



size


1


1


2


2


数值



1


4




十六进制数值



0x01


0x04




说明



固定



固定



单位




mm/s


单位




mm


3


、声音



通 过音符


(note)


和音长


(dura tion)


播放自定义声音





Length


数据



Name


Identifier


Size of data field


note


duration


size


1


1


2


1


数值



3


3




十六进制数值



0x03


0x03




说明



fixed


(固定)



fixed


(固定)




播放音符的音长按毫秒计



警告:这个命令是在


kobuki


的固件上实现 的,而不是在驱动软件上。



4


、声音序列



按以下说明播放预先定义的声音






Length


Name


Identifier


Size of data field


size


1


1


value


4


1


Value in hex


0x04


0x01


data


Sequence number


1




description


fixed


fixed


0 for ON sound


1 for OFF sound


2 for recharge sound


3 for button sound


4 for error sound


5 for cleaning start sound


6 for cleaning end sound


5


、整机功率



外部功率:


3.3V, 5V, 12V1A, 12V5A


,它与外功率一样都是通用输出的一部分。





Length


Name


Identifier


Size of data field


size


1


1


value


8


2


Value in hex


0x08


0x02


Description


Fixed


fixed


设置打开外部功率的标记符



0x01


外部功率



3.3V ch.


0x02



外部功率


5V ch.


0x04


外部功率


12V1A ch.



0x08


外部功率


12V5A ch.



Data


Power control flags


2




警告:这个命令是在


kobuki


的固 件上实现的,而不是在驱动软件上。



也可以查看:


General Purpose Output


6


、额外请求



从机器人请求额外的数据,尤其是


kobuki


的版本信息: 硬件版本,固件版本,和


Unique Deivce


Ide ntifier(UDID),UDID


是独一无二的设备,因此可以用来识别多个机器 人。





Length


data


Name


identifier


Size of data field


Request flags


size


1


1


2


value


9


2



Value in hex


0x09


0x02



description


Fixed


Fixed


Set the flags to request extra data


0x01


硬件版本



0x02


固件版本



0x08


设备


ID


也可以查看:


Hardware Version Firmware Version, Unique Device IDentifier(UDID)



7


、通用输出



这条命令包含多个对象,它控制


LEDs


,数字输出和外部功 率





Length


Name


Identifier


Size of data field


size


1


1


value


12


2


Value in hex


0x0C


0x02


description


Fixed


Fixed


Set the flags to set high on output pins of


expansion port


为设置高压输出插脚的扩展端 口,设置


如下标识符:



0x0001


数字输出


ch.0


0x0002


数字输出


ch.1


0x0004


数字输出


ch.2


0x0008


数字输出


ch.3


Set 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

< p>
打开


LED


时,设置如下标识符:



data


数字输出


flags


2




0x0100



LED1


红色



0x0200



LED1


绿色



0x0400



LED2


红色



0x0800



LED2


绿色



也可以查看:


Set power


四、反馈包



反馈标识符



机器人启动后,


kobuki



50Hz


的频率发送以下默认反馈。



ID


1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


Name


Basic sensor data


(


传感器数据


)


Reserved


Docking IR


(对接红外)



Inertial sensor



(


惯性传感器


)


Cliff (


防跌落


)


Current(


电流


)


Reserved


Reserved


Reserved


Hardware version



(


硬件版本


)


Firmware version



(固件版本)



Reserved


Raw data of 3-axis gyro


(3


轴陀螺仪原始数据


)


Reserved


Reserved


General purpose input


(通用输入)



Reserved


Reserved


Unique


device


identifier



UDID




Reserved


description


Basic core sensor data


(基本核心传感器数据)




Signal from docking station


Gyro data both angle and angular velocity


(


陀螺仪数据:角度和角速度


)


PSD data facing floor()


Current of wheel motors


(轮子电机电流)






Version number of kobuki hardware



kobuki


的硬件版本号)



Version number of kobuki firmware



k obuki


的固件版本号)




Raw ADC data of digital 3-axis gyro



3


轴陀螺仪的原始模数转换(


ADC


)数据)





Inputs from 25-pin expansion port



25


针扩展端口输入)





Unique number to identify robot


(同过一个唯一的数字来识别或者辨别机器人)







By default


(默认值)





By default



By default


On request


By default


By default





On request



按要求)




By default


By default


availability


By default


(默认)



1


、基本传感器数据



基本的核心传感器的数据








-


-


-


-


-


-


-


-



本文更新与2021-02-01 18:34,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/594483.html

kobuki通信协议的相关文章