人形機器人通用控制器系列,繼專訪Xue Bin(Jason) Peng:探索人形機器人全身運控的通用控制器和對話李鍾毓:如何構建足式機器人的“小腦”兩篇採訪之後,這期文章,我邀請到了人形機器人通用控制器領域家喻戶曉的PHC這篇論文的作者羅正宜博士。
羅正宜(Zhengyi Luo)博士畢業於CMU,他的導師是 Kris Kitani 教授。在此之前,他於2019年在賓夕法尼亞大學獲得了本科學位,並曾在 Kostas Daniilidis 教授的指導下開展研究工作。羅正宜博士的的研究興趣主要集中在視覺、學習與機器人技術的交叉領域。主要研究方向包括人體姿態估計、人-物互動建模、人類運動建模等。
這期節目的部落格可以點選下方連結進入小宇宙,或者蘋果podcast搜尋“ReSpark”欄目來收聽。

學術經歷
1. Character Animation階段
2. UHC階段
3. PHC階段
4. PHC2Real階段
關於PHC
5. PHC簡介
6. PHC乘法控制策略介紹
7. 怎麼從AMASS動捕資料中學習
8. PHC後續之PHC 2 Real
9. PHC後續工作之全身運控
10. PHC用到的強化學習方法是什麼
關於通用控制器
11. 怎麼理解“通用控制器”
12. 通用控制器的難點在哪裡
13. 通用控制器有哪些典型工作
學術經歷
1. Character Animation階段
在本科期間,我在賓夕法尼亞大學做了很多和 AR/VR 相關的專案,從 2016 年開始就已經在使用這類技術。在 2018 到 2019 年間,我在蘋果的 Vision Pro 團隊實習,我當時認為 AR/VR 的進一步發展需要更強的智慧系統。我設想的是,當我戴著 AR 眼鏡看到某個物體時,它可以立即告訴我這個物體的用途,我覺得這是一件非常有意義的事情。
在蘋果 Vision Pro 實習期間,我的工作是基於物理引擎進行角色動畫(character animation)的開發。我們小組當時的目標是為 AR 環境設計角色動作,希望在增強現實場景中,一個虛擬的人形機器人可以自由活動。我所做的專案是基於Jason Peng的 DeepMimic 和 MCP(Multiplicative Control)系統。
之後,我進入CMU讀機器人碩士。切入點仍是計算機視覺,因此我做了一些與human video pose estimation相關的工作。在這個過程中,我逐漸意識到,我希望把蘋果實習時做的內容與當前的研究結合起來,也就是將 pose estimation 與 embodied AI 在模擬環境中進行融合。
我注意到,在做 pose estimation 時,如果沒有加上約束,系統生成的動作會顯得不自然。所以我開始引入物理模擬,透過新增物理量與限制,讓動作表現得更加逼真、自然。這個方向在當時被稱為 physical grounding。與此同時,我的師兄袁野也在進行相關研究。在他的指導下,我開始嘗試將計算機視覺和虛擬引擎結合起來,開發基於物理約束的角色動作系統。
2. UHC階段
在 2019 年到 2020 年間,我開始做 UHC 專案。受到Jason Peng相關工作的啟發,我希望構建一個控制器,能夠執行任意的 pose sequence。這對控制器的泛化能力要求極高,因此我希望這個控制器能完成整個 process。於是我提出並開發了 UHC 專案。某種意義上,UHC 實現了這個目標,但同時也沒有完全做到。

UHC
原因在於 UHC 使用了一種叫 residual force control 的機制(由我的學長袁野開發)。這種方法可以類比成“提線木偶”:在機器人的每一個關節上施加一股額外的力,讓它能夠保持站立,相當於用不可見的線將機器人懸吊。這種設定簡化了控制器的學習任務,甚至可以說讓機器人“飛起來”。它使用了一種輔助力的形式,降低了學習難度。
在這個基礎上,我繼續進行了兩篇相關的研究工作。一篇是 UIC(Kinematic Controller),之後又發表了一篇在 NeurIPS 2022 的論文 Embodied Scene-aware Human Pose Estimation,分別涉及第一人稱和第三人稱的人體姿態估計。這兩篇研究都基於 MuJoCo 模擬器,執行在 CPU 上。
2022 年,我進入英偉達實習,這是我博士生涯的第二個轉折點。當時,Jason Peng也在英偉達,於是我開始直接與他合作,並在 Jason 老師的指導下進行研究。在這期間,我完成了一篇論文 Trace and Pace,這是一個在 Isaac Gym 上開發的人形機器人控制器,能夠應對各種地形,包括階梯和不規則地形。
Trace and Pace
這是一個重要的節點,因為 Isaac Gym 的並行模擬功能將原來需要一週時間的訓練任務壓縮到一天以內,大大提升了實驗效率。這讓我可以快速測試各種控制器。同時,我也從 Jason 那裡獲得了關於控制器訓練的重要 insight。
3. PHC階段
2022 年秋季,我以visiting researcher的身份進入Meta。在 Meta,我參與了 Reality Lab 的專案,主要研究 character animation(也就是人形形態) 和 avatar 系統。他們的目標是開發 AR/VR 應用中的虛擬角色,並在物理引擎中完成動作生成。當時我決定重新嘗試推進 UHC 專案,並嘗試移除 residual force,也就是把“柺杖”去掉。我開始使用 Isaac Gym 快速訓練系統,同時利用 AMASS 資料集進行訓練。
2023 年 3 月,我完成了一個控制器(也就是PHC),它可以學習並重現 AMASS 資料集中的所有動作。我意識到,一旦我能透過 motion tracking 任務控制一個機器人執行這些動作,我就具備了完成更復雜任務的 motor skill 基礎。在此基礎上,我開始設想,如果我想讓這個機器人以某種速度奔跑、穿越複雜地形、或者抓取物體,這些任務可以透過已有的運動技能組合實現。我們將這些稱為 motor primitives 或者 motor control。
PHC
接下來,我思考如何複用這些已經掌握的人類動作,這促使我開始了 PHC 專案的研究。該專案的目標是構建一個泛化的 motion representation,從今天的角度看,也可以稱為 behavior foundation model。核心是構建一個 latent space,用於複用已學習的運動技能。
這個概念在運動控制領域其實並不新。人類並不是每次面對任務時都要重新學習如何控制身體。我們的大腦中預存了一些基礎 motor skills,部分甚至是先天具備的。我希望機器人也能具備類似的能力:透過預訓練獲得一組基本動作能力,然後在新任務中呼叫這些技能完成目標,這種方式稱為 motor skill reuse,也常用於 character animation。
4. PHC2Real階段
到了 2022-2023 年,也就是第三個轉折點,Elon Musk 宣佈要開發人形機器人。這讓人形機器人領域突然變得非常熱門。我看到這則新聞時想到,自己也在做人形機器人,只不過都在虛擬世界中。我原本設想的路線是繼續在虛擬世界中研究幾年,把各種任務能力做到極致,比如賦予機器人視覺系統、任務理解能力,讓它能在虛擬空間中搬運物品、整理場景等。
我認為在虛擬世界中構建 embodied AI 系統是非常有價值的研究方向。因為在物理引擎中,行為是受物理規律約束的,因此具有很強的研究意義。我當時預計,這一系列研究會逐步反哺 AR/VR、計算機視覺等方向,之後再進入機器人領域。但Optimus的釋出打亂了這個節奏。同年,伯克利團隊發表了《Learning Humanoid Locomotion with Transformers》一文,我開始意識到模擬到現實的通道已經初步具備條件。
2023 年底,我們已經可以在市面上買到人形機器人,所以和同在CMU的PhD何泰然開始了PHC在真機上的嘗試(H2O)。但從某種角度說,當時我們的目標跨度可能過大。PHC to Real路徑走得有些激進,因此在ASAP專案中我們選擇了“退一步”,先做DeepMimic to Real。我認為,現在業界大多數人也在探索 DeepMimic 到 PHC 的遷移路徑,我自己也在進行這方面的工作。
OmniH2O
ASAP
在現實人形機器人平臺上實現通用控制仍然非常困難。我一直認為,現實中的方法大約落後 animation 領域三到四年。儘管現在已經有了許多技術積累,但模擬到現實仍存在差距,不過進展正在加速。
關於PHC
5. PHC簡介
關於我做的 PHC(Perpetual Human Controller)這個工作,其實我剛剛也提到了一些。它最初的出發點,更多是從 character animation(角色動畫)這個角度來思考的——也就是“角色控制”這一問題。
在我開始做 PHC 的時候,我腦海中其實已經有一個理想的 demo 畫面:給我一臺相機,鏡頭對著我,當我做出一個動作時,螢幕上的虛擬人形就同步做出相同的動作。或者說,我要是控制一個機器人,它也應該在我做什麼時跟著做什麼。這種設想,放在今天(比如2025年)可以被稱作是一種“遙操作”或“映象控制”,但在我開始這個專案時,業界還沒有一個現成的 controller 能夠做到這一點,尤其是在即時性和動作泛化能力上。
要實現這樣的目標,控制器必須具備非常高的泛化能力。因為我們面對的是一個 camera-based 的輸入——不是傳統的 motion capture studio,也不是多視角的高精度系統,而是隻有一臺單目相機去做動作識別。這意味著人的姿態估計會非常 noisy,而且輸入的資料沒有嚴格的約束(constraint),這就要求控制器不僅要能處理各類動作,還要能對噪聲輸入有一定魯棒性。
PHC 的設計目標之一,就是讓人形機器人在面對這些“非理想輸入”時,依然能夠正確執行動作。比如說,即使它因為輸入太噪、姿態估計失敗而跌倒了,它也應該能自己重新站起來——這也是我取名為Perpetual Human Controller 的原因之一:它不僅要“持續”地控制動作,還要具備一定的自我恢復能力。
這個設想其實源於一個更早的需求。當時已經有一些類似 DeepMimic 的系統,可以從參考動作中學習一段 motion,但每段動作都需要重新訓練一個模型。而我的目標是做一個統一的控制器,不管你輸入什麼動作序列,它都能執行出來,而不是每次重新訓練。因為我自己也做人體姿態估計,所以我特別希望我的系統能做到:任何姿態估計結果進來,機器人就能立刻做出相應的動作。
為此,我採用了當時最大規模的高質量動作資料集——AMASS,它是由 MPI 的 Michael Black 教授團隊構建的,彙集了多個 motion capture 資料集,總共約 1 萬條多樣化的人體動作序列。我從 2020 年就開始嘗試用這個資料集訓練控制器,最開始是在 MuJoCo 這樣的模擬器裡做,斷斷續續做了兩三年都沒有完整做出來。
轉機發生在 2022 年暑假,我在英偉達實習期間接觸到了他們開發的 Isaac Gym,它是一個基於 GPU 的大規模並行模擬平臺。在那之後,我的強化學習訓練效率大幅提升,速度比在 CPU 上跑快了非常多。這重新點燃了我繼續完成 PHC 的想法。
於是到了 2023 年,我重新著手這個專案,正式制定了兩個核心目標:第一,構建一個即時 demo,用攝像頭捕捉人類動作,機器人可以即時跟隨執行,形成完整的“映象控制”。第二,用一個統一控制器,學習 AMASS 資料集中所有動作序列,實現覆蓋 97% 以上人類動作的控制能力。
這兩個目標是相輔相成的。因為如果我的控制器能很好地學會 AMASS 中的所有動作,那麼將來透過單目相機捕捉到的人體姿態——哪怕存在噪聲——也更有可能是 controller 已經“見過”的運動模式。這樣一來,就能在實際使用中大大提升動作還原能力和穩定性。
所以,PHC 專案最終的願景就是:打造一個具備強泛化能力、容錯能力,並能覆蓋人類大多數自然動作的人形機器人控制系統。
6. PHC乘法控制策略介紹
乘法控制策略(Progressive Multiplicative Control Policy, PMCP)
當時我做 PHC 的時候,有一萬個 motion capture 動作序列。我決定全部學習,不挑選子集。我使用 Isaac Gym,可以同時模擬 2000 個環境,即同時模擬 2000 個機器人。我從這一萬個動作序列中隨機取樣 2000 條,用於訓練和評估。
PHC 的核心目標是確保每一條 motion sequence 都被成功學習。這與傳統的 animation 論文不同。動畫方向的研究更關注視覺效果,只要模型能復現若干關鍵動作、呈現良好視覺就算成功。但我的目標是做姿態估計、做 universal controller,所以我要求模型必須對每一條 sequence 都具備完整復現能力。
為此,我引入了多個衡量指標。首先是 success rate(成功率):指模型是否能從頭到尾復現整個動作序列,如果中途失敗,例如姿態偏差過大或跌倒,則計為失敗。我還引入了 MPJPE(Mean Per Joint Position Error),即每個關節點與參考動作之間的平均位置誤差,用於衡量模仿精度。此外,還加入了 acceleration error,用於評估動作是否過於抖動或不穩定。
訓練過程中,我發現 success rate 很難提升,一直穩定在約 97%。這意味著還有大約 3% 的動作序列沒有成功學會,大約是 300 多條。我開始逐條檢查這些失敗的序列。
失敗的原因大致分為兩類。一類是 corrupted 資料,即原始動補中存在 artifact,導致動作本身就不連貫。另一類是極難的動作,比如 cartwheel、backflip 等高難度翻轉動作,控制器無法有效學習。
但我在分析過程中也發現一個現象:如果單獨只訓練一條 sequence,模型是可以 overfit 的;訓練十條 sequence,也可以學會。這啟發了我接下來的做法。
我首先訓練所有資料,直到僅剩那 300 條學不會的序列。然後我將這 300 條單獨拿出來,重新初始化一個網路,繼續訓練。訓練完成後,仍可能剩下 30 條更難的序列,再單獨挑出,繼續使用新初始化的網路訓練。
這種方式類似於 progressive network(Google 提出的一個方法),也就是不斷為更復雜的任務增加新的網路容量,就像大腦中生長新的神經突觸一樣,以處理更難的問題。
最終,我得到了 3 到 4 個相對獨立的小網路。每個網路負責學習一組特定的 motion sequence。如果需要模仿某個具體動作,我可以選擇相應的網路進行推理。這種機制和 Mixture of Experts 有些相似。
PHC 和 MOE 的主要區別在於,PHC 中的每個子網路都是 frozen 的,即訓練完成後引數不再更新。我再訓練一個叫 composer 的控制模組,用於在 inference 時動態地選擇使用哪一個子網路,從而避免 catastrophic forgetting(災難性遺忘)。
這個框架還支援一個額外功能:學習“倒地後再站起”的動作序列。這個任務與 imitate reference motion 差別很大,是一種自由度更高的控制問題,同時強化學習也存在忘記先前技能的問題。
最終,我訓練出了一個既能模仿高質量動作,又能支援從地面重新站起的 controller。我認為這個 framework 在 achieving high success rate 的同時也具備了靈活性。雖然後期我也實現了更高效的訓練方法,不一定非得分成多個網路,但如果有其他擴充套件需求,這個結構仍然是非常可用的。
7. 怎麼從AMASS動捕資料中學習?
關於 AMASS 資料集,它包含了大約一萬條高質量的人體動作捕捉(motion capture, 簡稱 mocap)資料。這些資料都是高精度的,來自專業的動補系統,具有非常細緻的動作姿態資訊。在我做 PHC(Perpetual Human Controller)這個專案時,我的目標就是要讓控制器能夠學習並重現這些資料中的所有動作。
在這個過程中,我們使用了模擬器環境,所以所有控制都是透過強化學習實現的。AMASS 提供的是一種所謂的 kinematic motion(運動學動作),也就是說,它只給出每一幀人體的姿態(例如關節角度),但不會告訴你這些動作在物理上用了多大的力、受到了怎樣的動力學影響。換句話說,它並不包含關節施力或身體受力的動態資訊。
因此,我們需要透過強化學習的方式,讓控制器自己“學會”這些力是如何作用的。在 PHC 的設定中,輸入是下一幀的目標動作(比如姿態、速度等),輸出是當前幀每個關節所需施加的力矩(torques),從而讓機器人身體運動去匹配目標動作。
這個任務我們稱為 motion tracking,也就是“動作跟蹤”。每一幀的輸入是目標動作,控制器輸出一組關節力矩,讓機器人在物理模擬中執行並儘可能貼近這個目標動作。
PHC 的亮點在於,它不是為一條固定的動作軌跡單獨訓練控制器,而是用一個控制器去學習 AMASS 中任意一段動作,甚至是任意一段的任意部分。這種能力表明它的泛化性很強——只要 AMASS 資料裡出現過的動作型別,PHC 都能精準重現。
而且由於 AMASS 的覆蓋範圍很廣,涵蓋了多種人類常見姿態、動作模式,一旦控制器能夠很好地擬合其中的大部分序列,在實際使用中也就具備了執行“絕大多數人類自然動作”的能力。當然,如果輸入的資料本身質量不好,比如太 noisy,控制效果也會下降。
8. PHC後續之PHC 2 Real
基於 PHC 和姿態估計的能力,我們也希望將這些動作遷移到真實世界。因此,我們開展了 H2O、Omni H2O、ASAP、HOVER 等專案。這些工作在真實人形機器人平臺上進行,難度顯著增加。儘管尚未完全實現模擬器中的效果,但我們始終在持續推進。
我傾向的研究路徑是,先在模擬環境中將方法和系統效果完善,在虛擬環境中完成充分探索和驗證,再逐步遷移至現實世界。透過這種方式,我們可以在方法論層面上先完成動畫驅動和早期實驗的打磨,再逐步適配現實條件。
在現實環境中,很多數值設定和模型假設都不再成立,導致實際部署的難度遠高於模擬器環境。因此,現實中的進展速度相對較慢,但我認為模擬與現實這兩個方向都具有重要意義,且都值得持續深入研究。
我剛剛提到的 PHC 的 demo 理想形態是:我給你一個相機,對著一個人,人做什麼,機器人就做什麼。H2O 實際上就是在實現這件事情,H2O 使用的正是 PHC 中同一套基於單目相機的人體姿態估計方法。由於時間緊迫,當時並沒有重新訓練模型或開發新系統,而是直接複用了 PHC 中已有的 pipeline。我們將這套系統接入,即可實現人做什麼,機器人就做什麼。
雖然當時還沒有進一步命名 H2O 為 PHC 的衍生版本,嚴格說它完成的是全身動作的模仿。儘管最終的呈現效果還有不少待改進的空間,但整套 pipeline 和 framework 實際上已經搭建完成。也就是說,從人的動作對映到機器人的動作這條路徑——從單目相機進行姿態估計,再到機器人完成動作執行——這套流程已經貫通。這可以看作是 PHC to Real的一個初級版本(baby version)。
之所以沒有直接稱其為 PHC2real,主要原因在於其效果仍未達到模擬中的水平。造成這個差距的原因是多方面的,其中包括硬體本身的限制。當時使用的是 Unitree 的 H1 機器人,它在執行某些靈敏動作方面存在困難,可能並不具備完成這些高精度模仿的能力。而現在的 G1 平臺可能已經具備實現其中一部分動作的能力,但當時的 H1 還無法達到這種表現。
關於 OmniH2O 和 H2O,它們之間的區別主要體現在輸入形式與使用場景上。OmniH2O 專案的出發點是為了更好地實現遙操作。如果使用第三人稱相機去做遙操作,其實是非常困難的。因為在那種視角下,操作者很難感知機器人當前在做什麼。這種視角缺乏沉浸感和同步性,因此我們當時的想法是,想要做基於第一人稱視角(egocentric)的遙操作——讓人看到的和機器人看到的是一致的,從而完成各種動作控制。
為此,我們希望系統能夠支援 VR 介面,也就是透過虛擬現實頭顯實現第一人稱操控。這類任務需要有對應的基礎模型支援,在 OmniH2O 和後來的 Hover 專案中,我們訓練的基座模型與 PHC 的訓練方式是相同的,都是一個高質量的 motion tracker。
OmniH2O 專案中我們還加入了一個蒸餾過程:即我們從一個完整輸入的教師模型中提取知識,再教給只擁有部分輸入的學生模型。具體而言,PHC 的控制器使用的是全身的動作資訊輸入,但在蒸餾過程中,我們只提供給學生模型少量的關鍵點輸入,例如三個點位,透過模仿教師模型的行為來學習完整的控制策略。
這個蒸餾機制,使得學生模型能夠在只有有限輸入資訊的條件下復現較為完整的人體動作,而教師模型則保持和 PHC 相似的結構與能力。透過這種方式,我們建立起一個訓練框架,使系統可以適配 VR 等多樣化輸入,而不再侷限於傳統的全身動補資料,因為後者在實際使用中較難獲取。
9. PHC後續之全身運控
UHC 和 PHC 本質上做的是相同的事情,只是 PHC 實際上將這件事完成了,併成為後續工作的基礎。在 PHC 之後,我在模擬器中開展了 PULSE,OmniGrasp,隨後是 PDC。PDC 從基本的動作控制進一步發展為學習控制先驗(control prior),可以理解為構建一個行為基礎模型(behavior foundation model),並在此基礎上擴充套件到操控任務(manipulation),包括視覺操控(visual manipulation),例如透過佩戴視覺裝置完成操作。
OmniGrasp
這是一個完整的系列,目標是在虛擬世界中實現人形機器人對各種動作的良好控制,進一步完成物體抓取等具有實際意義的操作。整個方向是使人形機器人在虛擬環境中更具實用性,探索其在虛擬世界中所能承擔的更多高價值任務,以及如何實現更高層次的決策控制能力(high-level brain functions)。
我認為,機器人控制迄今為止仍未徹底解決的一個問題,就是如何在已有技能的基礎上進行技能複用(skill reuse)。目前即使我自己訓練新的控制器,往往也仍然需要從頭開始。PULSE 的目標,是希望能夠複用 PHC 中已經學會的動作。既然這些動作已經透過訓練全部掌握,我認為在解決新的任務時,它們應該可以被重新利用。人類本身也是這樣做的——面對新任務時,不是從零開始學習,而是呼叫已有的動作技能。
PULSE 專案的核心,就是為人形機器人建立一個高效可用的技能庫。在這個技能庫構建完成之後,我們可以透過強化學習解決新的任務,讓機器人在執行任務時自主選擇、呼叫已有技能。但這個技能庫不應該是預定義的、固定的,例如遊戲中按下一個按鈕執行一個特定動作的方式,而應具有高度通用性和多樣性。因此,我們需要將這些技能嵌入到一個隱空間(latent space)中。
這種設計方式與影像生成模型中的思路類似,比如 Stable Diffusion 使用編碼影像資訊,不在畫素空間直接生成影像,而是在一個學習到的隱空間中建模影像的統計結構。動作控制也可以採用類似的策略:構建一個能夠表達大量人類動作技能的隱空間,將這些技能結構化地表示出來。
一旦這個隱空間學習完成,我們在訓練新的控制器、完成新的動作或任務時,就可以直接在已有技能空間中組合、搜尋和微調,而不是從頭開始訓練。
10. PHC用到的強化學習方法是什麼?
都是PPO,因為在 character animation 這個方向,當前主流依然是採用 PPO(Proximal Policy Optimization)演算法。PPO 在動畫任務中應用廣泛,主要原因在於其穩定性和通用性都非常強。從 MuJoCo 到 Isaac Gym,不需要對演算法結構做大幅調整即可遷移使用。
PPO 的 scalability 也表現得很好——不管是隻有 32 個環境,還是擴充套件到 2000 個環境,都能穩定地訓練出有效策略。這也是目前它仍然被廣泛採用的主要原因之一。
雖然我也認為未來可能需要探索更先進的演算法,但在現階段,PPO 的可用性實在太高,導致即使有替代方案,也很少有人真正投入使用。
關於通用控制器
11. 怎麼理解“通用控制器”
在我看來,“通用”這個詞本身其實就不是特別明確。它更像是一種我們希望達到的理想狀態,而不是一個已有明確邊界的概念。就像“通用人工智慧”一樣,雖然大家都在談論,但它到底指什麼,還是有很多不同的理解。
我在使用“通用”這個詞時,其實也遭到過一些質疑。比如我的導師(Kris Kitani)就並不喜歡這個說法,覺得它不夠具體。但對我來說,我所理解的“通用”,是指一個控制器能夠實現非常多樣的人形動作。也就是說,一個控制器,不是隻針對某一個動作去做最佳化,而是能讓人形機器人完成一個人類在開放空間中可以做出的各類動作。
我在寫第一篇涉及“通用”這個概念的論文時,其實想表達的是這樣的設想:如果一個人在一個空曠場地裡,他是可以做出走路、跑步、跳躍、簡單的物體互動等等自然動作,那我希望我的人形機器人也能透過同一個控制器做到這些事情,而不是每個動作都依賴一個獨立設計的控制模組。
現實情況是,現在我們看到的許多真實人形機器人,它們的控制系統往往是專門為某個任務設計的。比如某些機器人可以走得很好,但就不能跳;另一些能跳舞、甚至跳不同段落的舞蹈;還有的可以打拳,但如果你讓同一個機器人去完成不同型別的任務,比如又跳又打或者同時搬運物體,那就做不到了。
而我想追求的“通用性”,是指一個機器人,能夠像人一樣完成多種任務,覆蓋我們日常能想到的大部分身體動作。這種能力,應該來自於一個統一的控制器。
我當時的想法是:既然我們已經在做人形機器人了,就不應該人為限制它“只能做某些動作”。我們應該努力讓它做到儘可能多的人類動作。儘管硬體方面現在還沒完全成熟,但從很多主流廠商展示的 demo 來看,硬體已經越來越接近這個能力水平了,應該足以支撐起這種通用控制的嘗試,所以現在更多的是一個軟體的問題。
12. 通用控制器的難點在哪裡?
關於“難度”這個問題,我自己的感受是:當我們真正把事情做出來之後,回頭再看,它其實比我一開始預想的要簡單一些。但真正的挑戰,不在於實現本身,而在於在沒有先例的情況下是否值得去做、是否能做出來——這在2019到2022年間尤其明顯。
當時業界其實並不確定,一個控制器是否真的能夠泛化到多種不同的動作。我那時候關注了很多Jason Peng老師的工作,大概從2019年就開始 follow 他的研究。那個階段,很多基於人形機器人的控制器,其實已經能非常好地完成某一個特定的任務。比如說,一個控制器專門設計來完成走路、跳躍、甚至打拳,這些在單個任務上都能做得非常好。
但問題在於:怎麼讓一個控制器“通用化”,也就是說,它能泛化到多個不同型別的動作? 這在當時還是一個未知的問題,沒人能說清楚到底能不能做到。包括我自己在剛開始做這項工作時,心裡也沒有把握。
所以我的研究就圍繞這個問題展開,一步步地去試——比如說,怎麼設計訓練方式更有效?輸入怎麼處理,才能更好地引導控制器學到不同型別的動作?在訓練過程中,應該加入哪些策略,讓模型真正能學到跨動作型別的泛化能力?
在這個過程中,我花了很多時間在設計訓練機制、控制器的輸入結構,以及任務覆蓋的廣度上。最終也是透過持續地除錯和實驗,逐步把控制器的泛化能力提升上來,向真正的“通用控制器”目標靠近。
13. 通用控制器有哪些典型工作?
在做人形機器人控制的過程中,我其實是從動畫(animation)的角度切入的。現在很多人形機器人的控制,尤其是我們常見的一些 demo很多在方法上面是從動畫驅動開始的。它們展現的效果,其實和五年前的 animation-based 方法非常接近——但是把之前在動畫裡做出的動作效果在真實機器人上實現了。
除了我們上面提到的PHC以外,還有其他lab在探索這個方向。比如 Meta 曾經發表過一個叫 ScaDiver 的專案,目標也是構建一個可泛化的控制器。此外,還有像最近MaskedMimic 這樣的工作,包括Jason Peng老師在講座中也提到過,都在嘗試讓一個控制器完成多種任務,不再侷限於“一個控制器對應一個動作”的傳統模式。
現在,業內也逐漸有了一個新的術語,叫做 Behavior Foundation Model(行為基礎模型)。這個詞可能比“通用控制器”更貼切,它的含義是:我們可以訓練一個統一的行為模型,它就像是一個行為層面的基座模型,能夠支援我們去完成各種各樣的複雜任務。
舉個例子來說明我當時做 PHC 遇到的一個真實問題。當時有像 DeepMimic 這樣的系統,它可以實現一個控制器實現一段動作(single motion tracking),也就是你提供一段參考動作,它就可以學習並重現這段動作。但問題是:每一段動作都要重新訓練一個模型。這顯然無法滿足我當時的需求。
我的需求更接近一種姿態驅動:我希望無論輸入是什麼樣的人體姿態(比如從姿態估計系統獲得的),我的人形機器人都能立刻復現這個姿態動作。這意味著我不能只訓練幾個特定的動作,而是必須讓系統覆蓋幾乎所有人類的動作型別,甚至說,要讓它能執行人類99%的常見動作。
從這個角度來看,我認為這已經非常接近“通用控制”的定義了,甚至可以說,它就是在構建一個行為基礎模型(Behavior Foundation Model)的早期形態。
References:
UHC:https://github.com/ZhengyiLuo/UHC
PHC:https://www.zhengyiluo.com/PHC-Site/
OmniGrasp:https://www.zhengyiluo.com/Omnigrasp-Site/
PULSE:https://www.zhengyiluo.com/PULSE-Site/
PDC:https://www.zhengyiluo.com/PDC-Site/
OmniH2O:https://omni.human2humanoid.com/
HOVER:https://hover-versatile-humanoid.github.io/
ASAP:https://agile.human2humanoid.com/
羅正宜社交媒體:
X/Twitter: @zhengyiluo
LinkedIn: Zhengyi (Zen) Luo
Website: https://www.zhengyiluo.com/
Google Scholar: https://scholar.google.com/citations?user=lHPTxGsAAAAJ&hl=en
小紅書:正合時宜
原創不易,歡迎“點贊”“打賞”“在看”三連!
也歡迎加我微信交流!
