Open Source Robotics

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

Divergent Component of Motion

  • 又稱: DCM, extrapolated center of mass, XCoM
  • 類別: Control › Locomotion control
  • 標籤: bipedal-locomotion, balance, humanoids, legged-robots, reduced-order-models

行走機器人質心動力學中不穩定的部分,它把位置與速度結合成一個點,必須控制這個點才能讓機器人保持平衡。

定義

發散運動分量(Divergent component of motion,DCM)是腿足機器人平衡控制中使用的一個量,它把質心(CoM)動力學中不穩定的部分分離出來。對線性倒單擺模型而言,它定義為 ξ = x + ẋ/ω,也就是質心位置加上其速度除以擺的自然頻率 ω = √(g/z),其中 z 是質心高度。

以 DCM 來表示動力學,可以把一個二階系統拆成兩個一階系統。質心會被吸引向 DCM,ẋ = −ω(x − ξ),這是穩定的:質心只是跟隨。DCM 則會被推離壓力中心,ξ̇ = ω(ξ − p),這是不穩定的。因此控制器只需要藉由適當地放置壓力中心或下一個落腳點來控制住 DCM,質心自然會跟上。

在平面線性倒單擺中,DCM 與 Pratt 及其同事所描述的瞬時捕獲點重合,也就是機器人為了停下來需要跨步到達的點;也與 Hof 在人體平衡研究中使用的外推質心重合。Englsberger、Ott 與 Albu-Schäffer 把 DCM 用於三維雙足步行控制,提出了虛擬排斥點與增強型質心力矩樞軸點,讓這個表述也能處理質心的垂直運動。

以 DCM 為基礎的控制器,通常會從最後一個落腳點往回規劃參考 DCM 軌跡,再利用對量測到的 DCM 誤差所做的回饋,來調整指令壓力中心。由於它們作用於單一個一階量,因此容易實作與調校。

為何重要

DCM 把平衡控制簡化為操控單一個點,讓步行控制器更簡單、更穩健。它也提供一種直觀的平衡檢驗:如果 DCM 離開了腳能夠到達或支撐的區域,機器人就必須跨步,否則就會跌倒。

主要應用

  • 人形機器人的即時步行控制
  • 推擠恢復與落腳點調整
  • 外骨骼與人體動作研究中的平衡評估
  • 多步行走的參考軌跡產生

實際應用

採用以 DCM 為基礎之步行的人形機器人團隊,會先規劃落腳點,再計算一條參考 DCM 軌跡,這條軌跡在每一步都通過支撐區域,並在最後的站立位置上方以靜止結束。在每個控制週期,控制器估測質心(CoM)的位置與速度,計算量測到的 DCM,並依 DCM 誤差的比例移動期望的壓力中心;全身控制器再把它轉換為關節扭矩。外骨骼與復健研究人員則用同一個量來判斷一個人離失去平衡有多近。

常見誤解

  • DCM 是機器人身上的一個實體點 — 它是結合質心(CoM)位置與速度計算出來的量,可能位於身體之外
  • 直接控制質心與控制 DCM 是同一回事 — DCM 分離出了不穩定的部分,因此作用於它的控制器能更直接地處理平衡
  • DCM 與捕獲點是互不相關的概念 — 在平面線性倒單擺中,瞬時捕獲點與 DCM 重合

誰需要了解

  • 人形機器人與雙足運動工程師
  • 外骨骼與復健機器人研究人員
  • 研究平衡與推擠恢復的控制研究人員

相關技術

  • 線性倒單擺(Linear Inverted Pendulum)
  • 捕獲點(Capture Point)
  • 零力矩點(Zero Moment Point,ZMP)
  • 全身控制(Whole-Body Control)
  • 模型預測控制(Model Predictive Control)

相關術語

  • Linear Inverted Pendulum
  • Gait
  • Humanoid Robot
  • Whole-Body Control

相關專案

  • Extreme Parkour with Legged Robots: RL system for legged robot parkour trained in under 20 hours
  • PACE Sim2Real: Systematic sim-to-real transfer via actuator dynamics identification
  • Zeroth Bot: Low-cost 3D-printed humanoid robot platform for sim-to-real reinforcement learning

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