版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、附录:协议说明综述 Kobuki 驱动程序与机器人通过预先设定好的协议进行通信。通常,驱动会发送指令给机器人,并且得到机器人的反馈数据或传感器消息。这些命令和反馈数据被转换为 bytestream 通过串口通信。通信协议规定了 bytestream 的规则和形式。一、流组成一个 bytestream可以分为四个部分: headers , length , payload 和checksum。名字Header0Header1LengthPayloadChecksum大小1 字节1 字节1 字节N 字节1 字节说明0xAA0x55有效信息的字节数有效信息1、 headerHeader 包括两个字节
2、, header0 和 header1 ,它们是 kobuki 驱动命令和机器人反馈数据bytestream的固定值。 Headers 用来检测 bytestream的开始,相当于起始位。2、 lengthLength 表示一个 bytestream中所包含的有效信息的长度。Length 占一个字节,它可以用来区别不同的bytestream ,最小值为3。3、 payloadPayload 中包涵了 bytestream的中的实际数据即有效信息。3.1 payloadPayload 有一些 sub-payload组成。PayloadSub-payload 2 Sub-payload 0 Sub
3、-payload 1 Sub-payload N-13.2 sub-payload组成data.和 length , header 可以分为三部分: sub-payload名字HeaderLengthData大小1 字节字节 1N 字节说明预定义的标识符Data 的字节位数下面描述4、 checksumChecksum是整个 bytestream 中出来 headers 外的异或值。 Checksum过程确保了 bytestream 的完整性。下面是它的一段代码:unsignedintpacket_size(buffer.size();unsignedcharcs(0);for( unsign
4、edinti = 2; i < packet_size; i+)cs = bufferi;returncs ?false:true;5、完整的 bytestreamHeadersLengthPayloadChecksumHeader0Header1Sub-payload0Sub-payload1Sub-payloadSub-payload2N-1以上表格显示了整个bytestream结构。Payload 的最小长度为3, payload 中包含 sub -payload ,它的长度为1.理论上这个数据包(bytestream )的最小长度为7.二、数据类型Sub-payload 的数据字
5、段是下面三种数据类型的混合:byte ,int和 short 。名字说明字节长度位长数据范围C/C+标识符Unsigned byte位无符号整型 8180-255Unsigned charUint8_tUnsigned位无符号整型 162160-65535Unsigned shortUint16_tshortUnsigned int位无符号整型 32432Unsigned intUint32_t1、序列化反序列化序列化是将数据结构转化为bytestream的过程,反序列化是一个逆转过程。每个这就意味着有效字节中的最序列化和反序列化。-First?orderLSB数据类型都通过)0xAABBCC
6、DD2,864,434,397(低位将最先进入bytestream。例如,整形数据序列化后是:0xDD0xCC0xBB0xAA所以, 0xDD是最先进入 bytestream的。这里有 kobuki_driver的模板函数来解决这个问题,buildVariable()和buildBytes().三、命令包1、命令标识符IDNamedescription1Base control (底盘控制)Control wheel motors (控制轮子电机)2Reserved3Sound(声音 )Play custom sounds (播放定制声音)4Sound sequence(声音序列)Play p
7、redefined sounds (播放预定义声音 )5 Reserved6 Reserved7 Reserved8Set power (整机功率)Control external Powers(控制外部功率)9Request extra (额外请求)Request extra informations(请求额外信息)10 Reserved11 Reserved12General purpose output(通用输出)Control general purpose output(控制通用输出)2、底盘控制通过控制轮子的电机来移动机器人。机器人将按弧线行进,半径mm速度 mm/sNamesiz
8、e数值十六进制数值说明Identifier110x01固定Length数据字段大小140x04固定Data速度2mm/s单位半径2mm单位、声音3 播放自定义声音和音长(duration)通过音符(note)Namesize数值十六进制数值说明Identifier130x03fixed(固定)LengthSize of data130x03fixed(固定)field数据note2duration1播放音符的音长按毫秒计警告:这个命令是在kobuki 的固件上实现的,而不是在驱动软件上。4、声音序列按以下说明播放预先定义的声音NamesizevalueValue in hexdescripti
9、onIdentifier140x04fixedLengthSize of data field110x01fixeddataSequence number10 for ON sound1 for OFF sound2 for recharge sound 3 for buttonsound 4 for error sound5 for cleaning start sound6 for cleaning end sound5、整机功率外部功率: 3.3V , 5V , 12V1A, 12V5A,它与外功率一样都是通用输出的一部分。NamesizevalueValue in hexDescrip
10、tionIdentifier180x08FixedLengthSize of data field120x02fixedDataPower control flags2设置打开外部功率的标记符0x01 外部功率 3.3V ch. 5V ch.外部功率 0x02 12V1A ch.外部功率0x0412V5A ch.0x08 外部功率的固件上实现的,而不是在驱动软件上。警告:这个命令是在 kobukiGeneral Purpose Output也可以查看:6 、额外请求的版本信息:硬件版本,固件版本,和从机器人请求额外的数据,尤其是 kobuki是独一无二的设备,因此可以用来识别多Unique D
11、eivceIdentifier(UDID),UDID个机器人。NamesizevalueValue in hexdescriptionidentifier190x09FixedLengthSize of data field120x02FixeddataRequest flags2Set the flags to request extra data硬件版本 0x01 0x02固件版本 ID0x08 设备也可以查看: Hardware Version?Firmware Version,?Unique DeviceIDentifier(UDID)7、通用输出这条命令包含多个对象,它控制LEDs,
12、数字输出和外部功率NamesizevalueValue in hexdescriptionIdentifier1120x0CFixedLengthSize of data field120x02Fixeddataflags 数字输出2Set the flags to set high on outputpins of expansion port为设置高压输出插脚的扩展端口,设置如下标识符: ch.0 数字输出 0x0001ch.1数字输出 0x0002ch.2数字输出 0x0004 ch.3数字输出 0x0008on enternal turn flags Set the topowers打
13、来外部功率时,设置如下标识符: 3.3V ch.0x0010 外部功率 5V ch. 0x0020外部功率12V1A ch.外部功率 0x00400x0080 外部功率 12V5A ch.Set the flags to turn on LEDs打开 LED时,设置如下标识符:0x0100 LED1 红色0x0200 LED1 绿色0x0400 LED2 红色0x0800 LED2 绿色也可以查看: Set power四、反馈包反馈标识符机器人启动后, kobuki 以 50Hz 的频率发送以下默认反馈。IDNamedescriptionavailability1Basic sensor da
14、ta ( 传感器Basic core sensor data(基本核心传感器数据)By default (默认)数据 )2Reserved3Docking IR (对接红外)Signal from docking stationBy default4Inertial sensor (惯性传感Gyro data both angle and angular velocity ) (陀 By default器)螺仪数据:角度和角速度5Cliff ( 防跌落 )PSD data facing floor()By default6) Current( 电流Current of wheel motors
15、(轮子电机电流)By default7 Reserved8 Reserved9 Reserved10Hardware version ( 硬件版Version number of kobuki hardware(kobuki 的硬要 On request (按求)本)件版本号)11Firmware versionVersion number of kobuki firmware(kobuki 的固On request(固件版本)件版本号)12Reserved13Raw data of 3-axis gyro (3Raw ADC data of digital 3-axis gyro ADC(3
16、 轴陀By default轴陀螺仪原始数据 )螺仪的原始模数转换()数据)14Reserved15Reserved16General purpose input(通Inputs from 25-pin expansion port针扩展端口输By default用输入)入) 25(17 Reserved18 Reserved19Unique deviceUnique number to identify robot (同过一个唯一的默认 By default(值)identifier (UDID)数字来识别或者辨别机器人)20Reserved1、基本传感器数据基本的核心传感器的数据Namesi
17、zevalueValue in hexdescriptionFeedback identifier110x01Fixed) 反馈标识符 (Lengthfield data Size of1150x0FFixed(数据字段大小)DataTimestamp 时间标2内部生成以毫秒为单位的时间戳:它从0 到 65535/( 时间戳 )循环记) Bumper( 减震器1当减震器被碰到时,设置了如下标识符:0x01:右侧减震器 0x02 :中心减震器0x04:左侧减震器Wheel drop(轮跌1当车轮掉下时,设置了如下标识符:0x01 :右车轮落)0x02:左车轮Cliff (防跌落)1当悬崖被检测到
18、时,设置了如下标识符:0x01:右侧防跌落传感器 0x02 :中心防跌落传感器0x04:左侧防跌落传感器Left encoder(左2左,右车轮编码器数据累积,这个值的增加意味着轮编码器)前进的方向,它从 0 到 65535循环。Right encoder (右2轮编码器)Left PWM (左侧脉1PWM主要是应用于左右车轮的电机(马达) 。为了正宽调制)确的表达,这个数据应该被转换为有符号的数据类型。负号表示方向向后。Right PWM (右侧脉1宽调制)Button (按钮)1当按按钮时,设置如下标识符:0x01:按钮 01:按钮 0x020x04:按钮 2Charge (充电)10:不
19、充电状态2:对接充电状态( charged ) 6:对接充电状态(charging ) 18 :适配器充电状态( charged )22:适配器充电状态( charging)Battery (电池)1电压 0.1V 的电池,完全充电时电压 16.7VOver current flags1检测到过电流时,设置如下标识符: 0x01 :左车轮(过电流标志)0x02:右车轮注意: sub-payload将默认发送。2、对接红外信号扩展坞NamesizevalueValue indescriptionhexIdentifier130x03FixedLengthSize of data130x03Fix
20、edfield) 数据段大小 (dataRight signal1检测到信号时,设置如下标识符:0x01 :接近左边 0x02 :接近中心: 接近右边 0x04 0x08 :远离中心:远离左边 0x010 0x020 :远离右边Central signal1Left signal1Kobuki 的对接站, 有 3 个红外发射器, 发射红外线灯覆盖了对接站前方的三个区域:左,中间,右,每一个区域又分为两个子字段:近和远。由于将这些信息进行编码,机器人随时都能知道它所处的区域和子字段。由于区域和子字段能够被独立的识别,所以他们的边界可以是重叠的。3、惯性传感器数据轴陀螺仪数据可用。1 惯性传感器数
21、据,只有NamesizevalueValue inDescriptionhexIdentifier140x04FixedLengthSize of data field 170x07FixedData) 角度 Angle(2Factory calibrated(工厂校准 )角速 Angle rate()2)率Factory calibrated(工厂校准Unused1Unused1Unused1注意: sub-payload将默认发送。4、防跌落传感器数据Sub-payload 提供了 PSD的 ADC数据,当机器人在路面是行走过程中遇到台阶或者地面存在高度差时。这个值与传感器和地面之间的距离
22、有关。可以查看数据表获得更加详细的信息。这个值也可以用于基本传感器数据方面的cliff field, kobuki以布尔类型进行处理。NamesizevalueValue inDescriptionhexidentifier150x05FixedLengthSize of data field160x05FixedDataRight cliff sensor )2ADC 每个 PSD的输出:数据范( 右侧防跌落传感器围: 0-4095 2-15m距离范囲:距离是非线性的。sensor Centralcliff) 2( 中间防跌落传感器Left cliff sensor )2( 左侧防跌落传感器
23、注意: sub-payload将默认发送。basic sensor data也可以查看:5、电流利用电流传感器读取车轮电机的电流NamesizevalueValue in hexdescriptionIdentifier160x06FixedLengthdata120x02FixedSizeof fielddataLeft motor210mARight motor210mA注意: sub-payload将按请求发送6、硬件版本硬件版本信息是一种三联体形式的:<major>.<minor>.<patch>namesizevalueValue in hexDe
24、scriptionIdentifier1100x0AFixedLengthSize of data140x04FixedfielddataPatch1Minor1Major1unused100x00fixed注意: sub-payload将发送请求。也可以查看: request extra7、固件版本固件版本信息是一种三联体形式的:<major>.<minor>.<patch>namesizevaluehex in ValueDescriptionIdentifier1110x0BFixedLengthSize of data140x04Fixedfield
25、dataPatch1Minor1Major1unused100x00fixed注意: sub-payload将按请求发送也可以查看: request extra8、 3d 陀螺仪的原始数据数字 3d 陀螺仪的原始ADC数据: L3G4200D由于采集率和更新率的差异,将得到2-3 数据。Digitto deg/s ratiois0.00875,itcomes from datasheetof 3d gyro.数度比是 0.00875 ,它来自 3D 陀螺仪的数据表。namesizevalueValue indescriptionhexIdentifier1130x0DFixedLengthSi
26、ze of data field12+6NDataFrame id (帧标识符)1每个传感器读数可以通过帧循255 标识符识别, 它从 0 到 环。Followed data length13NRaw gyro datax-axis2ADC输出每个轴的速率是0 (陀螺仪原始0.00875 度 /s.数据) 0y-axis2z-axis2Raw gyro datax-axis2N-1 (陀螺仪原N-1 )始数据y-axis2z-axis2注意: sub-payload将默认发送。警告: 3D陀螺仪传感器与机器人不匹配,z 轴逆时针旋转90 度,下面是转换关系:doubledigit_to_dps = 0.00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度智能交通系统代理服务合同4篇
- 2025年度智能铝板装配一体化工程承包合同4篇
- 2025年度智慧城市建设项目承包经营合同范本8篇
- 2025年度水电工程水土保持与生态修复承包合同集锦4篇
- 2025年度体育场馆设施升级改造劳务分包合同3篇
- 2024年精简版房地产销售协议纲要版
- 2025年度特种车辆租赁与维护服务协议3篇
- 2025年度文化创意产业园区建设承包借款合同4篇
- 2025年度智能路灯与充电桩一体化安装服务合同3篇
- 2024艺人经纪合同纠纷案例
- 副厂长竞聘演讲稿
- 高二物理题库及答案
- 2024年河北省廊坊市广阳区中考一模道德与法治试题
- 电影项目策划书
- 产业园区金融综合服务创新蓝皮书(2024.1)
- 高一数学单元练习卷
- 国际标准IQ测试题及答案样本
- 美容院管理制度章程
- 职业发展展示园林
- 统编版六年级下册语文1-6单元习作课件
- 社会安全风险评估模型的研究
评论
0/150
提交评论