在小說(shuō)閱讀器讀本章
去閱讀

不知道大伙兒是啥感覺(jué),反正自從開(kāi)年以來(lái),世超總能刷到各種機(jī)器人。今天開(kāi)幕式上露個(gè)臉,明天路演現(xiàn)場(chǎng)走兩步,到處刷存在感。
尤其是從春晚那波機(jī)器人武術(shù)出圈之后,很多人都覺(jué)得,這玩意兒的發(fā)展速度是不是有點(diǎn)太快了,去年還在轉(zhuǎn)手絹,今年已經(jīng)能給人類上強(qiáng)度了。。。

誒,原來(lái)讓機(jī)器人動(dòng)起來(lái)很容易嗎,那豈不是我上我也行?
為了搞清楚這事兒,這回世超干脆借來(lái)了一臺(tái)雙足機(jī)器人,準(zhǔn)備親自訓(xùn)練點(diǎn)新動(dòng)作,看看這個(gè)類人形機(jī)器人,能玩出多少花活兒。
剛一搬進(jìn)屋,新同事就被好奇的老登們圍了個(gè)水泄不通。
大伙兒四足的、人形的在辦公室里見(jiàn)怪不怪,全身只有兩條腿的還是第一次見(jiàn),紛紛主動(dòng)列隊(duì)歡迎。

相比那些動(dòng)輒幾十個(gè)關(guān)節(jié)的人形機(jī)器人,這種雙足機(jī)器人,更適合拿來(lái)研究一個(gè)最底層的問(wèn)題:
兩條腿,怎么在真實(shí)世界里穩(wěn)定地走。
按理說(shuō),我只要把這兩條腿上,6 個(gè)電機(jī)安排明白,就能控制它做出想要的動(dòng)作。比如電機(jī)轉(zhuǎn)得快一點(diǎn),腿就抬得快一點(diǎn);角度大一點(diǎn),腿就抬高一點(diǎn)。

想訓(xùn)練一個(gè)機(jī)器人在現(xiàn)實(shí)里做動(dòng)作,第一步,得先讓它在虛擬環(huán)境里動(dòng)起來(lái)。
創(chuàng)建一個(gè) Isaac Gym 仿真環(huán)境,在這里,你可以一次性拉出成千上萬(wàn)個(gè)一模一樣的機(jī)器人,讓它們同時(shí)摔、同時(shí)犯錯(cuò),快速成長(zhǎng),訓(xùn)練效率直線提升。

在這里,世超采用了比較基礎(chǔ)的強(qiáng)化學(xué)習(xí) PPO 算法。大伙兒可以把這個(gè)過(guò)程理解成蘿卜紙巾真蚌,做好了,及時(shí)給獎(jiǎng)勵(lì),做錯(cuò)了,就得懲罰。
而機(jī)器人和人一樣,學(xué)習(xí),是一個(gè)循序漸進(jìn)的過(guò)程。要想學(xué)花活兒,得先把走路學(xué)明白,穩(wěn)定不摔倒。未經(jīng)訓(xùn)練的機(jī)器人非常怠惰,只會(huì)迅速陷入嬰兒般的睡眠。
所以,一套訓(xùn)練程序里,十八個(gè)獎(jiǎng)勵(lì)函數(shù),只有三個(gè)是給糖吃的:站穩(wěn)、按給定方向移動(dòng)、按固定方向移動(dòng),其它十五個(gè)全負(fù)責(zé)抽皮鞭。



獎(jiǎng)勵(lì)給得太多,很容易讓機(jī)器人鉆空子,學(xué)不到有用的本事。比如,要是不摔就給獎(jiǎng)勵(lì),那機(jī)器人大概率會(huì)避開(kāi)走路摔倒的風(fēng)險(xiǎn),原地罰站。
很快,只要兩三個(gè)小時(shí)的訓(xùn)練,機(jī)器人順利地走起來(lái)了。

有一說(shuō)一,確實(shí)不算難。只要大伙兒有點(diǎn)編程基礎(chǔ),摸索摸索,做出點(diǎn)好看的成果還是很快的,還相當(dāng)有成就感。
如果事情只停在這里,那機(jī)器人可能確實(shí)是個(gè)大玩具。
然而,當(dāng)世超想開(kāi)始第二階段的拷打,搞點(diǎn)新東西的時(shí)候,事情就沒(méi)那么簡(jiǎn)單了。。。
這一次,我們?cè)O(shè)計(jì)了 3 個(gè)新的獎(jiǎng)勵(lì)函數(shù)來(lái)讓它走得更有難度:機(jī)器人的腿離地面過(guò)近、膝蓋彎曲的角度不對(duì)、每步走得太短都不行。

大概四五個(gè)小時(shí)后,世超給機(jī)器人準(zhǔn)備的新動(dòng)作也誕生了。以后它走路得邊跳邊走,年輕人,有活力一點(diǎn)。

接下來(lái),只要把這個(gè)訓(xùn)練好的模型,通過(guò)一根網(wǎng)線,傳遞到機(jī)器人的身上。。。
等等,事情開(kāi)始不對(duì)勁了。
把虛擬環(huán)境里的算法移植給現(xiàn)實(shí)里的真機(jī)器人,才是地獄的開(kāi)端。

真實(shí)物理世界里,地面變化的摩擦力、機(jī)器人重心變化、傳感器的延遲。。。這些微小的變量在幾十斤重的鐵疙瘩身上會(huì)無(wú)限放大。
世超試了五六次,它依然腳抬不起來(lái),腿邁不開(kāi),時(shí)不時(shí)原地抽搐。


往好里說(shuō),現(xiàn)在這套模型也許不是完全沒(méi)戲。
它就像買彩票,你反復(fù)跑上成百上千次實(shí)驗(yàn),只要有一次,環(huán)境、參數(shù)、運(yùn)氣全對(duì)上了,機(jī)器人也能站起來(lái)、踉踉蹌蹌走兩步。
但更常見(jiàn)的情況,是模型本身有問(wèn)題。這時(shí)候,我們得把模型回爐重造,修改獎(jiǎng)懲機(jī)制繼續(xù)練習(xí)。
甚至存在很大可能,我們?cè)倩◣资r(shí)搞出來(lái)的新東西,還不如老模型效果好。例如你可能設(shè)置了抬高腿的新獎(jiǎng)勵(lì),結(jié)果直接導(dǎo)致機(jī)器人重心不穩(wěn)。一個(gè) bug 的修復(fù),往往會(huì)引入更多的 bug。
另外,很反直覺(jué)的是,即使在模擬環(huán)境里做到 100% 好,對(duì)真機(jī)也不一定是好事。因?yàn)樗赡茉缭绲剡^(guò)擬合,只在嚴(yán)格的特定環(huán)境下才好用。

而大伙兒平常快看膩了的各種跳舞、導(dǎo)覽、巡邏功能,往往需要更多的數(shù)據(jù)、更復(fù)雜的訓(xùn)練手法、面對(duì)更變幻莫測(cè)的真機(jī)反應(yīng)。
機(jī)器人看起來(lái)像個(gè)大遙控玩具,并不是因?yàn)樗夹g(shù)含量低,而是因?yàn)檎嬲y的那部分很少被拍出來(lái)。
不管是昂貴的數(shù)據(jù)采集,還是模型一遍又一遍以小時(shí)為計(jì)的訓(xùn)練調(diào)整,亦或是彌合虛擬世界到真實(shí)機(jī)器人的巨大鴻溝,都需要有經(jīng)驗(yàn)的工程師來(lái)反復(fù)實(shí)驗(yàn),反復(fù)調(diào)試,花費(fèi)大量金錢和時(shí)間,才能保證次次成功,穩(wěn)定運(yùn)行。
當(dāng)然,肯定有差友忍不住問(wèn)一句:這機(jī)器人就兩條腿,能干的事這么少,就算真把它做成了,又有什么用?
逐際動(dòng)力團(tuán)隊(duì)是這樣向我們解釋的,像 TRON 1 這類機(jī)器人,一方面能在游樂(lè)園里讓已經(jīng)滅絕的恐龍 " 動(dòng)起來(lái) ",在火車站、機(jī)場(chǎng)這種人多的環(huán)境去巡邏,在大型設(shè)備不去的危險(xiǎn)環(huán)境作業(yè),用小小很可愛(ài)的優(yōu)勢(shì)補(bǔ)位;

同樣是研究?jī)蓷l腿怎么走,在 TRON 1 這種只有兩條腿的機(jī)器人上實(shí)驗(yàn),成本更低、迭代更快。一旦這些底層規(guī)律被跑通,就能類比遷移到更復(fù)雜的人形機(jī)器人上,相當(dāng)于先用小號(hào)模型把坑都踩完。
科研離生活很遠(yuǎn),但沒(méi)有科研機(jī)器人,它們永遠(yuǎn)不可能走進(jìn)生活。


我們不如換個(gè)角度想,人類進(jìn)化到可以直立行走,至少經(jīng)過(guò)了幾百萬(wàn)年。早期想造出一個(gè)會(huì)走路的機(jī)器人,以早稻田大學(xué) WABOT 為例,也是數(shù)以年計(jì)。而現(xiàn)在,就像世超這樣的非專業(yè)工程師,只需要不到一天,就能教會(huì)一個(gè)鐵疙瘩穩(wěn)穩(wěn)走起來(lái)。

所以,趁著這幫鐵疙瘩現(xiàn)在還只會(huì)點(diǎn)地板 breaking,世超建議大伙兒還是對(duì)它們客氣點(diǎn)。
畢竟當(dāng)機(jī)器人學(xué)啥都只要一天不到的時(shí)候,被嚇哭的可能就不止是火鍋了。
撰文:莫莫莫甜甜
編輯:江江 & 面線
美編:煥妍
圖片、資料來(lái)源:
莫莫實(shí)測(cè)
感謝逐際動(dòng)力 Brandon 老師、Kevin 老師的技術(shù)支持!


