版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE10PAGE10附录:协议说明综述Kobuki驱动程序与机器人通过预先设定好的协议进行通信。通常,驱动会发送指令给机器人,并且得到机器人的反馈数据或传感器消息。这些命令和反馈数据被转换为bytestream通过串口通信。通信协议规定了bytestream的规则和形式。一、流组成一个bytestream可以分为四个部分:headers,length,payload和checksum。名字Header0Header1LengthPayloadChecksum大小1字节1字节1字节N字节1字节说明0 xAA0 x55有效信息的字节数有效信息1、headerHeader包括两个字节,heade
2、r0和header1,它们是kobuki驱动命令和机器人反馈数据bytestream的固定值。Headers用来检测bytestream的开始,相当于起始位。2、lengthLength表示一个bytestream中所包含的有效信息的长度。Length占一个字节,它可以用来区别不同的bytestream,最小值为3。3、payloadPayload中包涵了bytestream的中的实际数据即有效信息。3.1 payloadPayload有一些sub-payload组成。PayloadSub-payload 0Sub-payload 1Sub-payload 2Sub-payload N-1 3
3、.2 sub-payload组成sub-payload可以分为三部分:header,length和data.名字HeaderLengthData大小1字节1字节N字节说明预定义的标识符Data的字节位数下面描述4、checksumChecksum是整个bytestream中出来headers外的异或值。Checksum过程确保了bytestream的完整性。下面是它的一段代码:unsigned int packet_size(buffer.size();unsigned char cs(0);for (unsigned int i = 2; i packet_size; i+) cs = bu
4、fferi;return cs false : true;5、完整的bytestreamHeadersLengthPayloadChecksumHeader0Header1Sub-payload0Sub-payload1Sub-payload2Sub-payload N-1以上表格显示了整个bytestream结构。Payload的最小长度为3,payload中包含sub-payload,它的长度为1.理论上这个数据包(bytestream)的最小长度为7.二、数据类型Sub-payload的数据字段是下面三种数据类型的混合:byte,int和short。名字说明字节长度位长数据范围C/C+标
5、识符Unsigned byte8位无符号整型180-255Unsigned charUint8_tUnsigned short16位无符号整型2160-65535Unsigned shortUint16_tUnsigned int32位无符号整型4320-4294967295Unsigned intUint32_t1、序列化反序列化序列化是将数据结构转化为bytestream的过程,反序列化是一个逆转过程。每个数据类型都通过LSB-Firstorder序列化和反序列化。这就意味着有效字节中的最低位将最先进入bytestream。例如,整形数据2,864,434,397(0 xAABBCCDD)
6、序列化后是:0 xDD0 xCC0 xBB0 xAA所以,0 xDD是最先进入bytestream的。这里有kobuki_driver的模板函数来解决这个问题,buildVariable()和buildBytes().三、命令包1、命令标识符IDNamedescription1Base control (底盘控制)Control wheel motors(控制轮子电机)2Reserved3Sound(声音)Play custom sounds(播放定制声音)4Sound sequence(声音序列)Play predefined sounds (播放预定义声音)5Reserved6Reserv
7、ed7Reserved8Set power (整机功率)Control external Powers (控制外部功率)9Request extra (额外请求)Request extra informations (请求额外信息)10Reserved11Reserved12General purpose output (通用输出)Control general purpose output(控制通用输出)2、底盘控制通过控制轮子的电机来移动机器人。机器人将按弧线行进,半径 mm 速度 mm/sNamesize数值十六进制数值说明Identifier110 x01固定Length数据字段大小1
8、40 x04固定Data速度2单位 mm/s半径2单位 mm3、声音通过音符(note)和音长(duration)播放自定义声音Namesize数值十六进制数值说明Identifier130 x03fixed(固定)LengthSize of data field130 x03fixed(固定)数据note2duration1播放音符的音长按毫秒计警告:这个命令是在kobuki的固件上实现的,而不是在驱动软件上。4、声音序列按以下说明播放预先定义的声音NamesizevalueValue in hexdescriptionIdentifier140 x04fixedLengthSize of
9、data field110 x01fixeddataSequence number10 for ON sound1 for OFF sound2 for recharge sound3 for button sound4 for error sound5 for cleaning start sound6 for cleaning end sound5、整机功率外部功率:3.3V, 5V, 12V1A, 12V5A,它与外功率一样都是通用输出的一部分。NamesizevalueValue in hexDescriptionIdentifier180 x08FixedLengthSize of
10、data field120 x02fixedDataPower control flags2设置打开外部功率的标记符0 x01 外部功率 3.3V ch.0 x02 外部功率5V ch.0 x04 外部功率12V1A ch.0 x08外部功率12V5A ch.警告:这个命令是在kobuki的固件上实现的,而不是在驱动软件上。也可以查看:General Purpose Output6、额外请求从机器人请求额外的数据,尤其是kobuki的版本信息:硬件版本,固件版本,和Unique Deivce Identifier(UDID),UDID是独一无二的设备,因此可以用来识别多个机器人。Namesiz
11、evalueValue in hexdescriptionidentifier190 x09FixedLengthSize of data field120 x02FixeddataRequest flags2Set the flags to request extra data0 x01 硬件版本0 x02 固件版本0 x08 设备ID也可以查看:Hardware VersionFirmware Version,Unique Device IDentifier(UDID)7、通用输出这条命令包含多个对象,它控制LEDs,数字输出和外部功率NamesizevalueValue in hexde
12、scriptionIdentifier1120 x0CFixedLengthSize of data field120 x02Fixeddata数字输出flags2Set the flags to set high on output pins of expansion port为设置高压输出插脚的扩展端口,设置如下标识符:0 x0001 数字输出ch.00 x0002 数字输出ch.10 x0004 数字输出ch.20 x0008 数字输出ch.3Set the flags to turn on enternal powers打来外部功率时,设置如下标识符:0 x0010 外部功率3.3V
13、ch.0 x0020 外部功率5V ch.0 x0040 外部功率12V1A ch.0 x0080 外部功率12V5A ch.Set the flags to turn on LEDs打开LED时,设置如下标识符:0 x0100 LED1 红色0 x0200 LED1 绿色0 x0400 LED2 红色0 x0800 LED2 绿色也可以查看:Set power四、反馈包反馈标识符机器人启动后,kobuki以50Hz的频率发送以下默认反馈。IDNamedescriptionavailability1Basic sensor data(传感器数据)Basic core sensor data(基
14、本核心传感器数据)By default(默认)2Reserved3Docking IR(对接红外)Signal from docking stationBy default4Inertial sensor (惯性传感器)Gyro data both angle and angular velocity(陀螺仪数据:角度和角速度)By default5Cliff (防跌落)PSD data facing floor()By default6Current(电流)Current of wheel motors (轮子电机电流)By default7Reserved8Reserved9Reserve
15、d10Hardware version (硬件版本)Version number of kobuki hardware(kobuki的硬件版本号)On request(按要求)11Firmware version (固件版本)Version number of kobuki firmware(kobuki的固件版本号)On request12Reserved13Raw data of 3-axis gyro(3轴陀螺仪原始数据)Raw ADC data of digital 3-axis gyro(3轴陀螺仪的原始模数转换(ADC)数据)By default14Reserved15Reserv
16、ed16General purpose input(通用输入)Inputs from 25-pin expansion port(25针扩展端口输入)By default17Reserved18Reserved19Unique device identifier(UDID)Unique number to identify robot(同过一个唯一的数字来识别或者辨别机器人)By default(默认值)20Reserved1、基本传感器数据基本的核心传感器的数据NamesizevalueValue in hexdescriptionFeedback identifier(反馈标识符)110
17、x01FixedLengthSize of data field(数据字段大小)1150 x0FFixedDataTimestamp(时间戳/时间标记)2内部生成以毫秒为单位的时间戳:它从0到65535循环Bumper(减震器)1当减震器被碰到时,设置了如下标识符:0 x01:右侧减震器0 x02:中心减震器0 x04:左侧减震器Wheel drop(轮跌落)1当车轮掉下时,设置了如下标识符:0 x01:右车轮0 x02:左车轮Cliff(防跌落)1当悬崖被检测到时,设置了如下标识符:0 x01:右侧防跌落传感器0 x02:中心防跌落传感器0 x04:左侧防跌落传感器Left encoder(
18、左轮编码器)2左,右车轮编码器数据累积,这个值的增加意味着前进的方向,它从0到65535循环。Right encoder(右轮编码器)2Left PWM(左侧脉宽调制)1PWM主要是应用于左右车轮的电机(马达)。为了正确的表达,这个数据应该被转换为有符号的数据类型。负号表示方向向后。Right PWM(右侧脉宽调制)1Button(按钮)1当按按钮时,设置如下标识符:0 x01:按钮00 x02:按钮10 x04:按钮2Charge(充电)10:不充电状态2:对接充电状态(charged)6:对接充电状态(charging)18:适配器充电状态(charged)22:适配器充电状态(charg
19、ing)Battery(电池)1电压0.1V的电池,完全充电时电压16.7VOver current flags(过电流标志)1检测到过电流时,设置如下标识符:0 x01:左车轮0 x02:右车轮注意:sub-payload将默认发送。2、对接红外信号扩展坞NamesizevalueValue in hexdescriptionIdentifier130 x03FixedLengthSize of data field(数据段大小)130 x03FixeddataRight signal1检测到信号时,设置如下标识符:0 x01:接近左边0 x02:接近中心0 x04:接近右边0 x08:远离
20、中心0 x010:远离左边0 x020:远离右边Central signal1Left signal1Kobuki的对接站,有3个红外发射器,发射红外线灯覆盖了对接站前方的三个区域:左,中间,右,每一个区域又分为两个子字段:近和远。由于将这些信息进行编码,机器人随时都能知道它所处的区域和子字段。由于区域和子字段能够被独立的识别,所以他们的边界可以是重叠的。3、惯性传感器数据惯性传感器数据,只有1轴陀螺仪数据可用。NamesizevalueValue in hexDescriptionIdentifier140 x04FixedLengthSize of data field170 x07Fix
21、edDataAngle(角度)2Factory calibrated(工厂校准)Angle rate(角速率)2Factory calibrated(工厂校准)Unused1Unused1Unused1注意:sub-payload将默认发送。4、防跌落传感器数据Sub-payload提供了PSD的ADC数据,当机器人在路面是行走过程中遇到台阶或者地面存在高度差时。这个值与传感器和地面之间的距离有关。可以查看数据表获得更加详细的信息。这个值也可以用于基本传感器数据方面的cliff field,kobuki以布尔类型进行处理。NamesizevalueValue in hexDescription
22、identifier150 x05FixedLengthSize of data field160 x05FixedDataRight cliff sensor(右侧防跌落传感器)2每个PSD的ADC输出:数据范围:0-4095距离范囲:2-15m距离是非线性的。Central cliff sensor(中间防跌落传感器)2Left cliff sensor(左侧防跌落传感器)2注意:sub-payload将默认发送。也可以查看:basic sensor data5、电流利用电流传感器读取车轮电机的电流NamesizevalueValue in hexdescriptionIdentifier
23、160 x06FixedLengthSize of data field120 x02FixeddataLeft motor210mARight motor210mA注意:sub-payload将按请求发送6、硬件版本硬件版本信息是一种三联体形式的:.namesizevalueValue in hexDescriptionIdentifier1100 x0AFixedLengthSize of data field140 x04FixeddataPatch1Minor1Major1unused100 x00fixed注意:sub-payload将发送请求。也可以查看:request extra
24、7、固件版本固件版本信息是一种三联体形式的:.namesizevalueValue in hexDescriptionIdentifier1110 x0BFixedLengthSize of data field140 x04FixeddataPatch1Minor1Major1unused100 x00fixed注意:sub-payload将按请求发送也可以查看:request extra8、3d陀螺仪的原始数据数字3d陀螺仪的原始ADC数据:L3G4200D由于采集率和更新率的差异,将得到2-3数据。Digit to deg/s ratio is 0.00875,it comes from
25、 datasheet of 3d gyro.数度比是0.00875,它来自3D陀螺仪的数据表。namesizevalueValue in hexdescriptionIdentifier1130 x0DFixedLengthSize of data field12+6NDataFrame id (帧标识符)1每个传感器读数可以通过帧标识符识别,它从0到255循环。Followed data length13NRaw gyro data 0(陀螺仪原始数据0)x-axis2ADC输出每个轴的速率是0.00875 度/s.y-axis2z-axis2Raw gyro data N-1(陀螺仪原始数据N-1)x-axis2y-axis2z-axis2注意:sub-payload将默认发送。警告:3D陀螺仪传感器与机器人不匹配,z轴逆时针旋转90度,下面是转换关系:cons
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黑龙江冰雪体育职业学院《创新创业与营销策划》2023-2024学年第一学期期末试卷
- 内蒙古建筑职业技术学院《法律文献检索》2023-2024学年第一学期期末试卷
- (山西晋中卷)2025年中考地理第一次模拟考试(全解全析)
- 福建省南平市浦城第二中学高三语文上学期期末试卷含解析
- 南京财经大学《中学英语》2023-2024学年第一学期期末试卷
- 卓越指数2024物业服务卓越表现报告
- 沈阳工学院《数据分析》2023-2024学年第一学期期末试卷
- 2024版配电房工程施工合同
- 2025年黑龙江大兴安岭呼玛鹿鼎山航空有限责任公司招聘笔试参考题库附带答案详解
- 2025年重庆物流集团有限公司招聘笔试参考题库含答案解析
- 教科版科学一年级上册期末测试卷含完整答案(必刷)
- 2024年危险化学品生产单位安全生产管理人员证考试题库及答案
- 江苏省宿迁市沭阳县2023-2024学年八年级上学期期末英语试题
- 老年人视觉障碍护理
- 安全隐患大排查大整治专项行动方案
- 蓝军战略课件
- 《请柬及邀请函》课件
- 《个体防护装备安全管理规范AQ 6111-2023》知识培训
- 科学计算语言Julia及MWORKS实践 课件8 - 基本数据类型
- 湖北省黄冈市2023-2024学年高一上学期期末考试化学试题(含答案)
- 物流公司安全生产监督检查管理制度
评论
0/150
提交评论