吳潯煒,左鵬
(200093 上海市 上海理工大學(xué) 機(jī)械工程學(xué)院)
在眾多應(yīng)用場(chǎng)景中,盡管輪式、履帶式機(jī)器人滿足了人們的諸多需求,但是輪式及履帶式的結(jié)構(gòu)也決定了其在非結(jié)構(gòu)化路面等復(fù)雜環(huán)境下的運(yùn)動(dòng)能力欠缺。相比之下,足式機(jī)器人由于能夠選擇離散的落足點(diǎn)而使得其在復(fù)雜路面下的通過(guò)能力遠(yuǎn)高于輪式機(jī)器人,其中四足機(jī)器人具有更好的綜合性能[1]。
本文設(shè)計(jì)一個(gè)四足機(jī)器人,利用SolidWorks建立四足機(jī)器人的簡(jiǎn)化模型,在ADAMS 中建立虛擬樣機(jī),設(shè)置環(huán)境模擬量模擬四足機(jī)器人在現(xiàn)實(shí)環(huán)境中的運(yùn)動(dòng)和狀態(tài),利用MATLAB 和ADAMS 聯(lián)合仿真的方法對(duì)四足機(jī)器人進(jìn)行運(yùn)動(dòng)仿真,根據(jù)仿真結(jié)果對(duì)設(shè)計(jì)方案進(jìn)行優(yōu)化,提高機(jī)器人結(jié)構(gòu)的合理性。與其他步態(tài)相比,trot 步態(tài)具有較寬的速度變化,并且可在支撐相和擺動(dòng)相之間平滑切換。行走時(shí)有較好的對(duì)稱性,有效地消除了機(jī)器人軀干的不平衡力矩[2-3]。本文利用trot 步態(tài)進(jìn)行四足機(jī)器人仿真。
在ADAMS 軟件中難以實(shí)現(xiàn)復(fù)雜結(jié)構(gòu)的建立,所以在SolidWorks 中建立三維模型,通過(guò)中間格式將三維模型導(dǎo)入ADAMS 中進(jìn)行仿真。四足機(jī)器人采用仿四足動(dòng)物的身體結(jié)構(gòu)形式,四足機(jī)器人由機(jī)身以及4 條腿組成。
腿機(jī)構(gòu)的可控自由度越多,機(jī)器人的靈活性就越好,但每一個(gè)可控自由度要配備一套驅(qū)動(dòng)系統(tǒng)和一套傳動(dòng)機(jī)構(gòu),所以每增加一個(gè)自由度,其質(zhì)量相應(yīng)要增加許多,因此步行機(jī)器人腿機(jī)構(gòu)的自由度在滿足運(yùn)動(dòng)條件前提下越少越好。這里選定每條腿有3 個(gè)空間自由度,即機(jī)器人每條腿具有3 個(gè)關(guān)節(jié),分別為側(cè)擺關(guān)節(jié)、髖關(guān)節(jié)和膝關(guān)節(jié)。關(guān)節(jié)配置形式采用全肘式。全肘式的關(guān)節(jié)配置更利于在復(fù)雜的地面上行走,具有很好的穩(wěn)定性[4]。根據(jù)以上分析,建立四足機(jī)器人結(jié)構(gòu)三維圖,如圖1 所示。
在相同的關(guān)節(jié)輸出力矩的情況下,腿的質(zhì)量/轉(zhuǎn)動(dòng)慣量越小,則被控響應(yīng)速度越快。另一方面,機(jī)器人在從高處下落這種情況時(shí),腿著地瞬間,關(guān)節(jié)速度瞬間突變。如機(jī)器人腿的轉(zhuǎn)動(dòng)慣量過(guò)大,將會(huì)給腿連桿產(chǎn)生較大的沖擊力矩,而損壞腿或足。尤其是如果采用較高減速比的減速器來(lái)驅(qū)動(dòng)關(guān)節(jié),那么電機(jī)轉(zhuǎn)子本身的轉(zhuǎn)動(dòng)慣量等效到腿關(guān)節(jié)上后將會(huì)很大,使得在關(guān)節(jié)速度突變這種情況下,很容易損壞減速器。
圖1 四足器人三維模型Fig.1 3D model of quadruped robot
為了有效減小機(jī)器人腿的質(zhì)量,一般通過(guò)傳動(dòng)機(jī)構(gòu)將膝關(guān)節(jié)的電機(jī)挪至髖關(guān)節(jié)處。如圖2 所示,本文結(jié)構(gòu)將膝關(guān)節(jié)電機(jī)移至髖關(guān)節(jié),并通過(guò)鏈傳動(dòng)驅(qū)動(dòng)膝關(guān)節(jié)運(yùn)動(dòng)。
圖2 左前腿三維模型Fig.2 3D model of left front leg
運(yùn)動(dòng)學(xué)模型是對(duì)四足機(jī)器人運(yùn)動(dòng)控制以及分析的基礎(chǔ)。圖3 所示機(jī)構(gòu)參數(shù)為:L1為髖部長(zhǎng)度,即橫擺中心到大腿旋轉(zhuǎn)中心的距離;L2為大腿長(zhǎng)度;L3小腿長(zhǎng)度;θ1為側(cè)擺轉(zhuǎn)角;θ2為髖關(guān)節(jié)轉(zhuǎn)角;θ3為膝關(guān)節(jié)轉(zhuǎn)角。
圖3 單腿D-H 坐標(biāo)圖Fig.3 D-H coordinate diagram of single leg
在橫擺中心處建立基坐標(biāo)系,利用D-H 坐標(biāo)表示法建立足端坐標(biāo)系在基坐標(biāo)系下的坐標(biāo),見(jiàn)表1。
表1 單腿D-H 坐標(biāo)參數(shù)Tab.1 D-H coordinate parameters of single leg
連桿變換通式:
將表1 數(shù)據(jù)帶入式(1)的連桿間可得變換矩陣為
足端位姿相對(duì)于基坐標(biāo)系,可得變換矩陣為
若只考慮足端位置,不考慮姿態(tài),則足端位姿相對(duì)于基坐標(biāo)系的變換矩陣為
則單腿正解為
對(duì)四足機(jī)器人正運(yùn)動(dòng)學(xué)方程進(jìn)行反解可得出逆運(yùn)動(dòng)學(xué)方程,即根據(jù)足端坐標(biāo)求出關(guān)節(jié)角度。
在ADAMS 中進(jìn)行四足機(jī)器人動(dòng)力學(xué)仿真,需要將SolidWorks 的三維圖以x_t 格式保存,然后導(dǎo)入到ADAMS 中,如圖4 所示。在ADAMS 中,定義各個(gè)部件之間的約束關(guān)系。機(jī)器人總自由度數(shù)為12 個(gè),故在每個(gè)關(guān)節(jié)都添加一個(gè)轉(zhuǎn)動(dòng)副,并且在轉(zhuǎn)動(dòng)副上添加旋轉(zhuǎn)驅(qū)動(dòng)作為輸入。四足機(jī)器人與環(huán)境的作用關(guān)系僅通過(guò)足端與地面的相互作用實(shí)現(xiàn),故在足端與地面之間應(yīng)設(shè)置接觸力,具體接觸力參數(shù)設(shè)置如圖5 所示。
圖4 機(jī)器人虛擬樣機(jī)模型Fig.4 Robot virtual prototype model
圖5 接觸力參數(shù)設(shè)置Fig.5 Contact force parameter setting
本文設(shè)計(jì)的四足機(jī)器人采用電機(jī)驅(qū)動(dòng)關(guān)節(jié)的形式,故輸入為各條腿的3 個(gè)關(guān)節(jié)驅(qū)動(dòng),總共12 個(gè)驅(qū)動(dòng)。輸出為機(jī)體質(zhì)心在3 個(gè)方向上的位移,以及左前腿髖關(guān)節(jié)和膝關(guān)節(jié)的扭矩。利用Element 建立系統(tǒng)輸入輸出變量,定義LF1、LF2、LF3、LB1、LB2、LB3、RF1、RF2、RF3、RB1、RB2 和RB3 為各個(gè)關(guān)節(jié)的輸入變量,利用VARVAL 函數(shù)作為驅(qū)動(dòng)的輸入。定義DX,DY,DZ,pitch,roll,yaw,Torque1 和Torque2作為輸出變量,其中DX,DY,DZ 分別為質(zhì)心在豎直方向、橫向和前進(jìn)方向這3 個(gè)方向上的位移量;pitch,roll,yaw 分別為機(jī)體的俯仰角、橫滾角、偏航角;Torque1 和Torque2 為左前腿髖關(guān)節(jié)和膝關(guān)節(jié)的扭矩。將虛擬模型的機(jī)械系統(tǒng)導(dǎo)出,如圖6 所示。
圖6 輸入輸出設(shè)置窗口Fig.6 Input and output settings window
為實(shí)現(xiàn)四足機(jī)器人穩(wěn)定行走,需要實(shí)時(shí)地對(duì)四足機(jī)器人狀態(tài)進(jìn)行分析和控制。ADAMS 和MATLAB 的聯(lián)合仿真可實(shí)現(xiàn)這一過(guò)程。整個(gè)過(guò)程中ADAMS 中虛擬樣機(jī)作為被控制對(duì)象,需要從MATLAB 中獲得驅(qū)動(dòng)數(shù)據(jù),即MATLAB 的輸出為ADAMS 的輸入。MATLAB 則需要虛擬樣機(jī)的實(shí)現(xiàn)狀態(tài)來(lái)調(diào)整控制程序,即ADAMS 中虛擬樣機(jī)的狀態(tài)輸出為MATLAB 的輸入。圖7 是從ADAMS 中導(dǎo)出的機(jī)械系統(tǒng),其輸入輸出在上文中進(jìn)行了說(shuō)明。圖8 為四足機(jī)器人的整個(gè)控制程序,將每條腿的控制程序作為子系統(tǒng)進(jìn)行封裝,每條腿的3 個(gè)輸出作為機(jī)器人機(jī)械系統(tǒng)的輸入。
圖7 ADAMS 機(jī)械系統(tǒng)Fig.7 ADAMS mechanical system
圖8 Simulink 控制系統(tǒng)Fig.8 Simulink control system
仿真過(guò)程共持續(xù)6 s。為獲得更好的運(yùn)動(dòng)效果,本文采用五次多項(xiàng)式軌跡進(jìn)行足端軌跡規(guī)劃,并在機(jī)器人行走前對(duì)4 條腿的初始位置進(jìn)行調(diào)整,使得在行走過(guò)程中,重心相對(duì)于支撐腳連線的運(yùn)動(dòng)盡量保證前后對(duì)稱,提高行走過(guò)程中機(jī)身穩(wěn)定。仿真運(yùn)行時(shí),可以在MATLAB 中觀察并輸出仿真結(jié)果曲線,也可以在仿真結(jié)束后進(jìn)入ADAMS 的后處理模塊觀察仿真結(jié)果。
機(jī)器人質(zhì)心在X、Y、Z 三個(gè)方向的位移曲線分別如圖9—圖11 所示。X 方向?yàn)樨Q直方向,機(jī)器人質(zhì)心在X 方向上的波動(dòng)幅度為7 mm,機(jī)身質(zhì)心離地高度為500 mm,則機(jī)器人質(zhì)心豎直方向上的波動(dòng)率為1.4%,運(yùn)動(dòng)較為平穩(wěn);Y 方向?yàn)闄C(jī)器人橫向方向,機(jī)器人質(zhì)心的橫向波動(dòng)幅度為22 mm,波動(dòng)幅度較小;Z 方向?yàn)闄C(jī)器人的前進(jìn)方向。從位移曲線可見(jiàn),機(jī)器人在第1 s 內(nèi)前進(jìn)方向沒(méi)有移動(dòng),而豎直方向和橫向有輕微移動(dòng),這是因?yàn)樵诓綉B(tài)規(guī)劃中,前1 s 時(shí)間用于調(diào)整4 個(gè)足端的初始位置,所以會(huì)造成機(jī)身輕微的擺動(dòng)。Z 方向位移曲線比較平滑,斜率基本保持不變,說(shuō)明整個(gè)運(yùn)動(dòng)過(guò)程中機(jī)器人都能穩(wěn)定行走。
圖9 質(zhì)心在X 方向的位移Fig.9 Displacement of the center of mass in X direction
圖10 質(zhì)心在Y 方向上的位移Fig.10 Displacement of the center of mass in Y direction
圖11 質(zhì)心在Z 方向上的位移Fig.11 Displacement of the center of mass in Z direction
如圖12—圖14 分別為機(jī)器人在俯仰角、偏航角、橫滾角的變化曲線。機(jī)器人在整個(gè)仿真過(guò)程中,俯仰角變化幅度為1.26°,橫滾角變化幅度為2.46°,偏航角變化幅度為0.9°,3 個(gè)角度變化都比較小,說(shuō)明在仿真過(guò)程中機(jī)器人機(jī)身擺動(dòng)幅度較小并且保持在一個(gè)平穩(wěn)狀態(tài)。
圖12 機(jī)器人俯仰角變化曲線Fig.12 Curve of robot pitch angle change
圖13 機(jī)器人偏航角變化曲線Fig.13 Curve of robot yaw angle change
圖14 機(jī)器人橫滾角變化曲線Fig.14 Curve of robot roll angle change
從機(jī)器人偏航角的變化曲線可以看出,雖然在整個(gè)仿真的6 s 內(nèi),偏航角的變化幅度只有0.9°,但是隨著時(shí)間的推移,偏航角在不斷變大,這是每一個(gè)周期的偏航角偏差的疊加造成的。本文涉及到四足機(jī)器人姿態(tài)控制的內(nèi)容,所以會(huì)產(chǎn)生這樣的現(xiàn)象,如果加上對(duì)機(jī)器人姿態(tài)的控制,可以將機(jī)器人的偏航角控制在一定范圍內(nèi)。
圖15 髖關(guān)節(jié)扭矩Fig.15 Torque of hip joint
圖16 膝關(guān)節(jié)扭矩Fig.16 Torque of knee joint
圖15、圖16 所示為左前腿髖關(guān)節(jié)和膝關(guān)節(jié)的扭矩曲線。從圖中看到,關(guān)節(jié)扭矩有較大的波動(dòng),這是由足端與地面接觸時(shí)產(chǎn)生的較大沖擊導(dǎo)致的,如果在行走的基礎(chǔ)上加上腿部柔順性控制,可以很好地改善這種現(xiàn)象。從曲線中可以得到四足機(jī)器人左前腿髖關(guān)節(jié)最大扭矩為175 N·m,有效扭矩為45 N·m;左前腿膝關(guān)節(jié)最大扭矩為124.37 N·m,有效扭矩為 35 N·m。根據(jù)各關(guān)節(jié)的最大扭矩可以確定所用電機(jī)的轉(zhuǎn)矩,從而選擇電機(jī)的型號(hào)。
本文設(shè)計(jì)了一款四足機(jī)器人結(jié)構(gòu),采用SolidWorks 建立機(jī)器人三維模型,并通過(guò)ADAMS、MATLAB 聯(lián)合仿真對(duì)四足機(jī)器人進(jìn)行動(dòng)力學(xué)仿真。分析機(jī)器人質(zhì)心在不同方向上位移及機(jī)身姿態(tài)角的變化,可以看出機(jī)器人在整個(gè)運(yùn)動(dòng)過(guò)程中能實(shí)現(xiàn)穩(wěn)定行走,驗(yàn)證了該結(jié)構(gòu)的可行性。同時(shí)得到機(jī)器人腿部關(guān)節(jié)的扭矩,為后續(xù)的物理樣機(jī)的研制提供了參考。通過(guò)此方法,可以方便地進(jìn)行參數(shù)優(yōu)化和性能預(yù)測(cè),提早發(fā)現(xiàn)設(shè)計(jì)問(wèn)題,大大提高設(shè)計(jì)效率,節(jié)省時(shí)間和經(jīng)費(fèi)。
雖然在整個(gè)仿真中機(jī)器人能實(shí)現(xiàn)穩(wěn)定行走,但仍有不足之處,如:機(jī)器人的偏航角會(huì)隨著時(shí)間的推移越來(lái)越大;關(guān)節(jié)扭矩在足端觸地時(shí)會(huì)出現(xiàn)較大沖擊。這些問(wèn)題都需要在后續(xù)的研究中改善相應(yīng)的控制程序來(lái)解決。