自主性技術摘要 (Autonomy Technical Summary)

主旨

本摘要提供有關 Spot Autonomy SDK 的技術實現和使用以創建自主行為的信息。波士頓動力公司的客戶正在使用 GraphNav 在各種工業和商業環境中進行數據收集和檢查。本地化、地圖、圖形和其他概念在商業機器人的自主性背景下進行了解釋。

關於圖導航About GraphNav

Spot 具有映射、定位和自主遍歷(autonomous traverse )系統,統稱為 GraphNav。如今,波士頓動力公司的客戶在建築、石油和天然氣以及公用事業行業使用此功能進行數據收集和控制監控應用程序。

GraphNav 由一個在機器人上運行的服務和一個開發人員用來練習 GraphNav 功能的 API 組成。機器人操作員可以在機器人隨附的平板電腦應用程序中使用稱為 Autowalk 的功能,該功能建立在 GraphNav 和任務服務的基礎上,可以快速記錄和重放環境的遍歷,同時執行有用的操作。

關鍵概念Key concepts

對於 Spot,世界被表示為路徑點雲(waypoints) 和邊的局部持續圖。

路徑點雲(waypoints) 

路徑點雲(waypoints)表示機器人可以導航到的世界上的地方。每個路徑點雲(waypoints) 都有與其位置相關的特徵數據快照。該數據允許機器人在從一個路徑點雲(waypoints) 移動到另一個路徑點雲(waypoints) 時跟踪其位置。

該特徵數據是由機器人的板載傳感器構建的。沒有太多視覺紋理的大部分空白區域可能無法為機器人提供良好的特徵來跟踪其位置。路徑點雲(waypoints) 的特徵快照還包括檢測到的基準點,這些基準點可以附加在環境中,以幫助機器人通過不包含許多傳感器特徵的困難區域。

安裝的 LIDAR 傳感器可以增強機載傳感器。LIDAR 傳感器為每個路徑點雲(waypoints)提供更多信息,並允許機器人在更廣泛的環境中成功跟踪其位置。

邊緣Edges

地圖中的邊緣表示機器人如何在路點之間移動。它們包含連接的路徑點雲(waypoints)的相對位姿以及描述機器人應該如何沿著該邊緣移動的任何所需參數。例如,穿過樓梯的邊在其參數中編碼有關樓梯的信息。

機器人通過跨越邊緣從一個路徑點雲(waypoints)移動到另一個路徑點雲(waypoints)來導航,並被限制在由每個邊緣定義的走廊內。

圖邊以局部持續的方式創建。但是,地圖整體上沒有“全局幀框 global frame”。如果從一個路徑點雲(waypoints)到另一個路徑點雲(waypoints)通過圖有多條路徑,那麼沿不同路徑累積變換可能會導致兩個航路點之間產生不同的結果變換。

映射環境Mapping the environment

機器人必須手動驅動才能繪製和記錄環境。結果圖可用於在映射環境中定位機器人。一旦記錄下來,機器人就可以自主地穿越該圖中的環境。

重新啟動後記錄的地圖不會保留。要保存,需要從 Spot 下載地圖。例如,Autowalk 將記錄的地圖下載到平板電腦。記錄的地圖可以上傳到其他機器人並供其他機器人使用。
注意:機器人端緩存cashing在常見情況下使後續上傳速度更快。

初始化和本地化Initialization and localization

上傳新地圖後,機器人必須明確設置其定位。
  • 設置定位的方法之一,是提供到特定路徑點雲(waypoints)的變換。
  • 另一種方法是在將機器人定位在記錄過程中存儲在先前地圖中的基準附近之後觸發初始化。

一旦機器人的定位被初始化,機器人將繼續跟踪其相對於地圖中路徑點雲(waypoints)的位置。當機器人在地圖上移動時,用於定位的路徑點雲(waypoints)將切換到相鄰的路徑點雲(waypoints)。

目前,不支持外部姿勢輸入(例如 GPS 或 beacons)。但是,一些波士頓動力公司客戶使用 Spot API 來構建額外的功能層以協助初始化或監控。

機器人迷失Lost robots

機器人在導航記錄的地圖時可能會迷路。從這種情況中恢復是整體系統穩健性的一個關鍵方面。操作員監控狀態消息,觀察機器人的狀態並檢查自我報告的 "丟失狀態LOST status"。為了從丟失的狀態中恢復,必須重新初始化機器人的定位。機器人不會嘗試自行從丟失的狀態中恢復。

丟失事件很大程度上取決於機器人運行的環境。當場景的特徵很少或變化很大時,定位過程會產生不確定性的結果。操作員可以通過使用新數據記錄新路徑點雲(waypoints)並刪除舊路徑點雲(waypoints)來更新地圖。

使用本地化數據的注意事項Notes on Using Localization Data

Spot 機器人的定位方法不同於其他常見的定位方法。對於 Spot,世界被表示為路徑點雲(waypoints)和邊的圖,機器人的定位是相對於這些路徑點雲(waypoints)之一的姿勢。所以,沒有所謂的 "全域地圖幀 global map frame" 的位置。要確定機器人相對於另一個航路徑點雲(waypoints)的位置,請沿著從機器人定位路徑點雲(waypoints)到所需路徑點雲(waypoints)的路徑跟踪邊緣,沿途並持續累積變換。

當機器人在地圖中導航時,機器人會將其定位從一個路徑點雲(waypoints)切換到另一個路徑點雲(waypoints),但在此過程中不會更新地圖。該地圖在創紀錄的時間固定,並從那時起用作導航輔助工具。

機器人的定位估計會根據最新的可用數據定期更新。計算該估計以產生最佳可用位置估計,而不嘗試實現平滑的位置或速度估計。如果您的應用程序需要平滑的位置估計或速度,最好的來源是機器人狀態服務,並依賴於 “里程計幀odom frame” 中身體位置和速度的估計。

參考資料

特色、摘要,Feature、Summary:

關鍵字、標籤,Keyword、Tag:

留言

這個網誌中的熱門文章

Ubuntu 常用指令、分類與簡介

iptables的觀念與使用

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

了解、分析登錄檔 - log

Python 與SQLite 資料庫

Blogger文章排版範本

Pandas 模組

如何撰寫Shell Script

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

下載網頁使用 requests 模組