Model Predictive Control (MPC)
モデル予測制御(MPC)がどのように結果を予測し、制約内でアクションを最適化し、ロボット工学やビル制御においてコンピュータビジョンと連携するかについて学びます。
モデル予測制御 (MPC) は、システムが今後数瞬にわたってどのように応答するかを予測し、最適な一連のアクションを選択し、最初のアクションのみを実行することによってアクションを選択する方法です。次に、実際に何が起こったかを測定し、再び計画を立てます。曲がり角に近づく倉庫のロボットを想像してください。現在地のみからステアするのではなく、さまざまなステアリングの選択肢によって自分がどこに残り、それらの経路が近くの棚をクリアするかどうかを考慮します。
MPCはどのように機能しますか?#
MPCコントローラーには、ロボットの位置や速度などの状態、アクションがその状態をどのように変化させるかを予測するダイナミクスモデル、および良好な結果を記述する目的が必要です。その最適化では、急激なステアリングにペナルティを課しながら、目的地に到達することを優先する場合があります。制約は、モーターの速度制限を超えたり、占有スペースに入ったりするなど、許容できない動作を除外するか、または思いとどまらせます。
各制御間隔において、MPCは予測ホライズン全体にわたる候補アクションの結果を予測します。全体のコストが最も低いシーケンスを選択し、最初のアクションを適用し、更新された測定値で繰り返します。この繰り返される再計画は、リシーディングホライズン制御と呼ばれます。MathWorksによるMPCの紹介はこのフィードバックループを示しており、サンプル時間とホライズンに関するガイドでは、より先を見据えることで予測能力が向上する一方で計算量が増加する理由を説明しています。
単一の普遍的な「MPCの式」というものはありません。平易な言葉で言えば、コントローラーは、モデルと制約に従って、ホライズン全体にわたる目標追従誤差とアクションコストの予測される合計を最小限に抑えます。do-mpcによるMPCの説明では、このアイデアが、単純な線形モデルでは適切に表現できない応答を持つ非線形システムにどのように拡張されるかも示しています。
モデルと測定値は何に貢献しますか?#
ダイナミクス model は、必ずしも画像ではなく、結果を予測します。ホイールの速度が変化したときにロボットの位置がどのように変化するか、または部屋の温度が暖房や屋外の天候にどのように応答するかを推定する場合があります。そのパラメータは、物理的知識、測定データ、または予測モデリングから取得できます。モデルの学習を行っても、その予測が稼働環境において正確であり続けるかどうかをテストする必要性がなくなるわけではありません。
測定値によって計画が修正されます。カメラによって障害物が明らかになる場合がありますが、画像検出が自動的に使用可能な物理的位置になるわけではありません。コントローラーには、カメラのキャリブレーション、距離情報、および観測値とモーション履歴を組み合わせるための状態推定器が必要になる場合があります。カルマンフィルターは可能な推定器の1つであり、MathWorksによるコントローラー状態推定ガイドでは、MPCが直接測定できない状態を頻繁に推定する理由を説明しています。再計画は不完全な予測に役立ちますが、遅延したまたは信頼性の高い観測をそれ単体で安全にすることはできません。
MPCはどこに応用されますか?#
- 倉庫ロボットのナビゲーション: モバイルロボットは、カメラの観測値と自身のモーション推定値を使用して、作業員や棚の周りの短い経路を計画します。MPCコントローラーは、ステアリングと速度のシーケンスを移動時間の目標とモーションの制限と比較し、人が移動するにつれて選択を改訂できます。Nav2の予測コントローラーのドキュメントは、予測された軌跡を評価する実際的なロボット工学の例を提供します。
- ビルの気候制御: ビルコントローラーは、暖房や冷房の決定が今後数時間にわたって室温にどのように影響するかを予測できます。占有率の推定値と天気予報は、エネルギー使用量と快適性の制限のバランスを取りながら、需要に備えるのに役立ちます。米国エネルギー省のビルセンサーと制御の概要では、機械学習と予測制御のこの組み合わせについて説明しています。
どちらの場合も、利点は予測だけではありません。MPCは、予測を使用して稼働制限内でアクションを選択し、次の観測に対して計画をチェックします。
MPCは関連する概念とどのように異なりますか?#
ワールドモデルは環境がどのように進化するかを表します。MPCは、ダイナミクス model を使用して可能なアクションを比較する制御手順です。強化学習は通常、経験から行動する方法を学習しますが、MPCは操作中に先を見据えた計画問題を明示的に解決します。これらは組み合わせることができます。学習されたモデルがMPCの予測を提供することがあります。
同様に、オブジェクト追跡は、オブジェクトがフレーム全体でどこにあるかを推定しますが、ステアリングコマンドを選択するわけではありません。追跡はMPCに観測値を提供できますが、コントローラーには依然としてモーションモデル、目的、制約、および最適化方法が必要です。MathWorksの制約ガイドは、ハードリミットと、ペナルティ付きの違反を許可するソフト制約を区別しています。
コンピュータビジョンはどのようにMPCパイプラインをサポートできますか?#
Ultralytics YOLO26は、オブジェクト検出を通じて知覚入力を提供できます。この文書化された推論ワークフローは、1つの画像のバウンディングボックスを返します。
from ultralytics import YOLO
# Load a pretrained detection model.
model = YOLO("yolo26n.pt")
# Observe objects in the current image.
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Inspect image-space locations available to a perception pipeline.
print(result.boxes.xyxy)出力は、距離、速度、または制御コマンドではなく、画像空間でのボックス座標を提供します。動的なシーンでは、YOLOトラッキングモードがオブジェクトの識別情報の維持に役立ち、深度推定が距離の推定を提供します。別の推定およびMPCシステムは、適切な観測値の状態への変換、アクションの結果の予測、制約付き最適化の解決、およびハードウェアへのコマンドの送信を行う必要があります。
デプロイの前に、知覚からアクションまでのループ全体が制御間隔内に完了することをテストします。検出漏れ、モデルの不一致、および制約によって計画が実行不可能になるケースを評価し、オプティマイザーが常に安全なコマンドを返すと仮定するのではなく、定義されたフォールバック動作を設定します。









