雙足機器人有哪些常見的平衡演算法?


瀉藥,拋磚引個玉先 :)
雙足機器人的演算法比較多,有些有名字,比如「增量式模糊控制PD控制演算法」,「機器學習演算法」;有些則沒有什麼太過具體的名字,我在這裡就介紹一種應用於複雜地形(帶有傾斜角度的或表面不均勻的落腳面)的雙足機器人的演算法吧。
先說說雙足機器人的平衡控制都經歷過哪些階段。
在最開始的雙足機器人使用的平衡控制策略是「靜態步行」(static walking)這種策略的特點是:機器人步行的過程中,重心(COG,Center of Gravity)的投影始終位於多邊形支撐區域(support region)內,這種控制策略的好處在於:在整個的行進過程中,機器人可以在行走動作中停止而不摔倒,但代價是行動速度非常遲緩(每一步需要花費10秒甚至更長)(因為需要保持重心的投影始終位於支撐區域,否則將不穩定),因為靜態步行和人類的期望相差甚遠,於是人類開發出來了另一種步行平衡策略:「動態步行」。(dynamic walking)在動態步行中機器人的行動速度被提升至了每步不超過1秒。但是弊端也是顯而易見的,機器人難以在運動的狀態下立即停頓(慣性的作用),從而使得機器人在狀態轉換的過程中變得不穩定。為了解決慣性帶來的影響,零力矩點(ZMP,zero moment point)被引入到了這一控制策略中。在單腳支撐相中,ZMP=COG。引入ZMP的好處在於,如果ZMP嚴格的存在於機器人的支撐區域中,機器人絕對不會摔倒。

(圖1.靜態步行)

(圖2.引入了ZMP的動態步行)
現在雙足平衡的主流是用基於ZMP的動態步行。
基於上述的基本內容,雙足機器人的一條腿就可以抽象成控制系統中最基本的「倒立擺」模型。

(圖3.倒立擺模型)
可以推導出機器人的一條腿的正向ZMP動力學公式為:

(圖4.正向ZMP動力學公式)
Xzmp代表正向ZMP,Xmc代表質量中心的前進位移,l是倒立擺的長度,g是重力加速度。
由於複雜地形的雙足平衡無法由單一的控制器實現,所以多個控制器的切換策略被用於解決平衡問題。在這一個策略中,機器人的行走被設定為一個周期(cycle)每一個周期被分成了不同的行走階段(stage)如下圖所示:

(圖5.雙足機器人的行走周期和行走階段)
圖中的1-4階段是一個周期。而在第2和第4階段可以發現,在這兩個階段中,機器人的SSP與DSP發生了「共存」,即同時存在狀態。
在一般的雙足平衡的演算法中包含了三種控制策略:
(1)實時平衡控制策略(real-time balance control strategy)
(2)步行模式控制策略(walking pattern control strategy)
(3)行動預測控制策略(predicted motion control strategy)
基於不同策略的不同目的,每一種控制策略都包含了多種在線控制器(online controller),下面將分述每一種策略的任務及使用的控制器。
A.實時平衡控制策略
控制器1:阻尼控制器(Damping controller)。目的:在SSP模式下,消除機器人上 半身的振動。作用階段:1,3全階段;2,4中的SSP階段。
控制器2:ZMP補償器(ZMP compensator) 。目的:保持機器人骨盆關節(如圖6所 示)在動態運動中水平方向的平衡。作用階段:1,3全階段;2,4中的SSP 階段。

(圖6,機器人的骨盆(pelvis)關節示意圖)
控制器3:軟著陸控制器(Soft landing controllers)。目的:吸收機器人腳著陸時的撞 擊,調節機器人腳與著陸區的接觸面。作用階段:2,4中的DSP階段。
B.步行模式控制策略
控制器1:骨盆搖擺振幅控制器(Pelvis swing amplitude controller )。目的:補償機 器人骨盆關節側部搖擺振幅。作用階段:2,4中的DSP階段。
控制器2:軀幹俯仰角/側傾角控制器(Torso pitch/roll controller ) 。目的:補償骨盆 關節的中心位置相對於軀幹的俯仰角/側傾角搖擺。作用階段:2,4中的DSP 階段。
C.行動預測控制策略
控制器1:過傾斜控制器(Tilt over controller )。目的:補償機器人踝關節軌跡,以避 免機器人在壓延方向上的過傾斜。作用階段:1,3全階段。
控制器2:著陸位姿控制器(Landing position controller ) 。目的:避免機器人腳著 陸時造成的不穩定。作用階段:2,4全階段。
然而,一般的雙足平衡演算法無法解決地形不均勻或地形傾斜的問題,因此,在地形不均勻或地形傾斜這種複雜環境中,一些新的控制需要被引入:
A1.直立姿態控制器(Upright Pose Controller )
這種控制器可以使機器人在傾斜地形中始終保持直立姿勢,從而保持整個機體的平衡。對於雙足機器人而言,傾斜地形的「全局傾斜角」的測量就顯得尤為重要。一般採用的測量方法是在機器人的軀體內部安裝一個2軸的加速度計,在加上一個低通濾波器就可以構成一個傾斜計。
對於機器人的俯仰姿態控制,在規定的踝關節軌跡上,直立姿態控制器附加了含有俯仰誤差的PI控制器:

直立姿態控制器則可由下列等式實現:

圖7更加直觀的反映出了使用控制器之前與之後的俯仰控制平衡性差異:

使用控制器之前與之後的側傾控制平衡性差異:

至於後面的.....碼不動了......暫且先到這裡吧

----------------這---------應------------該----------是-----------分----------割--------線---------吧---------
2016年6月26日更新 ( ̄┰ ̄*)
看到評論里有大神提到了沒有ZMP sensor怎麼控制雙足機器人的問題,正好有一個例子可以看一下
2011年的時候,德國航空航天局下屬的機器人學和機電學研究所(Institute of Robotics and Mechatronics)發布了一款名為「DLR」的機器人(如下圖所示)

它是由Christin Ott及其帶領的團隊一起研發的,和一般基於ZMP的雙足機器人不同,DLR並不依賴於ZMP的輔助控制。德國人給它的定義是「Torque controlled humanoid robot"即基於力矩調節控制的機器人。
力矩調節的核心思想是「當機器人受到外界的干擾時,預期的力和力矩可以同時作用以使得機器人始終保持平衡(如下圖)

DLR機器人採用的控制器是一個名叫「grasping-inspired controller 」(實在是只能意會)這個控制器實現的演算法是一種優化演算法,這種演算法可以計算上述平衡策略中所需要的力和力矩,從而抵消外界擾動。
下圖所示的是DLR所使用的平衡控制器的框圖

由於鄙人實在是才疏學淺,所學並未涉及到力矩控制平衡演算法,所以將文獻的標題寫在下方,諸位感興趣可以看看:

Posture and Balance Control for Biped Robots based on Contact Force Optimization」,Christian Ott, Maximo A. Roa, and Gerd Hirzinger。2011 11th IEEE-RAS International Conference on Humanoid Robots.
978-1-61284-868-6/11/$26.00 ?2011 IEEE

其實我真正感興趣的是Boston Dynamics 的Altas雙足機器人,BD出品,必屬精品(你懂的),可是資料少的可憐,上窮碧落下黃泉,兩處茫茫皆不見。。。。還是很想知道Altas的控制演算法的

哦,對了,其實答主是一個害怕與人社交的工科男 所以還是不要私信了吧 問題在評論裡面說出來就好,我們大家可以共同討論,集思廣益嘛?(???????)?


--------------分-------------------------割------------------------------------線---------------------------
有大神私信我問了一種日本機器人的平衡演算法,在這裡回復一下
這種機器人是由一個名為Dr. Guero的日本機器人研究者開發的,但是他的真名是Masahiko Yamaguchi........這裡值得注意的是,如果在網站上搜索Masahiko Yamaguchi的相關研究成果,你會發現:

好吧,居然是一個化學家。。。。。雖然不排除重名重姓的可能。。。。。。。但還是有點奇怪
有點扯遠了,說回機器人。。這種日本機器人實際上是一個系列,以「PRIMER」開頭的一個系列,說的在通俗一點,相比諸位多多少少都在媒體上曾經見過一個能夠自己騎自行車並剎車的小機器人吧?沒錯,就是這種機器人。

(PRIMER-V2 robot)
在這種機器人的官網上(http://ai2001.ifdef.jp/)還能找到這一系列機器人的更多功能及其圖片,例如走鋼絲什麼的:

然後我們來聊聊這種機器人的工作原理。
首先,官網給出的原理非常「玄妙」,難以理解,因為居然用的是AI!!也就是人工智慧:

還有很玄妙的原理圖:

呃,我個人表示——完全看不懂。。。。
好吧,那麼在網上能否找到其他相關信息呢?答案是肯定的,但是和官網感覺。。。。畫風不一樣啊:

例如這一段話的最後一段就說「the machine works on the remote control........"頓時就感覺有點low了有木有。。。畢竟在我心中,遙控操縱的機器人和自主機器人還是有差距的。
再比如:

第一段的最後提到,儘管平衡是自主完成的,但是在決定方向時,必須(has to)要一直(at all times)遙控。。。仁兄,高大上的AI呢???
然後又有關於V4機器人的資料:

這段話裡面提到了Dr.Guero的PRIMER-V4機器人是基於KHR-3HV(這個機器人網上有賣的,有詳細的說明書,網址在文章最後)改造的,而關於PRIMER-V4的平衡原理,一個中文網站上寫到:

用的是「傾斜感應器」,應該和我上文提到的控制器差不多,嗯。。。
其實我覺得吧,這個系列的日本機器人,好像並沒有多麼的依靠演算法,控制之類的,應該是一種編程+示教+遙控的機器人,由於文獻網站上沒有關於這種機器人的Datesheet和Paper,所以這也僅僅是我的個人猜想,歡迎一起討論。
不知道對您的問題有沒有幫助。。。 ople/ebd7677d9ff3f1409d23b17604558be4

http://blog.cavedu.com/%E6%9C%AA%E5%88%86%E9%A1%9E%E8%B3%87%E6%96%99%E5%A4%BE/%E4%BA%BA%E5%9E%8B%E6%A9%9F%E5%99%A8%E4%BA%BA-kondo-khr3-hv-ver-2-%E7%A8%8B%E5%BC%8F%E7%B7%A8%E8%BC%AF%E4%BB%8B%E9%9D%A2%E7%B0%A1%E4%BB%8B/
http://www.robotics.com.hk/index.php?option=com_wrapperItemid=119
http://www.robaid.com/robotics/primer-v4-a-steel-wire-crossing-robot.htm
http://ai2001.ifdef.jp/

如有問題,還望指正,大家互相學習 : )


Jessy Grizzle 總結的主要有四大類:

完整視頻在:
https://www.youtube.com/watch?v=EMX7wc0vcWE

Passive walker 最簡單,主要是關節少 驅動器少,直接找到穩定的周期軌道就可以控制平衡,在平地上走很長時間。最開始的工作始於 McGeer的 Passive dynamic walker 自己走下滑坡。

ZMP ; capture point ; HZD 控制的都是多自由度 多輸入的機器人,他們共同的思路就是:降維。具體方法略有不同。

ZMP 的降低維度方法是把機器人抽象成質心,通過調節質心的加速度使得機器人的ZMP穩定在設計好的ZMP附近.

capture point 跟ZMP直接相關,就是把質心動力學進一步從二階線性微分方程化簡為關於Capture point的一階線性微分方程,通過調節ZMP使得機器人的capture point 未定在設計好的Capture point附近。

HZD的方法和之前的都不一樣,但是最體現出降維的思想。通過「部分反饋線性化」,把機器人動力方程劃分成內動態和外動態。內動態雖然不受輸入控制,確是周期穩定的(一個周期包括single stance, double stance, impact).

有空補細節。


北京鋼鐵俠科技有限公司在這方面做的工作比較多,已經完成三個版本的迭代。他們自己設計機器人運動控制演算法,稱為機器人運動腦。


推薦閱讀:

恐龍戰隊的發展歷史和劇情是怎樣的?
是否能編寫一個答題機器人自動回答知乎上的問題?
機器人編程怎麼入門?
能否簡單並且易懂地介紹一下多個基於濾波方法的SLAM演算法原理?

TAG:機器人 | 控制演算法 | 卡爾曼濾波KalmanFilter | PIDControllerPID控制 |