圖形導航和機器人運動(GraphNav and robot locomotion)

前言大綱

GraphNav 服務提供了兩個 RPC 用於導航到先前地圖上的不同位置:

  • 導航到NavigateTo
  • 導航路線NavigateRoute

兩個 RPC 都讓客戶端指定最大速度以及最終航點處目標區域的大小。

導航到NavigateTo

NavigateTo RPC 是在機器人定位後命令機器人前往地圖上的目的地的最簡單方法。 GraphNav 將決定採用哪條路線,目前是邊數最少的路線。

導航路線NavigateRoute

所述NavigateRoute RPC允許客戶端直接指定機器人的路徑。這允許客戶端命令機器人根據需要花費更長的路徑。路線被指定為航點和邊緣的列表。例如,您可以製作一條返回自身的路徑,允許機器人前往遠處的航路點,然後返回起點。

鼓勵與機器人保持聯繫的客戶在不久的將來在最後期限內不斷重新發送命令。如果客戶端停止簽到,這會導致機器人快速停止。與自主機器人斷開連接的客戶端應設置更長的截止日期並依靠替代機制來保持安全。

狀態和反饋Status and feedback

API 客戶端應在地圖重放期間使用 NavigationFeedback RPC 定期查詢導航狀態。

除非返回錯誤,否則 NavigationFeedbackResponse 將返回狀態為 STATUS_FOLLOWING_ROUTE 以及路線中剩餘的航點和邊緣列表。

成功完成後,當機器人到達指定路線的終點時,導航狀態更改為 STATUS_REACHED_GOAL,匹配最終航點的位置和偏航。

需要高精度的客戶甚至應該達到目標後,請與GetLocalizationState RPC定位,作為機器人將接近但不完全的目標。

自主導航錯誤

以下錯誤類型可能會中斷自主路由:
錯誤代碼 描述
STATUS_NO_ROUTE 表示客戶端更改了使路由無效的內容。
STATUS_NO_LOCALIZATION 機器人未定位到地圖。
STATUS_NOT_LOCALIZED_TO_ROUTE 本地化且未丟失但不在命令路線上。
STATUS_COMMAND_OVERRIDDEN 一個新的 GraphNav 命令覆蓋了用戶要求反饋的命令。
STATUS_LOST 丟失意味著機器人對其定位不再有信心,必須重新定位。
STATUS_STUCK 卡住意味著機器人仍處於定位狀態,但無法到達目的地(通常是因為途中有障礙物)。
STATUS_ROBOT_FROZEN
STATUS_ROBOT_FAULTED
表示機器人摔倒或有硬件問題。
STATUS_CONSTRAINT_FAULT 表示路徑被過度約束。選擇不同的路線。
STATUS_LEASE_ERROR 表示給予 GraphNav 的租約不再有效。
STATUS_COMMAND_TIMED_OUT 表示存在通信問題或已達到超時期限。

參考資料

特色、摘要,Feature、Summary:

關鍵字、標籤,Keyword、Tag:

留言

這個網誌中的熱門文章

Ubuntu 常用指令、分類與簡介

iptables的觀念與使用

網路設定必要參數IP、netmask(遮罩)、Gateway(閘道)、DNS

了解、分析登錄檔 - log

Python 與SQLite 資料庫

Blogger文章排版範本

Pandas 模組

如何撰寫Shell Script

查詢指令或設定 -Linux 線上手冊 - man

下載網頁使用 requests 模組