導航組件(Components of autonomous navigation)
前言大綱
要開始使用自主導航,您需要掌握以下概念:
地圖(Maps)
地圖是由路徑點雲(waypoints) 和邊際(Edges)組成的拓撲圖。地圖由操作員使用平板電腦控制器記錄,或者由客戶端應用程序使用對 GraphNavRecordingService 的調用記錄( RPC calls )。
路徑點雲(waypoints)
路徑點雲(waypoints) 定義了機器人在地圖上遵循的路線。每個路徑點雲(waypoints)都存儲一個指向記錄過程中捕獲的數據快照的指針。在記錄過程中,機器人以大約 2m 的間隔或根據需要以其他方式放置路徑點雲(waypoints) 。 可以通過 API 從平板電腦或客戶端應用程序顯式創建路徑點雲(waypoints) 。
邊際(Edges)
邊連接路徑點雲(waypoints)。它們包含描述一個路徑點雲(waypoints)相對於另一個路徑點雲(waypoints)的位置的變換,以及控制機器人如何在它們之間移動的註釋。例如,註釋可以指示樓梯模式或速度限制。
本地定位(Localization)
定位是機器人用來確定其相對於圖中單個路徑點雲(waypoints)位置的過程。機器人通過將其實時傳感數據與地圖路徑點雲(waypoints)中記錄的傳感數據進行比較來不斷更新其位置。需要初始定位,通常由基準fiducial輔助。
初始化(Initialization)
當地圖最初加載時,GraphNav 不知道機器人相對於它的位置,用戶必須幫助初始化機器人的本地定位。如果使用基準點,您可以選擇初始化到特定的基準fiducial或路徑點雲(waypoints)。如果不使用基準點,則必須初始化到特定路徑點雲(waypoints),並且可以選擇提供初始猜測或搜索區域。
任務(Missions)
任務表示為行為樹,行為樹由按層次結構排列的節點組成。行為樹在任務循環內執行。任務循環的每次迭代都稱為一個滴答(tick)。對於任何給定的滴答(tick),任務執行從樹的根部開始,並根據節點的類型和每個節點的狀態向下進行特定的分支:失敗、運行中或成功(請參閱 Mission.proto 文件中定義的 NodeState Result 枚舉)。失敗節點不一定會導致任務失敗。例如,當機器人充滿電時,節點可以檢查電池電量低和 "失敗"。
一旦根節點從運行變為失敗或成功,任務就完成了。
有關詳細信息,請參閱 任務服務(Missions service)。
留言
張貼留言
Aron阿龍,謝謝您的留言互動!