当前位置:文档之家› kobuki通信协议精编

kobuki通信协议精编

k o b u k i通信协议精编 Document number:WTT-LKK-GBB-08921-EIGG-22986

附录:协议说明综述

Kobuki驱动程序与机器人通过预先设定好的协议进行通信。通常,驱动会发送指令给机器人,并且得到机器人的反馈数据或传感器消息。这些命令和反馈数据被转换为bytestream通过串口通信。通信协议规定了bytestream的规则和形式。

一、流组成

一个bytestream可以分为四个部分:headers,length,payload和checksum。

1、header

Header包括两个字节,header0和header1,它们是kobuki驱动命令和机器人反馈数据bytestream的固定值。Headers用来检测bytestream的开始,相当于起始位。2、length

Length表示一个bytestream中所包含的有效信息的长度。Length占一个字节,它可以用来区别不同的bytestream,最小值为3。

3、payload

Payload中包涵了bytestream的中的实际数据即有效信息。

payload

Payload有一些sub-payload组成。

sub-payload组成

sub-payload可以分为三部分:header,length和data.

4、checksum

Checksum是整个bytestream中出来headers外的异或值。Checksum过程确保了bytestream的完整性。

下面是它的一段代码:

5、完整的bytestream

以上表格显示了整个bytestream结构。

Payload的最小长度为3,payload中包含sub-payload,它的长度为1.

理论上这个数据包(bytestream)的最小长度为7.

二、数据类型

Sub-payload的数据字段是下面三种数据类型的混合:byte,int和short。

1、序列化—反序列化

序列化是将数据结构转化为bytestream的过程,反序列化是一个逆转过程。每个数据类型都通过-Firstorder序列化和反序列化。这就意味着有效字节中的最低位将最先进入bytestream。例如,整形数据2,864,434,397

(0xAABBCCDD)序列化后是:

所以,0xDD是最先进入bytestream的。

这里有kobuki_driver的模板函数来解决这个问题,buildVariable()和buildBytes().

三、命令包

1、命令标识符

2、底盘控制

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

3、声音

通过音符(note)和音长(duration)播放自定义声音

警告:这个命令是在kobuki的固件上实现的,而不是在驱动软件上。

4、声音序列

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

5、整机功率

外部功率:, 5V, 12V1A, 12V5A,它与外功率一样都是通用输出的一部分。

警告:这个命令是在kobuki的固件上实现的,而不是在驱动软件上。

也可以查看:General Purpose Output

6、额外请求

从机器人请求额外的数据,尤其是kobuki的版本信息:硬件版本,固件版本,和Unique Deivce

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

也可以查看:,

7、通用输出

这条命令包含多个对象,它控制LEDs,数字输出和外部功率

也可以查看:Set power

四、反馈包

反馈标识符

机器人启动后,kobuki以50Hz的频率发送以下默认反馈。

1、基本传感器数据

基本的核心传感器的数据

注意:sub-payload将默认发送。

2、对接红外

信号扩展坞

Kobuki的对接站,有3个红外发射器,发射红外线灯覆盖了对接站前方的三个区域:左,中间,右,每一个区域又

分为两个子字段:近和远。由于将这些信息进行编码,机器人随时都能知道它所处的区域和子字段。由于区域和子字段能够被独立的识别,所以他们的边界可以是重叠的。

3、惯性传感器数据

惯性传感器数据,只有1轴陀螺仪数据可用。

Name size value

Value

in

hex

Description Identifier140x04Fixed Length

Size of

data field

170x07Fixed Data

Angle(角

度)

2

Factory

calibrated(工

厂校准)

Angle

rate(角速

率)

2

Factory

calibrated(工

厂校准) Unused1

Unused1

Unused1

注意:sub-payload将默认发送。

4、防跌落传感器数据

Sub-payload提供了PSD的ADC数据,当机器人在路面是行走过程中遇到台阶或者地面存在高度差时。

这个值与传感器和地面之间的距离有关。可以查看数据表获得更加详细的信息。

这个值也可以用于基本传感器数据方面的cliff field,kobuki以布尔类型进行处理。

注意:sub-payload将默认发送。

相关主题