




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、附錄:協(xié)議說明綜述Kobuki驅(qū)動程序與機器人通過預先設定好的協(xié)議進行通信。通常,驅(qū)動會發(fā)送指令給機器人,并且得到機器人的反饋數(shù)據(jù)或傳感器消息。這些命令和反饋數(shù)據(jù)被轉換為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驅(qū)動命令和機器人反饋數(shù)據(jù)bytestream的固定值。Headers用來檢測bytestream的開始,相當于起始位。2、lengthLength表示一個bytestream中所包含的有效信息的長度。Length占一個字節(jié),它可以用來區(qū)別不同的bytestream,最小值為3。3、payloadPayload中包涵了bytestream的中的實際數(shù)據(jù)即有效信息。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;ret
4、urn cs ? false : true;5、完整的bytestreamHeadersLengthPayloadChecksumHeader0Header1Sub-payload0Sub-payload1Sub-payload2Sub-payload N-1以上表格顯示了整個bytestream結構。Payload的最小長度為3,payload中包含sub-payload,它的長度為1.理論上這個數(shù)據(jù)包(bytestream)的最小長度為7.二、數(shù)據(jù)類型Sub-payload的數(shù)據(jù)字段是下面三種數(shù)據(jù)類型的混合:byte,int和short。名字說明字節(jié)長度位長數(shù)據(jù)范圍C/C+標識符Unsig
5、ned byte8位無符號整型180-255Unsigned charUint8_tUnsigned short16位無符號整型2160-65535Unsigned shortUint16_tUnsigned int32位無符號整型4320-4294967295Unsigned intUint32_t1、序列化反序列化序列化是將數(shù)據(jù)結構轉化為bytestream的過程,反序列化是一個逆轉過程。每個數(shù)據(jù)類型都通過LSB-First order序列化和反序列化。這就意味著有效字節(jié)中的最低位將最先進入bytestream。例如,整形數(shù)據(jù)2,864,434,397(0xAABBCCDD)序列
6、化后是:0xDD0xCC0xBB0xAA所以,0xDD是最先進入bytestream的。這里有kobuki_driver的模板函數(shù)來解決這個問題,buildVariable()和buildBytes().三、命令包1、命令標識符IDNamedescription1Base control (底盤控制)Control wheel motors(控制輪子電機)2Reserved3Sound(聲音)Play custom sounds(播放定制聲音)4Sound sequence(聲音序列)Play predefined sounds (播放預定義聲音)5Reserved6Reserved7Rese
7、rved8Set power (整機功率)Control external Powers (控制外部功率)9Request extra (額外請求)Request extra informations (請求額外信息)10Reserved11Reserved12General purpose output (通用輸出)Control general purpose output(控制通用輸出)2、底盤控制通過控制輪子的電機來移動機器人。機器人將按弧線行進,半徑 mm 速度 mm/sNamesize數(shù)值十六進制數(shù)值說明Identifier110x01固定Length數(shù)據(jù)字段大小140x04固定D
8、ata速度2單位 mm/s半徑2單位 mm3、聲音通過音符(note)和音長(duration)播放自定義聲音Namesize數(shù)值十六進制數(shù)值說明Identifier130x03fixed(固定)LengthSize of data field130x03fixed(固定)數(shù)據(jù)note2duration1播放音符的音長按毫秒計警告:這個命令是在kobuki的固件上實現(xiàn)的,而不是在驅(qū)動軟件上。4、聲音序列按以下說明播放預先定義的聲音NamesizevalueValue in hexdescriptionIdentifier140x04fixedLengthSize of data field11
9、0x01fixeddataSequence 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 field120x
10、02fixedDataPower control flags2設置打開外部功率的標記符0x01 外部功率 3.3V ch.0x02 外部功率5V ch.0x04 外部功率12V1A ch.0x08外部功率12V5A ch.警告:這個命令是在kobuki的固件上實現(xiàn)的,而不是在驅(qū)動軟件上。也可以查看:General Purpose Output6、額外請求從機器人請求額外的數(shù)據(jù),尤其是kobuki的版本信息:硬件版本,固件版本,和Unique Deivce Identifier(UDID),UDID是獨一無二的設備,因此可以用來識別多個機器人。NamesizevalueValue in hexd
11、escriptionidentifier190x09FixedLengthSize of data field120x02FixeddataRequest flags2Set the flags to request extra data0x01 硬件版本0x02 固件版本0x08 設備ID也可以查看:Hardware Version Firmware Version, Unique Device IDentifier(UDID)7、通用輸出這條命令包含多個對象,它控制LEDs,數(shù)字輸出和外部功率NamesizevalueValue in hexdescriptionIde
12、ntifier1120x0CFixedLengthSize 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
13、.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的頻率發(fā)送以下默認反饋。IDNamedescriptionavailability1Basic sensor data(傳感器數(shù)據(jù))Basic core sensor data(基本核心傳感器數(shù)據(jù))By default(默認)2Re
14、served3Docking IR(對接紅外)Signal from docking stationBy default4Inertial sensor (慣性傳感器)Gyro data both angle and angular velocity(陀螺儀數(shù)據(jù):角度和角速度)By default5Cliff (防跌落)PSD data facing floor()By default6Current(電流)Current of wheel motors (輪子電機電流)By default7Reserved8Reserved9Reserved10Hardware version (硬件版本)
15、Version number of kobuki hardware(kobuki的硬件版本號)On request(按要求)11Firmware version (固件版本)Version number of kobuki firmware(kobuki的固件版本號)On request12Reserved13Raw data of 3-axis gyro(3軸陀螺儀原始數(shù)據(jù))Raw ADC data of digital 3-axis gyro(3軸陀螺儀的原始模數(shù)轉換(ADC)數(shù)據(jù))By default14Reserved15Reserved16General purpose input(
16、通用輸入)Inputs from 25-pin expansion port(25針擴展端口輸入)By default17Reserved18Reserved19Unique device identifier(UDID)Unique number to identify robot(同過一個唯一的數(shù)字來識別或者辨別機器人)By default(默認值)20Reserved1、基本傳感器數(shù)據(jù)基本的核心傳感器的數(shù)據(jù)NamesizevalueValue in hexdescriptionFeedback identifier(反饋標識符)110x01FixedLengthSize of data
17、field(數(shù)據(jù)字段大?。?150x0FFixedDataTimestamp(時間戳/時間標記)2內(nèi)部生成以毫秒為單位的時間戳:它從0到65535循環(huán)Bumper(減震器)1當減震器被碰到時,設置了如下標識符:0x01:右側減震器0x02:中心減震器0x04:左側減震器Wheel drop(輪跌落)1當車輪掉下時,設置了如下標識符:0x01:右車輪0x02:左車輪Cliff(防跌落)1當懸崖被檢測到時,設置了如下標識符:0x01:右側防跌落傳感器0x02:中心防跌落傳感器0x04:左側防跌落傳感器Left encoder(左輪編碼器)2左,右車輪編碼器數(shù)據(jù)累積,這個值的增加意味著前進的方向,它
18、從0到65535循環(huán)。Right encoder(右輪編碼器)2Left PWM(左側脈寬調(diào)制)1PWM主要是應用于左右車輪的電機(馬達)。為了正確的表達,這個數(shù)據(jù)應該被轉換為有符號的數(shù)據(jù)類型。負號表示方向向后。Right PWM(右側脈寬調(diào)制)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.7VO
19、ver current flags(過電流標志)1檢測到過電流時,設置如下標識符:0x01:左車輪0x02:右車輪注意:sub-payload將默認發(fā)送。2、對接紅外信號擴展塢NamesizevalueValue in hexdescriptionIdentifier130x03FixedLengthSize of data field(數(shù)據(jù)段大小)130x03FixeddataRight signal1檢測到信號時,設置如下標識符:0x01:接近左邊0x02:接近中心0x04:接近右邊0x08:遠離中心0x010:遠離左邊0x020:遠離右邊Central signal1Left signa
20、l1Kobuki的對接站,有3個紅外發(fā)射器,發(fā)射紅外線燈覆蓋了對接站前方的三個區(qū)域:左,中間,右,每一個區(qū)域又分為兩個子字段:近和遠。由于將這些信息進行編碼,機器人隨時都能知道它所處的區(qū)域和子字段。由于區(qū)域和子字段能夠被獨立的識別,所以他們的邊界可以是重疊的。3、慣性傳感器數(shù)據(jù)慣性傳感器數(shù)據(jù),只有1軸陀螺儀數(shù)據(jù)可用。NamesizevalueValue in hexDescriptionIdentifier140x04FixedLengthSize of data field170x07FixedDataAngle(角度)2Factory calibrated(工廠校準)Angle rate(
21、角速率)2Factory calibrated(工廠校準)Unused1Unused1Unused1注意:sub-payload將默認發(fā)送。4、防跌落傳感器數(shù)據(jù)Sub-payload提供了PSD的ADC數(shù)據(jù),當機器人在路面是行走過程中遇到臺階或者地面存在高度差時。這個值與傳感器和地面之間的距離有關??梢圆榭磾?shù)據(jù)表獲得更加詳細的信息。這個值也可以用于基本傳感器數(shù)據(jù)方面的cliff field,kobuki以布爾類型進行處理。NamesizevalueValue in hexDescriptionidentifier150x05FixedLengthSize of data field160x05
22、FixedDataRight cliff sensor(右側防跌落傳感器)2每個PSD的ADC輸出:數(shù)據(jù)范圍:0-4095距離范囲:2-15m距離是非線性的。Central cliff sensor(中間防跌落傳感器)2Left cliff sensor(左側防跌落傳感器)2注意:sub-payload將默認發(fā)送。也可以查看:basic sensor data5、電流利用電流傳感器讀取車輪電機的電流NamesizevalueValue in hexdescriptionIdentifier160x06FixedLengthSize of data field120x02FixeddataLef
23、t motor210mARight motor210mA注意:sub-payload將按請求發(fā)送6、硬件版本硬件版本信息是一種三聯(lián)體形式的:<major>.<minor>.<patch>namesizevalueValue in hexDescriptionIdentifier1100x0AFixedLengthSize of data field140x04FixeddataPatch1Minor1Major1unused100x00fixed注意:sub-payload將發(fā)送請求。也可以查看:request extra7、固件版本固件版本信息是一種三聯(lián)體
24、形式的:<major>.<minor>.<patch>namesizevalueValue in hexDescriptionIdentifier1110x0BFixedLengthSize of data field140x04FixeddataPatch1Minor1Major1unused100x00fixed注意:sub-payload將按請求發(fā)送也可以查看:request extra8、3d陀螺儀的原始數(shù)據(jù)數(shù)字3d陀螺儀的原始ADC數(shù)據(jù):L3G4200D由于采集率和更新率的差異,將得到2-3數(shù)據(jù)。Digit to deg/s ratio is 0.
25、00875,it comes from datasheet of 3d gyro.數(shù)度比是0.00875,它來自3D陀螺儀的數(shù)據(jù)表。namesizevalueValue in hexdescriptionIdentifier1130x0DFixedLengthSize of data field12+6NDataFrame id (幀標識符)1每個傳感器讀數(shù)可以通過幀標識符識別,它從0到255循環(huán)。Followed data length13NRaw gyro data 0(陀螺儀原始數(shù)據(jù)0)x-axis2ADC輸出每個軸的速率是0.00875 度/s.y-axis2z-axis2Raw gyro data N-1(陀螺儀原始數(shù)據(jù)N-1)x-axis2y-axis2z-axis2注意:sub-payload將默認發(fā)送。警告:3D陀螺儀傳感器與機器人不匹配,z軸逆時針旋轉90度,下面是轉換關系:const double digit_to_dps = 0.00
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金屬工具的智能制造與大數(shù)據(jù)應用考核試卷
- 輸血科規(guī)章管理制度
- 精準落實閉環(huán)管理制度
- 幼師家長溝通技巧分層培訓計劃
- 氣罐安全使用管理制度
- 編程小班課程設計與實施計劃
- 精準引流渠道管理制度
- 新型肺炎報告管理制度
- 網(wǎng)紅直播保證金協(xié)議
- 鍋爐主保護管理制度
- 2025年廣西公需科目答案02
- 2025年香熏精油市場需求分析
- 中原農(nóng)業(yè)保險招聘題
- 導截流驗收報告匯編
- 旅游經(jīng)濟運行與調(diào)控課件
- 高考語文文言文閱讀??脊糯鷮嵲~總結
- 核電廠放射性液態(tài)流出物排放的主要技術要求
- (完整word版)重慶市建設工程竣工驗收報告、竣工驗收意見書
- 電子商務實務-3.4 直通車推廣ppt課件
- 火車過橋問題四年級(課堂PPT)
- 小學畢業(yè)班校長動員講話ppt課件
評論
0/150
提交評論