為何雙足機器人不直接拷貝人類行動時的數據?
用一套類似外骨骼的裝備來記錄人行動時的數據,然後再套用在機器人上,不是就可以做出靈活許多的機器人了嗎?
這個問題還是很有意思的。
在Robot Learning中,有一個很「鬱悶」的問題,叫做「Correspondence Problem」。簡單來說,就是示教者和模仿者之間,由於雙方結構,運動學,動力學的不一致,不能簡單的做低層次「low-level」的映射,見下圖。
那正確的姿勢是什麼樣的呢?應該怎麼去學習呢?這個既要考慮示教者所表達的知識本質,又要結合自身的實際情況。下圖其實表達的就是這個意思。
這樣說比較玄乎,很容易搞成case-by-case的示教學習。但是下圖告訴你,在機器人學習中,基本上也就四個層次,最後的也就基本等效成是Reinforcement Learning了。不管你搞的learning是哪一個層次,現在還有大把的空白,大家有時間有情懷的往上沖吧。
所以啊,簡單的record-and-replay是不行的。日本的Asimo搞了那麼多年,還真不是別人不行,且行且努力吧。
很有意思的問題,我主要是想分享最後那個Deepmind據說是用Reinforcement Learning做出來的鬼步。機器人領域也是不能邯鄲學步啊!
為了搞出變形金剛,終結者這樣的人形機器人,我入坑的時候也是研究雙足機器人,準確說是Humanoid人形機器人。那時從小到大從自己攢到買商業產品從模擬模擬到真機測試整了四年,算是老本行啊。不過知乎上沒聊過雙足行走的事兒。下面這兩台,嗯,線下的時候視頻放過很多次,他們的名字是羅伯特貝利和澇池-_-!
怎麼解決走路這個簡單問題,當年也由各種樸素想法折騰了好久。從機械主義、控制主義到學習主義,我棄坑了。。。棄坑太久,今天就不引經據典了,我們來講講各種雙足研究中的樸素主義。題主說的類似外骨骼的設備,應該是Motion Capture的設備,動作捕捉,做大機器人的時候我們就有。不過主要是用來做遙操作不是用來指導機器人走路!
視頻傳上來大家隨便看看。
時間又要回撥10年。
即便是十年前,我也沒有一開始就想著拷貝人類行走的數據啊,我都想到控制了!
做過雙足的,估計都了解倒立擺模型。這個蠻簡單,因為機器人可以簡化為一級倒立擺。而那時我記得北師大就有老師做出三級倒立擺的控制了!就是下面這個東西,靠控制小車的運動讓三節擺倒立起來,厲害吧。
但是畢竟是簡化,實際情況複雜多了。慢慢才知道控制系統在實際中很難達到理論上的效果。我導師告訴我,在我們做的這種20個自由度左右的機器人上,這種非線性的倒立擺基本是個混沌的問題,這樣控不了,只能摔。可是我們的機器人摔不起啊。單純靠控制,肯定不行,因為做控制最主要的問題就是建模,模型一定要建好。我是想說,人類也控不了三級倒立擺啊,但是機器可以。精確的控制,機器人只比人強,機器人不能雙足走,不能算是輸在傳統意義的閉環控制上。
所以純粹希望靠控制走穩不行,還是要先做軌跡規劃,專業點大家叫做CPG,Central Pattern Generator,就是要有一個步態的生成器,說是小腦里也干這個事情。那關鍵的部分就是要將ZMP(Zero Momentum Point零動量點)放在腳底穩定區間。這個事情乾的最好的就是Asimo的,不過論文少。我們是跟著一個日本的科學家Shuuji Kajita,用他的類似倒立擺模型的桌子小車模型(cart-table model)做軌跡規劃。這不是重點,我那時讀到Asimo的軌跡規劃,他們找了多種雙足的動物採集軌跡來做Asimo的軌跡優化。。就是說他們肯定不僅想到了拷貝人類的數據,還想到了由於結構不同可以去參考比如鳥類的行走。但是,這條路歪了啊,落地時腳底板的衝擊就很難搞定,有時候連雙腳到底算支撐還是擺動都很難確定。
如果我們真的是想用捕捉到的人的動作直接拷貝給機器人用,我們就來假設人體結構,感測器,驅動方式這些我們的機器人都和我們模仿的人類一樣。即便這樣,對於動態行走來說,只要速度不同,就會打破平衡。也就說我們拷貝「路徑」不行,必須嚴格拷貝「軌跡」,每一點的速度加速度都相同。。這是不可能的。所以必須要根據模型實時生成軌跡,然後再靠感測器反饋進行控制調整。這從學術上來講才是行的通的。這裡就考慮到了前向動力學。
大家後來也覺得不光軌跡規劃很重要,機械結構的設計也很重要。在這一點上雙足行走和抓取都有這樣的認知。我們的手和腳進化成現在這個樣子,一定是為了方便我們雙足走路和靈巧的抓取。
理解了這幾個方面,我們就不難做出一個在平地上,有一定腳底板面積,可以卑躬屈膝動態行走的雙足機器人了!
為什麼一定要屈膝。。。規劃在直角坐標系的時候求逆解會有奇異點啊,是不是很二。所以規劃應該在角度空間才對不是么?
要放在角度空間規劃,要適應不同地面,如果還有不同的負載。這個事情太難了,傳統的機械加控制的方式已經難以解決。所以要用到學習。Deepmind今年就搞了這個事情,看看這魔鬼的步伐!!音樂也非常魔性 (⊙﹏⊙)
谷歌DeepMind AI教自己走路(雙語字幕)bilibili.com視頻人有時候對自己做習慣的事情不會感到那麼難。那時候做大人形機器人行走不太好,控制又加的亂七八糟,我老闆(不懂雙足,不是導師)就在實驗室踱步,自言自語道:我就沒控制,不是也走的很好。
把大佬的名字打錯了,編輯一下。順便貼一下ASIMO開發的時間線。本問題大概就是1987-1991年本田的工程師們著重想解決的。後面到ASIMO發布的十多年,大家在做什麼呢?這個可以幫助大家多了解雙足機器人行走的歷史研究。源文件在
http://asimo.honda.com/downloads/pdf/asimo-technical-information.pdf
雙足行走這件事情在真正的機器人上,截至目前,還是傳統的機械和控制方法用多。
你這種想法就是開環的思想,答案就是我們為什麼要用閉環控制。
剛好是我的博士研究方向,Learning from demonstration。正如一個答主提到,這是這個方向裡面的corresponding 問題。主要因為機器人和人類的動力學模型不一樣,不能直接照搬數據。機器人行走本來就是一個很難的問題,因為機器人機構進行精確建模較難,而且由於關節多自由度較高,控制起來難度很大。
個人想法:擬人的機器人其實除了噱頭,實際用處不一定大,因此機器人的形狀一般千姿百態。當然,從科研的意義上說,人形機器人非常具有研究價值。目前有些基於仿生的模型,比如CPG等,可以生成四足、雙足機器人的關節位置或落腳點。
以上
這是一個非常有意思的問題。事實上,科研人員也是這麼做的。
人體運動捕捉系統就可以實時採集人體的運動數據以及姿態,甚至一些動力學數據。
這些數據在進行三維再現,就可以作為驅動數據使用,驅動人體運動模型進行運動再現。
做這塊研究的朋友,給你們推薦一個斯坦福大學牽頭做軟體OpenSim。專門用於人體運動分析的,裡面也有大量的運動數據。可惜都是外國人的數據,國內的數據還很少。
雙足機器人的研究中,人體步態規劃,很多也是基於這些數據進行規劃的。
但是,大型仿人機器人要想做得非常好。行走,甚至跑步,都很流暢,這裡面需要非常複雜的控制演算法,比如傳統基於ZMP的演算法,還有最近非常火的 CAPTURE POINTS演算法。雙足大仿人機器人的控制演算法,可以肯定的說,國內國外在動力學演算法實現上,可以搞定的不超過10人。
總之,人體運動是非常複雜的,已經超出傳統多剛體動力學的邊界。在理論上,還需要突破。
人腿上有數不盡的,無數個巨好用的神經元,感知著腳底壓力、著力點、身上的、每個關節的轉矩和肌肉上的負載等無數信號,而機械臂和機械腿上可能只有區區幾個;
人還有耳蝸,而同樣好用的IMU用在機器人身上,成本可能要上萬;
人還有眼睛、耳朵、鼻子等複雜的感測器,這些感測器融合起來,可不是拿個EKF改改就能用的;
最關鍵的,是和感測器們直連的大腦,這可不是拿個reinforcement learning就能比得了的。
你已經不能說這是閉環系統了,因為可能已經是反饋得眼花繚亂的高階動力系統了,如果原封不動的像素級copy過來,不如直接再設計一套簡單耐操的。
其實就是最高票 @桂凱 說的:複製關節動作是開環控制。不穩定系統不能用開環控制,而走路就是不穩定系統,依靠一次又一次的跌倒和換支撐腿來維持平衡。穩定系統可以用開環控制,比如簡單的四足機器人玩具(索尼的一款機器人狗)是穩定系統,可以用簡單的開環控制實現走路。比如騎自行車也是不穩定系統,你學自行車時照搬一個會騎車的人的關節軌跡也不能把自行車騎好。不穩定系統的特點是一旦遠離平衡點,物理定律會使得系統繼續更加遠離平衡點。
雙足機器人控制器基本分兩步,第一步是軌跡生成,第二步是在線的軌跡穩定。在第一步軌跡生成里可能會參考人類行走的數據,但是一般都會做一些改動以彌補機器人和人類不同的質量分布和尺寸。在第二步軌跡穩定,會用反饋控制跟蹤第一步生成的軌跡,這些軌跡包括關節角度的軌跡還有重心的軌跡,其實跟蹤重心的軌跡對於保持機器人平衡更重要。
走完全相同的水平面可以,稍微有點不同就摔。
目前技術能讓非雙足機器人完爆人類的攀爬能力,但還沒有做到複製動物神經功能。
儘管碳基生命這套神經肌肉系統論功能上限(力量,速度等)和效率上都低於各種四輪八爪履帶玩意和機械臂,但是沒有一整套仿生神經元和想匹配的AI,就是實現不了小腦的功能。很好的問題.
那為什麼不拷貝大象的呢? 因為大象四條腿, 雙足機器人2條腿.
那為什麼拷貝你的不拷貝我的呢?
讓我們來看看小腦--運動控制系統的功能.
--- 1) 首先, 腿的尺寸不一樣, 重量不一樣, 剛度不一樣, 力量也不一樣,
--- 2) 其次, 路面環境不一樣, 有高有低.
---3) 再次, 身上的負重, 身體姿態, 速度不一樣.
人類的小腦可以在, 長胖30公斤之後, 崎嶇不平的山路上, 負重走路.
腿剛剛做過手術之後恢復, 要半年才能慢慢重新恢復正常的走路.
有一種雙足直立行走的生命, 彷彿奇蹟一樣,
腿長加長20%, 負重增加10%, 地面凹凸不平, 快速行走, 這是非常難的事情.!
-----
我說的是,
穿10厘米高跟的高跟鞋, 拎著大包小包, 樓梯扶梯電梯跑上跑下, 生怕搶不到
對, 我說的就是:
打折商場里的女生.
所以, 樓主, 我建議, 你可以按女友的身材, 尺寸, 剛度, 阻尼, 重量, 製作一款機器人, 然後把逛商場的女友的數據輸入進去, 可以獲得最快的人工智慧學習速度.
媳婦不上知乎, 先不匿了.
啊 我是就是在搞Bio-inspired robotics啦,順便來回答下你的問題。
(中文不太好,好久沒寫中文了,文章晦澀,請大家諒解一下)
- 這個方法以及有人想過了,也有人在做了(包括我啦)。
比如,東京大學的Inaba研究室的小次郎,小太郎,健太;Kuniyoshi研究室的Mowgli,Athelete Robot,大阪大學的細田耕研究室的氣動筋骨(就是肌肉和骨骼的意思啦)機器人,和東京工業大的一個叫不上名字的研究室的叫不上名字的機器人。 他們有很多都是使用【人體肌肉的電位(electromygraphy)的數據】來控制機器人運動的 。
確實是, 機器人可以在一定程度上做出和真的人還算相似運動。 但是,走路的話就能走幾步, 跳躍的話就只能跳躍一下,之後就翻了。
2. 其他的么,還有來測量關節在運動是轉動的數據的,但這個方法不靠譜,主要用於娛樂方面,比如是Count Strike(反恐精英)裡面的agent的動作就是通過測量人體運動時動作的幾何數據來控制的。
接下來說說原因,為什麼【直接拷貝人類行動時的數據的方法比較難】
- 人類的運動,是綜合了骨骼,肌肉,底層神經網路(peripheral neural networks 比如反射),高級神經網路(central neural networks,比如視覺,vestibular平衡感知),和環境各個因素的。具體來說,比如最簡單的,在走路時的push-off這個動作,腳底的反推作用力來源於1. 足弓壓縮反彈釋放的能量,2.韌帶儲存釋放的能量,3,肌肉的收縮產生的力4,身體在運動時儲存的能量以及這裡沒有提及到或者還沒有被發現的作用力。所以如果只是簡單的拷貝肌肉的活動或者是行動的數據的話,是遠遠不夠的。需要把骨骼,肌肉,神經網路,和【我們還沒有發現的因素】都考慮進去。
- 我們對於人類是怎樣實現運動這件事情不了解。對於上面說到的骨骼,肌肉以及神經網路,我們只是大致了解其在運動時的活動。但是具體底層是怎麼工作的,我們是不清楚的(這種感覺就像會開車不會修車一樣)。其次,具體有多少元素(aspects)來控制人類運動,我們也是不清楚的。比如說,當人類走路時遇到一個坎,人類是通過什麼方法來保持身體平衡的,我們並不知道。
學的東西不多,大概只敢說這麼多,沒看懂也沒關係,我中文不好,歡迎吐槽。不過抽象上來說想只【通過拷貝人類運動時的數據就可以控制機器人運動】,就像【讀本[喬布斯傳]就能建立一家和蘋果一樣偉大的公司】差不多。只通過拷貝人類運動時的數據是遠遠不夠滴。
這個問題在機器人學中就叫做步態,可以理解為行走機器人的運動學及規劃。成語邯鄲學步中學的就是步態。
目前步態還是一個挺難的問題,因為涉及到很多的問題,本問題下 劉東 和趙新華 的答案有比較詳細的解釋。
至於為什麼不直接使用人的步態,原因主要還是機器人的硬體比人體差太多,已經看到的各種人形機器人中足部的結構比人腳差太多,很多機器人的膝蓋都不能挺直,這些都是因為機器人硬體的限制。
因為電腦還沒達到你小腦的控制水平啊。
機器人學習行走可不是影視的動作捕捉,要考慮的東西比如機器人和人的重心,重量,大小比例,驅動器和肌肉的發力方式,彈性,阻尼,足底的阻尼等等,太多了。任何一個參數的變化都可能導致動態平衡被打破。所以這些性質如果不是完全一樣的話,就需要一套完整的模型去和人體的性質一一對應。而這兩種方式哪一種在現在看來都很難實現。如果只是像套用動作數據那樣把人各個關節的旋轉角度拷貝到機器人身上去,那它根本無法保持平衡,只不過是一台倒在地上做著同樣動作的機器罷了。
數據量會大到你懷疑人生。
自然界,生物為何沒有進化出輪子這樣的結構,而是進化出肢、翼這樣的結構?就人類的技術發展而言,對輪子的驅動非常成熟。對輪子的驅動,與對肢、翼的驅動完全不同。目前人類還沒有成熟的技術,實現模仿肌肉的連續可控收縮、舒張運動。
1,控制做不到。2,機械結構做不到。人類也好,鳥也好,狗也好,哪怕是個蟲子也好,都他媽太精緻了。想通過那麼簡單一段代碼或者幾個舵機幾個連桿就想達到精緻的肌肉骨骼大腦的程度?夢裡也沒這麼美好啊
阿里巴巴AI中心已經在研究,我們有所配合,選用了我們的激光雷達
拷貝是一回事,你實現又是另外一回事,有那麼好實現的話各類機器人分分鐘
可以的
本科室友記得用ADAMS做雙足機器人的運動模擬,一個上台階的動作,加了200多個阻尼器件才勉強讓機器人上台階不倒。如果運用到實際上,加的阻尼/阻力部件有可能也是 的數量級才能完成,這些部件的輸入和反饋的協調都是問題,問題還是相當大的。
推薦閱讀:
※達芬奇手術機器人的費用是如何組成的?
※手術機器人是如何實現操作時的「力反饋」的?
※工業多關節機器人對伺服電機的要求有哪些?
※2013 年底 Google 一舉收購八家機器人公司,意欲何為?
※中國的手術機器人產業的前景會怎樣?