
人形機器人出現在運動會上這件事本身就很值得技術人停下來想一想。因為在競技場上所有包裝都會被撕掉跑得快說明運動控制和執行器確實有突破摔倒起火說明系統在極限工況下還扛不住。同一個賽場把這兩件事同時擺出來恰好是行業最真實的狀態——運動能力正在快速爬坡但工程可靠性還沒有跟上。這篇文章會從這場運動會切入把人形機器人跑步背后的控制原理、摔倒起火反映的安全問題、以及芯片算力底座這三件事講清楚。最后給出一套可以動手跑的代碼實驗幫助你理解 ZMP零力矩點、動態平衡和步態控制的基本邏輯。1. 這場運動會為什么值得技術人關注1.1 競技場是最誠實的壓力測試人形機器人過去更多出現在發布會舞臺上走兩步轉個身揮揮手現場掌聲雷動。但舞臺演示有一個天然問題環境是可控的地面是平的速度是保守的出錯了可以重錄。運動會則完全不同它把機器人放進一個需要連續完成動作、追求速度和耐力的場景里這本質上是把實驗室里最極端的測試條件搬到了公眾面前。這里引用一個關鍵技術判斷運動會上的“破紀錄”和“摔倒”是同一套系統的兩種結果它們共同暴露了人形機器人目前的能力邊界。能跑出破紀錄的速度說明步態規劃、軌跡優化、力矩控制這條技術鏈路已經打通了一個階段會摔倒起火說明在高速運動之下熱管理、結構強度、故障保護這些工程環節還存在明顯短板。對開發者來說這種壓力測試的價值不在于“誰贏了”而在于它把問題量化了速度是多少、穩定時間多長、摔倒發生在哪個動作、起火點在哪個部件。這些信息比任何發布會參數都更有工程參考意義。1.2 破紀錄和起火摔倒是一體兩面很多人會下意識把“破紀錄”和“起火摔倒”當成兩個獨立的新聞點前者證明進步后者說明風險。但從系統工程的角度看它們是同一個問題的兩個側面。跑步速度的提升意味著關節電機要在更短時間內輸出更大扭矩意味著電池要提供更高的放電功率意味著結構件要承受更大的沖擊載荷。這一切都會轉化成熱電機銅損發熱、驅動器功率器件發熱、電池內阻發熱。當性能壓到極限散熱和防護一旦跟不上摔倒后短路起火就是完全可預期的結果。所以這篇博文真正想表達的核心觀點是人形機器人正在從“能穩定行走”進入到“能高速運動”的新階段但高速運動帶來的不只是控制算法的挑戰更是整個機電系統在各種極限工況下的可靠性挑戰。2. 人形機器人跑步到底難在哪里2.1 動態平衡的本質質心、支撐多邊形與ZMP看到機器人快跑外行的第一反應是“這電機真猛”。內行會先看一個幾何指標質心投影是否始終落在支撐腳構成的凸包內。這里需要解釋一個核心概念——ZMP全稱 Zero Moment Point零力矩點。它描述的是地面對腳掌反作用力的等效作用點。只要 ZMP 落在支撐腳底面的范圍內腳掌就不會像蹺蹺板一樣翻起來機器人就能保持穩定。反過來一旦 ZMP 越出腳掌邊界機器人就會繞腳踝翻轉緊接著就是摔倒。可以用一個簡單的類比來理解人單腳站立時身體重心投影必須落在這只腳的腳掌面積內。如果重心明顯偏移到腳掌外側身體就會傾倒。ZMP 就是這套邏輯在機器人動力學中的嚴格數學表達。跑步時機器人大部分時間處于單腳支撐甚至騰空狀態支撐多邊形從雙腳矩形變成單腳的小范圍ZMP 的允許邊界被急劇壓縮。這就是為什么跑步比走路難得多——它要求控制器在每個瞬間都把 ZMP 精確約束在一個很小的區域內。2.2 步態規劃不是邁腿那么簡單很多人以為步態規劃就是“讓左腿和右腿交替邁開”實際上這是一個包含多層級決策的問題。首先是落腳點選擇下一步應該落在哪里這取決于當前速度、目標方向、地面情況甚至機器人身體的旋轉角速度。其次是質心軌跡規劃在每次邁步過程中身體質心應該沿什么路徑移動最后才是關節軌跡生成把質心和腳踝的期望軌跡轉換成髖、膝、踝三個關節的角度變化。這三個層級之間是強耦合的。落腳點選錯了質心軌跡必然受影響質心軌跡偏了關節力矩就會失配。傳統方法用離線規劃的 ZMP 軌跡來實現穩定行走但對跑步這種高速、短周期、強沖擊的運動離線方案已經不夠用了。2.3 跑步為什么比走路更困難跑步和走路有一個物理上的本質區別走路時至少有一只腳在地面支撐約束始終存在跑步時存在雙腳離地的騰空階段。騰空階段意味著機器人失去了地面反作用力提供的支撐和糾正能力。此時系統的狀態不再受腳部接觸約束而是一個自由飛行的多剛體系統。控制器必須在騰空階段就為落地的沖擊做好準備在落地瞬間用身體姿態和關節柔順性吸收巨大的沖擊動量。另外跑步的步頻遠高于走路。假設一個步頻為每秒 2.5 步的跑步動作每個步態周期只有 0.4 秒。控制器的計算延遲、關節執行器的帶寬響應都會成為瓶頸。如果控制周期是 1 kHz每一個控制周期只有 1 毫秒而在這 1 毫秒內系統要完成狀態估計、動力學計算、力矩分配并下發到幾十個關節。這種實時性要求對算法和芯片都是極大的考驗。3. 從破紀錄看運動控制算法的真實進步3.1 MPC 與 WBC當前主流的技術路線傳統 ZMP 方法的思路是“事先把每一步算好”規劃一整段質心軌跡和落腳點序列然后讓機器人嚴格跟蹤。這種方法在慢速行走中表現穩定但對跑步這類強擾動、快變化的場景不夠靈活。目前主流的人形機器人運動控制方案通常是把 MPC模型預測控制和 WBC全身動力學控制組合起來使用。MPC 解決的是“下一步怎么做”在每個控制周期基于當前狀態用簡化動力學模型滾動優化未來幾秒內的落腳點和質心軌跡。它不需要把完美方案一次性算完而是邊做邊調所以能應對模型誤差和外部擾動。WBC 解決的是“具體怎么發力”在 MPC 給出期望運動軌跡后WBC 把任務分解到機器人的所有關節考慮摩擦力、接觸約束、關節力矩限制計算出每個電機需要的最終目標力矩。這套組合的核心優勢是魯棒性。即使機器人被推了一把MPC 也會在下一個周期重新計算軌跡而不是死板地執行原來的計劃。破紀錄的跑步表現背后往往就是這類算法在支撐。3.2 Sim2Real從仿真到真機的遷移跑步算法能夠快速迭代還離不開仿真環境的助力。在 MuJoCo、Gazebo、Isaac Lab 這類物理仿真器中開發者可以先讓虛擬機器人在各種地形上跑幾百萬步等到算法足夠穩定再遷移到真機驗證。但仿真和現實之間存在“現實差距”摩擦系數、結構柔性、電機延遲、傳感器噪聲這些在仿真里很難完全一致。Sim2Real 的核心工作就是縮小這個差距。常見的做法包括領域隨機化在仿真中隨機改變質量、摩擦、負載等參數讓算法學會應對各種變化系統辨識用真機采集數據來校準仿真模型以及訓練時引入更保守的安全約束給真機留出更多裕量。從破紀錄這類表現來看Sim2Real 已經跑通了一個正向循環仿真中驗證穩定真機上測試性能再把真機數據反饋回仿真模型。這也是現在不少團隊能快速推進步態優化的原因。3.3 為什么傳統方法可能跑不快傳統 ZMP 離線規劃之所以難支撐跑步有兩個原因。第一跑步時的動力學非線性更強。騰空、落地沖擊、腳踝觸地瞬間的摩擦切換這些事件讓線性化的簡化模型誤差變大。第二離線規劃無法處理擾動。跑步過程中一個小小的地面突起就可能讓實際狀態偏離規劃軌跡而離線方案很難在毫秒級重新規劃整條路徑。所以可以這樣理解破紀錄的不是某一個“大力電機”而是一整套由預測控制、全身動力學分配、仿真遷移組成的算法體系。電機只是執行終端真正的決策發生在毫秒級的計算循環里。4. 從起火摔倒看工程安全的短板4.1 高動態運動帶來的熱失控風險機器人摔倒起火往往是多個因素疊加的結果。這里必須強調并不是機器人本身被設計成了“危險品”而是高動態運動大大提高了系統對熱和電的冗余要求。高速奔跑時關節電機長時間處于接近峰值的輸出狀態。電機銅損與電流的平方成正比驅動器功率器件在大電流下也會產生可觀的熱量。如果電池同時以大電流持續放電內部溫升會非常明顯。正常情況下這些熱量由散熱結構和熱管理策略帶走但在摔倒場景中散熱風道可能被堵住沖擊可能破壞線束絕緣局部短路就會制造高溫點最終觸發起火風險。從公開報道來看這類起火事件放在整個行業里并不算普遍但它足以提醒所有開發者當機器人開始追求速度時熱設計就不再是可選優化項而是和算法同等重要的系統組件。4.2 關節電機過載與電池熱管理具體到工程實現有兩個地方最需要提前做安全設計。第一個是關節電機和驅動器。電機保護不能只依賴溫度閾值還要監測電流曲線和轉矩指令的偏差。如果控制器指令轉矩 50 N·m但實際反饋電流長期異常偏高說明可能存在機械卡死或傳動效率下降。此時需要降級策略降低運動速度、逐步恢復或直接急停。第二個是電池。電池管理系統的職責不只是算電量更要監控每節電芯的溫度和電壓。當機器人摔倒、碰撞、或長時間堵轉導致電流過大時BMS 應能迅速切斷動力回路避免熱失控。對競賽或極限運動場景還應該額外關注電池倉的結構防護確保碰撞不會擠壓電池。4.3 急停機制和安全邊界在動態機器人領域安全設計的一個關鍵原則是永遠假設會自動摔倒并提前設計好摔倒后的保護動作。理想的機器人摔倒不應該是硬砸地面而是通過膝關節緩沖、軀干扭轉把沖擊分散摔倒后應自動切斷強電停止關節輸出避免砸地后電機還在繼續推擠。急停機制也不能只有一個按鈕需要包含物理急停、遠程急停、軟件看門狗三級冗余。從這場運動會同時出現破紀錄和起火摔倒的畫面來看競賽類機器人為了追求性能有時會在安全冗余上做取舍。但真實產品必須意識到性能和安全不是二選一而是需要在設計階段就把散熱、結構、電池防護、急停邏輯作為一個整體來考慮。5. 人形機器人芯片與算力底座5.1 運動控制鏈路上的實時算力需求跑步的過程看起來是機械運動背后其實是一條完整的計算鏈路首先是傳感器輸入包括 IMU、關節編碼器、足底力傳感器接著是狀態估計融合這些數據得到機器人當前的位置、速度、姿態角然后是 MPC 滾動優化求解未來一小段時間的最優落腳點和質心軌跡最后是 WBC 力矩分配把高層軌跡轉換成每個關節的期望力矩。這條鏈路要求控制頻率通常要達到 500 Hz 到 1 kHz 以上。也就是說每 1 到 2 毫秒所有環節都要算完一輪。如果某個環節延遲超時整個控制循環就會產生抖動反映到機器人的行動上就是“腿軟”或“僵硬”。對于跑步這類高動態運動算力需求的峰值往往出現在落地沖擊時刻狀態估計需要快速收斂MPC 需要重新求解WBC 需要立刻調整力矩。此時的算力峰值比勻速行走時高出數倍。5.2 從工控機到專用芯片早期人形機器人大多依賴工控機加高性能 GPU 來承擔計算任務。這種方案開發方便但功耗高、體積大、成本高很難走向量產。當行業開始思考“怎么樣讓機器人更輕、更省電、更適合移動場景”時專用芯片的機會就出現了。人形機器人芯片的核心挑戰不是在跑分榜上拿高分而是滿足嚴格的實時性要求。具體來說它需要在確定的時間內完成狀態估計和控制計算不能因為中斷或資源競爭導致延遲抖動。同時計算功耗必須控制在一個較小的散熱預算內否則芯片自身又成了新的熱源。運動控制這類任務大部分是矩陣運算和優化求解非常適合以 SoC 形式集成專用加速單元再搭配通用 CPU 核運行實時操作系統和上層邏輯。5.3 國內芯片廠商釋放的信號搜索材料里提到一個值得關注的熱詞全志科技人形機器人芯片。雖然這里不做具體產品參數的分析但這說明國內芯片廠商開始把目光投向人形機器人賽道了。從行業邏輯看這是一個相當明確的信號人形機器人正在從實驗室原型走向小批量驗證階段。當整機廠商開始評估“用哪顆低成本、低功耗芯片做量產控制板”時專用 SoC 的需求才會真實爆發。芯片廠商提前布局往往意味著他們判斷這個市場即將進入規模化的前夜。對技術人來說這意味著以后做人形機器人底層開發可能會越來越多地接觸到嵌入式實時系統和專用 SoC而不是像過去那樣“跑一個 Ubuntu 工控機就夠了”。理解運動控制算法同時理解芯片提供的實時計算能力會成為這個領域的復合型競爭力。6. 最小實驗用代碼理解 ZMP 與動態平衡6.1 用線性倒立擺模型描述行走要理解人形機器人為什么難控制完全可以從一個最簡單的模型開始線性倒立擺模型。在這個模型里機器人被簡化為一個位于質心處、高度固定的質點支撐點即 ZMP。當質心位置與 ZMP 不一致時系統會產生一個水平加速度方向取決于相對位置。數學形式如下a omega^2 * (x - zmp)其中omega sqrt(g / h)g 是重力加速度h 是質心高度。這個公式說明ZMP 就是那個決定“車身往哪邊倒”的支點。只要 ZMP 落在支撐腳有效范圍內系統還能糾正一旦超出范圍機器人就開始傾倒。下面的代碼用 Python 復現這個最小動力系統你可以直觀看到“初始狀態不同穩定結果完全不同”。6.2 Python 仿真代碼文件路徑lipm_demo.py。import numpy as np def lipm_acc(x, zmp, height0.8): 線性倒立擺模型加速度。 x: 質心水平位置 zmp: 零力矩點位置 height: 質心高度 omega np.sqrt(9.8 / height) return omega * omega * (x - zmp) def simulate_single_step(x0, v0, zmp, support_boundary0.15, dt0.01, total_time0.8): 模擬一步的質心運動。 如果 |x - zmp| 超過支撐邊界判定為失穩。 x, v x0, v0 steps int(total_time / dt) for i in range(steps): a lipm_acc(x, zmp) v a * dt x v * dt if abs(x - zmp) support_boundary: return x, v, False, i * dt return x, v, True, total_time if __name__ __main__: # 場景1質心與ZMP重合且速度為0理論上可以站穩 x_end, v_end, ok, t_fall simulate_single_step(0.0, 0.0, 0.0) print(f場景1: x_end{x_end:.3f}, v_end{v_end:.3f}, stable{ok}) # 場景2質心偏前且帶有前向速度ZMP沒有跟上很快失穩 x_end, v_end, ok, t_fall simulate_single_step(0.1, 0.8, 0.0) print(f場景2: x_end{x_end:.3f}, v_end{v_end:.3f}, stable{ok}, fall_time{t_fall:.3f}s)這段代碼的核心邏輯很簡單每一步先根據當前質心位置與 ZMP 的相對關系計算加速度然后用歐拉積分更新速度和位置。如果質心偏移超過了支撐邊界就判定失穩。場景1中質心、ZMP、速度全部為 0系統不產生加速度理論上可以一直站穩。場景2模擬的是“身體已經往前偏、速度還很快”的情況此時 ZMP 停留在原地質心會加速偏離很快超過支撐邊界對應實際場景中的摔倒。6.3 運行結果與驗證在終端運行python lipm_demo.py預期輸出會包含兩個場景的信息例如場景1: x_end0.000, v_end0.000, stableTrue 場景2: x_end0.xxx, v_end1.xxx, stableFalse, fall_time0.0xxs場景1 的穩定結果驗證了 LIPM 的基本性質當 ZMP 與質心重合并且沒有速度時系統可以保持靜止穩定。場景2 的失穩結果說明了跑步控制的本質矛盾質心速度越快ZMP 就越需要“主動前移”來接管質心否則就會失去平衡。實際機器人跑步時控制器正是通過不斷計算下一個落腳點把 ZMP 不斷向前移始終讓質心保持在可糾正的范圍內。如果你把support_boundary調大或者把zmp改成隨步態周期變化就能進一步觀察支撐范圍和控制動作對穩定性的影響。這個最小實驗雖然簡單但它指向了所有步態控制器的共同問題每一個瞬間ZMP 都必須被約束在可支撐區域內。7. 常見誤區與排查思路7.1 三個常見誤區誤區一跑得快說明穩定控制已經成熟。速度來自更強的電機和激進的步態參數但穩定性是另一套評價維度。一臺機器人可以在平整場地跑出漂亮成績卻在遇到小臺階、輕微推力、地面濕滑時立刻摔倒。速度和魯棒性需要分別測試。誤區二摔倒起火說明這家公司的技術路線失敗了。從工程角度看動態機器人出現摔倒并不罕見起火是更嚴重但同樣可定位的系統性問題。更值得關注的是故障保護有沒有按預期動作起火點是不是在可替換的模塊上事后有沒有形成整改閉環。把這些流程做好一次摔倒反而能推動產品成熟。誤區三只要把算法調好硬件弱一點也沒關系。跑步性能是軟硬件協同的結果。算法可以優化軌跡和力矩分配但電機峰值扭矩、散熱能力、結構剛度這些物理上限是算法無法突破的。開發初期就應當把熱設計、電池放電倍率納入整機指標而不是等算法完成后才發現硬件撐不住。7.2 排查清單問題現象可能原因排查方式解決建議跑步時頻繁向外摔倒ZMP 計算誤差或落腳點規劃滯后查看狀態估計輸出的質心位置是否跳變校準 IMU 與關節編碼器檢查 MPC 求解是否超時關節電機溫度快速升高電機持續過載或散熱不足檢查關節電流曲線和電機溫度曲線降低峰值扭矩限制增加散熱設計優化軌跡減少沖擊電池電壓跌落嚴重放電倍率超過電池能力檢查 BMS 記錄的放電電流更換高倍率電芯或設計更平滑的功率輸出策略落地瞬間產生強烈震動落地速度過大或沒有柔順控制查看足底力傳感器沖擊波形增加落地緩沖階段調整膝關節阻尼參數仿真里穩定但真機摔倒Sim2Real 差距對比真機與仿真的關節角度與力矩曲線引入領域隨機化用真機數據校準仿真模型7.3 控制參數調整的基本原則調整步態參數時最好遵循“一次只改一個變量”的原則。比如先調整步頻觀察質心軌跡和 ZMP 裕量再調整步長觀察落地沖擊電流。所有改動都要配合日志記錄方便回滾和對比。此外盡量不要直接用極值參數跑真機。先把參數在仿真中跑過足夠多的周期再用綁繩防護和低速度驗證逐步逼近目標性能。這一步看起來保守實際上能節省大量調試時間。8. 工程最佳實踐與安全建議8.1 測試分級從仿真到真機的四層防線第一層仿真驗證。在 MuJoCo 或 Gazebo 中用隨機化參數跑大量步態周期觀察是否有發散趨勢。這一步可以過濾掉大部分明顯不合理的參數組合。第二層半物理驗證。把控制算法部署到真實控制板但輸出端接仿真模型檢驗實時性和接口邏輯是否正常。這一步可以提前發現芯片算力不足、通信延遲、控制周期抖動等問題。第三層綁繩測試。真機在保護繩和緩沖裝置的約束下運行控制程序保持不變重點驗證真實電機的響應和傳感器數據是否與仿真一致。第四層逐步開放。從低速小步幅開始逐步提高速度和復雜度每次都配備緊急停機人員和滅火設備。這個過程沒有捷徑越接近量產越要謹慎。8.2 安全設計清單人形機器人不是普通家電本身具備一定的運動能量運行時必須建立完整的安全邊界。以下是建議的設計清單物理急停按鈕至少兩個獨立位置能夠直接切斷動力回路。遠程急停通道無線急停和控制看門狗聯動通信中斷時自動停機。電流與溫度保護每個關節驅動器和電池包都要有獨立的保護閾值觸發后分級降級而不是瞬間斷電。碰撞檢測通過力矩反饋或加速度判斷碰撞觸發后立即進入安全姿態。摔倒保護檢測到跌倒后主動緩沖落地避免硬砸和電池擠壓。日志記錄關節電流、電機溫度、電池電壓、IMU 數據必須持續記錄用于事后分析。8.3 數據日志比參數更重要很多開發者在調參時只關心“參數是多少”卻忽略了“上一次摔倒時發生了什么”。實際上一套完整的數據記錄系統價值遠高于任何一個調參技巧。建議至少記錄這些維度關節編碼器位置和速度、關節電流和溫度、IMU 三軸加速度和角速度、足底力傳感器數據、MPC 求解時間、WBC 下發力矩指令。當摔倒發生時這些數據能幫助你快速定位是狀態估計問題、控制求解問題還是硬件執行問題。同時日志要帶統一時間戳保證不同傳感器數據可以對齊。如果時間戳不同步事后分析會變得非常困難。9. 總結這場世界人形機器人運動會給行業帶來的最大價值不是某個速度紀錄本身而是把真實的工程問題擺到了所有人面前高動態運動已經把控制算法推到了一個新的高度但同時熱管理、電池安全、故障保護這些基礎工程能力也必須跟上來。對開發者來說如果只從這場比賽帶走一個判斷那就是人形機器人已經進入了“運動性能突破”和“工程可靠性補課”并行的階段。速度紀錄早晚會被刷新真正決定誰能走得更遠的是長期運行中能不能不摔倒、不起火、不出安全事故。如果這篇文章恰好對你有用建議先收藏備用。你可以從文中的 LIPM 最小仿真開始跑一遍把 ZMP 和動態平衡的直覺建立起來再去接觸 MPC、WBC 和 Sim2Real 這些更復雜的工具鏈。會跑代碼之后再上真機每一步都記得留日志、留回滾點這才是人形機器人技術最穩妥的成長路徑。