




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档附录:协议说明综述Kobuki驱动程序与机器人通过预先设定好的协议进行通信。通常,驱动会发送指令给机器人,并且得到机器人的反馈数据或传感器消息。这些命令和反馈数据被转换为bytestream通过串口通信。通信协议规定了bytestream的规则和形式。一、流组成一个bytestream可以分为四个部分:headers,length,payload和checksum。名字Header0Header1LengthPayloadChecksum大小1字节1字节1字节N字节1字节说明0xAA0x55有效信息的字节数有效信息1、headerHeader包括两个字节,header0和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.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 = bufferi;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+标识符Unsigned byte8位无符号整型180-255Unsigned charUint8_tUnsigned short16位无符号整型2160-65535Unsigned shortUint16_tUnsigned int32位无符号整型4320-4294967295Unsigned intUint32_t1、序列化反序列化序列化是将数据结构转化为bytestream的过程,反序列化是一个逆转过程。每个数据类型都通过LSB-Firstorder序列化和反序列化。这就意味着有效字节中的最低位将最先进入bytestream。例如,整形数据2,864,434,397(0xAABBCCDD)序列化后是:0xDD0xCC0xBB0xAA所以,0xDD是最先进入bytestream的。这里有kobuki_driver的模板函数来解决这个问题,buildVariable()和buildBytes().三、命令包1、命令标识符IDNamedescription1Base control (底盘控制)Control wheel motors(控制轮子电机)2Reserved3Sound(声音)Play custom sounds(播放定制声音)4Sound sequence(声音序列)Play predefined sounds (播放预定义声音)5Reserved6Reserved7Reserved8Set power (整机功率)Control external Powers (控制外部功率)9Request extra (额外请求)Request extra informations (请求额外信息)10Reserved11Reserved12General purpose output (通用输出)Control general purpose output(控制通用输出)2、底盘控制通过控制轮子的电机来移动机器人。机器人将按弧线行进,半径 mm 速度 mm/sNamesize数值十六进制数值说明Identifier110x01固定Length数据字段大小140x04固定Data速度2单位 mm/s半径2单位 mm3、声音通过音符(note)和音长(duration)播放自定义声音Namesize数值十六进制数值说明Identifier130x03fixed(固定)LengthSize of data field130x03fixed(固定)数据note2duration1播放音符的音长按毫秒计警告:这个命令是在kobuki的固件上实现的,而不是在驱动软件上。4、声音序列按以下说明播放预先定义的声音NamesizevalueValue in hexdescriptionIdentifier140x04fixedLengthSize of data field110x01fixeddataSequence 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 hexDescriptionIdentifier180x08FixedLengthSize of data field120x02fixedDataPower control flags2设置打开外部功率的标记符0x01 外部功率 3.3V ch.0x02 外部功率5V ch.0x04 外部功率12V1A ch.0x08外部功率12V5A ch.警告:这个命令是在kobuki的固件上实现的,而不是在驱动软件上。也可以查看:General Purpose Output6、额外请求从机器人请求额外的数据,尤其是kobuki的版本信息:硬件版本,固件版本,和Unique Deivce Identifier(UDID),UDID是独一无二的设备,因此可以用来识别多个机器人。NamesizevalueValue in hexdescriptionidentifier190x09FixedLengthSize of data field120x02FixeddataRequest flags2Set the flags to request extra data0x01 硬件版本0x02 固件版本0x08 设备ID也可以查看:Hardware VersionFirmware Version,Unique Device IDentifier(UDID)7、通用输出这条命令包含多个对象,它控制LEDs,数字输出和外部功率NamesizevalueValue in hexdescriptionIdentifier1120x0CFixedLengthSize of data field120x02Fixeddata数字输出flags2Set the flags to set high on output pins of expansion port为设置高压输出插脚的扩展端口,设置如下标识符:0x0001 数字输出ch.00x0002 数字输出ch.10x0004 数字输出ch.20x0008 数字输出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时,设置如下标识符:0x0100 LED1 红色0x0200 LED1 绿色0x0400 LED2 红色0x0800 LED2 绿色也可以查看:Set power四、反馈包反馈标识符机器人启动后,kobuki以50Hz的频率发送以下默认反馈。IDNamedescriptionavailability1Basic sensor data(传感器数据)Basic core sensor data(基本核心传感器数据)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 default7Reserved8Reserved9Reserved10Hardware 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 default14Reserved15Reserved16General 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(反馈标识符)110x01FixedLengthSize of data field(数据字段大小)1150x0FFixedDataTimestamp(时间戳/时间标记)2内部生成以毫秒为单位的时间戳:它从0到65535循环Bumper(减震器)1当减震器被碰到时,设置了如下标识符:0x01:右侧减震器0x02:中心减震器0x04:左侧减震器Wheel drop(轮跌落)1当车轮掉下时,设置了如下标识符:0x01:右车轮0x02:左车轮Cliff(防跌落)1当悬崖被检测到时,设置了如下标识符:0x01:右侧防跌落传感器0x02:中心防跌落传感器0x04:左侧防跌落传感器Left encoder(左轮编码器)2左,右车轮编码器数据累积,这个值的增加意味着前进的方向,它从0到65535循环。Right encoder(右轮编码器)2Left PWM(左侧脉宽调制)1PWM主要是应用于左右车轮的电机(马达)。为了正确的表达,这个数据应该被转换为有符号的数据类型。负号表示方向向后。Right PWM(右侧脉宽调制)1Button(按钮)1当按按钮时,设置如下标识符:0x01:按钮00x02:按钮10x04:按钮2Charge(充电)10:不充电状态2:对接充电状态(charged)6:对接充电状态(charging)18:适配器充电状态(charged)22:适配器充电状态(charging)Battery(电池)1电压0.1V的电池,完全充电时电压16.7VOver current flags(过电流标志)1检测到过电流时,设置如下标识符:0x01:左车轮0x02:右车轮注意:sub-payload将默认发送。2、对接红外信号扩展坞NamesizevalueValue in hexdescriptionIdentifier130x03FixedLengthSize of data field(数据段大小)130x03FixeddataRight signal1检测到信号时,设置如下标识符:0x01:接近左边0x02:接近中心0x04:接近右边0x08:远离中心0x010:远离左边0x020:远离右边Central signal1Left signal1Kobuki的对接站,有3个红外发射器,发射红外线灯覆盖了对接站前方的三个区域:左,中间,右,每一个区域又分为两个子字段:近和远。由于将这些信息进行编码,机器人随时都能知道它所处的区域和子字段。由于区域和子字段能够被独立的识别,所以他们的边界可以是重叠的。3、惯性传感器数据惯性传感器数据,只有1轴陀螺仪数据可用。NamesizevalueValue in hexDescriptionIdentifier140x04FixedLengthSize of data field170x07FixedDataAngle(角度)2Factory calibrated(工厂校准)Angle rate(角速率)2Factory calibrated(工厂校准)Unused1Unused1Unused1注意:sub-payload将默认发送。4、防跌落传感器数据Sub-payload提供了PSD的ADC数据,当机器人在路面是行走过程中遇到台阶或者地面存在高度差时。这个值与传感器和地面之间的距离有关。可以查看数据表获得更加详细的信息。这个值也可以用于基本传感器数据方面的cliff field,kobuki以布尔类型进行处理。NamesizevalueValue in hexDescriptionidentifier150x05FixedLengthSize of data field160x05FixedDataRight cliff sensor(右侧防跌落传感器)2每个PSD的ADC输出:数据范围:0-4095距离范囲:2-15m距离是非线性的。Central cliff sensor(中间防跌落传感器)2Left cliff sensor(左侧防跌落传感器)2注意:sub-payload将默认发送。也可以查看:basic sensor data5、电流利用电流传感器读取车轮电机的电流NamesizevalueValue in hexdescriptionIdentifier160x06FixedLengthSize of data field120x02FixeddataLeft motor210mARight motor210mA注意:sub-payload将按请求发送6、硬件版本硬件版本信息是一种三联体形式的:.namesizevalueValue in hexDescriptionIdentifier1100x0AFixedLengthSize of data field140x04FixeddataPatch1Minor1Major1unused100x00fixed注意:sub-payload将发送请求。也可以查看:request extra7、固件版本固件版本信息是一种三联体形式的:.namesizevalueValue in hexDescriptionIdentifier1110x0BFixedLengthSize of data field140x04FixeddataPatch1Minor1Major1unused100x00fixed注意:sub-payload将按请求发送也可以查看:request extra8、3d陀螺仪的原始数据数字3d陀螺仪的原始ADC数据:L3G4200D由于采集率和更新率的差异,将得到2-3数据。Digit to deg/s ratio is 0.00875,it comes from datasheet of 3d gyro.数度比是0.00875,它来自3D陀螺仪的数据表。namesizevalueValue in hexdescriptionIdentifier1130x0DFixedLengthSize 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度,下面是转换关系:const double digit_to_dps = 0.00875;angular_velocity.x =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年心理学与教育评估的相关能力测试题及答案
- 2025年项目策划与实施相关知识考试卷及答案
- 2025年金融理财师资格考试试卷及答案
- 2025年会计职业资格证考试模拟试卷及答案
- 2025年甘肃省庆阳市宁县中医医院招聘36人笔试参考题库及参考答案详解1套
- 2025年中国邮政集团有限公司安徽省分公司校园招聘笔试模拟试题含答案详解
- 物资购买领用管理制度
- 物资采购平台管理制度
- 特殊患者抢救管理制度
- 特殊物料运送管理制度
- 2023年气象服务行业市场突围建议及需求分析报告
- 分包工程验收报告
- 《汽车维修业开业条件》
- 2023年小学教科版科学毕业精准复习综合练习课件(共36张PPT) 实验探究专题二
- 《2图形的全等》教学设计(辽宁省县级优课)-七年级数学教案
- XXXX采石场职业病危害现状评价报告
- 市政工程代建管理方案(简版)
- 住宅专项维修资金管理系统方案
- 中药处方书写规范与中药处方点评
- 宫腔镜下子宫内膜息肉切除日间手术临床路径(妇科)及表单
- GB/T 699-2015优质碳素结构钢
评论
0/150
提交评论