Open Source Robotics

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

Differential dynamic programming

  • 又稱: DDP
  • 類別: Planning & manipulation › Trajectory optimisation
  • 標籤: trajectory-optimization, optimal-control, model-predictive-control, numerical-optimization, shooting-methods

一種軌跡最佳化方法,沿著目前軌跡使用剩餘成本(cost-to-go)的局部二次模型,透過反覆的反向與前向階段改進控制序列。

定義

微分動態規劃(Differential dynamic programming,DDP)是一種軌跡最佳化演算法:給定動力學模型、關於狀態與控制量的成本以及初始狀態,它會找出一個使總成本局部最小的控制序列。它由 David Mayne 於 1966 年提出,並在 Jacobson 與 Mayne 1970 年出版的同名著作中進一步發展。DDP 是一種射擊法:決策變數是控制量,在其經典形式中,狀態一律透過向前模擬動力學取得,因此每一次迭代的結果都是一條在動力學上可行的軌跡。

每次迭代包含兩個階段。反向階段從最後一個時間步開始往起點推進,在局部套用 Bellman 最佳性原理:它利用動力學與成本的一階和二階導數,在目前軌跡附近建立剩餘成本(cost-to-go)的二次近似,並在每一步求解一個仿射控制更新,該更新由前饋項 k 與回饋增益矩陣 K 組成。接著前向階段以更新後的控制量 u = ū + αk + K(x − x̄) 模擬系統,其中 α 是線搜尋步長。由於展開式包含動力學的二階項,DDP 在局部極小值附近會像牛頓法一樣二次收斂,而每次迭代的運算量只隨時域長度線性增加。

動力學的二階導數計算成本很高,因此最廣為使用的變體,也就是迭代線性二次調節器(iLQR),捨棄了這些導數,只保留動力學的一階模型,即 Gauss-Newton 近似。實用的求解器會對反向階段做正則化,使其維持良好條件,並將此方法延伸到控制量限制(控制受限 DDP)、一般約束(擴增拉格朗日法,例如 ALTRO)、不可行的初始猜測(Crocoddyl 中的可行性驅動 DDP),以及像 Parameterized DDP 那樣與控制量一起最佳化的非時變參數。DDP 只能找到局部最佳解,因此結果取決於初始猜測。一個有用的附帶產物是這組回饋增益,它們能讓機器人穩定在最佳化後的軌跡附近。

為何重要

DDP 與 iLQR 是機器人軌跡最佳化與非線性模型預測控制中最常用的求解器之一。它們利用問題的時間結構,運算量隨時域長度線性增加,並且在給出軌跡的同時回傳一個局部回饋策略,這正是足式機器人、人形機器人與無人機在機上即時執行它們的原因。

主要應用

  • 足式機器人與人形機器人的非線性模型預測控制
  • 無人機與敏捷載具的軌跡最佳化
  • 機器手臂的力矩層級運動規劃
  • 欠驅動系統的甩起與平衡
  • 軌跡與模型參數或設計參數的聯合最佳化

實際應用

一個為四足機器人建構全身模型預測控制的團隊在 Crocoddyl 中建立問題。接觸序列來自固定的步態排程,因此每個階段的接觸都是已知的;成本結合了基座追蹤、落腳位置、控制量消耗,以及讓接觸力維持在摩擦錐內的懲罰項。在每個控制週期,求解器以前一次的解往後平移一步作為暖啟動,只執行一次或少數幾次迭代。第一個控制量及其回饋增益會送到底層的關節控制器,由它利用該增益修正兩次求解器更新之間的狀態變化。大部分調校工作集中在成本權重、正則化與時域長度上,它們在預見能力與求解時間之間取捨。

常見誤解

  • DDP 能找到全域最佳軌跡 — 它是局部方法;結果取決於初始猜測,而且可能是很差的局部極小值
  • iLQR 與 DDP 是同一個演算法 — iLQR 省略了動力學的二階項,讓每次迭代便宜許多,代價是在解附近收斂較慢
  • DDP 無法處理約束 — 基本演算法沒有約束,但控制受限與擴增拉格朗日的變體已廣泛使用
  • DDP 是在整個狀態空間上進行的動態規劃 — 它只沿著一條軌跡套用 Bellman 遞迴,這避開了維度詛咒,但只能給出局部結果

誰需要了解

  • 為足式機器人與無人機建構模型預測控制器的控制工程師
  • 軌跡最佳化研究人員
  • 人形機器人與全身控制開發人員
  • 學習最佳控制的機器人學學生

相關技術

  • iLQR
  • Crocoddyl
  • ALTRO
  • Riccati 遞迴(Riccati Recursion)
  • 射擊法(Shooting Methods)

相關術語

  • Direct Collocation
  • Model Predictive Control
  • Trajectory Planning
  • Moving horizon estimation
  • Underactuated system
  • Hybrid system

相關專案

  • 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
  • python_simple_mppi: MPPI control derived and implemented in numpy, with four worked examples
  • mjbatch: Runs thousands of MuJoCo simulations in parallel on the CPU
  • Quadruped-PyMPC: Python MPC framework for quadruped locomotion with gradient and sampling control
  • STLCG: JAX toolbox for differentiable Signal Temporal Logic robustness

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