robot-notes — 機器人知識筆記 GitHub ↗
本章與本頁目次

形態

robot-notes /形態/步態與致動

步態與致動:為什麼工業手臂那套馬達裝上去會壞

上一篇推到「基座浮起來,唯一能影響它的通道是接觸,而接觸是斷續的」。這篇接著問兩個工程問題:接觸的時序怎麼安排(步態),以及產生接觸力的硬體該怎麼選(致動器)。

這兩題有一個共同的答案來源——腳著地那一瞬間的衝擊。步態決定衝擊多久來一次、多重;致動器決定衝擊來的時候誰承受。


1. Duty factor:一個數字把步態切成兩類

描述步態不必記一堆名字,先記一個量:duty factor——單一隻腳在一個步態週期裡處於觸地(stance)的時間比例。另一個要用到的詞是相位:某隻腳的觸地區間從週期的哪個位置開始,用 0 到 1 表示(相位 0.25 就是「晚四分之一個週期」)。

還有一個名詞先講定:飛行相(也叫騰空相)指的是四隻腳同時離地的那段時間。下面「全騰空」講的是同一件事。

慢走 duty factor 0.75、四腳平均錯開,任一時刻恰好三腳著地;對角小跑 0.4、對角配對成兩組,低於該結構 0.5 的門檻因而出現全騰空的飛行相

先看三個具體的步態,建立圖像:

門檻:一條規則就夠

這三個數字不是背下來的,它們是同一條規則的三個代入值。

把「同時起落的腳」(相位相同)算成一組。n 組等間隔錯開、duty factor 為 d 時,任一時刻著地的組數只會是 ⌊n·d⌋⌈n·d⌉。於是:

要恆有至少 k 組著地  ⟺  d ≥ k / n

代進去:

步態 n(組數) 要求 門檻 實際 d
walk 4(四腳各自錯開) 恆三腳著地 → k=3 3/4 = 0.75 ≈ 0.75
trot 2(對角配對) 不出現飛行相 → k=1 1/2 = 0.5 ≈ 0.4 → 不滿足,必有飛行相
雙足 2 不出現飛行相 → k=1 1/2 = 0.5 走路 > 0.5,跑步 < 0.5

飛行相的條件就是 k=1 那個特例:d < 1/n 必有飛行相。四腳各自錯開時是 0.25,配成兩組時才是 0.5。

兩個容易寫錯的地方,我自己都踩過。

第一,「等間隔」這個條件不能省。相位排成 0 / 0.1 / 0.2 / 0.3、d = 0.3 的話,d > 1/4 卻仍有飛行相——四段觸地區間全擠在前半個週期,後面整段空著。k/n 講的是門檻,前提是相位攤平。

第二,「至少」不能寫成「恆為」d = 0.75 時四腳確實恆為 3,但那是因為 4 × 0.75 剛好是整數;d = 0.9⌊3.6⌋ = 3⌈3.6⌉ = 4,會在 3 腳與 4 腳之間切換。只有落在門檻那一點上才「恆為」。

那「duty factor 0.5 是走與跑的分界」呢?

0.5 不是統計說法,它也是 k/n——只是代進去的 n 是 2,而且套用的對象是一對腳,不是整隻動物。

Hildebrand 研究的是對稱步態(symmetrical gait),而「對稱」的定義就是:同一對的左右腳恰好差半個週期。所以前對自成一個 n=2、k=1 的系統,後對也是。d ≥ 0.5 保證每一對隨時都有一隻腳著地,整隻動物當然不可能全身騰空。

eLife 的一篇綜述把這件事講得很直接:“walking gaits require a duty factor above 0.5, meaning that at least one foot of a pair is on the ground at all times.”

所以 d ≥ 0.5 ⟹ 沒有騰空相 是成立的幾何定理。問題出在反過來讀。 d < 0.5 保證有騰空相——前對的空檔可以被後對填掉,只要兩對之間的相位差安排得當。

amble(溜蹄)就是這樣的步態。 Schmitt et al. 2006 給的定義是:對稱步態,至少一肢的 duty factor 低於 50%,且 diagonality(對角相位差)落在 5–45% 或 55–95% 之間,使得整個步幅中不出現全身騰空相。那兩個區間是刻意避開 trot 的 50% 與 pace 的 0%——換句話說,amble 的存在條件就是「不要把腳綁成兩組」。靈長類、大象與部分馬匹(冰島馬的 tölt)都用它。

回頭看上面那張圖,兩個數字各自有出處:walk 的 0.75 是 n=4, k=3,trot 的 0.4 落在 n=2, k=1 的 0.5 之下。不是巧合——這兩個步態各自坐在自己結構的門檻附近。

這把上一篇講的「支撐多邊形退化到消失」變成一個設計階段就算得出來的參數:選了相位結構與 duty factor,就等於選了會不會有飛行相、以及支撐多邊形長什麼樣。

這套用 duty factor 與落地時序描述步態的框架,來自 Hildebrand 1965 年對馬匹步態的分析,不是機器人學發明的。畫成「每隻腳的觸地區間對步態週期的分布圖」也是那時就定下來的表示法。

要留意的邊界:walk / trot / pace / bound / gallop 的描述性定義(誰跟誰一組、順序如何)有共識,但把它們寫成「相位差等於某個確切數值」的嚴格數學定義,可查到的來源多半是動物學角度而非機器人學的統一規範。要寫進控制器規格時,以你採用的那份教材或論文的定義為準。


2. 衝擊:腳著地那一瞬間發生什麼

輪子從來不「著地」——它一直在地上。腳每一步都要重新撞上去一次。

這個撞擊在力學上是一個近乎瞬間的動量變化:腳的速度從向下某個值變成零。時間越短、力越大。而這股力會沿著腿往上傳,經過每一個關節,傳進減速機的齒輪。

於是致動器要同時滿足三件在傳統工業手臂上不必同時滿足的事:

  1. 承受重複衝擊——不是偶爾撞一下,是每秒好幾次,跑一天幾萬次。
  2. 能做力控——上一篇講的接觸偵測要靠關節力矩反推;而控制本身也是在控接觸力,不是控位置(地面高低不知道,控位置會不是踩空就是硬頂)。
  3. 反應要快——腳從偵測到觸地到調整出力,只有幾毫秒。

3. QDD:為什麼要把減速比降下來

高減速比諧波減速機與低減速比 QDD 在反射慣量、可反向驅動、衝擊路徑、力控方式與頻寬上的對照

工業手臂用高減速比傳動,常見的諧波減速機(harmonic drive,又稱諧波齒輪)在單一個扁平級數裡就能做到 1:50 以上、而且幾乎沒有齒隙——結構是三件:馬達帶動一個橢圓形的波發生器,把套在外面的薄壁柔輪撐成橢圓,柔輪就在長軸兩端跟外圈的剛輪嚙合;柔輪比剛輪少兩齒,波發生器轉一圈、柔輪只倒退兩齒的角度,減速比就是這樣來的——不是靠一排齒輪堆出來的。

這個選擇的理由很正當:馬達轉得快、扭矩小,靠減速比換成慢而有力的輸出;而且高減速比讓輸出端很難反過來推動馬達——手臂停在那裡不會被外力推動,省電又穩。

把同一套裝到腿上,那些優點逐一變成缺點:

為什麼反射慣量是「平方」而不是「倍數」? 減速比 N 表示馬達轉子轉得比輸出端快 N 倍。轉子的動能是 ½ J_m ω_m² = ½ J_m (N ω_out)² = ½ (N² J_m) ω_out²——從輸出端看回去,這顆轉子表現得就像一個 N² J_m 的慣量。兩個 N 來自兩件不同的事,從力矩路徑看更清楚:輸出端加速 α_out 時馬達要加速 N·α_out(第一個 N,運動學),而馬達端的力矩傳到輸出端會再被放大 N 倍(第二個 N,力矩比)。1:100 的減速機會讓一顆很輕的轉子在輸出端變得像一萬倍重,腳撞地時要瞬間改變的就是這個等效慣量。(這個推導預設傳動是剛性、無質量、無損的;真實齒輪箱還要加上自身的慣量與損耗。)

  高減速比(1:50+) QDD(約 1:3 ~ 1:10)
反射慣量(馬達轉子從輸出端看過去的等效慣量) 被減速比平方放大,輸出端感覺到的等效慣量非常大
可反向驅動 幾乎不能。外力推不動輸出端 可以。外力能推動馬達轉
衝擊怎麼處理 全部由齒輪硬吃。長期是磨損與失效來源 大部分被馬達的轉動吸收掉
力控怎麼做 摩擦與齒隙(backlash,齒與齒之間的空隙)讓「用電流推力矩」不準,基本上得外加力矩感測器 用馬達電流就能推得關節力矩,不必外加感測器
控制頻寬(控制器能反應多快)

QDD(quasi-direct drive,準直驅) 就是走中間路線:用高扭矩密度的馬達搭配很低的減速比(約 1:3 到 1:10),介於直驅(1:1)與工業減速機之間。

上表五格看起來是五個獨立的缺點,其實是兩個彼此獨立的性質展開來的,分清楚很要緊:

底層性質 來自哪裡 展開成表上哪幾格
反射慣量 N²J_m 純運動學,只跟減速比有關 撞擊瞬間輸出端要推動的等效質量很大 → 衝擊只能由齒輪硬吃;頻寬也被它壓低
摩擦與反向效率 傳動形式決定,跟減速比沒有必然關係 不可反向驅動;摩擦與齒隙讓「用電流推力矩」不準

「不可反向驅動」不是高反射慣量造成的。 一個理想無摩擦的齒輪箱,不管減速比多高都推得動,只是加速時感覺很重。真正讓輸出端推不動馬達的是摩擦——用反向效率表達是 η_rev ≈ 2 − 1/η_fwd,正向效率掉到 50% 以下就自鎖。

而且「高減速比一定摩擦大」也不成立:高效率的行星減速機在高減速比下仍然推得動,cable / capstan 傳動存在的理由正是要在有減速比的同時保住反驅性。諧波減速機把兩個性質同時拉到不利的一邊,是那個傳動形式的性質,不是減速比的定律。

理解這件事的實益是:手臂要的「斷電也不會被推動」買的是第二個性質,而腿被害慘的是兩個都吃到

最關鍵的那一格是「可反向驅動」。它一次解決兩件事:

這是一個典型的柵欄:看到四足用 1:6 這種「低得奇怪」的減速比,直覺會想「換高一點不是更有力嗎」。它擋住的是衝擊與力控——把減速比拉高,腿會更有力,但齒輪箱會被撞壞,而且再也做不了不加感測器的力控。

串聯彈性致動器(SEA) 是另一條路:在輸出端加一根實體彈簧,用彈簧形變量測力(所以力控很準),彈簧也吸收衝擊。代價是犧牲頻寬(彈簧本身是個低通)與機構複雜度。QDD 與 SEA 是同一個問題的兩種答案:衝擊要被誰吸收——馬達的轉動,還是一根彈簧。


4. 為什麼強化學習在足式上主導了

上一篇講過根本原因:接觸切換讓系統變成混合系統,沒有一組固定增益能同時對 16 種動力學都好。傳統做法是靠簡化模型(把整台機器當成一個倒單擺)加上線上最佳化,可行但每一層簡化都是誤差來源。

強化學習繞過了「先建模再控制」這條路:直接在模擬裡跑幾十億步,學一個從觀測到關節指令的函數。這條線這幾年的關鍵成果都在同一個平台(ANYmal)上做出來:

論文 年份 / 出處 主要貢獻
Hwangbo et al., Learning Agile and Dynamic Motor Skills for Legged Robots Science Robotics 4(26), 2019 用真實數據學一個致動器網路去補模擬與真實馬達的落差,再做 RL
Lee et al., Learning Quadrupedal Locomotion over Challenging Terrain Science Robotics 5(47), 2020 teacher-student 特權學習:先用只有模擬才知道的資訊(摩擦係數、地形真值)訓練 teacher,再讓只吃本體感覺的 student 去模仿它
Rudin et al., Learning to Walk in Minutes Using Massively Parallel Deep RL CoRL 2021(PMLR 164) 大規模 GPU 平行模擬,把訓練時間壓到分鐘等級
Miki et al., Learning Robust Perceptive Locomotion for Quadrupedal Robots in the Wild Science Robotics 7(62), 2022 在 teacher-student 之上加入外部感知(深度相機、光達),推到戶外崎嶇地形

不要把這四篇說成同一套技術路線。 teacher-student 特權學習這條主軸,可查證的是 Lee 2020 → Miki 2022 這一支;Hwangbo 2019 的核心是致動器網路,Rudin 2021 的核心是訓練基礎設施本身,兩者是否也採用同一套框架,查不到明確依據。

這裡跟本筆記的 sim-to-real 完全接得起來:特權學習就是那篇 §2.6 提到的「特權資訊 + 蒸餾」,致動器網路則是「system identification」的一個具體形式——足式把那些通用手段推到了極致,因為它別無選擇

模擬環境方面,Isaac Lab 官方文件列出的足式任務包含 Isaac-Velocity-Flat-Anymal-C-v0 / Isaac-Velocity-Rough-Anymal-D-v0 / Isaac-Velocity-Rough-Unitree-Go2-v0 / Isaac-Velocity-Flat-Spot-v0 這類命名,平坦與崎嶇地形各一組,雙足/人形則有 Cassie、H1、G1、Digit。


5. 平台現況

平台 自由度 / 規格 狀態與 ROS 2
Unitree Go2 / B2 / A2 每腿 3 個共 12 自由度。B2 含電 60 kg、最高 6 m/s、行走酬載 40 kg;A2(2025-08 發表)空機 37 kg、最高 5 m/s、行走酬載 25 kg 在售。官方 unitreerobotics/unitree_ros2(Cyclone DDS)
Boston Dynamics Spot 12 自由度,重 33.8 kg、最高 1.6 m/s、酬載 14 kg、IP54、續航約 90 分。選配手臂再加 6 軸 在售(改為企業詢價)。bdaiinstitute/spot_ros2
ANYbotics ANYmal 12 個 ANYdrive 彈性致動器。ANYmal C 酬載 10 kg、IP67;新型號 ANYmal X 有 ATEX/IECEx 防爆認證 在售。官方只開源簡化 URDF,完整控制堆疊是 proprietary,沒有官方 ROS 2 完整套件
DEEP Robotics X30 / Lite3 X30 含電 56 kg、IP67、−20 ~ 55°C、最高 ≥4 m/s、爬坡 ≤45° 在售。官方 GitHub DeepRoboticsLab 提供 SDK
MIT Mini Cheetah 12 自由度、約 9 kg,可反向驅動模組化致動器,開源硬體 研究平台,從未商品化。它的致動器設計是 QDD 這條線的代表

Spot 的公司沿革值得記一筆:MIT 衍生新創(1992)→ Google(2013)→ SoftBank(2017)→ 現代汽車集團(2021 起)。這類平台的軟體堆疊高度綁原廠,選型時公司狀態跟規格一樣是硬指標——移動操作那篇的 Fetch 就是活生生的例子。

ROS 2 生態要注意一個常見誤解:CHAMP(chvmp/champ)是 ROS 1 的,它的 ROS 2 版本目前都是社群另外改寫包裝,不是官方原生支援。


6. 安全標準:這一塊目前是空的

這是查證後最值得寫下來的一件事。

目前沒有任何一部已發布的 ISO 安全標準,是專門給足式或主動平衡機器人的。 而且既有的三條線都明確把它排除在外:

標準 為什麼不適用
ISO 3691-4(無人工業車輛) 明訂不適用於「具主動控制穩定性」的機器人
ISO 10218(工業機器人手臂) 不處理移動相關的風險(見移動操作那篇的同一道空隙)
ISO 13482(個人照護機器人) 限定非工業應用場景

填補這個空白的是制定中的 ISO/CD 25785-1,標題是「Robotics — Safety requirements for dynamically stable industrial mobile robots (legged, wheeled, or other forms of locomotion) — Part 1: Robots」。它的範疇明訂涵蓋「需要主動控制才能維持平衡、斷電即可能失穩」的工業移動機器人——這句話正好是足式的定義。

截至查證時它仍在草案階段。 可查到的時程說法是「預計 2026–2027 年發布」,沒有確定日期。

實務上的意思很直接:現在要把四足導入工業場域,沒有一張現成的標準可以照著過。 只能做自己的風險評估,並且盯著 25785-1 的進度。這跟移動操作那道空隙是同一類問題的兩個版本——法規追不上形態的演化,而且追的方式是「新開一個專案」而不是「擴充舊標準」。


7. 來源

待查證:ISO/CD 25785-1 的確切發布時程(只有「2026–2027」這種區間說法);walk / trot / bound 在機器人學文獻裡的嚴格相位差定義(現有共識偏描述性);Unitree Go2 的 12 自由度來自多個第三方來源一致收斂,未能直接由官方規格頁確認。

另外記一個容易搞混的歸屬:Kenneally 等人那篇 Design Principles for a Family of Direct-Drive Legged Robots(RA-L 2016)談的是賓州大學的 Minitaur,不是 MIT Cheetah 系列——兩者都屬「低減速比足式致動」這個大主題,但不是同一個團隊或平台。