說機器人研究了幾十年沒多大進展?一位機器人從業者看不下去了……

為什么有些雙足機器人能像人一樣直立行走,還不容易倒?
你有沒有想過這么一個問題:那些能直立行走的機器人是怎么保持行走平衡的?
編者按:此前,深圳灣(微信公眾號 ID:shenzhenware)報道過能直立行走的擬人步態機器人 DURUS ,至于類似的行走機器人,當然還有大家熟悉的波士頓動力 Altas。要讓機器人實現直立行走,不僅要有底層可靠的硬件基礎,還要有上層成熟的軟件技術,而機器人行走所涉及的平衡算法是其中重要的一部分。本文主要介紹雙足平衡的主流算法——基于 ZMP 的動態步行,本文作者系一名機器人專業在讀研究生——龔睿。
雙足機器人涉及的平衡算法比較多,例如「增量式模糊控制 PD 控制算法」,「機器學習算法」等,本文主要側重于介紹一種應用于復雜地形(帶有傾斜角度的或表面不均勻的落腳面)的平衡算法。
雙足機器人的平衡控制都經歷過哪些階段?
在最開始,雙足機器人使用的平衡控制策略是「靜態步行」(static walking)。這種策略的特點是:機器人步行的過程中,重心(COG,Center of Gravity)的投影始終位于多邊形支撐區域(support region)內,這種控制策略的好處在于:機器人可以在行走動作中停止而不摔倒,但代價是行動速度非常遲緩(每一步需要花費10 秒甚至更長,因為需要保持重心的投影始終位于支撐區域,否則將不穩定)。

· 圖 1:靜態步行
因為靜態步行和人類的期望相差甚遠,于是人類開發出來了另一種步行平衡策略——「動態步行」(dynamic walking)。在動態步行中,機器人的行動速度被提升至了每步不超過 1 秒。但其弊端也是顯而易見的,機器人難以在運動的狀態下立即停頓(慣性的作用),從而使得機器人在狀態轉換的過程中變得不穩定。
為了解決慣性帶來的影響,零力矩點(ZMP,zero moment point)被引入到了這一控制策略中。在單腳支撐相中,ZMP=COG。其好處在于,當 ZMP 嚴格的存在于機器人的支撐區域中,機器人則絕對不會摔倒。

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

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

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

· 圖 5:雙足機器人的行走周期和行走階段
圖中的 1 - 4 階段是一個周期。而在第 2 和第 4 階段可以發現,在這兩個階段中,機器人的 SSP 與 DSP 發生了「共存」,即同時存在狀態。
在一般的雙足平衡的算法中包含了三種控制策略:
A.實時平衡控制策略(real-time balance control strategy)
B.步行模式控制策略(walking pattern control strategy)
C.行動預測控制策略(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 更加直觀的反映出了使用控制器之前與之后的俯仰控制平衡性差異:

圖 8 顯示了使用控制器之前與之后的側傾控制平衡性差異:

后記
以上介紹的是一種應用于復雜地形平衡控制算法,另外也有一些沒有利用 ZMP 傳感器進行平衡控制的機器人,比如,德國航空航天局下屬的機器人學和機電學研究所(Institute of Robotics and Mechatronics)在 2011 年發布的一款名為「DLR」的機器人,與一般基于 ZMP 的雙足機器人不同,DLR 依賴于力矩調節控制算法,這種算法可以計算上述平衡策略中所需的力和力矩,從而抵消外界擾動。

· 圖 9:DLR
相信很多人對美國波士頓動力的網紅機器人——Altas 的控制算法感興趣,但鑒于 Altas 的應用涉及到軍工行業,波士頓動力所公開的資料也非常少,我們也無從得知。
本文系技術分析類文章,歡迎有技術背景的讀者點評和參與討論,也歡迎非技術背景的讀者圍觀評論和點贊。
責任編輯:林億