薛文超 胡立坤
(廣西大學(xué)電氣工程學(xué)院 南寧 530004)
腿式機(jī)器人具有出色的機(jī)動(dòng)性和地形適應(yīng)性,其中的六足機(jī)器人運(yùn)動(dòng)更加穩(wěn)定,能夠適應(yīng)各種復(fù)雜、未知的地形[1~3],具有非常廣闊的應(yīng)用前景,成為學(xué)術(shù)界研究熱點(diǎn)。六足機(jī)器人是一種非線性,強(qiáng)耦合的多輸入多輸出(MIMO)系統(tǒng)[4],在運(yùn)動(dòng)中與環(huán)境頻繁交互,如何有效且盡可能簡單地控制六足機(jī)器人成為許多學(xué)者的研究目標(biāo)。
虛擬模型控制(Virtual Model Control,VMC)[5~7],被廣泛應(yīng)用于雙足機(jī)器人和四足機(jī)器人運(yùn)動(dòng)控制中,該方法通過直接在機(jī)器人的目標(biāo)位置施加虛擬力[8~9]控制機(jī)器人的運(yùn)動(dòng),具有配置靈活、設(shè)計(jì)直觀的特點(diǎn)。但是,傳統(tǒng)的VMC 方法需要構(gòu)造一個(gè)與機(jī)器人腿的數(shù)量相關(guān)的多維約束矩陣,對(duì)于六足及以上的機(jī)器人而言,計(jì)算略顯復(fù)雜[10]。本文僅對(duì)機(jī)器人單腿使用VMC,大大簡化計(jì)算復(fù)雜度,通過幾何的方法約束機(jī)器人各腿的運(yùn)動(dòng),提出適用于六足及以上多腿的腿式機(jī)器人虛擬模型控制方法。
本文使用Webots 軟件搭建的六足機(jī)器人模型如圖1 所示,該模型包括1 個(gè)軀干與6 條腿,機(jī)器人腿部結(jié)構(gòu)仿照六足昆蟲腿部設(shè)計(jì),含1個(gè)基節(jié)、1個(gè)轉(zhuǎn)節(jié)、1 個(gè)股節(jié)、1 個(gè)脛節(jié)和1 個(gè)足;每條腿含有3 個(gè)自由度:1 個(gè)偏航轉(zhuǎn)關(guān)節(jié),1 個(gè)滾轉(zhuǎn)股關(guān)節(jié)和1 個(gè)滾轉(zhuǎn)脛關(guān)節(jié)?;?jié)固定于軀干上,每條腿基節(jié)安裝方向與軀干正方向的夾角為q0,自左前腿至右后腿,q0分別為60°、90°、120°、-60°、-90°、-120°。機(jī)器人軀干裝有一個(gè)IMU傳感器,每足安裝一個(gè)接觸傳感器。
圖1 六足機(jī)器人模型
模型的主要參數(shù)在表1 中列出,在下文的分析和計(jì)算中,軀干與腿部均視為剛體,忽略腿部的質(zhì)量。
表1 六足機(jī)器人模型主要參數(shù)
機(jī)器人運(yùn)動(dòng)控制的最基本前提是建立機(jī)器人運(yùn)動(dòng)學(xué)模型。以機(jī)器人軀干底面的幾何中心為原點(diǎn),機(jī)器人正方向?yàn)閤 軸方向,y 軸垂直于軀干平面指向天空,通過右手定則判定z軸方向,建立軀干坐標(biāo)系{B},如圖2所示。
圖2 機(jī)器人坐標(biāo)系
圖中(x0,z0)表示基節(jié)安裝點(diǎn)的位置,w,h,l分別表示足端相對(duì)于基節(jié)安裝點(diǎn)的x,y,z 方向的距離。相應(yīng)的足端在{B}中的位置p可以表示為
di表示腿部各連桿的長度,si,sij,ci,cij分別表示sin(qi),sin(qi+qj),cos(qi),cos(qi+qj)。
對(duì)式(1)求偏微分,得到機(jī)器人足端的速度雅可比矩陣:
式(2)中符號(hào)的含義與式(1)相同。根據(jù)機(jī)械臂雅可比矩陣在末端執(zhí)行器力和關(guān)節(jié)力矩之間的定量關(guān)系:
在已知機(jī)器人末端執(zhí)行器輸出力f 的情況下,機(jī)器人腿部各關(guān)節(jié)的輸出扭矩t 可以通過式(3)計(jì)算得出。
機(jī)器人步態(tài)規(guī)劃是機(jī)器人完成對(duì)地形適應(yīng)最重要的技術(shù)[11~12],其中三角步態(tài)是一種最常見的六足機(jī)器人步態(tài)[13]。在三角步態(tài)中,六足機(jī)器人的腿分為兩組,本文將左前腿(LF)、右中腿(RM)和左后腿(LH)分入A 組,右前腿(RF)、左中腿(LM)與右后腿(RH)列入B組,如圖3所示。
圖3 三角步態(tài)的腿部分組
機(jī)器人以三角步態(tài)行走時(shí),一組腿處于站立狀態(tài),以支撐機(jī)器人軀干,另一組腿向前擺動(dòng)使機(jī)器人前進(jìn),兩組腿交替處于擺動(dòng)和站立狀態(tài)。本文稱擺動(dòng)腿處于擺動(dòng)相,站立腿處于站立相,兩相位的占空比均為0.5,即,站立相持續(xù)時(shí)間與擺動(dòng)相持續(xù)時(shí)間相同,均為Ts。本文采用三角步態(tài)對(duì)六足機(jī)器人進(jìn)行分析和控制。
VMC 方法在機(jī)器人身上設(shè)置虛擬機(jī)構(gòu),通過虛擬機(jī)構(gòu)產(chǎn)生的虛擬力“拉”動(dòng)機(jī)器人按照期望的軌跡運(yùn)動(dòng),這些虛擬力實(shí)際是各關(guān)節(jié)電機(jī)輸出扭矩的等效力。通常虛擬機(jī)構(gòu)設(shè)置在機(jī)器人的末端執(zhí)行器,以便直觀地控制機(jī)器人運(yùn)動(dòng)[14]。在六足機(jī)器人運(yùn)動(dòng)中,腿部處于兩種不同的運(yùn)動(dòng)模式:擺動(dòng)和站立,根據(jù)運(yùn)動(dòng)的特點(diǎn)分別為其設(shè)計(jì)不同的VMC策略。
3.2.1 擺動(dòng)相VMC
擺動(dòng)腿控制機(jī)器人的前進(jìn),要求使足端遵循期望的軌跡移動(dòng)。腿進(jìn)行擺動(dòng)運(yùn)動(dòng)時(shí),其基節(jié)相對(duì)于軀干是靜止的,將擺動(dòng)腿視為倒立安裝的機(jī)械臂[15],機(jī)械臂的末端執(zhí)行器即為機(jī)器人的足。在足端設(shè)置3 個(gè)虛擬彈簧-阻尼機(jī)構(gòu),機(jī)構(gòu)所產(chǎn)生虛擬力的方向與坐標(biāo)系{B}的坐標(biāo)軸方向相同,如圖4所示。
圖4 擺動(dòng)腿虛擬模型控制
擺動(dòng)腿的虛擬力通過式(4)計(jì)算得出:
式中Fx,F(xiàn)y,F(xiàn)z分別表示x,y,z 方向的虛擬力,kswi為擺動(dòng)相虛擬彈簧的剛度系數(shù),bswi為擺動(dòng)相虛擬阻尼的阻尼系數(shù),l,ld,l?,l?d分別表示足端在x方向的當(dāng)前位置,期望位置,當(dāng)前位置的導(dǎo)數(shù)和期望位置的導(dǎo)數(shù),h 表示y 方向的位置,w 表示z 方向的位置。
3.2.2 站立相VMC
對(duì)于站立腿而言,在摩擦力的作用下,站立腿足端相對(duì)于地面靜止不動(dòng),將站立腿視作正向安裝的機(jī)械臂,則基節(jié)為機(jī)械臂的末端執(zhí)行器。在基節(jié)設(shè)置3個(gè)虛擬彈簧-阻尼機(jī)構(gòu),方向與坐標(biāo)系{B}的坐標(biāo)軸相同,如圖5所示。
圖5 站立腿虛擬模型控制
站立腿的任務(wù)是保持軀干在運(yùn)動(dòng)中的高度和位姿平衡。采用三角步態(tài)的六足機(jī)器人,在運(yùn)動(dòng)過程中至少有3 條腿保持站立,這些腿并不會(huì)處于軀干的同一側(cè),根據(jù)站立腿的基節(jié)位置可以確定軀干的高度和姿態(tài)。
站立腿輸出的虛擬力通過式(5)計(jì)算:
式中,n 表示站立腿的數(shù)量,采用平均分配的方式補(bǔ)償軀干重量Mg。ksti為站立相虛擬彈簧的剛度系數(shù),bsti為站立相虛擬阻尼的阻尼系數(shù),其他符號(hào)與式(4)中含義相同。
為了實(shí)現(xiàn)六足機(jī)器人三角步態(tài)行走,機(jī)器人腿部狀態(tài)在擺動(dòng)相和站立相間不斷切換,需要設(shè)計(jì)狀態(tài)機(jī)以實(shí)現(xiàn)機(jī)器人腿部狀態(tài)切換并協(xié)調(diào)多腿的運(yùn)動(dòng)。
六足機(jī)器人的狀態(tài)機(jī)如圖6 所示。在六足機(jī)器人行走過程中,每條擺動(dòng)腿進(jìn)行相對(duì)獨(dú)立的運(yùn)動(dòng),當(dāng)擺動(dòng)腿的足端接觸地面時(shí),即可認(rèn)為擺動(dòng)相結(jié)束,腿部切換為站立相。
圖6 六足機(jī)器人狀態(tài)機(jī)
腿由站立相切換到擺動(dòng)相則需要考慮機(jī)器人整體的運(yùn)動(dòng)狀態(tài)。只有當(dāng)另一組的3 條腿全部由擺動(dòng)相轉(zhuǎn)為站立相后,這一組腿才由站立相轉(zhuǎn)為擺動(dòng)相。
圖7 為六足機(jī)器人三角步態(tài)控制框圖,主要包括VMC 控制和狀態(tài)機(jī)兩個(gè)部分,機(jī)器人將控制信息和足端觸地信息傳給狀態(tài)機(jī),狀態(tài)機(jī)判斷腿部所處的相位,相應(yīng)的VMC 控制程序根據(jù)機(jī)器人末端執(zhí)行器位置輸出各電機(jī)扭矩,實(shí)現(xiàn)機(jī)器人運(yùn)動(dòng)。
圖7 六足機(jī)器人三角步態(tài)控制框圖
仿真過程中所使用的參數(shù)如表2所示。
表2 仿真中所使用的參數(shù)
本實(shí)驗(yàn)設(shè)置的仿真環(huán)境和實(shí)驗(yàn)過程如圖8 所示,六足機(jī)器人置于平坦的地面上,要求其行走并爬上斜坡。初始時(shí)刻機(jī)器人的軀干高度設(shè)置為0.185m,俯仰、滾轉(zhuǎn)、偏航角度均為0。
圖8 仿真實(shí)驗(yàn)截圖
仿真實(shí)驗(yàn)期間機(jī)器人的主要數(shù)據(jù)如圖9,自上至下依次為本次實(shí)驗(yàn)的地形信息,機(jī)器人在實(shí)驗(yàn)中的前進(jìn)速度,軀干高度,偏航角,滾轉(zhuǎn)角,俯仰角;最上方圖的橫坐標(biāo)表示水平方向的距離,第2 到第6幅圖的橫坐標(biāo)表示實(shí)驗(yàn)運(yùn)行的時(shí)間。紅色曲線表示設(shè)定值,黑色曲線表示實(shí)時(shí)值。
圖9 機(jī)器人三角步態(tài)行走實(shí)驗(yàn)主要數(shù)據(jù)曲線
0 時(shí)刻,機(jī)器人站立于地面上,5s 時(shí)機(jī)器人開始以三角步態(tài)前進(jìn),軀干高度和速度迅速達(dá)到設(shè)定值,約22s 時(shí)機(jī)器人開始爬坡,各項(xiàng)數(shù)據(jù)在坡度干擾下均有波動(dòng),約32s 后機(jī)器人爬上斜坡,各項(xiàng)數(shù)據(jù)恢復(fù)平穩(wěn)。
圖9 表明,所設(shè)計(jì)的控制器可以使六足機(jī)器人在平坦的地面和斜坡上平穩(wěn)地行走,機(jī)器人在行走時(shí)保持穩(wěn)定的軀干姿勢(shì),能夠準(zhǔn)確地跟蹤速度和軀干高度的設(shè)定值,在遇到斜坡導(dǎo)致的地形干擾時(shí),仍可以保持相對(duì)穩(wěn)定。
根據(jù)六足機(jī)器人在行走過程中腿的狀態(tài)將腿的運(yùn)動(dòng)周期分為擺動(dòng)相和站立相,為兩種相位采用不同的VMC 控制策略,站立相腿維持機(jī)器人軀干的高度與姿態(tài),擺動(dòng)相腿控制機(jī)器人移動(dòng)。通過狀態(tài)機(jī)完成腿部狀態(tài)切換,協(xié)調(diào)機(jī)器人運(yùn)動(dòng)。仿真結(jié)果表明,六足機(jī)器人能在地面和斜坡上實(shí)現(xiàn)穩(wěn)定的三角步態(tài)行走,并具有一定的抗地形干擾能力。所提出的基于VMC 的控制器具有較低的計(jì)算成本,不需要精確的建模,并且易于解耦。低廉的計(jì)算成本使得將人工智能算法集成到六足機(jī)器人中成為可能。