吳陳成,李 光,謝楚政,于權(quán)偉,章曉峰
移動機器人是自動執(zhí)行工作的機械裝置,其移動范圍遠(yuǎn)大于自身結(jié)構(gòu)的特征尺寸。它既可以接受人類指揮,又可以運行預(yù)先編排的程序,甚至可以根據(jù)以人工智能技術(shù)制定的原則綱領(lǐng)行動。它的任務(wù)是協(xié)助或取代人類工作,例如在制造業(yè)、建筑建造業(yè)或其他有危險作業(yè)的工作。狹義上的分類包括:輪式移動機器人、足式移動機器人以及輪足混合式移動機器人。相關(guān)研究領(lǐng)域有三維環(huán)境構(gòu)建、定位、路徑規(guī)劃、運動控制等。輪式移動機器人在作業(yè)過程中對地形要求較高,無法適應(yīng)復(fù)雜的地形。而基于四足哺乳動物的形態(tài)設(shè)計的四足機器人由于其結(jié)構(gòu)上的特點,能夠適應(yīng)錯綜復(fù)雜的地形且具有較強的運動屬性[1-2]。美國波士頓動力公司研發(fā)的Big Dog 四足機器人采用液壓驅(qū)動,具有良好的承載能力,在其控制中也用到SLIP 模型,Big Dog 在近代四足機器人的發(fā)展史上具有里程碑意義[3]。波士頓動力公司后續(xù)又發(fā)布了LS3[4]、Spot、 SpotMini 等一系列先進的四足機器人[5]。瑞士蘇黎世聯(lián)邦理工學(xué)院研制的ANYmal[6]和麻省理工學(xué)院研制的Cheetah 3[7]靈活性較高。國內(nèi)宇樹科技研發(fā)的萊卡狗(Laikago)[8]具有優(yōu)異的動態(tài)性能,其中Unitree A1 款機器狗具有深度視覺功能,可以實現(xiàn)實時3D 地圖創(chuàng)建及導(dǎo)航規(guī)劃。
與傳統(tǒng)的固定式機器人不同,四足機器人通過腿部與地面的接觸產(chǎn)生相互作用力實現(xiàn)對速度與姿態(tài)的控制。而對于四足機器人來說運動的控制十分重要,所以科研工作者們對四足機器人運動過程中的跳躍控制問題進行了研究。為獲得良好的運動控制性能,需對四足機器人進行精確建模[9],但由于現(xiàn)有的四足機器人結(jié)構(gòu)較復(fù)雜,又有各種不同的運動步態(tài),所以研究者很難對整個四足機器人系統(tǒng)進行運動學(xué)和動力學(xué)分析。因此,有必要建立一個簡單有效的等效模型以簡化四足機器人的運動過程,從而建立一個能夠?qū)崿F(xiàn)對四足機器人有效控制的模型。
R.Blickhan[10]于1989年首先提出了一種彈簧負(fù)載倒立擺(spring-loaded inverted pendulum,SLIP)模型,用于簡化四足機器人系統(tǒng),描述四足機器人的運動過程。通過合理設(shè)置SLIP 模型的物理參數(shù)和初始條件,此模型就能夠用來模擬四足機器人的運動過程。SLIP 模型的動力學(xué)運動規(guī)律實驗?zāi)軌蚺c各種四足哺乳動物的運動實驗結(jié)果吻合,由于該模型對四足機器人系統(tǒng)進行了簡化,所以很大程度上簡化了四足機器人控制問題的復(fù)雜程度[11-13]。
控制器的結(jié)構(gòu)分為上層運動規(guī)劃(high-level motion planning)和下層跟隨(low-level tracking)。上層運動規(guī)劃一般基于簡化的動力學(xué)模型來預(yù)測重心和腳的軌跡,而下層跟隨則考慮更加復(fù)雜的模型來規(guī)劃各個關(guān)節(jié)的位置或者力矩。上層運動軌跡的產(chǎn)生一般都要基于模型對未來進行預(yù)測,這也就是模型預(yù)測控制(model predictive control,MPC)的基本思路。用簡化模型的原因是復(fù)雜模型的計算量過于龐大,而目前沒有較好的方法對其進行實時計算。雖然上層軌跡是基于簡化模型的情況,但是下層考慮了更復(fù)雜的模型,因此最終產(chǎn)生的關(guān)節(jié)軌跡符合實際機器人的動力學(xué)特性,而且能較好地跟隨上層軌跡。
在研究SLIP 模型的運動控制問題時,有些學(xué)者通過建立SLIP 模型的動力學(xué)方程研究它的運動特性。然而,由于系統(tǒng)的動力學(xué)方程是一組非線性方程組,無法得到其具體的解析解,而通過數(shù)值分析獲得近似解析解的方法需通過大量的迭代運算,不適合實時控制[14]。而在四足機器人跳躍運動過程中,接觸地面時會產(chǎn)生碰撞,且系統(tǒng)本身存在阻尼,這會造成能量損失,如何精確計算這部分損失能量也尚待解決。
本文以宇樹科技研發(fā)的Unitree A1 四足機器人為研究對象,采用彈簧負(fù)載倒立擺模型對四足機器人結(jié)構(gòu)進行簡化處理,將模型的運動過程分為著陸相與騰空相,并建立了相應(yīng)的動力學(xué)方程。在仿真平臺進行動力學(xué)仿真時考慮了模型與地面接觸時產(chǎn)生的碰撞與阻尼,并利用動力學(xué)仿真得到的樣本數(shù)據(jù)訓(xùn)練了一個神經(jīng)網(wǎng)絡(luò)。經(jīng)實驗驗證,基于神經(jīng)網(wǎng)絡(luò)的方法可以較精確地實現(xiàn)對SLIP 模型運動的控制。
SLIP 模型是一種簡化的描述機器人在運動時狀態(tài)的模型,包含頂部的質(zhì)量球與相連的彈簧腿兩部分,即用一條彈簧腿等效機器人的腿部,將機器人的機體等效為彈簧腿頂部的一個密度較高的質(zhì)量球,并忽略機器人腿部質(zhì)量[15]。SLIP 模型如圖1 所示,模型與地面接觸點為O點,水平方向為x軸,豎直方向為y軸,重力加速度為g,沿y軸負(fù)方向,質(zhì)量球質(zhì)心與接觸點O水平距離和垂直距離分別為x、y,模型與y軸正方向所成角度為θ,彈簧原長為r0。
四足機器人由機體和支撐機體的四條機械腿組成,通過電機驅(qū)動機械腿實現(xiàn)機器人站立、行走、奔跑、跳躍等動作,如圖2 所示。而SLIP 模型用一個彈簧腿來等效機器人的腿部,將機器人的機體等效為彈簧腿頂部的一個質(zhì)量球,并忽略機器人腿部質(zhì)量,其中將四足機器人的四條腿等效為一條腿。
M.H.Raibert 等[16]于1986年提出了“單腳步態(tài)(one-foot gaits)”,可將SLIP 模型應(yīng)用到雙足機器人上,只需要滿足兩個條件,即每次只能由一條腿提供支撐,且著陸相和騰空相交替進行。雙足機器人的步態(tài)如果滿足單腳步態(tài)就可將每一步都等效為單腿的SLIP 模型,這個過渡過程很直觀。但想要將SLIP模型應(yīng)用到四足機器人上,就要引入虛擬腿(virtual leg)的概念。多足的過渡基于雙足的單腳步態(tài),將四足機器人的四條腿兩兩分組,每一成對的組作為一個控制單元,則實際可等效為一個單腿模型,這就是虛擬腿的含義。
使多足機器人遵循單腳步態(tài),那么多足機器人的控制就可以等效為雙足機器人的控制,進而轉(zhuǎn)化到單腿模式。目前,四足機器人的步態(tài)主要有對角小跑(Trot)、踱步步態(tài)(Pace)、跳躍步態(tài)(Bound)。對角小跑指每次邁步同時抬起對角線上的兩條腿,并以二分之一的相位差輪流向前邁步;踱步步態(tài)指每次邁步時會同時抬起身體同側(cè)的兩條腿,身體異側(cè)的兩對腿則以二分之一的相位差輪流向前邁步;跳躍步態(tài)指每次邁步同時抬起身體前后同側(cè)的兩條腿,以二分之一的相位差輪流向前邁步。在四足機器人不同步態(tài)下,可以將相同運動特征的兩個腿組隊看成是一條腿,形成不同的等效虛擬腿。各種步態(tài)的等效虛擬腿如圖3 所示。
圖3 不同步態(tài)下的等效虛擬腿Fig.3 Equivalent virtual legs in different gaits
由圖3c 可知,由此實現(xiàn)了四足機器人在跳躍步態(tài)下到SLIP 模型的簡化。將復(fù)雜的四足機器人系統(tǒng)簡化為更加易于控制和研究的單腿SLIP 模型,其簡化過程如圖4 所示。
圖4 四足機器人模型簡化過程Fig.4 Simplified quadruped robot model
盡管四足哺乳動物有各種各樣的步態(tài)和運動形式,但根據(jù)仿生學(xué)的研究內(nèi)容可知,其步態(tài)周期基本處于“伸長—觸地—發(fā)力—離地—縮短”運動循環(huán)。四足動物利用下肢獨特的生物結(jié)構(gòu),在運動過程中盡量減小著陸時的沖擊,并儲存能量以供重復(fù)使用。四足動物的這些運動特性在SLIP 模型上也有相應(yīng)體現(xiàn)。例如當(dāng)模型的彈簧腿與地面碰撞時,可以減小沖擊,能量可轉(zhuǎn)化為彈簧的彈性勢能并存儲。
將四足機器人的運動簡化為SLIP 模型后,其一個完整的步態(tài)周期包括4部分:“騰空—著陸—回彈—騰空”,如圖5 所示。
圖5 SLIP 模型一個運動周期示意圖Fig.5 Schematic diagram of the motion cycle of SLIP model
由圖5 可知,一個運動周期的各狀態(tài)如下:
1)騰空。模型與地面無接觸,彈簧長度為原長度,此時模型只受到豎直向下的重力作用。
2)著陸。當(dāng)模型腿部剛開始接觸地面時,彈簧由自然狀態(tài)開始被壓縮,此時模型不僅受到重力作用,還受到地面給予的支撐力與摩擦力作用。模型的動能和重力勢能轉(zhuǎn)化為彈簧腿的彈性勢能,直至彈簧達(dá)到最大壓縮量,且模型沿豎直方向的速度為0。
3)回彈。彈簧壓縮量達(dá)到最大后,彈簧的彈力大于機體所受重力沿彈簧的分力,使得機體有一個向上的加速度,于是機體開始向上運動,彈簧在之前儲存的彈性勢能繼而又轉(zhuǎn)化為機體的動能和重力勢能,直至彈簧長度恢復(fù)原長,模型即將脫離地面。
4)騰空。由于慣性作用,模型會繼續(xù)向上運動并脫離地面,此時彈簧長度已經(jīng)恢復(fù)原長,彈力為0,模型又只受到豎直向下的重力作用,直至機體質(zhì)心上升到最高點,模型豎直方向上的速度減為0,完成一個運動周期。
由騰空相到著陸相的轉(zhuǎn)換條件就是彈簧處于原長且即將被壓縮,而相反的轉(zhuǎn)換條件就是彈簧被壓縮且即將恢復(fù)到原長。
SLIP 模型機體的質(zhì)量為m,等效彈簧腿的長度為r0,且忽略其質(zhì)量,而等效彈簧腿的剛度為k,阻尼為c。SLIP 模型與豎直方向的夾角為θ,可用來描述模型在平面內(nèi)的姿態(tài)。
當(dāng)模型處于騰空相時,彈簧長度為原長,彈力為0,模型只受到沿豎直向下的重力作用,機體質(zhì)心的運動軌跡為一條拋物線,可以很容易地得到騰空相時系統(tǒng)的動力學(xué)方程,為
g為重力加速度。
當(dāng)模型處于著陸相時,其運動分析比騰空相復(fù)雜。彈簧腿末端與地面接觸時機體、腿部彈簧和地面形成了一個力學(xué)模型。此時系統(tǒng)總的動能為
式中:EK為系統(tǒng)總動能;
平動動能的計算公式為
式中: 為彈簧長度變化速率;
r為彈簧腿長度;
著陸相的系統(tǒng)勢能包括重力勢能和等效彈簧的彈性勢能,計算式如下:
由式(3)和式(4)可求得系統(tǒng)的拉格朗日函數(shù)如下:
定義廣義坐標(biāo)系q=(r,θ),則系統(tǒng)著陸相的動力學(xué)方程為
為了簡化系統(tǒng),在其著陸相時只考慮彈簧阻尼力-c,則系統(tǒng)著陸相動力學(xué)方程可進一步表示為
將拉格朗日函數(shù)代入式(7)的推導(dǎo)結(jié)果如下:
在機械系統(tǒng)動力學(xué)自動分析(automatic dynamic analysis of mechanical systems,ADAMS)軟件中建立四足機器人的簡化模型,即SLIP 動力學(xué)模型,如圖6 所示。
圖6 SLIP 動力學(xué)模型Fig.6 SLIP dynamics model
在圖6 中,將機器人的機體等效為彈簧腿頂部的一個質(zhì)量球,其質(zhì)量參考Unitree A1 四足機器人,取值為12 kg,球半徑為5 cm;彈簧腿為長度是40 cm的彈簧阻尼器,沒有質(zhì)量;彈簧腿下方末端處的實心球,用來模擬四足機器人足部,半徑為2.5 cm,由于SLIP 模型忽略腿部質(zhì)量特性,而仿真時質(zhì)量不能為0,所以將其質(zhì)量設(shè)置為0.000 1 kg,以忽略其影響。
腿部等效彈簧的剛度計算參考生物力學(xué)的研究成果,表示為機體質(zhì)量的函數(shù)[17],如式(9):
等效彈簧的阻尼與運動質(zhì)點的速度大小成正比,取其值為0.014[18]。由此可以得到四足機器人SLIP動力學(xué)模型的各項參數(shù),如表1 所示。
表1 四足機器人SLIP 動力學(xué)模型參數(shù)Table 1 Parameters of SLIP dynamics model of quadruped robots
上述SLIP 系統(tǒng)具有足部與機體之間的軸向伸縮自由度,在模型足部位置處添加足部與機體質(zhì)量球之間的滑動副,可以約束彈簧腿只沿彈簧軸伸縮運動。
為了更加真實地模擬SLIP 系統(tǒng)在跳躍時與地面的接觸過程,需要設(shè)置地面參數(shù)以及模型與地面間的接觸力和摩擦系數(shù),將地面的碰撞剛度設(shè)置為1×108,模型與地面間的接觸力類型為庫侖摩擦,靜摩擦系數(shù)為0.5,動摩擦系數(shù)為0.4。
模型初始位置頂部質(zhì)量球質(zhì)心距離地面的高度為70 cm,模擬SLIP 模型在不同水平初速度v0下,以不同的著陸角觸地,記錄頂部質(zhì)量球質(zhì)心彈起達(dá)到最高點時的水平末速度v1和質(zhì)心高度h,其中一些記錄數(shù)據(jù)如表2 所示。
表2 SLIP 模型仿真數(shù)據(jù)Table 2 SLIP model simulation data
經(jīng)由不斷地仿真,最終得到了一份包含817 份樣本的數(shù)據(jù)。
構(gòu)建3 層前向BP(back propagation)神經(jīng)網(wǎng)絡(luò),第一層為輸入神經(jīng)元,共3 個,分別為水平初速度v0、水平末速度v1和質(zhì)心彈跳高度h;第二層為隱藏層神經(jīng)元,共6 個;第三層為輸出神經(jīng)元,輸出為著陸角θ。各層之間的傳遞函數(shù)選擇正切S型傳遞函數(shù)(tansig),學(xué)習(xí)率設(shè)置為0.05。將之前得到的817份樣本數(shù)據(jù)輸入到Matlab 中,利用randperm 函數(shù)將817 份數(shù)據(jù)隨機打亂,并選取前800 份作為訓(xùn)練樣本,后17 份作為測試樣本。通過多次嘗試,發(fā)現(xiàn)當(dāng)訓(xùn)練的迭代次數(shù)為44 次時,訓(xùn)練效果最好,3 條Mean Squared Error(均方誤差)曲線擬合效果較好,用于訓(xùn)練和測試的樣本數(shù)據(jù)擬合效果也較好,神經(jīng)網(wǎng)絡(luò)的均方誤差迭代44 次時為1.5×10-2,輸出的是著陸角的均方誤差,如圖7 所示。
圖7 神經(jīng)網(wǎng)絡(luò)均方誤差曲線Fig.7 Neural network mean square error graph
用于訓(xùn)練的樣本數(shù)據(jù)擬合度達(dá)到0.999 79,用于測試的樣本數(shù)據(jù)擬合度達(dá)到0.999 87,理想的狀態(tài)下擬合度達(dá)到1 時最好。從圖8 中可看出所有樣本點基本上都處于一條直線上。
圖8 樣本數(shù)據(jù)擬合度Fig.8 Fitting degree of sample data
為測試訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),取5 個不存在于數(shù)據(jù)樣本中的未知樣本,樣本輸入包括3 個參數(shù):水平初速度v0、期望水平末速度vld和期望質(zhì)心彈跳高度hd,樣本輸出為神經(jīng)網(wǎng)絡(luò)計算出的著陸角θ。然后利用在ADAMS 中建立的SLIP 動力學(xué)模型進行仿真驗證,仿真結(jié)果如圖9 所示。
圖9 ADAMS 仿真驗證Fig.9 ADAMS simulation verification
在圖9 中,實線為SLIP 模型運動時質(zhì)量球質(zhì)心的水平速度曲線,虛線則是質(zhì)心的高度曲線。
將仿真數(shù)據(jù)代入神經(jīng)網(wǎng)絡(luò)計算出著陸角,并以水平初速度v0進行仿真,得到最終的水平末速度v1和質(zhì)心彈跳高度h。其數(shù)據(jù)如表3 所示。從表3 中可以得出,v1的最大偏差為0.018 6 m/s,h的最大偏差為0.005 6 m,這個偏差可以接受,故神經(jīng)網(wǎng)絡(luò)可以用于SLIP 模型的運動控制。實現(xiàn)對SLIP 模型的加速、減速、勻速、急停以及穩(wěn)定高度的運動控制。
表3 驗證樣本及誤差Table 3 Sample and error verification
本文研究了四足機器人跳躍步態(tài)時的運動控制問題。采用SLIP 模型簡化了四足機器人的結(jié)構(gòu),并建立了模型的動力學(xué)方程。通過分析著陸角對SLIP模型系統(tǒng)的影響,提出了通過調(diào)節(jié)著陸角實現(xiàn)對SLIP 模型水平速度和跳躍高度的控制。利用訓(xùn)練好的BP 神經(jīng)網(wǎng)絡(luò)對著陸角進行預(yù)測,得到期望的水平速度和跳躍高度。ADAMS 仿真結(jié)果表明,本方法可以實現(xiàn)對SLIP 模型的運動控制。