Open Source Robotics

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

Direct Collocation

  • 又稱: collocation, direct transcription
  • 類別: Planning & manipulation › Trajectory optimisation
  • 標籤: trajectory-optimization, optimal-control, nonlinear-programming, motion-planning, dynamics

一種軌跡最佳化方法,把取樣時間點上的狀態與控制量當作變數,並把動力學當作相鄰樣本之間的約束來施加。

定義

直接配置法(Direct collocation)是把最佳控制問題(也就是找出隨時間變化的控制輸入,以最小代價把系統從起點帶到目標)轉換成標準求解器能處理的有限非線性規劃問題的方法。軌跡被切分成若干時間點,稱為節點(knot points)。每個節點上的狀態與控制輸入都成為決策變數,系統動力學則以等式約束的形式施加,這些約束稱為缺陷約束(defect constraints),要求相鄰的狀態與某個積分規則(例如梯形規則或 Hermite–Simpson 規則)一致。偽譜法是與之相關的一類方法,在整條軌跡上使用高階多項式。

這與射擊法(shooting)不同:在射擊法中,只有控制量是決策變數,狀態則是把動力學向前模擬而得出。配置法產生的問題較大,但非常稀疏,以 IPOPT 或 SNOPT 等稀疏非線性規劃求解器求解。它的優點是:對狀態的限制(例如關節範圍、與障礙物的間隙或接觸條件)很容易直接施加;求解器可以從物理上不一致的猜測開始,例如一條穿過障礙物的直線;而且在長時域與不穩定系統上,它的表現往往比單次射擊法好。

這種結構的一個結果是,中間的迭代解不必遵守動力學:求解器在初期可以自由違反缺陷約束,只在收斂時才滿足它們。把動力學或碰撞約束移到懲罰項中的表述方式,讓這一點變得明確,允許解先穿過不可行區域,再由懲罰把它推回來。這個想法已被機器人學習借用,例如先讓模擬中的機器人帶著懲罰穿過障礙物,之後再強制執行硬碰撞。和大多數軌跡最佳化一樣,直接配置法找到的是局部最佳解,因此結果取決於初始猜測。

為何重要

直接配置法是腿足機器人、無人機與機器手臂軌跡最佳化的主力方法之一,因為它能妥善處理約束,又容易從粗略的猜測開始。理解它也能說明機器人學習中一個實用的設計概念:先放寬物理約束,再逐步強制執行。

主要應用

  • 腿足機器人跳躍、翻轉與步態的軌跡最佳化
  • 機器手臂與無人機的時間最佳與能量最佳軌跡
  • 為移動機器人規劃搜尋與涵蓋軌跡
  • 為學習所得的策略與追蹤控制器產生參考運動
  • 太空船與飛行器的軌跡設計

實際應用

一位工程師在 Drake 或 CasADi 中為腿足機器人規劃一次跳躍,他建立的問題在整個跳躍過程中設有例如固定數量的節點,每個節點包含機器人的狀態與關節扭矩。缺陷約束透過機器人的動力學把相鄰節點連結起來,額外的約束讓扭矩保持在馬達限制內,並讓腳在支撐期間留在地面上,代價函數則懲罰控制量與最終誤差。他們用起跳與落地姿態之間的簡單內插來初始化,這違反了動力學,再讓 IPOPT 找出一條一致的軌跡。如果求解失敗,他們會增加節點、縮放變數或改善初始猜測。得到的軌跡接著由回授控制器追蹤,或當作學習策略的參考。

常見誤解

  • 求解器的每次迭代都是物理上有效的軌跡 — 動力學只在收斂時才被滿足;中間解可能違反它們
  • 直接配置法能找到全域最佳的軌跡 — 它在局部求解一個非凸問題,因此不同的初始猜測可能得到不同的答案
  • 配置法與射擊法求解的是不同的問題 — 它們是同一個最佳控制問題的兩種轉寫方式,只是數值行為不同

誰需要了解

  • 軌跡最佳化與運動規劃工程師
  • 腿足機器人與無人機控制開發者
  • 使用最佳化參考運動的機器人學習研究人員
  • 研讀最佳控制的機器人學學生

相關技術

  • Drake
  • CasADi
  • IPOPT
  • SNOPT
  • 多重射擊法(Multiple Shooting)
  • 偽譜法(Pseudospectral Methods)

相關術語

  • Trajectory Planning
  • Model Predictive Control
  • Differential Flatness
  • Motion Planning
  • Curriculum Learning
  • Ergodic Coverage

相關專案

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • mink: Python inverse kinematics library built on MuJoCo supporting 20+ robot platforms
  • Ruckig: Real-time jerk-constrained time-optimal trajectory generation for robots and machines

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