在操作移動機器人時,用戶需要使用相關(guān) API,
有這方面需求的小伙伴,請認真看這篇文章哦!
仙知網(wǎng)絡(luò)協(xié)議API使用指南
API 簡介
整套 API 采用 TCP request/response 問答的方式, 機器人作為服務(wù)器接受客戶端的請求并向客戶端作出響應(yīng)。
API 請求由頭部和數(shù)據(jù)區(qū)組成,頭部為普通定長的字節(jié), 用于標識數(shù)據(jù)包基本信息以及數(shù)據(jù)區(qū)的長度及類型等,數(shù)據(jù)區(qū)為序列化后的 JSON 數(shù)據(jù),根據(jù)頭部中的類型信息進行反序列化可以得到相應(yīng)的 JSON 對象。
API 的響應(yīng)也由頭部和數(shù)據(jù)區(qū)組成,頭部為根據(jù)請求得到的定長字節(jié)(響應(yīng)頭部與對應(yīng)請求頭部的關(guān)系見下文), 數(shù)據(jù)區(qū)也為序列化后的 JSON 數(shù)據(jù)。
API 測試及例程
我們將 API 測試工具開源在 Github, Source, 該工具使用 Qt 編寫, 其源碼可以作為例程參考。編譯后的單 Windows 可執(zhí)行文件也可在 Release 中下載。
API 類別
API 分為六類, 分別為機器人狀態(tài) API、機器人控制 API、機器人導(dǎo)航 API、機器人配置 API、其他 API。
1.機器人狀態(tài) API: 用于查詢機器人各種狀態(tài)量, 如位置、速度、報警信息等。
2.機器人控制 API : 用于向機器人發(fā)送開環(huán)控制指令, 如前進速度、轉(zhuǎn)向速度,重定位等。
3.機器人導(dǎo)航 API : 用于向機器人發(fā)送導(dǎo)航指令, 如去路徑返航、自由導(dǎo)航等。
4.機器人配置 API : 用于設(shè)置機器人的參數(shù), 以及下載、上傳地圖等。
5.其他 API : 雜項, 如喇叭控制等。
每個類別使用不用的端口, 相互獨立, 因此對不同的類別可以使用不同的傳輸協(xié)議。
端口
溫馨提醒
1.每個端口 API 請求的時間間隔為 200ms,請勿過快。
2.機器人將對每個建立的 TCP 連接進行 KeepAlive ?;? 對已死的連接會及時的清除。
3.機器人若收到任何不符合本協(xié)議報文頭部的錯誤數(shù)據(jù)包, 將會主動關(guān)閉該 TCP 連接(不會回復(fù)任何信息)。
4.其他情況下, 機器人不會主動斷開連接, API 使用者應(yīng)自己控制連接何時中斷。
5.對于僅允許建立一個連接的端口, 如果該端口已經(jīng)有連接建立, 那么機器人將不響應(yīng)其他任何建立連接的請求, 直到先建立的連接斷開。
6.對于每個連接, 機器人都是以一問一答的形式處理的, 即未作出響應(yīng)前是不會處理下一個請求的, 因此建議使用時等收到上一次請求的響應(yīng)后再發(fā)送下一個請求。
大家在使用過程中,有任何疑問都可通過【微信對話框】進行提問,有小仙為您解惑答疑哦。更詳細的使用教程將在下期【仙知小課堂·仙知網(wǎng)絡(luò)協(xié)議API(二)】中分享,敬請關(guān)注!
(轉(zhuǎn)載)