Open Source Robotics

高品質なオープンソースロボティクスプロジェクト、ツール、ソフトウェアの厳選コレクション。

Model Predictive Path Integral

  • 別名: MPPI, MPPI control, information-theoretic MPC, path integral MPC
  • カテゴリ: Control › Feedback control
  • タグ: model-predictive-control, sampling-based-control, optimal-control, gpu-computing, navigation

ランダムに摂動させた多数の制御系列をダイナミクスモデルでシミュレートし、コストで重み付けして平均することで次の行動を選ぶ、サンプリングベースのモデル予測制御手法。

定義

Model Predictive Path Integral(MPPI)制御は、Grady Williams、Evangelos Theodorou らが開発したサンプリングベースのモデル予測制御の一形態であり、広く引用されている 2016 年のデモでは、小型の自律ラリーカーが未舗装のコースを高速で走行した。ほかのモデル予測コントローラと同様に、MPPI は短いホライズンにわたって制御入力の系列を計画し、最初の一つを適用し、次の時間ステップで計画し直す。違いは計画の計算方法にある。

各ステップで、MPPI は前回の制御系列から出発し、ランダムなノイズを加えて摂動させた多数の系列を生成する。摂動させた各系列をダイナミクスモデルでロールアウトして結果の軌道を予測し、その軌道をコスト関数で評価する。新しい制御系列は全サンプルの重み付き平均であり、重みは温度パラメータに従ってコストとともに指数的に小さくなる。低コストのサンプルが平均を支配する一方、更新は滑らかに保たれる。

この手法は経路積分制御理論に由来する。この理論は、ある種の確率的最適制御問題を、サンプリングした軌道についての期待値と結び付ける。実際には、MPPI の主な魅力は勾配を必要としないことにある。ダイナミクスモデルとコスト関数は、何度も評価できさえすれば、非線形でも不連続でも学習されたものでもよい。ロールアウトは互いに独立なので、GPU でよく並列化できる。

トレードオフは、サンプル数とホライズン長に応じて増える計算コストと、ノイズの大きさや温度への敏感さである。ノイズが少なすぎるとコントローラの探索が不十分になり、多すぎると指令がぶれるため、サンプリングした系列や出力を平滑化することが多い。

重要な理由

MPPI を使うと、ロボットは複雑なダイナミクスモデルや学習したダイナミクスモデル、そして障害物マップや地形のリスクのように微分しにくいコストを用いて計画できる。ロールアウトが並列に動くため、リアルタイムで動作する地上車両、ドローン、脚ロボットに十分な速さで計画し直せる。

主な用途

  • 高速走行やオフロードでの自動運転
  • ROS 2 の Nav2 スタックを含む、移動ロボットのローカルナビゲーション
  • 機敏なクアッドロータ制御
  • 学習したダイナミクスモデルや世界モデルを用いた計画
  • 滑らかでない接触コストを伴うマニピュレーションと移動

実際の使われ方

屋外ナビゲーションに MPPI を使うチームは、通常、搭載 GPU 上でこれを実行し、毎周期、数秒のホライズンにわたって多数の制御系列をサンプリングする。各系列は、運動学モデルや動力学モデル、あるいは学習した順ダイナミクスモデルといった車両モデルを通して伝播され、ゴールへの進み具合、障害物と走行可能性のコスト、制御の滑らかさを組み合わせたコストで評価される。ROS 2 の Nav2 ナビゲーションスタックに含まれる MPPI コントローラなど、オープンソースの実装がある。エンジニアリングの労力の大半はコスト関数とサンプリングのパラメータに費やされる。チームはシミュレーションでノイズの共分散と温度を調整し、その後実機で、車両が振動しないこと、新たな障害物に素早く反応することを確認する。

よくある誤解

  • MPPI は単なるランダム探索である — 探索にランダム性を使うが、コストで重み付けした平均は確率的最適制御理論から導かれている
  • サンプルを増やせば性能の悪さは必ず解決する — 設計の悪いコスト関数や調整の悪いノイズと温度は、サンプル数にかかわらず結果を制限する
  • MPPI にはモデルが要らない — すべてのロールアウトの予測にダイナミクスモデルが必要であり、不要なのはモデルの勾配だけである

知っておくべき人

  • 自動運転車や移動ロボットの制御エンジニア
  • ドローンやクアッドロータの制御の開発者
  • 学習したモデルと計画を組み合わせる研究者
  • ローカルコントローラを設定する Nav2 のユーザー

関連技術

  • モデル予測制御(Model Predictive Control)
  • Nav2
  • 交差エントロピー法(Cross-Entropy Method)
  • iLQR
  • 順ダイナミクスモデル(Forward Dynamics Model)
  • CUDA

関連用語

  • Model Predictive Control
  • Trajectory Planning
  • Reinforcement Learning

関連プロジェクト

  • Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
  • ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
  • MRPT: Comprehensive C++ toolkit for mobile robotics, SLAM, and sensor-based navigation
  • TurtleBot3: ROS packages for TurtleBot3 — the standard educational mobile robot platform
  • MuJoCo MPC: DeepMind's interactive real-time model predictive control framework for MuJoCo

このウェブサイトにはJavaScriptが必要です。オープンソースロボティクスプロジェクトを閲覧するにはJavaScriptを有効にしてください。