全域規劃器利用路線尺度環境模型計算從機器人姿勢到目標的路徑。本地控制器利用該路徑和目前近距離狀態,生成可行的速度或軌跡指令。當這些職責、資料產物和故障條件分別測量時,導航效果會更好。
全域和區域性標籤描述範圍,而非重要性或絕對頻率。規劃器可以頻繁重新規劃,控制者則可以向前預測軌跡。邊界是輸出:路徑表達預期幾何形狀,而控制輸出必須尊重動力學、足跡、目前障礙物和指令時機。
將本指南與 Nav2 成本地圖指南 以及 運動規劃與軌跡最佳化指南一起使用。切換演算法前,請儲存路徑和指令證據。
從規劃師-控制員合約開始
規劃器接收起始、目標和環境表示,返回路徑或失敗。控制器接收目前姿態、速度、路徑和區域性約束,輸出控制指令或失敗狀態。定義邊界處每個資料產物的座標系、時間戳、更新規則和有效性。
Nav2 的 導航概念將 規劃器描述為路徑計算外掛,控制器為路徑跟蹤或本地任務外掛。儘可能將任務邏輯排除在這些演算法之外,這樣外掛替換不會無聲地改變重試、目標或安全策略。

判斷全域路徑的判斷不僅僅是最短距離
可用的全域路徑必須對足跡碰撞有效,連線起點和目標,相容未知空間策略,且對控制器來說合理。最短几何距離可能切近轉角,造成急劇航向變化,或進入成為操作瓶頸的區域。
測量路徑長度、最小淨空、曲率或航向不連續性、計算時間和故障率,均為固定起始目標集合。比較分佈,而非單一展示路線。保留每個結果的成本地圖和外掛參數,以確保路徑差異可解釋。
| 文物 | 製片人 | 接受證據 | 典型缺陷 |
|---|---|---|---|
| 全域路徑 | 規劃師 | 有效性、許可、連續性、年齡 | 不可能的轉角或陳舊路線 |
| 平滑路徑 | 更平滑 | 碰撞重檢與幾何結構 | 進入障礙的捷徑 |
| 速度指令 | 控制器 | 限制、可行性、時間戳 | 振盪或飽和 |
| 進展狀態 | 進度檢查器 | 距離與時間視窗 | 假失速或無盡滑移 |
| 進球結果 | 進球檢查器 | 位置、航向與任務容差 | 過早的成功 |
使路徑平滑保持有效性
平滑可以減少劇烈變化並提升控制,但移動路徑節點可能會減少障礙物清除或破壞狹窄通道。將平滑路徑視為需要碰撞和邊界驗證的新偽影,而非表面化的後處理。
記錄規劃器、獨立平滑器或控制器是否修改了參考。比較每個階段所消耗的精確路徑。當機器人切入角位時,僅繪製原始全域路徑的圖可能會將後續幾何形狀歸咎於控制器。
根據目前的本地證據評估控制者
控制器應在尊重足跡碰撞、運動學或動態限制及附近障礙物的前提下,生成遵循參考的命令。請查閱已部署版本的 Nav2 控制器伺服器檔案。其本地地圖和狀態必須足夠更新,以適應命令視界。
測量指令率、年齡、加速度、飽和度、預測間隙和跟蹤誤差。在可用時儲存被拒絕的候選或控制器診斷資料。僅靠總成功率即可隱藏控制器是否順利達成目標,或是在反覆振盪和恢復後成功。

保持規劃器和控制器框架的時間一致
全域路徑可以用地圖影格表示,而控制依賴里程計和基礎影格。在不一致時間變換路徑可能會使靜止路線相對於機器人看起來在移動。定義每個階段的變換查詢時間和容差。
使用機器人的訊息時間戳而非螢幕時間。注入變換延遲和定位修正,然後觀察路徑替換和指令行為。拒絕無法在宣告時間內轉換的資料,而不是使用最新的變換而不披露。
| 症狀 | 第一個檢查的車主 | 證據 | 避免假設 |
|---|---|---|---|
| 沒有路 | 規劃與全球地圖 | 起始、目標、地圖和結果程式碼 | 控制器缺陷 |
| 路徑存在,但機器人停下 | 控制器與本地地圖 | 命令與拒絕理由 | 規劃器解運動 |
| 機器人振盪 | 控制器、幾何結構、定位 | 候選軌跡與位姿記錄 | 一個參數就足夠了 |
| 機器人從不宣告卡住 | 進度檢查器 | 位移與時間 | 車輪運動等於進步 |
| 目標成功是錯誤的 | 進球檢查器 | 姿勢、航向與容差 | 路徑端點定義了成功 |
使用進度檢查器作為顯式故障檢測器
進度檢查器決定在一定時間視窗內的移動是否足夠。半徑和餘量必須反映定位雜訊、指令速度、機動類型和場地限制。緩慢而謹慎的做法是有效的,而旋轉輪可以在不造成物理位移的情況下實現里程計。
測試阻擋運動、低摩擦滑移、定位漂移、故意的慢區和暫停行為。確定檢查器使用的姿態源。進展失敗應產生命名錯誤,行為樹可將其區分給規劃器失敗或目標拒絕。
定義目標接受度獨立於路徑跟蹤
目標檢查器確定位置和方向何時足夠接近,並可能在多次檢查間保持狀態。公差應來自任務:過境航路點、電梯進入和對接分級姿態需要不同的精度和航向要求。
在精度關鍵時,透過獨立姿態測量驗證成功。從多個方向測試進近,並在定位校正後進行。不要在感測和控制能力以下收緊公差;這會導致無盡的最終振盪,卻不改善任務結果。
觸發有意義事件的重新規劃
週期性重新規劃簡單,但可能浪費計算,並用小幅變化替換良好路徑。事件驅動重規劃可以對無效路徑、目標改變或持續的區域性阻塞做出反應,但依賴於可靠的條件。許多系統將有界週期觸發與有效性檢查結合起來。
測量規劃器延遲和流量下的路徑流失情況。定義控制器何時採用新路徑,以及如果規劃失敗而現有路徑在本地仍可行時會發生什麼。在替換方案透過接受檢查前,切勿刪除最後一個有效計劃。
將演算法與機器人幾何結構及任務匹配
基於網格的規劃器、格點規劃器和混合規劃器對航向、運動原語和車輛運動學做出不同的假設。控制器在最佳化、取樣和跟蹤行為方面也存在差異。在基準調優前,從機器人約束和站點幾何中選擇候選方案。
在多個演算法間使用同一個場景矩陣:開放行進、窄通道、反轉、急轉彎、動態障礙和目標進近。報告計算平台和載入情況。贏得未載入模擬的外掛可能會錯過部署邊緣運算機上的命令截止時間。
用同步的偽影鏈診斷導航
捕獲目標、起始姿態、全域和本地成本地圖、原始和平滑路徑、變換、控制器命令、進度狀態、目標狀態和行為樹結果。將它們放在一個時間線上。這條鏈揭示了錯誤幾何體是被規劃、變換、遵循還是接受。
從最早出現錯誤的偽造物開始。如果路徑已經穿過致命單元,控制器調優不是首要解決辦法。如果路徑有效但未發出命令,檢查本地可行性、狀態年齡和控制器結果後再更換規劃器。
測試轉換與失效行為
注入規劃超時、控制器超時、無效路徑、障礙物插入、定位跳躍、陳舊變換和命令拒絕。當新目標到達時,確認取消和歸屬。導航動作失敗後,機器人不應繼續遵循過時的命令流。
測量從故障出現到檢測、命令抑制、恢復和最終報告的時間。包括系統負載和間歇性錯誤,因為非同步時序常常會改變哪個元件看起來先失效。
把導航系統作為經過測量驗證的組合釋出
版本規劃器、平滑器、控制器、進度檢查器、目標檢查器、地圖、足跡和行為樹。保留場景級結果和尾部延遲。沒有部署參數和證據的演算法名稱無法定義可重複的導航系統。
每次更改都使用簡明的釋出清單。
評估“移動機器人中的全域規劃器與本地控制器的比較”時,還應儲存模型版本、機器人設定、校正檔案、測試日期和全部試驗記錄。
只有把這些持續投入與單位成功任務的價值比較,才能判斷方案是否適合擴大。
上線後仍要持續檢查分佈變化、感測器漂移、機械磨損和人工接管原因。
- 獨立驗證原始路徑和平滑路徑。
- 測量指揮年齡、可行性和限制。
- 用任務特定案例測試進展和目標檢查器。
- 控制重新規劃頻率和路徑切換。
- 在重新調校之前,先追溯最早的錯誤偽影。
常見問題
本地控制員和本地規劃師是一樣的嗎?
“本地規劃器”一詞在較早的 ROS 用法中很常見; Nav2 描述那些沿著路徑或執行本地任務併產生控制工作的控制器。
全球規劃器應多久重新規劃一次?
使用測量環境動態,計算時間和路徑有效性。週期性和事件驅動觸發均需有界行為。
控制器能修復糟糕的全域路徑嗎?
它可能避開其能力範圍內的區域性障礙,但不應期望修復一條全球無效或不可能完成的路線。
為什麼機器人能到達目標卻沒能完成?
目標檢查器可能要求機器人無法滿足的位置或航向容差,或者使用了不一致的姿態證據。
診斷導航故障最快的方法是什麼?
儲存同步目標、地圖、路徑、變換、命令和檢查器狀態,然後找到最早的錯誤偽影。
導航輸出與運動邊界
規劃路徑和控制器命令是應用輸出,而非安全級保護功能。獨立的運動限制、保護和停止行為仍然必要。