Google旗下機器人Atlas步行演算法再升級,成功挑戰困難地形

作者:龔睿

初代的Atlas機器人曾經在2015年的DARPA競賽中展露頭角,但是其面臨的最大問題是如何平衡行走甚至只是保持直立(故而在15年的DARPAz競賽中,機器人時常摔倒)。近期,藉助佛羅里達理工學院人類和機器人認知(IHMC)研究人員開發的演算法,Atlas已經可以實現困難地形的行走——部分國內科技媒體將其形象的比喻為「走梅花樁」(參見網易科技提供的新聞報道:tech.163.com/16/1202/07)。可見演算法升級後的Altas的功力之深。研究成果發表在題為——「Walking on Partial Footholds Including Line Contacts with the Humanoid Robot Atlas」的論文當中,本文是基於原論文的闡述和進一步分析

Atlas使用的新演算法並不依靠原有的關於「雙足機器人立足點」的相關學科知識,而是基於能夠用以提升機器人步態性能的預期立足點的相關信息。在邁出一步後,機器人會嘗試以轉移「壓力中心 (center of pressure)」的方式尋找新的接觸面。在尋找新的接觸面的過程中,機器人會通過腳在接觸面的邊緣旋轉或者在探索中已取得的腳部壓力中心推斷出可用的立足點。預判出的落腳點會被用於基於動量的機器人全身控制演算法中。受到人類在複雜地形中行走機制的啟發,在解決「局部立足點(partial footholds)」行走與平衡的問題方面,研究人員採用「快速的動態步行(dynamic stepping)」與「機器人上半身角動量(upper body angular momentum)」相結合的策略。

I.演算法框架

此次Atlas使用的是一種基於動量的(momentum-based)控制演算法框架,該框架的結構如下圖(1)所示:

圖(1)Atlas的控制演算法框架

Note:事實上,這一演算法框架在最初的Atlas的設計中就已有使用,Altas的設計團隊在2016年的International Journal of Humanoid Robotics(Vol. 13, No. 1 )上首次發表了題為Design of a Momentum-Based Control Framework and Application to the Humanoid Robot Atlas的控制演算法設計,圖(1)即來源於此論文。

該演算法使用「二次規劃——Quadratic Program (QP)」以優化控制器的時間步長,QP的公式表達為:

目標函數定義為:

函數中的各個參數定義,為避免歧義,這裡引用原文:

基於QP法的雙足機器人行走狀態機可以表示為:

這裡簡要的介紹以下QP法

雙足機器人的各個運動任務被連接成單個矩陣方程:

這裡定義:

同樣的,所有地面反應的力螺旋(wrench)之和也可以被寫做單個矩陣方程:

這裡定義:

同時,機器人運動的質心動量矩陣方程(centroidal momentum matrix-CMM)為:

聯立上述所有等式和定義,得到如下的二次規劃表達式( quadratic program-QP):

經過QP優化後的核心控制器在有限的支撐面內確定機器人探尋落腳點並保持平衡方面有了提升。

該框架的對於控制機器人的主要貢獻在於:

(1)所有從前被當作約束條件的機器人期望行動都成為了目標函數(objective function)的一部分,通過行走控制演算法(walking control algorithm)的在線更改,控制機器人的現行狀態,從而調整成本函數C在函數中不同部分的權重,以優化具體目標的優先順序。

(2)以「c_{p} 」的形式引入了目標對於地面的反作用力,從而可以在與環境的接觸中對反作用力進行特定的分布,從而控制末端執行器所期望得到的COP(壓力中心——Center of Pressure)。

對於一隻機器人的腳,定義其在環境中的函數為f,那麼機器人腳底的COP可以表達為:

在上述函數中,Q_{f} 將所有的力
ho _{f} 轉化為了腳與平面接觸點處的單一「力螺旋(a single wrench)」。S是一個選擇矩陣,只選擇和腳底一致的地面接觸應力水平方向的扭矩。F_{f}^{Z} 是腳部垂直方向力的大小。矢量r包含了所有期望的額COP的位置:

II.立足點探測

圖(2)所呈現的是機器人雙腳的側視圖,其中B足是在接觸面邊緣進行旋轉的腳。如果機器人腳的「旋轉」被探測到(也就是說一旦有旋轉情況出現),則機器人的控制演算法會調整立足點,從而移除不能夠為機器人支撐重量的 部分。腳部旋轉的速度omega 和腳與地面的夾角	heta 將被作為探測旋轉的指示物進行測量。

圖(2)立足點探測

通過利用COP的相關歷史記錄,計算落腳點所有已測量的COP位置的凸包,可以對立足點得到一個更加保守和準確的估計,如圖(3)所示:

圖(3).估測實際立足點

III.行走和平衡控制

瞬時捕捉點(Instantaneous Capture Point-ICP)是Atlas機器人在處理平衡態方面主要使用的指示器。該指示器所基於的模型是線性倒立擺模型——Linear Inverted Pendulum Model(LIPM)。ICP定義為:

其中,omega _{0} =sqrt{frac{g}{z} } ,是倒立擺常數。由於地面參考點定義於地平面,該等式在此部分中被降減為了兩個維度。

雙足機器人是在LIPM的基礎上再進行拓展——在線性倒立擺的頂部加一個飛輪便可模擬機器人上體的動量,並可用於控制雙足機器人的步態。從這一模型可以看出,中心矩樞軸( Centroidal Moment Pivot-CMP)的參考點控制著ICP的動力學特性:

該等式說明,隨著兩者距離變大,ICP將會隨著速度的增加偏離CMP。

在正常的雙足機器人的行走中(即沒有複雜棘手的地形環境),機器人的軀體一直控制在上體角動量幾乎為零的豎直狀態如果沒有額外的扭矩施加給COM(Center of Mass),COP將會和COM保持一致。那麼,在ICP始終位於支撐平面的情況下,僅僅採用COP策略保持機器人平衡便足夠了;然而在ICP位於支撐平面外部的情況下,僅僅採用COP策略則不足以使機器人繼續保持平衡,在這樣的情況下,引入步進調節或角動量。當機器人邁出步伐後ICP位於擺動結束位置,角動量調節通常會避免使用。當步進調節無法使用或不足以勝任平衡調節的任務時,角動量調節會被用以暫時分離CMP和支撐區域,這些取決於可用的關節扭矩和機器人的活動範圍。

在整個的控制框架下,期望的CMP的位置會被轉化為一個具體的優化目標——期望的水平線性動量變化率:

根據控制法則,期望位置的CMP可以用下式計算:

而當機器人的落腳點變得很小的時候(比如機器人踩在石頭上),在機器人行走的過程中保持平衡就變得尤為困難。縮短機器人的步進時間(step time)有助於提升機器人在小型立足點平衡時的魯棒性(robustness)。

圖(4)概念性的展示了在計入了「干擾量——disturbances,(如感測器雜訊——sensor noise,建模不確定性——modeling uncertainty)」的範圍內,研究人員所規劃的ICP軌跡:

圖(4)ICP軌跡的設計

圖(4)中,藍色部分展示的是在機器人右腳前進步態中不同搖擺時間下的ICP的軌跡線。暗綠色部分表示站立的腳僅與地面呈「線接觸(a line contact)」,淡藍色區域代表的是會使ICP移離正常路徑的干擾項(感測器雜訊,建模不確定性)。可以看到,擁有更短的擺動時間的機器人對於干擾有著更強的抗性。如果機器人擺動的足夠快,那麼ICP不能進入機器人的姿態立足點。相反,它被引導到即將到來的立足點,機器人需要完成步態以恢復平衡

CMP和COP的差異直接與角動量的改變有關:

也就是說,位於機器人COM的扭矩可以用於將CMP暫時移動到支撐機器人的多邊形平面之外,並且將ICP驅動回支撐區域內部——當ICP失去支持且不能被即將到來的步驟捕獲時,這是十分必要的。對機器人的COM施加扭矩,則機器人的上體會產生類似於「人類在小的立足點上受到大推力而調整體態恢復平衡」的「撲倒(lunging)運動。在Atlas的運動中,這些扭矩是QP的輸出且不會被明確地計算。

當ICP離開機器人的支撐平面時,機器人會做出」撲動作(lunging maneuver)以試圖恢復自身平衡。圖(5)的左側部分展示的是在機器人做出「撲動作」時以地面為參考點的俯視圖。CMP和COP的差值對應機器人角動量的改變:CMP將ICP「推回」到所期望的軌道。圖(5)右側部分的模擬展示的是Atlas在被推向左邊時恢復平衡採用的「撲進技術(lunging technique):

圖(5)Atlas採用lunging technique恢復平衡

如果期望的立足點很小(比如石頭尖),機器人會將自身重量移近站立著的那隻腳,並在將重量從站立的腳轉移走之前,尋找接下來的立足點,圖(6)展示的是當ICP位於機器人步伐末端時ICP的運動軌跡:

圖(6)Altas在小立足點情況下的調整策略

利用現有的關於雙足機器人立足點的知識,ICP和COM的軌跡可以在機器人的行走步伐中做出調整:如果當前的立足點很大,我們則將位於步伐末端期望的COM移動至更加接近當前立足點處——這樣做可以防止機器人從新的立足點處轉移很多的重量。從另一方面講,如果支撐站立的區域很小,我們會將機器人即將進行的下一個步態做主動的向下傾斜調整。如圖(7)所示:

圖(7):在雙足機器人站立的腳被部分地面支撐並同時行至一個良好的立足 點,機器人將結束行走,將更多的重量轉移到支撐於良好立足點的腳上。

IV.計算機模擬與真實實驗結果

圖(8)展示的是機器人在一個帶有線形踏板石的模擬平台上行走。當機器人的每一個步伐完成後,機器人將回到靜態穩定的雙足站立狀態,其COM位於機器人的多邊形支撐平面內。在繼續行走之前,機器人開始探索新的立足點,這個過程大概需要花費1-3s,這取決於合適立足點的位置。

圖(8)計算機模擬平台中的Atlas

在模擬的過程中研究團隊發現,只要支撐機器人的左右腳的聯合動作為機器人提供了足夠大的支撐面積,機器人可以在每一個步驟後恢復平衡;如果立足點在「整體」和「部分」之間交替,則機器人同樣可以通過探測立足點走過踏板石。然而現實當中的表現和模擬平台上的表現有差異,主要因素有以下幾個方面:

(1)扭矩和速度限制著機器人上的執行器(actuator),從而束縛了步進速度和可實現的角動量變化。

(2)機器人髖關節和脊椎關節的最大關節角度限制著「撲進」動作的幅度。可是可以被預見的,並且在人類中同樣發現有類似的限制存在。實驗中Atlas用於平衡的ICP演算法依賴於以飛輪作為改進的LIPM模型,而這一模型不包含的「關節-運動」的限制知識。為了改進機器人的演算法,需要擴展包括運動範圍的知識和其他運動限制的新控制器。

(3)感測器的雜訊阻礙著精確的ICP計算和立足點估計。模擬的過程包含感測器的雜訊干擾,但真實情況中機器人結構的彈性(elasticities)和誤差(inaccuracies)使得機器人在局部立足點上的平衡 變得更加困難。預估的機器人速度將尤為嘈雜( noisy)或延遲(delayed)(如果是在過濾(?ltered)的情況下)。研究團隊期望提升狀態估計器(state estimator)以提供更加精準和快速的機器人的狀態測量。

圖(9)展示了以地面參考點測量的真實的Atlas機器人運行的俯視圖(從左到右走動)

圖(9)

圖中黑色多邊形顯示線條定位後檢測到的足跡。每第十個數據點被示出,每個數據點的持續時間為10ms秒。

圖(10)的系列圖片展示了Atlas機器人在只有局部立足點支撐其站立的情況下的行走狀態。同一行的圖片是在同一時間拍攝的;每一列從不同的攝像機角度顯示機器人的行走狀態。在行走於局部立足點期間,機器人將其上身向側面「撲倒」,以防止跌落到左邊,在該步驟完成之後,上身被帶回到直立姿勢。

圖(10)Atlas在實測中的表現

-------------------------------------------------------------文末分割線-----------------------------------------------

References:

(1) Walking on Partial Footholds Including Line Contacts with the Humanoid Robot Atlas—— Georg Wiedebach, Sylvain Bertrand, Tingfan Wu, Luca Fiorio, Stephen McCrory, Robert Grif?n, Francesco Nori, and Jerry Pratt.

(2)Design of a Momentum-Based Control Framework and Application to the Humanoid Robot Atlas——Twan Koolen,Sylvain Bertrand,Gray Thomas,Tomas de Boer , Tingfan Wu and Jesper Smith,Johannes Englsberger,Jerry Pratt.

(3)Centroidal dynamics of a humanoid robot——T. Koolen, S. Bertrand, G. Thomas, T. De Boer, T. Wu, J. Smith, J. Englsberger, and J. Pratt

(4)Optimization-based Full Body Control for the DARPA Robotics Challenge—— S. Feng, E. Whitman, X. Xinjilefu, and C. G. Atkeson

(5)An ef?ciently solvable quadratic program for stabilizing dynamic locomotion—— S. Kuindersma, F. Permenter, and R. Tedrake

更多的關於雙足步行機器人的演算法基礎問題可參見我的回答:

zhihu.com/question/4779

推薦閱讀:

圖解嵌入式系統開發之演算法篇:冒泡排序
5/7 演算法題詳解:Compute all mnemonics for a phone number 從一個手機號碼得到所有可能的字元組合
推薦 | 樸素貝葉斯演算法基於R語言的案例實現
C 1.1 無需數學基礎如進行機器學習
長鏈剖分之O(nlgn)-O(1)求k級祖先

TAG:机器人 | 算法 | 波士顿动力公司BostonDynamics |