圖形導航和機器人運動(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 | 表示存在通信問題或已達到超時期限。 |
留言
張貼留言
Aron阿龍,謝謝您的留言互動!