kobuki通信協(xié)議_第1頁
kobuki通信協(xié)議_第2頁
kobuki通信協(xié)議_第3頁
kobuki通信協(xié)議_第4頁
kobuki通信協(xié)議_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、附錄:協(xié)議說明綜述Kobuki驅動程序與機器人通過預先設定好的協(xié)議進行通信。通常,驅動會發(fā)送指令給機器人,并且得到機器人的反饋數(shù)據或傳感器消息。這些命令和反饋數(shù)據被轉換為bytestream通過串口通信。通信協(xié)議規(guī)定了bytestream的規(guī)則和形式。一、流組成一個bytestream可以分為四個部分:headers,length,payload和checksum。名字Header0Header1LengthPayloadChecksum大小1字節(jié)1字節(jié)1字節(jié)N字節(jié)1字節(jié)說明0xAA0x55有效信息的字節(jié)數(shù)有效信息1、headerHeader包括兩個字節(jié),header0和header1,它們是

2、kobuki驅動命令和機器人反饋數(shù)據bytestream的固定值。Headers用來檢測bytestream的開始,相當于起始位。2、lengthLength表示一個bytestream中所包含的有效信息的長度。Length占一個字節(jié),它可以用來區(qū)別不同的bytestream,最小值為3。3、payloadPayload中包涵了bytestream的中的實際數(shù)據即有效信息。3.1 payloadPayload有一些sub-payload組成。PayloadSub-payload 0Sub-payload 1Sub-payload 2Sub-payload N-1 3.2 sub-payload

3、組成sub-payload可以分為三部分:header,length和data.名字HeaderLengthData大小1字節(jié)1字節(jié)N字節(jié)說明預定義的標識符Data的字節(jié)位數(shù)下面描述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 c

4、s ? false : true;5、完整的bytestreamHeadersLengthPayloadChecksumHeader0Header1Sub-payload0Sub-payload1Sub-payload2Sub-payload N-1以上表格顯示了整個bytestream結構。Payload的最小長度為3,payload中包含sub-payload,它的長度為1.理論上這個數(shù)據包(bytestream)的最小長度為7.二、數(shù)據類型Sub-payload的數(shù)據字段是下面三種數(shù)據類型的混合:byte,int和short。名字說明字節(jié)長度位長數(shù)據范圍C/C+標識符Unsigned b

5、yte8位無符號整型180-255Unsigned charUint8_tUnsigned short16位無符號整型2160-65535Unsigned shortUint16_tUnsigned int32位無符號整型4320-4294967295Unsigned intUint32_t1、序列化反序列化序列化是將數(shù)據結構轉化為bytestream的過程,反序列化是一個逆轉過程。每個數(shù)據類型都通過LSB-Firstorder序列化和反序列化。這就意味著有效字節(jié)中的最低位將最先進入bytestream。例如,整形數(shù)據2,864,434,397(0xAABBCCDD)序列化后是:0xDD0xC

6、C0xBB0xAA所以,0xDD是最先進入bytestream的。這里有kobuki_driver的模板函數(shù)來解決這個問題,buildVariable()和buildBytes().三、命令包1、命令標識符IDNamedescription1Base control (底盤控制)Control wheel motors(控制輪子電機)2Reserved3Sound(聲音)Play custom sounds(播放定制聲音)4Sound sequence(聲音序列)Play predefined sounds (播放預定義聲音)5Reserved6Reserved7Reserved8Set po

7、wer (整機功率)Control external Powers (控制外部功率)9Request extra (額外請求)Request extra informations (請求額外信息)10Reserved11Reserved12General purpose output (通用輸出)Control general purpose output(控制通用輸出)2、底盤控制通過控制輪子的電機來移動機器人。機器人將按弧線行進,半徑 mm 速度 mm/sNamesize數(shù)值十六進制數(shù)值說明Identifier110x01固定Length數(shù)據字段大小140x04固定Data速度2單位 mm

8、/s半徑2單位 mm3、聲音通過音符(note)和音長(duration)播放自定義聲音Namesize數(shù)值十六進制數(shù)值說明Identifier130x03fixed(固定)LengthSize of data field130x03fixed(固定)數(shù)據note2duration1播放音符的音長按毫秒計警告:這個命令是在kobuki的固件上實現(xiàn)的,而不是在驅動軟件上。4、聲音序列按以下說明播放預先定義的聲音NamesizevalueValue in hexdescriptionIdentifier140x04fixedLengthSize of data field110x01fixedda

9、taSequence 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 field120x02fixedData

10、Power control flags2設置打開外部功率的標記符0x01 外部功率 3.3V ch.0x02 外部功率5V ch.0x04 外部功率12V1A ch.0x08外部功率12V5A ch.警告:這個命令是在kobuki的固件上實現(xiàn)的,而不是在驅動軟件上。也可以查看:General Purpose Output6、額外請求從機器人請求額外的數(shù)據,尤其是kobuki的版本信息:硬件版本,固件版本,和Unique Deivce Identifier(UDID),UDID是獨一無二的設備,因此可以用來識別多個機器人。NamesizevalueValue in hexdescriptioni

11、dentifier190x09FixedLengthSize of data field120x02FixeddataRequest flags2Set the flags to request extra data0x01 硬件版本0x02 固件版本0x08 設備ID也可以查看:Hardware VersionFirmware Version,Unique Device IDentifier(UDID)7、通用輸出這條命令包含多個對象,它控制LEDs,數(shù)字輸出和外部功率NamesizevalueValue in hexdescriptionIdentifier1120x0CFixedLeng

12、thSize of data field120x02Fixeddata數(shù)字輸出flags2Set the flags to set high on output pins of expansion port為設置高壓輸出插腳的擴展端口,設置如下標識符:0x0001 數(shù)字輸出ch.00x0002 數(shù)字輸出ch.10x0004 數(shù)字輸出ch.20x0008 數(shù)字輸出ch.3Set the flags to turn on enternal powers打來外部功率時,設置如下標識符:0x0010 外部功率3.3V ch.0x0020 外部功率5V ch.0x0040 外部功率12V1A ch.0x

13、0080 外部功率12V5A ch.Set the flags to turn on LEDs打開LED時,設置如下標識符:0x0100 LED1 紅色0x0200 LED1 綠色0x0400 LED2 紅色0x0800 LED2 綠色也可以查看:Set power四、反饋包反饋標識符機器人啟動后,kobuki以50Hz的頻率發(fā)送以下默認反饋。IDNamedescriptionavailability1Basic sensor data(傳感器數(shù)據)Basic core sensor data(基本核心傳感器數(shù)據)By default(默認)2Reserved3Docking IR(對接紅外)

14、Signal from docking stationBy default4Inertial sensor (慣性傳感器)Gyro data both angle and angular velocity(陀螺儀數(shù)據:角度和角速度)By default5Cliff (防跌落)PSD data facing floor()By default6Current(電流)Current of wheel motors (輪子電機電流)By default7Reserved8Reserved9Reserved10Hardware version (硬件版本)Version number of kobuk

15、i hardware(kobuki的硬件版本號)On request(按要求)11Firmware version (固件版本)Version number of kobuki firmware(kobuki的固件版本號)On request12Reserved13Raw data of 3-axis gyro(3軸陀螺儀原始數(shù)據)Raw ADC data of digital 3-axis gyro(3軸陀螺儀的原始模數(shù)轉換(ADC)數(shù)據)By default14Reserved15Reserved16General purpose input(通用輸入)Inputs from 25-pin

16、 expansion port(25針擴展端口輸入)By default17Reserved18Reserved19Unique device identifier(UDID)Unique number to identify robot(同過一個唯一的數(shù)字來識別或者辨別機器人)By default(默認值)20Reserved1、基本傳感器數(shù)據基本的核心傳感器的數(shù)據NamesizevalueValue in hexdescriptionFeedback identifier(反饋標識符)110x01FixedLengthSize of data field(數(shù)據字段大?。?150x0FFix

17、edDataTimestamp(時間戳/時間標記)2內部生成以毫秒為單位的時間戳:它從0到65535循環(huán)Bumper(減震器)1當減震器被碰到時,設置了如下標識符:0x01:右側減震器0x02:中心減震器0x04:左側減震器Wheel drop(輪跌落)1當車輪掉下時,設置了如下標識符:0x01:右車輪0x02:左車輪Cliff(防跌落)1當懸崖被檢測到時,設置了如下標識符:0x01:右側防跌落傳感器0x02:中心防跌落傳感器0x04:左側防跌落傳感器Left encoder(左輪編碼器)2左,右車輪編碼器數(shù)據累積,這個值的增加意味著前進的方向,它從0到65535循環(huán)。Right encode

18、r(右輪編碼器)2Left PWM(左側脈寬調制)1PWM主要是應用于左右車輪的電機(馬達)。為了正確的表達,這個數(shù)據應該被轉換為有符號的數(shù)據類型。負號表示方向向后。Right PWM(右側脈寬調制)1Button(按鈕)1當按按鈕時,設置如下標識符:0x01:按鈕00x02:按鈕10x04:按鈕2Charge(充電)10:不充電狀態(tài)2:對接充電狀態(tài)(charged)6:對接充電狀態(tài)(charging)18:適配器充電狀態(tài)(charged)22:適配器充電狀態(tài)(charging)Battery(電池)1電壓0.1V的電池,完全充電時電壓16.7VOver current flags(過電流標志

19、)1檢測到過電流時,設置如下標識符:0x01:左車輪0x02:右車輪注意:sub-payload將默認發(fā)送。2、對接紅外信號擴展塢NamesizevalueValue in hexdescriptionIdentifier130x03FixedLengthSize of data field(數(shù)據段大小)130x03FixeddataRight signal1檢測到信號時,設置如下標識符:0x01:接近左邊0x02:接近中心0x04:接近右邊0x08:遠離中心0x010:遠離左邊0x020:遠離右邊Central signal1Left signal1Kobuki的對接站,有3個紅外發(fā)射器,發(fā)

20、射紅外線燈覆蓋了對接站前方的三個區(qū)域:左,中間,右,每一個區(qū)域又分為兩個子字段:近和遠。由于將這些信息進行編碼,機器人隨時都能知道它所處的區(qū)域和子字段。由于區(qū)域和子字段能夠被獨立的識別,所以他們的邊界可以是重疊的。3、慣性傳感器數(shù)據慣性傳感器數(shù)據,只有1軸陀螺儀數(shù)據可用。NamesizevalueValue in hexDescriptionIdentifier140x04FixedLengthSize of data field170x07FixedDataAngle(角度)2Factory calibrated(工廠校準)Angle rate(角速率)2Factory calibrated

21、(工廠校準)Unused1Unused1Unused1注意:sub-payload將默認發(fā)送。4、防跌落傳感器數(shù)據Sub-payload提供了PSD的ADC數(shù)據,當機器人在路面是行走過程中遇到臺階或者地面存在高度差時。這個值與傳感器和地面之間的距離有關??梢圆榭磾?shù)據表獲得更加詳細的信息。這個值也可以用于基本傳感器數(shù)據方面的cliff field,kobuki以布爾類型進行處理。NamesizevalueValue in hexDescriptionidentifier150x05FixedLengthSize of data field160x05FixedDataRight cliff se

22、nsor(右側防跌落傳感器)2每個PSD的ADC輸出:數(shù)據范圍:0-4095距離范囲:2-15m距離是非線性的。Central cliff sensor(中間防跌落傳感器)2Left cliff sensor(左側防跌落傳感器)2注意:sub-payload將默認發(fā)送。也可以查看:basic sensor data5、電流利用電流傳感器讀取車輪電機的電流NamesizevalueValue in hexdescriptionIdentifier160x06FixedLengthSize of data field120x02FixeddataLeft motor210mARight motor

23、210mA注意:sub-payload將按請求發(fā)送6、硬件版本硬件版本信息是一種三聯(lián)體形式的:.namesizevalueValue in hexDescriptionIdentifier1100x0AFixedLengthSize of data field140x04FixeddataPatch1Minor1Major1unused100x00fixed注意:sub-payload將發(fā)送請求。也可以查看:request extra7、固件版本固件版本信息是一種三聯(lián)體形式的:.namesizevalueValue in hexDescriptionIdentifier1110x0BFixed

24、LengthSize of data field140x04FixeddataPatch1Minor1Major1unused100x00fixed注意:sub-payload將按請求發(fā)送也可以查看:request extra8、3d陀螺儀的原始數(shù)據數(shù)字3d陀螺儀的原始ADC數(shù)據:L3G4200D由于采集率和更新率的差異,將得到2-3數(shù)據。Digit to deg/s ratio is 0.00875,it comes from datasheet of 3d gyro.數(shù)度比是0.00875,它來自3D陀螺儀的數(shù)據表。namesizevalueValue in hexdescriptionI

25、dentifier1130x0DFixedLengthSize of data field12+6NDataFrame id (幀標識符)1每個傳感器讀數(shù)可以通過幀標識符識別,它從0到255循環(huán)。Followed data length13NRaw gyro data 0(陀螺儀原始數(shù)據0)x-axis2ADC輸出每個軸的速率是0.00875 度/s.y-axis2z-axis2Raw gyro data N-1(陀螺儀原始數(shù)據N-1)x-axis2y-axis2z-axis2注意:sub-payload將默認發(fā)送。警告:3D陀螺儀傳感器與機器人不匹配,z軸逆時針旋轉90度,下面是轉換關系:const d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論