Open Source Robotics

精選高品質的開源機器人專案、工具與軟體,推動機器人社群向前發展。

Model Predictive Control

  • 又稱: MPC, receding horizon control, model-based predictive control
  • 類別: Control › Feedback control
  • 標籤: control, optimization, legged-locomotion, trajectory-optimization, real-time-control, constraints

一種以最佳化為基礎的控制策略,利用系統的動態模型預測有限時域內的未來行為,並即時計算最佳控制動作。

定義

模型預測控制(MPC)是一種進階控制策略,利用系統的數學模型預測其未來行為,並在有限的時間範圍內最佳化控制動作。在每個控制週期,MPC 都會求解一個有約束的最佳化問題:給定系統的當前狀態,找出一串控制輸入,使成本函數(例如追蹤誤差或能源消耗)最小,同時滿足狀態、輸入與輸出的約束。最佳序列中只有第一個控制動作會被執行,接著在下一個時間步以更新後的狀態量測重複整個過程,這種技術稱為滾動時域控制。

MPC 相較於 PID 等傳統控制器的主要優勢,在於它能明確處理約束。PID 控制器在誤差發生之後才做出反應,無法預見未來會違反約束。相反地,MPC 會向前看,主動調整動作以保持在物理極限之內,例如關節扭矩極限、速度上下限、障礙物邊界或穩定裕度。這種預測能力讓它對動力學複雜、操作約束嚴格的系統特別有效。

MPC 的表述方式依所用的系統模型而不同。線性 MPC 使用線性模型,可以有效率地以二次規劃求解,適合以千赫茲頻率進行即時控制。非線性 MPC(NMPC)使用非線性模型以取得更高的精度,但需要更多運算量,依問題規模通常以 10-100 Hz 執行。最佳化演算法與運算硬體的近期進展,讓 NMPC 能用於越來越複雜的機器人系統。

在機器人學中,MPC 已成為足式行走運動的主流控制方法。四足機器人與人形機器人使用 MPC 規劃落腳序列、保持平衡並適應不平的地形,同時遵守防止打滑的摩擦錐約束。Boston Dynamics 的機器人、MIT Mini Cheetah 與 Unitree 的四足機器人,其行走運動控制器都仰賴各種 MPC 變體。這種方法對自駕車、無人機飛行與工業機器手臂控制同樣有價值。

MPC 的主要挑戰是運算成本。在每個控制週期求解一個最佳化問題需要可觀的運算能力,而且求解時間必須短於控制週期。這在過去讓 MPC 只能用於化工廠等緩慢的過程,但 OSQP、ACADOS 與 CasADi 等現代求解器,已讓即時 MPC 以數百赫茲的控制頻率進入機器人應用。

為何重要

模型預測控制(MPC)銜接了離線軌跡規劃與即時反應式控制之間的落差。正是因為它,現代足式機器人能走過崎嶇地形,無人機能在狹窄空間中導航,自駕車能在遵守速限的同時沿著車道行駛,這一切都靠預見未來,而不只是對當下做出反應。

主要應用

  • 足式機器人行走運動:四足機器人與人形機器人的平衡控制、步態生成與地形適應
  • 自駕車控制:在交通約束下進行車道跟隨、避障與速度調節
  • 無人機飛行控制:激烈機動、抑制風擾與多機協調
  • 工業機器手臂控制:在扭矩與速度極限下精確追蹤軌跡
  • 程序控制:化工廠、HVAC 系統與能源管理,這正是 MPC 的起源
  • 太空船姿態控制:在推進器約束下以最省燃料的方式調整朝向

實際應用

四足機器人典型的 MPC 實作流程如下:狀態估計器以 500 Hz 提供目前的機體位置、速度與朝向。MPC 控制器取得這個狀態,加上操作人員給出的期望速度指令,求解簡化的動力學模型(通常是單一剛體模型),找出接下來 0.5-1 秒內每隻腳的最佳地面反作用力。這個最佳化以 30-100 Hz 執行。得到的力軌跡會傳給較低層的全身控制器或關節 PID 迴路,由它們以 500-1000 Hz 執行這些力。

MIT Mini Cheetah 是最知名的研究用四足機器人之一,它採用凸 MPC 表述,能在 3 毫秒內解出一個二次規劃,實現穩健的小跑、跳躍奔跑,甚至後空翻。這證明了 MPC 能走出實驗室,進入動態、高速的機器人行走運動。

常見誤解

  • MPC 對即時機器人應用來說太慢:現代求解器讓線性 MPC 達到千赫茲的控制頻率,非線性 MPC 也能達到 100+ Hz
  • MPC 會完全取代 PID 控制器:實務上,MPC 常負責產生參考軌跡,再由內迴路的 PID 控制器去追蹤
  • MPC 需要完美的模型:MPC 本質上對中等程度的模型誤差具有強健性,因為它在每個時間步都以新的狀態量測重新規劃
  • MPC 只適用於化工廠這類緩慢的過程:雖然它起源於此,但如今 MPC 控制著一些最快速的機器人系統,包括無人機與奔跑機器人

誰需要了解

  • 從事足式行走運動或移動機器人的機器人工程師
  • 設計進階回饋控制器的控制系統工程師
  • 實作運動規劃與控制的自駕車開發者
  • 需要靈活飛行控制的無人機(UAV)工程師
  • 機器人學或控制理論的研究生

相關技術

  • 二次規劃
  • 凸最佳化
  • OSQP
  • CasADi
  • ACADOS
  • 線性代數
  • 軌跡最佳化

相關專案

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • GTSAM: Factor-graph optimization library powering many modern SLAM backends
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • MuJoCo MPC: DeepMind's interactive real-time model predictive control framework for MuJoCo
  • PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
  • NeuPAN: Real-time end-to-end planner that maps raw lidar points directly to robot actions

影片

  • Model Predictive Control: Steve Brunton
  • Why Use Model Predictive Control? | Understanding MPC, Part 1: MATLAB

維基百科

  • 模型預測控制

本網站需要 JavaScript 才能正常運作。請啟用 JavaScript 以瀏覽我們的開源機器人專案。