本節簡要介紹機器人導航常接觸的概念。
ROS2
第二代機器人作業系統,是Nav2的核心中間件,不熟悉可以參考部落格關于ROS2的課程。
- ROS2極簡總結系列
- 基礎概念1
- 基礎概念2
行動伺服器
導航是長期任務,必然采用行動,一次行動可以取消,中途要彙報進展,和人類完成行動概念是相似的。在 ROS 2中定義
.action
以及請求和結果類型。
生命周期節點
- 擴充概念
生命周期節點是 ROS 2 獨有的。當一個節點啟動時,它是在未配置狀态。通過啟動系統或提供的生命周期管理器,需要通過配置将節點轉換為非活動狀态。之後,可以通過過渡到激活階段來激活節點。
此狀态将允許節點處理資訊并完全設定為運作。觸發該
on_configure()
方法的配置階段将設定所有參數、ROS 網絡接口、安全系統和所有動态配置設定的記憶體。觸發該
on_activate()
方法的激活階段将激活 ROS 網絡接口并設定程式中的任何狀态以開始處理資訊。
開啟關閉,過渡到停用、清理、關閉并以最終狀态結束。網絡接口分别在這些階段被停用和停止處理、釋放記憶體、幹淨地退出。
整個項目中廣泛使用生命周期節點架構,所有伺服器都使用它。如果可能,所有 ROS2 系統最好使用生命周期節點。
如果伺服器崩潰,它會讓生命周期管理器知道并關閉系統以防止發生嚴重故障。
*ROS1無此功能!
行為樹
行為樹 (BT) 在複雜的機器人任務中變得越來越普遍。它們是要完成的任務的樹形結構。它為定義多步驟或多狀态應用程式建立了一個更具可擴充性和人類可了解性的架構。這與有限狀态機 (FSM) 相比,行為樹可能有幾十個或多個狀态和數百個轉換。
例如,足球機器人,如果選擇有限狀态機(FSM),要涵蓋所有狀态和規則非常困難,邏輯嵌入也極具挑戰性,但是使用行為樹,可以建立和複用基本原語。
導航伺服器
規劃器和控制器是導航任務的核心。恢複功能用于使機器人擺脫不良情況或嘗試處理各種形式的問題以使系統具有容錯能力。
規劃器、控制器和恢複伺服器
項目中的三個行動伺服器是規劃、恢複和控制伺服器。
規劃器
- 計算最短路徑
- 計算完整的覆寫路徑
- 沿着稀疏或預定義的路線計算路徑
控制器
在 ROS 1 中也稱為局部規劃器,Nav2 中控制器的一般任務是計算有效的控制并遵循全局規劃。
恢複器
恢複是容錯系統的支柱。恢複的目标是處理系統的未知或故障情況并自主處理它們。機器人由于動态障礙物或控制不佳而被卡住。在允許的情況下,倒退或原地旋轉可以讓機器人從惡劣的位置移動到它可以成功導航的自由空間。
航迹跟随
導航系統的基本特征實作導航到達多個目的地。
狀态估計
機器人建構包含完整
map
->
odom
->
base_link
->的 TF 樹。
環境表征
環境表征是機器人感覺環境的方式。
案例學習:
- 導航2安裝與試用