Open Source Robotics

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

Centroidal Dynamics

  • 又稱: centroidal model, centroidal momentum dynamics, centroidal momentum
  • 類別: Control › Locomotion control
  • 標籤: legged-locomotion, humanoids, dynamics, balance, model-predictive-control

足式或人形機器人的一種降階模型,描述接觸力如何改變其質心的運動與總角動量,而不追蹤每一個肢體。

定義

質心動力學(Centroidal dynamics)以多體機器人(例如人形機器人或四足機器人)繞質心的整體線動量與角動量,來描述它的運動。無論機器人有多少個關節,牛頓定律與歐拉定律都指出,只有外力,主要是重力以及腳或手上的接觸力,能夠改變這些量。線動量的變化率等於外力的總和,繞質心的角動量變化率則等於繞質心的外力矩總和。

由此得到一個只有六條方程式的模型,與關節數量無關,卻掌握了對平衡與移動最重要的部分:質心往哪裡去,以及機器人施加於周遭環境的力使身體如何旋轉。內部的關節運動只透過質心動量影響系統,而質心動量經由質心動量矩陣與關節速度相連,這個概念由 Orin 與 Goswami 提出。

規劃器會在不同的細節層級使用質心動力學。單一剛體模型把整台機器人視為一個慣量固定的物體,這對腿部較輕的四足機器人相當有效。完整質心模型保留關節構型以計算隨之變化的慣量,這對肢體沉重的人形機器人很重要。更簡化的是線性倒單擺模型,它忽略角動量並固定質心高度。

實務上,質心規劃器會選出符合摩擦錐與接觸時序的質心軌跡與接觸力,再由全身控制器計算實現它們的關節扭矩。

為何重要

質心動力學讓控制器不必求解每個關節的完整動力學,就能推論平衡、行走與跳躍,使人形機器人與四足機器人能夠進行即時規劃。它是以模型為基礎的足式移動中的標準中間層,介於簡單的倒單擺模型與完整的剛體動力學之間。

主要應用

  • 四足機器人移動的模型預測控制
  • 人形機器人的行走、奔跑與跳躍
  • 規劃攀爬與移動操作(loco-manipulation)等多接觸動作
  • 受到推擠後的平衡恢復

實際應用

在典型的以模型為基礎的移動控制架構中,模型預測控制器在單一剛體模型或質心模型上執行,於摩擦錐與接觸排程的限制下,在短時域內最佳化質心運動與地面反作用力。它的輸出交給以更高頻率執行的全身控制器,由後者求解一個針對關節扭矩的二次規劃,在遵守關節限制的同時追蹤所規劃的動量。Pinocchio 等函式庫可計算質心動量矩陣,OCS2 等最佳控制框架則內建足式機器人用的質心模型。團隊會檢查機器人實測的基座運動與所規劃的質心軌跡有多吻合,以驗證這個降階模型。

常見誤解

  • 質心動力學完全忽略肢體 — 完整質心模型透過與構型相關的慣量納入肢體運動;只有單一剛體近似才忽略它
  • 關節扭矩可以直接改變機器人的總動量 — 只有接觸力與重力等外力可以;關節是藉由改變這些接觸力來發揮作用
  • 它與倒單擺模型相同 — 倒單擺模型是更進一步的簡化,捨棄了角動量,且通常固定質心高度

誰需要了解

  • 足式移動與人形機器人控制工程師
  • 研究步行機器人模型預測控制的研究人員
  • 研究多接觸任務的運動規劃研究人員
  • 機器人動力學領域的研究生

相關技術

  • Pinocchio
  • OCS2
  • 模型預測控制(Model Predictive Control)
  • 全身控制(Whole-Body Control)
  • 線性倒單擺(Linear Inverted Pendulum)
  • 單一剛體模型(Single Rigid Body Model)

相關術語

  • Whole-Body Control
  • Locomotion
  • Humanoid Robot
  • Friction Cone

相關專案

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • MuJoCo MPC: DeepMind's interactive real-time model predictive control framework for MuJoCo
  • DART: C++ physics engine for articulated rigid body dynamics and robotics simulation
  • python_simple_mppi: MPPI control derived and implemented in numpy, with four worked examples
  • frax: JAX library for fast, differentiable robot kinematics, dynamics and inverse kinematics
  • mjbatch: Runs thousands of MuJoCo simulations in parallel on the CPU

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