モバイルロボットにおけるグローバルプランナーとローカルコントローラーの違い

グローバルプランナーは、ルートスケール環境モデルを用いてロボットの姿勢から目標への経路を計算します。ローカルコントローラはその経路と現在の近傍状態を消費して、実行可能な速度や軌道コマンドを生成します。これらの責任、遺物、故障状況を別々に測定することで航行は改善されます。

グローバルとローカルというラベルは、重要度や絶対頻度ではなく範囲を表しています。プランナーは頻繁に再計画でき、コントローラーは軌道を前方に予測することがあります。境界は出力であり、パスは意図されたジオメトリを表し、制御出力は動態、フットプリント、現在の障害物、コマンドタイミングを尊重しなければなりません。

このガイドを Nav2 コストマップガイドモーションプランニング、軌道最適化ガイドと一緒にご利用ください。アルゴリズムを切り替える前に、パスとコマンドの両方の証拠を保存してください。

まずはプランナーとコントローラーの契約から始める

プランナーはスタート、目標、環境表現を受け取り、経路または失敗を返します。コントローラは現在の姿勢、速度、経路、局所制約を受け取り、制御出力または故障を返します。境界にあるすべての成果物に対して、フレーム、タイムスタンプ、更新ルール、有効性を定義します。

Nav2の ナビゲーションコンセプト では、プランナーをパス計算プラグインとして、コントローラーをパスフォローまたはローカルタスクプラグインとして説明しています。可能な限りミッションロジックはこれらのアルゴリズムの外に置き、プラグインの置き換えがリトライや目標、安全ポリシーを静かに変えないようにしましょう。

屋外で稼働する黄色いライダースキャナーを備えた追跡移動ロボット
移動ロボットは局所的センシングと実行可能な制御を用いてグローバルな意図に従います。この研究プラットフォームはハードウェアの境界を示すものであり、特定のナビゲーションスタックを示すものではありません。出典: S. ウィンクヴィスト(ウィキメディア・コモンズより)利用条件:パブリックドメイン。

大域パスを最短距離以上で判断する

利用可能なグローバルパスは、フットプリントに対して衝突有効性があり、スタート地点と目標に接続され、未知空間ポリシーと互換性があり、コントローラーにとって妥当でなければなりません。最短幾何学的距離は、角に近づいたり、急な進路変更を生んだり、運用上のボトルネックとなるエリアに入り込むことがあります。

固定されたスタート目標セット上で、経路長、最小クリアランス、曲率または方位の不連続性、計算時間、故障率を測定します。一つの見せ場ルートではなく、分布を比較してください。すべての結果に対してコストマップとプラグインパラメータを保持し、経路の違いを説明可能に保ちます。

遺物プロデューサー受理証拠典型的な欠陥
グローバルパスプランナー有効性、クリアランス、継続性、年齢不可能な角や古びたルート
平滑化された経路より滑らかに衝突再チェックとジオメトリ障害物へのショートカット
速度指令コントローラー制限、実現可能性、タイムスタンプ振動または飽和
進行状態プログレッスチェッカー距離と時間帯偽の失速やエンドレススリップ
ゴール結果ゴールチェッカー位置、航位および作業許容差早すぎる成功

経路平滑化は妥当性を保持する

滑らか化は急な変化を減らし、制御を向上させますが、移動経路のポイントは障害物のクリアランスを減らしたり、狭い通路を侵害したりします。平滑化された経路を、衝突と境界検証が必要な新しい成果物として扱い、見た目の後処理として扱うべきではありません。

プランナー、別のスムーマー、またはコントローラーが参照を修正したかどうかを記録します。各段階が消費した正確な経路を比較してください。ロボットが角を切り取った場合、元のグローバルパスのみのプロットでは、後に導入された幾何学の原因をコントローラーに帰すことがあります。

コントローラーを現行の現地証拠と照らして評価する

コントローラーは、フットプリントの衝突、運動学的または動的制限、近くの障害物を尊重しつつ、参照に従うコマンドを生成すべきです。デプロイされたリリースの Nav2 コントローラーサーバーのドキュメント を確認してください。ローカルマップと状態はコマンドホライズンに十分対応していなければなりません。

指令率、年齢、加速度、飽和度、予測クリアランスおよび追跡誤差を測定します。拒否された候補やコントローラー診断は利用可能な場合は保存してください。総合成功率だけでは、コントローラーが目標を円滑に達成したのか、繰り返しの振動と回復後に成功したのかを隠します。

5段階の移動ロボットグローバルプランナーおよびローカルコントローラー診断
パスの品質、コマンドの実現可能性、進捗は異なる受け入れの問題です。出典:Physical AI Lab。

プランナーとコントローラーフレームの時間は一貫性を保つ

グローバルパスはマップフレームで表現でき、制御はオドメトリーとベースフレームに依存します。経路を不一定のタイミングで変換すると、静止した経路がロボットに対して相対的に動いているように見えることがあります。各段階ごとに変換ルックアップ時間と許容差を定義します。

画面時間ではなく、ロボットのメッセージのタイムスタンプを使ってください。変換遅延と局在補正を注入し、その後パス置換とコマンド挙動を観察します。宣言された時間契約内で変換できないデータは、開示せずに最新の変換を使う代わりに拒否してください。

症状最初に検査した所有者証拠勝手に決めつけないでください
道はないプランナーおよびグローバルマップスタート、目標、マップ、結果コードコントローラの欠陥
道は存在するがロボットは止まるコントローラーとローカルマップ命令理由と拒否理由プランナー解決モーション
ロボットは振動しますコントローラー、ジオメトリ、ローカライゼーション候補とポーズトレースパラメータは1つで十分です
ロボットは「スタック」と宣言しませんプログレッスチェッカー変位と時間車輪の動きは進歩に等しい
目標の成功は間違っていますゴールチェッカーポーズ、方位、そして許容範囲パスの終点は成功を定義します

プログレスチェッカーを明示的な故障検出器として使う

進捗チェックは、一定時間の経過期間を越えた移動が十分かどうかを判断します。この半径と許容度は、局在ノイズ、指令速度、機動の種類、サイト制約を反映しなければなりません。ゆっくり慎重に進む方法が有効であり、スピンホイールは物理的な変位なしにオドメトリーを実現できます。

ブロックされた動き、低摩擦の滑り、局所ドリフト、意図的な遅いゾーン、一時停止の挙動をテストします。チェッカーが使うポーズの源を特定しましょう。進行失敗は、行動ツリーがプランナー失敗や目標拒否と区別できる名前付きのエラーを生じさせるべきです。

パスフォローとは独立して目標受容を定義します

ゴールチェッカーは位置と向きが十分に近いタイミングを判断し、チェックを越えて状態を保持することができます。公差は作業自体から求められます。トランジットウェイポイント、エレベーターの進入、ドッキングの段階姿勢は異なる精度と方位要件が必要です。

精度が重要な場合は独立したポーズ測定で成功を確かめましょう。複数の方向からのアプローチ試験と、局在補後の試験。検知および制御能力以下の公差を厳しくしてはいけません。その結果、タスクの成果を改善することなく終わりのない最終振動が生まれます。

意味のあるイベントの再計画のトリガー

定期的な再計画は簡単ですが、計算を無駄にし、良い経路を小さな変動で置き換えることがあります。イベント駆動型再計画は、無効な経路、変更された目標、持続的な局所的な障害に反応できますが、信頼できる条件に依存します。多くのシステムは、有界周期トリガーと妥当性チェックを組み合わせています。

プランナーの遅延やトラフィック下のパスチャーンを測定します。コントローラーが新しい経路を採用した時と、既存の経路が現地で実現可能なまま計画が失敗した場合にどうなるかを定義してください。代替品が承認チェックを通過する前に、最後の有効なプランを消去しないでください。

アルゴリズムをロボットのジオメトリやミッションに合わせる

グリッドベース、格子プランナー、ハイブリッドプランナーは、方位、モーションプリミティブ、車両運動学について異なる仮定を行っています。また、コントローラーは最適化、サンプリング、トラッキングの挙動にも異なります。ベンチマーク調整前にロボットの制約やサイトジオメトリから候補を選びます。

アルゴリズム全体で一つのシナリオマトリックスを使いましょう:オープントラベル、狭い通路、逆行、急カーブ、動的障害、ゴールアプローチ。レポート、コンピュートプラットフォーム、ロード。アンロードシミュレーションで勝利したプラグインは、デプロイされたエッジコンピュータのコマンド期限を逃すことがあります。

同期された成果物チェーンによるナビゲーションの診断

目標、スタートポーズ、グローバルおよびローカルコストマップ、生および平滑化されたパス、変換、コントローラーコマンド、進行状況、目標状態、そしてビヘイビアツリーの結果をキャプチャします。それらを一つのタイムラインに配置しましょう。この連鎖は、間違った幾何学が計画されたのか、変換されたのか、従ったのか、あるいは受け入れられたのかを示します。

まずは誤った成果物から始めましょう。もし経路がすでに致命的なセルを横切っているなら、コントローラーの調整は最初の解決策ではありません。パスが有効でコマンドが出ない場合は、プランナーを交換する前にローカルの実現可能性、状態の年齢、コントローラーの結果を確認してください。

テスト遷移と故障挙動

プランナーのタイムアウト、コントローラーのタイムアウト、無効パス、障害物挿入、ローカライゼーションジャンプ、ステイル変換、コマンドリジェクションを注入します。新しい目標が来たらキャンセルと所有権を確認しましょう。ナビゲーションアクションが失敗した後、ロボットは旧式のコマンドストリームを続けてはいけません。

故障の出現から検出、コマンド抑制、回復、最終報告までの時間を測定します。システム負荷や断続的なエラーも含めてください。非同期タイミングでは、どのコンポーネントが最初に故障するかが変わることが多いからです。

測定された作曲としてのナビゲーションをリリースする

バージョンプランナー、スムーマー、コントローラー、プログレッションチェッカー、目標チェッカー、マップ、フットプリント、ビヘイビアツリーを組み合わせて使えます。シナリオレベルの結果とテールレイテンシを保持しましょう。パラメータや証拠が示されていないアルゴリズム名だけでは再現可能なナビゲーションシステムを定義しません。

各変更ごとに簡潔なリリースチェックリストを使いましょう。

  • 生の経路や滑らかな経路を独立して検証します。
  • 指揮の年齢、実現可能性、制限を測定してください。
  • タスク固有のケースで進捗や目標チェックツールをテストします。
  • 再計画の頻度と経路の引き継ぎを制御します。
  • 再調整する前に、最も古い誤った成果物を追跡してください。

よくある質問

ローカルコントローラーはローカルプランナーと同じですか?

「ローカルプランナー」という用語は、古いROSの用語でよく使われています。 Nav2、経路をたどったりローカルタスクを実行し、制御努力を生み出すコントローラーを指します。

グローバルプランナーはどのくらいの頻度で再計画すべきでしょうか?

測定された環境動態を使い、時間と経路の妥当性を計算します。周期的およびイベント駆動型トリガーはそれぞれに限定された振る舞いが必要です。

コントローラーで悪いグローバルパスを修正できますか?

能力の範囲内で局所的な障害を回避することは可能だが、世界的に無効または不可能なルートを修復することは期待すべきではない。

なぜロボットは目的地に到達するのに完走できないのでしょうか?

ゴールチェッカーは、ロボットが満たせない位置や方位許容差を求めたり、姿勢の証拠が一貫していない場合もあります。

ナビゲーションの失敗を最も早く診断する方法は何ですか?

同期した目標、マップ、パス、変換、コマンド、チェッカー状態を保存し、最も早い誤った成果物を見つけます。

ナビゲーション出力とモーションバウンダリー

プランナーパスとコントローラーコマンドはアプリケーション出力であり、安全指定の保護機能ではありません。独立した動きの制限、保護、停止行動は依然として必要です。