吳陳成,李 光,謝楚政,于權偉,章曉峰
移動機器人是自動執行工作的機械裝置,其移動范圍遠大于自身結構的特征尺寸。它既可以接受人類指揮,又可以運行預先編排的程序,甚至可以根據以人工智能技術制定的原則綱領行動。它的任務是協助或取代人類工作,例如在制造業、建筑建造業或其他有危險作業的工作。狹義上的分類包括:輪式移動機器人、足式移動機器人以及輪足混合式移動機器人。相關研究領域有三維環境構建、定位、路徑規劃、運動控制等。輪式移動機器人在作業過程中對地形要求較高,無法適應復雜的地形。而基于四足哺乳動物的形態設計的四足機器人由于其結構上的特點,能夠適應錯綜復雜的地形且具有較強的運動屬性[1-2]。美國波士頓動力公司研發的Big Dog 四足機器人采用液壓驅動,具有良好的承載能力,在其控制中也用到SLIP 模型,Big Dog 在近代四足機器人的發展史上具有里程碑意義[3]。波士頓動力公司后續又發布了LS3[4]、Spot、 SpotMini 等一系列先進的四足機器人[5]。瑞士蘇黎世聯邦理工學院研制的ANYmal[6]和麻省理工學院研制的Cheetah 3[7]靈活性較高。國內宇樹科技研發的萊卡狗(Laikago)[8]具有優異的動態性能,其中Unitree A1 款機器狗具有深度視覺功能,可以實現實時3D 地圖創建及導航規劃。
與傳統的固定式機器人不同,四足機器人通過腿部與地面的接觸產生相互作用力實現對速度與姿態的控制。而對于四足機器人來說運動的控制十分重要,所以科研工作者們對四足機器人運動過程中的跳躍控制問題進行了研究。為獲得良好的運動控制性能,需對四足機器人進行精確建模[9],但由于現有的四足機器人結構較復雜,又有各種不同的運動步態,所以研究者很難對整個四足機器人系統進行運動學和動力學分析。因此,有必要建立一個簡單有效的等效模型以簡化四足機器人的運動過程,從而建立一個能夠實現對四足機器人有效控制的模型。
R.Blickhan[10]于1989年首先提出了一種彈簧負載倒立擺(spring-loaded inverted pendulum,SLIP)模型,用于簡化四足機器人系統,描述四足機器人的運動過程。通過合理設置SLIP 模型的物理參數和初始條件,此模型就能夠用來模擬四足機器人的運動過程。SLIP 模型的動力學運動規律實驗能夠與各種四足哺乳動物的運動實驗結果吻合,由于該模型對四足機器人系統進行了簡化,所以很大程度上簡化了四足機器人控制問題的復雜程度[11-13]。
控制器的結構分為上層運動規劃(high-level motion planning)和下層跟隨(low-level tracking)。上層運動規劃一般基于簡化的動力學模型來預測重心和腳的軌跡,而下層跟隨則考慮更加復雜的模型來規劃各個關節的位置或者力矩。上層運動軌跡的產生一般都要基于模型對未來進行預測,這也就是模型預測控制(model predictive control,MPC)的基本思路。用簡化模型的原因是復雜模型的計算量過于龐大,而目前沒有較好的方法對其進行實時計算。雖然上層軌跡是基于簡化模型的情況,但是下層考慮了更復雜的模型,因此最終產生的關節軌跡符合實際機器人的動力學特性,而且能較好地跟隨上層軌跡。
在研究SLIP 模型的運動控制問題時,有些學者通過建立SLIP 模型的動力學方程研究它的運動特性。然而,由于系統的動力學方程是一組非線性方程組,無法得到其具體的解析解,而通過數值分析獲得近似解析解的方法需通過大量的迭代運算,不適合實時控制[14]。而在四足機器人跳躍運動過程中,接觸地面時會產生碰撞,且系統本身存在阻尼,這會造成能量損失,如何精確計算這部分損失能量也尚待解決。
本文以宇樹科技研發的Unitree A1 四足機器人為研究對象,采用彈簧負載倒立擺模型對四足機器人結構進行簡化處理,將模型的運動過程分為著陸相與騰空相,并建立了相應的動力學方程。在仿真平臺進行動力學仿真時考慮了模型與地面接觸時產生的碰撞與阻尼,并利用動力學仿真得到的樣本數據訓練了一個神經網絡。經實驗驗證,基于神經網絡的方法可以較精確地實現對SLIP 模型運動的控制。
SLIP 模型是一種簡化的描述機器人在運動時狀態的模型,包含頂部的質量球與相連的彈簧腿兩部分,即用一條彈簧腿等效機器人的腿部,將機器人的機體等效為彈簧腿頂部的一個密度較高的質量球,并忽略機器人腿部質量[15]。SLIP 模型如圖1 所示,模型與地面接觸點為O點,水平方向為x軸,豎直方向為y軸,重力加速度為g,沿y軸負方向,質量球質心與接觸點O水平距離和垂直距離分別為x、y,模型與y軸正方向所成角度為θ,彈簧原長為r0。
四足機器人由機體和支撐機體的四條機械腿組成,通過電機驅動機械腿實現機器人站立、行走、奔跑、跳躍等動作,如圖2 所示。而SLIP 模型用一個彈簧腿來等效機器人的腿部,將機器人的機體等效為彈簧腿頂部的一個質量球,并忽略機器人腿部質量,其中將四足機器人的四條腿等效為一條腿。
M.H.Raibert 等[16]于1986年提出了“單腳步態(one-foot gaits)”,可將SLIP 模型應用到雙足機器人上,只需要滿足兩個條件,即每次只能由一條腿提供支撐,且著陸相和騰空相交替進行。雙足機器人的步態如果滿足單腳步態就可將每一步都等效為單腿的SLIP 模型,這個過渡過程很直觀。但想要將SLIP模型應用到四足機器人上,就要引入虛擬腿(virtual leg)的概念。多足的過渡基于雙足的單腳步態,將四足機器人的四條腿兩兩分組,每一成對的組作為一個控制單元,則實際可等效為一個單腿模型,這就是虛擬腿的含義。
使多足機器人遵循單腳步態,那么多足機器人的控制就可以等效為雙足機器人的控制,進而轉化到單腿模式。目前,四足機器人的步態主要有對角小跑(Trot)、踱步步態(Pace)、跳躍步態(Bound)。對角小跑指每次邁步同時抬起對角線上的兩條腿,并以二分之一的相位差輪流向前邁步;踱步步態指每次邁步時會同時抬起身體同側的兩條腿,身體異側的兩對腿則以二分之一的相位差輪流向前邁步;跳躍步態指每次邁步同時抬起身體前后同側的兩條腿,以二分之一的相位差輪流向前邁步。在四足機器人不同步態下,可以將相同運動特征的兩個腿組隊看成是一條腿,形成不同的等效虛擬腿。各種步態的等效虛擬腿如圖3 所示。

圖3 不同步態下的等效虛擬腿Fig.3 Equivalent virtual legs in different gaits
由圖3c 可知,由此實現了四足機器人在跳躍步態下到SLIP 模型的簡化。將復雜的四足機器人系統簡化為更加易于控制和研究的單腿SLIP 模型,其簡化過程如圖4 所示。

圖4 四足機器人模型簡化過程Fig.4 Simplified quadruped robot model
盡管四足哺乳動物有各種各樣的步態和運動形式,但根據仿生學的研究內容可知,其步態周期基本處于“伸長—觸地—發力—離地—縮短”運動循環。四足動物利用下肢獨特的生物結構,在運動過程中盡量減小著陸時的沖擊,并儲存能量以供重復使用。四足動物的這些運動特性在SLIP 模型上也有相應體現。例如當模型的彈簧腿與地面碰撞時,可以減小沖擊,能量可轉化為彈簧的彈性勢能并存儲。
將四足機器人的運動簡化為SLIP 模型后,其一個完整的步態周期包括4部分:“騰空—著陸—回彈—騰空”,如圖5 所示。

圖5 SLIP 模型一個運動周期示意圖Fig.5 Schematic diagram of the motion cycle of SLIP model
由圖5 可知,一個運動周期的各狀態如下:
1)騰空。模型與地面無接觸,彈簧長度為原長度,此時模型只受到豎直向下的重力作用。
2)著陸。當模型腿部剛開始接觸地面時,彈簧由自然狀態開始被壓縮,此時模型不僅受到重力作用,還受到地面給予的支撐力與摩擦力作用。模型的動能和重力勢能轉化為彈簧腿的彈性勢能,直至彈簧達到最大壓縮量,且模型沿豎直方向的速度為0。
3)回彈。彈簧壓縮量達到最大后,彈簧的彈力大于機體所受重力沿彈簧的分力,使得機體有一個向上的加速度,于是機體開始向上運動,彈簧在之前儲存的彈性勢能繼而又轉化為機體的動能和重力勢能,直至彈簧長度恢復原長,模型即將脫離地面。
4)騰空。由于慣性作用,模型會繼續向上運動并脫離地面,此時彈簧長度已經恢復原長,彈力為0,模型又只受到豎直向下的重力作用,直至機體質心上升到最高點,模型豎直方向上的速度減為0,完成一個運動周期。
由騰空相到著陸相的轉換條件就是彈簧處于原長且即將被壓縮,而相反的轉換條件就是彈簧被壓縮且即將恢復到原長。
SLIP 模型機體的質量為m,等效彈簧腿的長度為r0,且忽略其質量,而等效彈簧腿的剛度為k,阻尼為c。SLIP 模型與豎直方向的夾角為θ,可用來描述模型在平面內的姿態。
當模型處于騰空相時,彈簧長度為原長,彈力為0,模型只受到沿豎直向下的重力作用,機體質心的運動軌跡為一條拋物線,可以很容易地得到騰空相時系統的動力學方程,為

g為重力加速度。
當模型處于著陸相時,其運動分析比騰空相復雜。彈簧腿末端與地面接觸時機體、腿部彈簧和地面形成了一個力學模型。此時系統總的動能為

式中:EK為系統總動能;
平動動能的計算公式為

式中: 為彈簧長度變化速率;
r為彈簧腿長度;
著陸相的系統勢能包括重力勢能和等效彈簧的彈性勢能,計算式如下:

由式(3)和式(4)可求得系統的拉格朗日函數如下:

定義廣義坐標系q=(r,θ),則系統著陸相的動力學方程為

為了簡化系統,在其著陸相時只考慮彈簧阻尼力-c,則系統著陸相動力學方程可進一步表示為

將拉格朗日函數代入式(7)的推導結果如下:

在機械系統動力學自動分析(automatic dynamic analysis of mechanical systems,ADAMS)軟件中建立四足機器人的簡化模型,即SLIP 動力學模型,如圖6 所示。

圖6 SLIP 動力學模型Fig.6 SLIP dynamics model
在圖6 中,將機器人的機體等效為彈簧腿頂部的一個質量球,其質量參考Unitree A1 四足機器人,取值為12 kg,球半徑為5 cm;彈簧腿為長度是40 cm的彈簧阻尼器,沒有質量;彈簧腿下方末端處的實心球,用來模擬四足機器人足部,半徑為2.5 cm,由于SLIP 模型忽略腿部質量特性,而仿真時質量不能為0,所以將其質量設置為0.000 1 kg,以忽略其影響。
腿部等效彈簧的剛度計算參考生物力學的研究成果,表示為機體質量的函數[17],如式(9):

等效彈簧的阻尼與運動質點的速度大小成正比,取其值為0.014[18]。由此可以得到四足機器人SLIP動力學模型的各項參數,如表1 所示。

表1 四足機器人SLIP 動力學模型參數Table 1 Parameters of SLIP dynamics model of quadruped robots
上述SLIP 系統具有足部與機體之間的軸向伸縮自由度,在模型足部位置處添加足部與機體質量球之間的滑動副,可以約束彈簧腿只沿彈簧軸伸縮運動。
為了更加真實地模擬SLIP 系統在跳躍時與地面的接觸過程,需要設置地面參數以及模型與地面間的接觸力和摩擦系數,將地面的碰撞剛度設置為1×108,模型與地面間的接觸力類型為庫侖摩擦,靜摩擦系數為0.5,動摩擦系數為0.4。
模型初始位置頂部質量球質心距離地面的高度為70 cm,模擬SLIP 模型在不同水平初速度v0下,以不同的著陸角觸地,記錄頂部質量球質心彈起達到最高點時的水平末速度v1和質心高度h,其中一些記錄數據如表2 所示。

表2 SLIP 模型仿真數據Table 2 SLIP model simulation data
經由不斷地仿真,最終得到了一份包含817 份樣本的數據。
構建3 層前向BP(back propagation)神經網絡,第一層為輸入神經元,共3 個,分別為水平初速度v0、水平末速度v1和質心彈跳高度h;第二層為隱藏層神經元,共6 個;第三層為輸出神經元,輸出為著陸角θ。各層之間的傳遞函數選擇正切S型傳遞函數(tansig),學習率設置為0.05。將之前得到的817份樣本數據輸入到Matlab 中,利用randperm 函數將817 份數據隨機打亂,并選取前800 份作為訓練樣本,后17 份作為測試樣本。通過多次嘗試,發現當訓練的迭代次數為44 次時,訓練效果最好,3 條Mean Squared Error(均方誤差)曲線擬合效果較好,用于訓練和測試的樣本數據擬合效果也較好,神經網絡的均方誤差迭代44 次時為1.5×10-2,輸出的是著陸角的均方誤差,如圖7 所示。

圖7 神經網絡均方誤差曲線Fig.7 Neural network mean square error graph
用于訓練的樣本數據擬合度達到0.999 79,用于測試的樣本數據擬合度達到0.999 87,理想的狀態下擬合度達到1 時最好。從圖8 中可看出所有樣本點基本上都處于一條直線上。

圖8 樣本數據擬合度Fig.8 Fitting degree of sample data
為測試訓練好的神經網絡,取5 個不存在于數據樣本中的未知樣本,樣本輸入包括3 個參數:水平初速度v0、期望水平末速度vld和期望質心彈跳高度hd,樣本輸出為神經網絡計算出的著陸角θ。然后利用在ADAMS 中建立的SLIP 動力學模型進行仿真驗證,仿真結果如圖9 所示。

圖9 ADAMS 仿真驗證Fig.9 ADAMS simulation verification
在圖9 中,實線為SLIP 模型運動時質量球質心的水平速度曲線,虛線則是質心的高度曲線。
將仿真數據代入神經網絡計算出著陸角,并以水平初速度v0進行仿真,得到最終的水平末速度v1和質心彈跳高度h。其數據如表3 所示。從表3 中可以得出,v1的最大偏差為0.018 6 m/s,h的最大偏差為0.005 6 m,這個偏差可以接受,故神經網絡可以用于SLIP 模型的運動控制。實現對SLIP 模型的加速、減速、勻速、急停以及穩定高度的運動控制。

表3 驗證樣本及誤差Table 3 Sample and error verification
本文研究了四足機器人跳躍步態時的運動控制問題。采用SLIP 模型簡化了四足機器人的結構,并建立了模型的動力學方程。通過分析著陸角對SLIP模型系統的影響,提出了通過調節著陸角實現對SLIP 模型水平速度和跳躍高度的控制。利用訓練好的BP 神經網絡對著陸角進行預測,得到期望的水平速度和跳躍高度。ADAMS 仿真結果表明,本方法可以實現對SLIP 模型的運動控制。