圖形導航服務(GraphNav service)
GraphNav 服務是基於地點的定位和移動服務。您可以通過 RPC 調用來訪問機器人上的 GraphNavService,以本地定位機器人、導航路線或下載快照數據。
使用 GraphNavRecording 服務或通過使用平板電腦控制器操作機器人並使用 Autowalk 功能記錄地圖來記錄地圖。
地圖包含路徑點雲(waypoints)和邊緣。這些統稱為圖。機器人使用記錄的地圖來跟踪一系列路徑點雲(waypoints)和邊緣。在回放過程中,機器人將其實時傳感器數據與記錄過程中存儲的傳感器數據進行比較。這有助於機器人在播放期間確定其位置或姿勢,以便進行調整。
導航
GraphNav 服務用於在記錄地圖中由邊連接的路徑點雲(waypoints)之間導航。通常,該服務會盡量靠近記錄的路線。 如果沿途遇到障礙物,機器人有能力調整其路線,除非偏差使機器人離記錄的路線太遠,在這種情況下機器人宣布自己卡住了。
這種基於地點的navigation scheme 允許機器人遍歷建築比例尺地圖。實際限制由現場條件決定。成功的地圖導航依賴於在記錄和重放操作之間避免環境發生劇烈變化的能力。
實現 GraphNav 服務 API 需要四個階段:
- 記錄地圖,操作員可以使用控制器平板電腦上的 Autowalk 功能,通過編寫使用 GraphNavRecordingService RPC 來記錄地圖的客戶端應用程序,或通過使用 logging_command_line 示例來記錄地圖。
- 將記錄的地圖上傳到機器人。
- 將機器人的位置初始化到地圖上。
- 命令機器人導航到地圖中的另一個航點。
GraphNavService RPCs
RPC | 描述 |
---|---|
SetLocalization | 觸發手動本地定位。通常完成以提供初始本地化。 |
NavigateRoute | 告訴 GraphNav 導航/遍歷給定的路線。 |
NavigateTo | 告訴 GraphNav 沿著它選擇的路線導航到一個航點。 |
NavigationFeedback | 獲取有關活動導航命令的反饋。 |
GetLocalizationState | 獲取定位狀態、姿勢和可選的當前傳感器數據。 |
ClearGraph | 下載航點 ID、圖形拓撲和其他小信息的完整列表。 |
DownloadGraph | 獲取有關活動導航命令的反饋。 |
UploadGraph | 上傳在特定航點獲取的傳感器數據。由於快照中的數據量,使用流式 RPC。 |
UploadWaypointSnapshot | 上傳在特定航點獲取的傳感器數據。由於快照中的數據量,使用流式 RPC。 |
UploadEdgeSnapshot | 上傳大型邊緣快照作為特定邊緣的串流。 |
DownloadWaypointSnapshot。 | 從服務器下載航點數據。 |
DownloadEdgeSnapshot | 從服務器下載邊緣數據。 |
GraphNavRecordingService RPCs
地圖記錄由 GraphNavRecordingService RPC 提供。
RPC | 描述 |
---|---|
StartRecording | 開始記錄一系列航點。 |
SetRecordingEnvironment | 定義邊緣和航點的持久註釋。 |
GetRecordStatus | 獲取有關錄製服務狀態的反饋。 |
CreateWaypoint | 在當前位置創建一個航點。 |
CreateEdge | 在兩個航點之間創建一條邊。 |
StopRecording | 暫停錄音服務。 |
調用 StartRecording 後,記錄服務開始創建航點、邊緣和關聯的快照。
留言
張貼留言
Aron阿龍,謝謝您的留言互動!