李?yuàn)檴?, 王洪波 , 陳建宇 , 張興超 , 田俊杰 , 牛建業(yè)
(1. 燕山大學(xué) 河北省并聯(lián)機(jī)器人與機(jī)電系統(tǒng)實(shí)驗(yàn)室,河北 秦皇島 066004; 2. 燕山大學(xué) 先進(jìn)鍛壓成形技術(shù)與科學(xué)教育部重點(diǎn)實(shí)驗(yàn)室,河北 秦皇島 066004; 3. 復(fù)旦大學(xué) 工程與應(yīng)用技術(shù)研究院,上海 200433)
軍用機(jī)器人是用于軍事戰(zhàn)場(chǎng)的特種機(jī)器人,在21 世紀(jì)的科技化戰(zhàn)場(chǎng)上,軍用機(jī)器人有著非常廣泛的應(yīng)用場(chǎng)景,小到物資運(yùn)輸大到實(shí)戰(zhàn)進(jìn)攻勘探都能看到它們的身影。軍用機(jī)器人的出現(xiàn)和應(yīng)用,改變了傳統(tǒng)軍隊(duì)的作戰(zhàn)方式,促進(jìn)了現(xiàn)代軍事防御的發(fā)展。由于軍事戰(zhàn)場(chǎng)的環(huán)境一般都比較惡劣,涉及山地斜坡類的崎嶇不平路面,這就對(duì)機(jī)器人的移動(dòng)控制提出了更高的要求。
四足機(jī)器人移動(dòng)控制系統(tǒng)為一個(gè)非線性控制系統(tǒng),擁有傳感器的多輸入到電機(jī)的多輸出結(jié)構(gòu),此系統(tǒng)能通過(guò)不連續(xù)且復(fù)雜的動(dòng)力學(xué)計(jì)算完成機(jī)器人不同工作模式與外界環(huán)境的實(shí)時(shí)切換[1],實(shí)現(xiàn)機(jī)器人的快速響應(yīng)。
目前常用的控制方法有3 種,第1 種為根據(jù)零力矩點(diǎn)的多用于控制雙足機(jī)器人的動(dòng)態(tài)穩(wěn)定步態(tài)[2]算法,其缺點(diǎn)是會(huì)造成機(jī)器人運(yùn)行的不穩(wěn)定性和運(yùn)動(dòng)速度緩慢;第2 種是基于有節(jié)奏運(yùn)動(dòng)生物的中央模式(CPG)的模仿控制方法,即控制機(jī)器人的關(guān)節(jié)是通過(guò)多個(gè)相互耦合的非線性振蕩器輸出信號(hào)來(lái)實(shí)現(xiàn)的,其優(yōu)點(diǎn)是機(jī)器人能具有良好的運(yùn)行穩(wěn)定性和越障能力[3-5];最后一種是由Raibert 提出的虛擬模型控制框架方法,即機(jī)器人足端運(yùn)動(dòng)軌跡的控制是通過(guò)直接輸入機(jī)器人規(guī)劃好的運(yùn)動(dòng)狀態(tài)(方向、姿態(tài)、速度)進(jìn)行這些物理直覺(jué)來(lái)實(shí)現(xiàn)的,是一種用來(lái)描述交互作用力解耦的控制方法[6-9],此方法在控制過(guò)程中能很大程度地簡(jiǎn)化對(duì)計(jì)算動(dòng)力學(xué)模型的需求,同時(shí)也很大程度地提高了機(jī)器人硬件上的響應(yīng)速度。其次,機(jī)器人的各種運(yùn)動(dòng)狀態(tài)參數(shù)此方法都可穩(wěn)定快速地直接進(jìn)行調(diào)整,即使受到外界沖擊和干擾時(shí)機(jī)體也可以快速恢復(fù)穩(wěn)定。
本文針對(duì)四足機(jī)器人步態(tài)提出一種新型控制算法,由CPG 生成機(jī)器人行走時(shí)的基礎(chǔ)步態(tài),完成輸入輸出之間的非線性振蕩器模型搭建,在對(duì)虛擬模型進(jìn)行融合的基礎(chǔ)上計(jì)算出用于調(diào)整機(jī)器人姿態(tài)的力矩,并借助靜力學(xué)平衡映射為能夠?qū)C(jī)器人行走進(jìn)行控制的關(guān)節(jié)輸出。此方法在簡(jiǎn)化控制網(wǎng)絡(luò)的同時(shí)還能保證機(jī)器人在行走過(guò)程中擁有較強(qiáng)的靈活性和抗干擾能力。
機(jī)器人整機(jī)機(jī)構(gòu)如圖1 所示,機(jī)體上安裝有 4 條獨(dú)立且對(duì)稱的機(jī)械腿,將為機(jī)器人運(yùn)動(dòng)供電的儲(chǔ)蓄電池、驅(qū)動(dòng)器和腿部電機(jī)安裝在機(jī)體上,此外還可裝載需要運(yùn)送的貨物。
機(jī)器人機(jī)械腿用3-UPS 機(jī)構(gòu)作為單腿基礎(chǔ)結(jié)構(gòu),在行走過(guò)程中機(jī)器人的機(jī)械腿此時(shí)具有6 個(gè)自由度,其機(jī)構(gòu)如圖2 所示,主要由上基座、支撐和足底組成,結(jié)構(gòu)比較緊湊,可在腿部關(guān)節(jié)處安裝驅(qū)動(dòng)電機(jī)和減速器,同時(shí)單腿機(jī)構(gòu)也能具有更強(qiáng)的負(fù)載能力。機(jī)器人主體通過(guò)連接板與單腿機(jī)構(gòu)相連,由伺服電機(jī)驅(qū)動(dòng)的電動(dòng)滑臺(tái)也與連接板相連,且呈120°按圓周均勻分布,借助彈性聯(lián)軸器絲杠的一端與伺服電機(jī)相連,另一端又與滑臺(tái)相連,伺服電機(jī)帶動(dòng)絲杠旋轉(zhuǎn),從而實(shí)現(xiàn)了對(duì)滑臺(tái)的移動(dòng)控制。單腿機(jī)構(gòu)中的滑臺(tái)即為3-UPS 機(jī)構(gòu)中的3 個(gè)P 副,可實(shí)現(xiàn)機(jī)器人單腿機(jī)構(gòu)運(yùn)動(dòng)參數(shù)和機(jī)器人四足間距的調(diào)整,使機(jī)器人在復(fù)雜路況下的越障能力和適應(yīng)能力都得到了很大提高。
圖2 單腿機(jī)構(gòu)Fig. 2 One leg mechanism
在機(jī)構(gòu)零件圖3 中,機(jī)器人的腿部機(jī)構(gòu)由3 個(gè)直線驅(qū)動(dòng)副支撐,一端與U 副次軸連接,另一端通過(guò)魚(yú)眼軸承和軸承支架安裝在足底上?;糠只_(tái)下端連接主軸支架,與伺服電機(jī)固連的型號(hào)為NRV030 蝸輪蝸桿減速器與主軸支架相連。U 副主軸一端與減速器相連接,另一端與支架相連,U 副主軸上安裝有套筒,圖中的U 副次軸由套筒和螺栓構(gòu)成,其中驅(qū)動(dòng)軸為U 副主軸。因此機(jī)器人單腿3-UPS 機(jī)構(gòu)中6 個(gè)自由度的驅(qū)動(dòng)動(dòng)力源是由單腿機(jī)構(gòu)中3 個(gè)直線驅(qū)動(dòng)副和3 個(gè)驅(qū)動(dòng)U 副主軸的電機(jī)來(lái)提供的。
圖3 機(jī)器人單腿的結(jié)構(gòu)圖Fig. 3 Diagram of a single leg of the robot
針對(duì)這一復(fù)雜的四足移動(dòng)機(jī)器人控制問(wèn)題,本文中機(jī)器人的腿部末端采用延遲同步模型當(dāng)作發(fā)生器,這樣在運(yùn)動(dòng)過(guò)程中機(jī)器人的各腿部機(jī)構(gòu)能保證相互耦合,而便于控制的Kuramoto 模型屬于同步的振蕩器模型。在此基礎(chǔ)上,其能夠把一個(gè)協(xié)同系統(tǒng)從無(wú)序復(fù)雜狀態(tài)轉(zhuǎn)化成同步狀態(tài)的過(guò)程模擬出來(lái)。本文機(jī)器人的關(guān)節(jié)角度也以相互耦合的4 個(gè)Kuramoto 模型當(dāng)作生成器,并把關(guān)節(jié)角映射成帶有滯后同步的步態(tài)時(shí)序。
當(dāng)采用全耦合的方式讓單一振子與其他振子相互作用時(shí),用wm表示第m個(gè)振子的自然頻率,其動(dòng)力學(xué)模型表示為
式中:θm為關(guān)節(jié)運(yùn)動(dòng)的相位,θm隨振子每循環(huán)一個(gè)周期就變化2π;k為振子間相互耦合強(qiáng)度;N為振蕩器的數(shù)量;θ˙m為振子的頻率。當(dāng)k= 0時(shí),表明各振蕩器間互相獨(dú)立,這時(shí)各振子用θ˙m=wm表示其自身的動(dòng)力學(xué)模型,并且每個(gè)振子互不影響。
以w為自然頻率的獨(dú)立非線性振蕩器,要使其每個(gè)振子相互影響,則其耦合系數(shù)不能為0。調(diào)查結(jié)果表明當(dāng)w滿足柯西分布時(shí),N趨于無(wú)窮,耦合強(qiáng)度會(huì)趨于一個(gè)臨界值,當(dāng)其高于此臨界值時(shí)系統(tǒng)的全部頻率均會(huì)收斂一致,此時(shí)系統(tǒng)變?yōu)橥?振動(dòng)[10]。用一個(gè)圓對(duì)系統(tǒng)中所有的振子進(jìn)行描述,且求和平均后,則系統(tǒng)同步的程度即為其值在復(fù)平面內(nèi)質(zhì)心處矢量的模,用式(2)表示為
式中:i 為虛數(shù)單位。式(2)也稱復(fù)序參量,簡(jiǎn)稱序參量。這里矢量的方向用負(fù)指數(shù)定義,序參量的取值范圍為0 到1,且其值的大小與系統(tǒng)的同步程度有關(guān),值越大則系統(tǒng)的同步程度也越高。即當(dāng)系統(tǒng)的振子越分散、耦合系數(shù)越低時(shí),序參量的值越接近0;當(dāng)系統(tǒng)的振子耦合系數(shù)越高時(shí),序參量的值越接近1,此時(shí)序參數(shù)較高,系統(tǒng)處于部分同步狀態(tài),但仍不能到達(dá)單位圓上[11-13];當(dāng)系統(tǒng)的序參量為1 時(shí),此時(shí)系統(tǒng)處于完全同步的理想狀態(tài)。由以上分析知系統(tǒng)振子從相互獨(dú)立到部分相關(guān)再到完全同步的狀態(tài),是系統(tǒng)中各個(gè)相互作用的振子克服了固有頻率的結(jié)果。
設(shè)x為隨機(jī)變量,將歐拉公式sinx= (eix- e-ix)/(2i)和式(2)代入式(1),可以得到:
式中:R為復(fù)序參量的模;ψ為任意相位。
本文中的機(jī)器人在運(yùn)動(dòng)時(shí)4 條腿都擁有相同的運(yùn)動(dòng)軌跡,只是各條腿之間有個(gè)固定的相位差存在,因此要對(duì)處于同步狀態(tài)的Kuramoto 模型做出一定的調(diào)整,確保系統(tǒng)中各振蕩器在周期震蕩時(shí)所輸出的相位差是固定的。為便于描述各振蕩器的相位遲滯或阻挫,現(xiàn)定義φmn為相位差,表示振子n與m間的相位差,并代入式(1)。又因在實(shí)際工況中系統(tǒng)中的電機(jī)都是以2π 為周期,故對(duì)自然頻率wm做出更改,令其為2πp(p為自然頻率),再對(duì)耦合系數(shù)進(jìn)行更改,令wnm=k/N。則此時(shí)的KM 模型為
本文研究的機(jī)器人4 條腿是對(duì)稱分布,每條腿對(duì)應(yīng)各自的振蕩器模型,機(jī)器人在行走時(shí)各腿部驅(qū)動(dòng)關(guān)節(jié)處的相位是呈現(xiàn)規(guī)律性變化關(guān)系的,此時(shí)各腿的振蕩器模型完成輸出和每個(gè)驅(qū)動(dòng)關(guān)節(jié)的映射關(guān)系。又因在Kuramoto 模型中θm的輸出量是一條直線,且單調(diào)遞增,并不適用于機(jī)器人的關(guān)節(jié)控制和驅(qū)動(dòng)。故本文振蕩器網(wǎng)絡(luò)需要引入正弦函數(shù)來(lái)對(duì)其輸出進(jìn)行調(diào)整。
本文四足移動(dòng)軍用機(jī)器人單腿機(jī)構(gòu)為3-UPS機(jī)構(gòu),其控制網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示,從中可知控制網(wǎng)絡(luò)中振子間均設(shè)計(jì)為雙向?qū)ΨQ形式,故振子間耦合強(qiáng)度均為wnm=wmn=1,同時(shí)相位差均為φmn=-φnm= π/12。
圖4 非線性振子耦合網(wǎng)絡(luò)Fig. 4 Coupled nonlinear oscillator network
單腿機(jī)構(gòu)的簡(jiǎn)單控制網(wǎng)絡(luò)完成搭建后,就要對(duì)KM 模型的主要參數(shù)進(jìn)行分析確定,完成其輸出的角度映射。以右前腿向右的步進(jìn)運(yùn)動(dòng)為例,對(duì)其進(jìn)行分解并投影,如圖5 所示。圖5 中,S為步長(zhǎng),Am、Lm分別表示腿部的轉(zhuǎn)動(dòng)電機(jī)幅值和推桿電機(jī)長(zhǎng)度均處于最大值,Bm為腿部的次長(zhǎng)分支轉(zhuǎn)動(dòng)電機(jī)幅值,L、h分別表示腿部足端距髖關(guān)節(jié)和離地最高高度。
圖5 單腿周期行走圖Fig. 5 Diagram of periodic walking of a single leg
當(dāng)機(jī)器人的支撐相為右前腿時(shí),這時(shí)腿部的轉(zhuǎn)動(dòng)電機(jī)幅值和推桿電機(jī)長(zhǎng)度均處于最大值處,分別用Lm和Am表示,機(jī)體依靠關(guān)節(jié)電機(jī)的驅(qū)動(dòng)使機(jī)體前移S/2,然后右前腿離地成為擺動(dòng)相,其他腿觸地成支撐相。由機(jī)器人的腿部結(jié)構(gòu)分析可知,只有當(dāng)機(jī)器人側(cè)向邁腿時(shí),上平臺(tái)的驅(qū)動(dòng)電機(jī)才會(huì)轉(zhuǎn)動(dòng),向前邁腿時(shí)是不轉(zhuǎn)動(dòng)的,腿部關(guān)節(jié)電機(jī)幅值的投影才是其幅值A(chǔ)m。圖6 所示為實(shí)際關(guān)節(jié)角度圖。圖6 中,單腿各分支在水平軸的投影用a表示;旋轉(zhuǎn)軸與水平面的夾角為60°,用α表示。則幅值A(chǔ)max的實(shí)際值為
圖6 實(shí)際關(guān)節(jié)角度圖Fig. 6 Diagram of actual joint angle
再由腿部分解圖可以得出:
為使幅值對(duì)稱,選擇初始角度(Amax+Bmax)/2作為平衡點(diǎn),則另外兩個(gè)腿部關(guān)節(jié)角度與驅(qū)動(dòng)扭矩的關(guān)系式為
基于對(duì)機(jī)體腿部運(yùn)動(dòng)的研究發(fā)現(xiàn),腿部的電動(dòng)推桿的運(yùn)動(dòng)周期可劃分為兩個(gè)大運(yùn)動(dòng)周期,每個(gè)大運(yùn)動(dòng)周期包含一個(gè)小運(yùn)動(dòng)周期。當(dāng)處于大周期內(nèi)時(shí),支撐相和擺動(dòng)相運(yùn)動(dòng)的幅值不同;當(dāng)處于小周期內(nèi)時(shí),伸縮桿的最短值相同,但最長(zhǎng)值不同。
由圖5 知當(dāng)其為支撐相時(shí),令Lm為最長(zhǎng)幅值,Lsm為次長(zhǎng)值大小,則最小幅值為L(zhǎng)s=LmcosAmax,且腿部支撐相與擺動(dòng)相相位差了半個(gè)周期。本文選定支撐相的初始長(zhǎng)度設(shè)為(Lm+Ls)/2,則腿部各分支的長(zhǎng)度表達(dá)式為
式中:T為運(yùn)動(dòng)周期。
當(dāng)腿部處于擺動(dòng)相時(shí),其最低幅值變?yōu)長(zhǎng)min=L-h,選擇初始長(zhǎng)度為(Lm+Lmin)/2,則腿部各分支長(zhǎng)度表達(dá)式和轉(zhuǎn)動(dòng)電機(jī)表達(dá)式分別為
式中:f0(θ)為初始驅(qū)動(dòng)扭矩值。
由此就可以確定取不同的步長(zhǎng)和機(jī)體高度時(shí)的運(yùn)動(dòng)參數(shù),可以用表1 和表2 將數(shù)據(jù)結(jié)果表示出來(lái)。
表1 步長(zhǎng)與關(guān)節(jié)擺角關(guān)系Table 1 Relationship between step size and joint swing angle
表2 抬腿高度與伸縮桿長(zhǎng)度關(guān)系Table 2 Relationship between leg height and telescopic rod length
通過(guò)觀察自然界中的四足動(dòng)物可知,動(dòng)物們的運(yùn)動(dòng)步態(tài)分 walk、trot、pace 和 gallop 4 種形 式[14-16],且不管采用哪種運(yùn)動(dòng)步態(tài)行走,各腿之間均有著一定相位關(guān)系。本文把動(dòng)物的各種步態(tài)運(yùn)用到四足機(jī)器人上,并對(duì)這4種步態(tài)進(jìn)行對(duì)比,發(fā)現(xiàn)比較常見(jiàn)的是trot 步態(tài)。故本文采用了對(duì)角腿相位相同的trot 步態(tài),該步態(tài)會(huì)一直有2 條腿是支撐相,且與另外2條腿始終相隔半個(gè)周期,同時(shí)此種步態(tài)行走速度比較快,可用相位差矩陣表示出的步態(tài)時(shí)序?yàn)?/p>
本文令直線驅(qū)動(dòng)電機(jī)Lmax= 1000 mm,Lmin= 500 mm 。小周期桿長(zhǎng)為L(zhǎng)sm= 900 mm,步長(zhǎng)選定540 mm,抬腿高度180 mm,耦合系數(shù)假定為500,以2 s 為周期,以0.1 為自然頻率,經(jīng)計(jì)算行走速度為 0.27 m/s,Amax= 22°,Bmax=-11°,Ls=788 mm,Lmin= 622 mm。則trot 步態(tài)的KM 網(wǎng)絡(luò)表達(dá)式為
此時(shí)以trot 步態(tài)行走的機(jī)器人KM 物理模型就可由Simulink 軟件進(jìn)行搭建,其整體框架如圖7所示,輸出結(jié)果如圖8、圖9 所示。
圖7 非線性振子耦合網(wǎng)絡(luò)圖Fig. 7 Diagram of coupled nonlinear oscillator network
圖8 trot 步態(tài)轉(zhuǎn)動(dòng)電機(jī)輸出曲線圖Fig. 8 Output curve of the trot motor
圖9 Trot 步態(tài)直線電機(jī)輸出曲線圖Fig. 9 Output curve of the trot linear motor
因?yàn)殡姍C(jī)2 和電機(jī)3 關(guān)于電機(jī)1 對(duì)稱分布,所以電機(jī) 2 和電機(jī) 3 的輸出曲線是一致的。從 圖7~圖9 中可知,雖然機(jī)器人的耦合非線性KM網(wǎng)絡(luò)能很好地規(guī)劃出驅(qū)動(dòng)電機(jī)的移動(dòng)曲線,但在實(shí)際行走過(guò)程中卻把復(fù)雜的環(huán)境忽略了,會(huì)使機(jī)器人擁有較為僵硬的行走方式,這些會(huì)對(duì)機(jī)器人的機(jī)體和電機(jī)的使用壽命造成很大的損傷。為了讓機(jī)器人的運(yùn)動(dòng)更加柔順,就要在規(guī)劃電機(jī)曲線時(shí)把緩沖量加入到其與實(shí)際的電機(jī)控制中,從而確保在遇到復(fù)雜的路況時(shí),機(jī)器人能更好的進(jìn)行適應(yīng)。
在實(shí)際中,可把四足動(dòng)物的單腿關(guān)節(jié)進(jìn)行簡(jiǎn)化,當(dāng)作一個(gè)彈簧阻尼器,同時(shí)提高阻尼系數(shù)以保證仿真結(jié)果的穩(wěn)定性。本文機(jī)器人單腿將引入彈簧阻尼器來(lái)完成非線性KM 網(wǎng)絡(luò)的輸出量與扭矩的轉(zhuǎn)化,這樣就可以在控制機(jī)器人移動(dòng)的同時(shí),實(shí)現(xiàn)對(duì)機(jī)器人姿態(tài)的調(diào)整。但對(duì)于降低機(jī)器人因遇意外所產(chǎn)生的沖擊力,就需在各驅(qū)動(dòng)關(guān)節(jié)角與期望值間虛擬增設(shè)彈簧阻尼模型,且此關(guān)節(jié)力矩控制也保障了機(jī)器人各關(guān)節(jié)的扭矩輸出。而關(guān)節(jié)的輸出力矩隨著足端期望角度的變化使得主動(dòng)驅(qū)動(dòng)關(guān)節(jié)隨期望關(guān)節(jié)角度對(duì)足端軌跡進(jìn)行輸出。則此時(shí)機(jī)器人的腿部力矩輸出為
式中:Kqi、Bqi分別為跟隨的轉(zhuǎn)動(dòng)關(guān)節(jié)彈性系數(shù)和阻尼系數(shù);φqd、φ˙qd分別為轉(zhuǎn)動(dòng)關(guān)節(jié)期望的角度和角速度;分別為跟隨的轉(zhuǎn)動(dòng)關(guān)節(jié)期望的角度和角速度;Kli、Bli分別為跟隨的直線驅(qū)動(dòng)關(guān)節(jié)彈性系數(shù)和阻尼系數(shù);分別為期望的直線驅(qū)動(dòng)關(guān)節(jié)長(zhǎng)度和速度。
以搭建虛擬機(jī)械部件的方式來(lái)模擬機(jī)構(gòu)同外界環(huán)境的交互運(yùn)動(dòng)為核心的虛擬模型控制就是對(duì)交互行為進(jìn)行描述的模型,其僅依靠機(jī)器人當(dāng)前狀態(tài)即關(guān)節(jié)角度和速度再加上虛擬組件的狀態(tài)就可實(shí)現(xiàn)對(duì)機(jī)器人行為的控制,通過(guò)阻尼器和彈簧等虛擬組件簡(jiǎn)化機(jī)體結(jié)構(gòu)并與外界環(huán)境建立交互,應(yīng)用更為簡(jiǎn)潔的操作步驟實(shí)現(xiàn)對(duì)機(jī)器人機(jī)體運(yùn)動(dòng)的有效控制。為預(yù)防機(jī)器人航向偏離預(yù)定方向、機(jī)體在對(duì)角軸上出現(xiàn)劇烈翻轉(zhuǎn)和機(jī)體出現(xiàn)過(guò)大的傾斜角度等情況的發(fā)生,就需對(duì)機(jī)器人的航向、姿態(tài)、對(duì)角軸等方面進(jìn)行機(jī)體姿態(tài)調(diào)整。
本文四足機(jī)器人能夠?qū)崿F(xiàn)在自身坐標(biāo)系中的 3 個(gè)轉(zhuǎn)動(dòng)和3 個(gè)平動(dòng)共6 個(gè)自由度的運(yùn)動(dòng),為能全方位對(duì)機(jī)器人進(jìn)行控制,需要充分研究機(jī)體的平動(dòng)和轉(zhuǎn)動(dòng)情況。但因存在于模型中的虛擬力在現(xiàn)實(shí)中是不存在的,故機(jī)器人是依靠腿部驅(qū)動(dòng)關(guān)節(jié)來(lái)實(shí)現(xiàn)機(jī)體的運(yùn)動(dòng)。而將足端的力映射為各驅(qū)動(dòng)關(guān)節(jié)工作空間的關(guān)節(jié)驅(qū)動(dòng)力矩,需要用到各驅(qū)動(dòng)關(guān)節(jié)的速度雅可比矩陣,其表達(dá)式為
式中:θ1~θ6分別為機(jī)器人腿部各驅(qū)動(dòng)關(guān)節(jié)的速度;v為機(jī)器人腿部線速度;w為機(jī)器人腿部角速度。
依虛功原理得各關(guān)節(jié)驅(qū)動(dòng)力和足端驅(qū)動(dòng)力各自所做虛功總和是相等的,即
式中:τ1~τ6分別為機(jī)器人腿部各關(guān)節(jié)的驅(qū)動(dòng)力;Fp為機(jī)器人的足端虛擬力。
將式(16)與式(17)聯(lián)立,得各關(guān)節(jié)驅(qū)動(dòng)力與足端虛擬力的關(guān)系式為
機(jī)器人在運(yùn)動(dòng)時(shí)的俯仰角是通過(guò)調(diào)整機(jī)體繞側(cè)向軸的虛擬力矩來(lái)控制機(jī)體相對(duì)足端連線平面的傾斜角度。本文設(shè)定支撐相的足端連線與機(jī)體質(zhì)心所構(gòu)成的平面為機(jī)體標(biāo)準(zhǔn)面,并將機(jī)體軀干面通過(guò)彈簧阻尼虛擬組件與其進(jìn)行相連,且定義機(jī)體標(biāo)準(zhǔn)面與軀干面的夾角為相對(duì)俯仰角φy,通過(guò)測(cè)量計(jì)算彈簧組件被壓縮或拉伸的大小來(lái)反映機(jī)體的傾斜程度。當(dāng)機(jī)體繞質(zhì)心發(fā)生轉(zhuǎn)動(dòng)使機(jī)體軀干傾斜時(shí),這時(shí)俯仰角φy和由虛擬彈簧模型產(chǎn)生的虛擬力都會(huì)發(fā)生改變,因此機(jī)體的后支撐相分配來(lái)的足端虛擬接觸力也會(huì)發(fā)生改變,就會(huì)對(duì)機(jī)體的俯仰角進(jìn)行調(diào)整,最終會(huì)使機(jī)體與機(jī)體標(biāo)準(zhǔn)面相平行,如圖10所示。圖10 中,x軸表示機(jī)體前進(jìn)方向,z軸表示機(jī)體豎直向上方向,xF、zF分別為豎直方向上前支撐相與后支撐相的坐標(biāo),xH、zH分別為x軸方向上前支撐相與后支撐相的坐標(biāo)。
圖10 機(jī)體俯仰角調(diào)整圖Fig. 10 Diagram of pitch angle adjustment of the body
機(jī)器人機(jī)體俯仰角公式:
當(dāng)機(jī)器人遇崎嶇路況時(shí),會(huì)要求機(jī)體平面與標(biāo)準(zhǔn)面之間保持一定角度不變,因此由軀干質(zhì)心處的彈簧阻尼模型通過(guò)相對(duì)俯仰角的變化而在機(jī)體側(cè)向軸上生成的虛擬力矩Ty為
式中:Kφy、Bφy為彈簧阻尼模型的彈性系數(shù)和阻尼系數(shù);φyd為機(jī)體相對(duì)俯仰角期望值。但在實(shí)際情況下,機(jī)器人機(jī)體一般都要與足端連線相平行,此時(shí)虛擬力矩Ty為
關(guān)于應(yīng)用小跑步態(tài)的四足機(jī)器人的很多研究表明,機(jī)器人機(jī)體會(huì)繞對(duì)角支撐相發(fā)生轉(zhuǎn)動(dòng)是由于在髖關(guān)節(jié)處生成的反作用力矩影響的。遇到這種情況時(shí),機(jī)體的兩對(duì)角擺動(dòng)相會(huì)有一個(gè)提前著地,這種異常著地雖會(huì)被耦合非線性振子網(wǎng)絡(luò)進(jìn)行糾正,但此時(shí)的反作用力矩?zé)o法保證機(jī)體trot 步態(tài)的穩(wěn)定性,且過(guò)大的足端著地沖擊力會(huì)在一定程度上損壞相應(yīng)的電機(jī),同時(shí)還會(huì)加重機(jī)體失穩(wěn)的情況,甚至?xí)箼C(jī)器人的可靠性受到嚴(yán)重影響。
通過(guò)研究發(fā)現(xiàn)使機(jī)器人發(fā)生翻轉(zhuǎn)的主要原因有兩個(gè),一個(gè)是因?yàn)闄C(jī)器人在向前行走時(shí)的兩支撐相會(huì)使機(jī)體繞髖關(guān)節(jié)處生成力矩,如圖11 所示,對(duì)此力矩在對(duì)角軸方向和與對(duì)角軸垂直的方向上進(jìn)行分解,其中在質(zhì)心處兩沿對(duì)角軸方向的合力矩會(huì)造成機(jī)器人沿對(duì)角軸發(fā)生翻轉(zhuǎn)的情況發(fā)生,翻轉(zhuǎn)方向可由右手定則的母指指向確定。另一個(gè)是因?yàn)橐苿?dòng)的機(jī)器人會(huì)在機(jī)體質(zhì)心處繞對(duì)角支撐相產(chǎn)生一定的傾覆力矩,此部分力矩可被慣性力矩平衡掉,或者采用某種方法消除掉,如姿態(tài)調(diào)整和附加重量的方法。由此可知兩個(gè)原因中前者對(duì)機(jī)器人的穩(wěn)定運(yùn)行產(chǎn)生的影響最大。
圖11 傾覆力矩圖Fig. 11 Overturning moment diagram
由KM 模型輸出的曲線可知,在機(jī)器人前進(jìn)的過(guò)程中,位于髖關(guān)節(jié)處的側(cè)向轉(zhuǎn)動(dòng)電機(jī)是不發(fā)揮功能的,其最主要功能是通過(guò)改變機(jī)體腿部與豎直方向的夾角使機(jī)器人更大程度地適應(yīng)不同傾斜程度的地面,當(dāng)機(jī)器人向前運(yùn)動(dòng)時(shí)其輸出的力矩可抵消掉引起機(jī)體傾覆的這部分關(guān)節(jié)輸出力矩,以提高機(jī)器人的防側(cè)翻能力。因而機(jī)器人是借助由彈簧阻尼模型生成的虛擬力矩來(lái)對(duì)變化的橫滾角進(jìn)行修正,如圖12 所示。
圖12 修正力矩圖Fig. 12 Corrected moment diagram
本文中機(jī)器人通過(guò)在機(jī)構(gòu)中安裝陀螺儀的方法來(lái)達(dá)到隨時(shí)糾正機(jī)體繞對(duì)角軸傾斜的目的,當(dāng)機(jī)體移動(dòng)時(shí)用陀螺儀采集機(jī)體繞軸的角速度和角加速度,最后由虛擬彈簧阻尼模型輸出的虛擬力矩對(duì)傾覆力矩進(jìn)行修正。通常對(duì)機(jī)體橫滾角的期望值為零,此時(shí)的虛擬力矩為
式中:Kφx、Bφx為彈簧阻尼模型的彈性系數(shù)和阻尼系數(shù);φx為機(jī)體橫滾角期望值。
要保證機(jī)器人能始終不改變預(yù)定的運(yùn)動(dòng)方向,就要實(shí)時(shí)對(duì)機(jī)器人在航向的偏差量進(jìn)行調(diào)整。本文機(jī)器人腿部機(jī)構(gòu)的自由度為6,因此在機(jī)器人的行進(jìn)過(guò)程中機(jī)體可借助兩支撐相的足端反方向的側(cè)向接觸力實(shí)現(xiàn)對(duì)機(jī)體質(zhì)心處繞z軸扭矩的調(diào)整,即對(duì)機(jī)體前進(jìn)方向的調(diào)整是依靠支撐相反方向的虛擬力生成的側(cè)向速度實(shí)現(xiàn)的。依然使用虛擬彈簧阻尼模型對(duì)偏航角進(jìn)行糾正,則式(23)為在機(jī)器人機(jī)體質(zhì)心處生成的控制虛擬力矩的表達(dá)式:
式中:Kφz、Bφz為彈簧阻尼模型的彈性系數(shù)和阻尼系數(shù);φzd為轉(zhuǎn)動(dòng)關(guān)節(jié)期望的角度;φz為機(jī)體偏航角期望值。
當(dāng)在機(jī)器人的行進(jìn)過(guò)程中機(jī)體出現(xiàn)偏移量φz時(shí),兩支撐相的足端反方向的側(cè)向虛擬力可實(shí)現(xiàn)對(duì)機(jī)體質(zhì)心處繞z軸扭矩的調(diào)整來(lái)糾正機(jī)體的偏移量。然后機(jī)體隨φz的變化實(shí)時(shí)調(diào)整足端位移和側(cè)向速度來(lái)使機(jī)體轉(zhuǎn)動(dòng),保證機(jī)器人按預(yù)定的方向運(yùn)動(dòng)。但當(dāng)機(jī)器人受到側(cè)向沖擊時(shí),虛擬模型會(huì)在短暫的時(shí)間內(nèi)調(diào)整前進(jìn)方向,且在側(cè)向速度降低時(shí)回到正確方向。
當(dāng)機(jī)器人在斜坡上行走時(shí),其重心在豎直方向上的投影都會(huì)落在后支撐相周圍,此時(shí)由于重力的影響,機(jī)體會(huì)出現(xiàn)“后仰”現(xiàn)象,此時(shí)機(jī)體后支撐相將承擔(dān)其全部重力,而前支撐相會(huì)因與斜坡摩擦力不足出現(xiàn)打滑現(xiàn)象,更嚴(yán)重時(shí)會(huì)出現(xiàn)前支撐相直接離地的現(xiàn)象,如圖13(a)所示。為預(yù)防此種情況,本文采用姿態(tài)傳感器隨時(shí)對(duì)機(jī)體重心位置進(jìn)行調(diào)整,保證機(jī)體重力在前后支撐相上的分配更均衡。故在斜坡上運(yùn)動(dòng)時(shí),要使機(jī)器人的足端著地點(diǎn)在髖關(guān)節(jié)的坐標(biāo)原點(diǎn)處有偏移量產(chǎn)生,讓其重心在豎直方向上的投影都能落在后支撐相著地點(diǎn)周圍,使前后支撐相所承擔(dān)的重力差變小,讓機(jī)體的穩(wěn)定性盡可能得到提高,調(diào)整過(guò)程如圖13所示。圖13中,θ為機(jī)體軀干與斜坡的夾角,y軸為機(jī)體前進(jìn)方向,z軸為垂直于機(jī)體豎直向上,Dy為足端落地點(diǎn)相對(duì)于髖關(guān)節(jié)坐標(biāo)原點(diǎn)的偏移量。
圖13 修正力矩圖Fig. 13 Corrected moment diagram
首先要借助支撐相對(duì)預(yù)期的機(jī)體高度實(shí)施調(diào)整,而機(jī)器人兩支撐相的髖關(guān)節(jié)高度的平均值就是機(jī)體的高度值。這里依然需要借助彈簧阻尼模型來(lái)完成針對(duì)機(jī)體腿部高度的調(diào)整,而在豎直方向上對(duì)機(jī)體速度的期望值通常為零,此時(shí)的虛擬力為
式中:Kh、Bh為彈簧阻尼模型的彈性系數(shù)和阻尼系數(shù);hzd為轉(zhuǎn)動(dòng)關(guān)節(jié)在豎直方向上的期望高度。
對(duì)機(jī)體的偏移完成修正后,這時(shí)支撐相高度的平均值就是機(jī)器人質(zhì)心的高度值,以小跑步態(tài)為例也就是兩支撐相的平均高度,則預(yù)期的支撐相足端偏移量表達(dá)式為
式中:Y為支撐相足端實(shí)際偏移量。
當(dāng)機(jī)器人在斜坡上運(yùn)動(dòng)時(shí),機(jī)器人經(jīng)由足端預(yù)期落地點(diǎn)和實(shí)際落地點(diǎn)間的偏移來(lái)對(duì)機(jī)器人重心進(jìn)行調(diào)整,讓其始終在支撐相中心處附近,這樣使得機(jī)器人的爬坡穩(wěn)定性會(huì)增加,還能在一定程度上預(yù)防足端打滑現(xiàn)象的發(fā)生。由增益控制器對(duì)足端偏移量進(jìn)行映射,得到可以對(duì)其進(jìn)行調(diào)整的力矩,則此時(shí)的修正力矩為
式中:Kx為增益控制器的調(diào)整系數(shù)。
本文中機(jī)器人控制機(jī)體實(shí)現(xiàn)設(shè)定的預(yù)期運(yùn)動(dòng)狀態(tài)的虛擬力是由虛擬彈簧阻尼模型產(chǎn)生的,然而這些虛擬力是如何使機(jī)體單腿分支上的主動(dòng)驅(qū)動(dòng)關(guān)節(jié)執(zhí)行出來(lái)需要進(jìn)一步研究。由于機(jī)器人各腿足端的虛擬力不相同,在主動(dòng)關(guān)節(jié)處產(chǎn)生的驅(qū)動(dòng)力矩也不同,因此需要一種虛擬力的分配機(jī)制將控制機(jī)體運(yùn)動(dòng)狀態(tài)的虛擬力分配到不同腿上由此映射出這些虛擬力所需要的關(guān)節(jié)力矩。目前對(duì)這些虛擬力進(jìn)行平均分配到機(jī)器人四條腿的足端處是最簡(jiǎn)單的方法,但由于處在動(dòng)態(tài)行走中的機(jī)器人是欠驅(qū)動(dòng)的,例如使用trot 步態(tài)的機(jī)器人在移動(dòng)時(shí)同時(shí)只有兩腿著地,這時(shí)虛擬力的分配就不再是簡(jiǎn)單的四等分了。而本文中對(duì)應(yīng)用trot 步態(tài)的機(jī)器人足端虛擬力的調(diào)配問(wèn)題借助了靜力學(xué)分析法進(jìn)行確定,其中機(jī)體的各虛擬力如圖14 所示。圖14 中,fF,x、fF,y、fF,z為前肢足端虛擬力在3 個(gè)坐標(biāo)軸上的分量,fH,x、fH,y、fH,z為后肢足端虛擬力在3 個(gè)坐標(biāo)軸上的分量。
圖14 非線性振子耦合網(wǎng)絡(luò)圖Fig. 14 Diagram of coupled nonlinear oscillator network
首先對(duì)處于trot 步態(tài)的機(jī)器人進(jìn)行整體受力分析,設(shè)機(jī)體每條腿的重力都作用于其靜態(tài)平臺(tái)中心處,四條腿的重力和即為機(jī)體所受的合力,然后把合力分解為沿垂直方向向下的機(jī)體重力GB與4 條腿相同的簡(jiǎn)化重力Gi(i=1、2、3、4)5 個(gè)部分。再將這五部分力在各自坐標(biāo)系中沿坐標(biāo)軸進(jìn)行分解,但因相同的腿部簡(jiǎn)化重力在機(jī)體質(zhì)心處的和力矩為 0 N·m,為預(yù)防奇異矩陣的出現(xiàn),本文將在機(jī)體運(yùn)動(dòng)方向上的3 個(gè)虛擬力也在其坐標(biāo)系中標(biāo)出。則作用在機(jī)體質(zhì)心處的虛擬力矩與虛擬力的求解表達(dá)式為
式中:Gx、Gy、Gz為機(jī)體重力在x、y、z軸上的分量;xH、yH、zH為機(jī)體支撐相后足端虛擬力在x、y、z軸上的分量;xF、yF、zF為機(jī)體支撐相前足端虛擬力在x、y、z軸上的分量。當(dāng)機(jī)器人運(yùn)動(dòng)時(shí),一般都會(huì)令其橫滾角φx=0,這樣在y軸方向上的機(jī)器人機(jī)體重力會(huì)為0 N,但受俯仰角yφ的影響,則在x、y、z軸方向上機(jī)器人的重力大小分 別為
式中:M為機(jī)器人質(zhì)量;g為重力加速度。則支撐相的足端虛擬力可由式(28)求出,再將式(28)改寫(xiě)為矩陣形式,有
觀察式(29)的系數(shù)矩陣可發(fā)現(xiàn),其秩為5 而非滿秩,這表明僅靠機(jī)器人支撐相的足端虛擬力是實(shí)現(xiàn)不了機(jī)器人機(jī)體全方位運(yùn)動(dòng)控制的,要想實(shí)現(xiàn)機(jī)器人的全方位控制就得先限制機(jī)器人的某些運(yùn)動(dòng)狀態(tài)控制,然后再對(duì)機(jī)器人的虛擬力進(jìn)行求解。而對(duì)自然界中四足動(dòng)物的觀察還可發(fā)現(xiàn),當(dāng)其目的地在其身體側(cè)面的某一位置時(shí),動(dòng)物們并不會(huì)直接進(jìn)行側(cè)向移動(dòng),而是先旋轉(zhuǎn)自身方向再進(jìn)行移動(dòng),所以本文認(rèn)為側(cè)向移動(dòng)對(duì)機(jī)器人來(lái)說(shuō)作用不大,故選擇側(cè)向虛擬力Fy進(jìn)行限制,針對(duì)Fy添加約束條件fF,y=fH,y后,式(29)變?yōu)?/p>
觀察式(30)可發(fā)現(xiàn)其系數(shù)矩陣不為0,其必存在逆矩陣,則對(duì)式(30)的系數(shù)矩陣求逆再與機(jī)體控制虛擬力相乘可得機(jī)器人各腿足端點(diǎn)的虛擬力。而事實(shí)上本文機(jī)器人已用非線性振蕩器網(wǎng)絡(luò)得出了其向前運(yùn)動(dòng)時(shí)所需的主動(dòng)驅(qū)動(dòng)力矩,并沒(méi)有用到機(jī)體質(zhì)心處的虛擬力,只是將控制機(jī)器人姿態(tài)的虛擬扭矩和控制機(jī)身高度的虛擬力進(jìn)行了映射,故選取系數(shù)矩陣的逆矩陣中虛擬扭矩所對(duì)應(yīng)的后5 列即可。但當(dāng)處于行走中的機(jī)器人受到側(cè)向沖擊時(shí),機(jī)器人的增益控制器就會(huì)為縮短響應(yīng)時(shí)間直接輸出與側(cè)向沖擊力速度有關(guān)的足端虛擬力fF,y=fH,y=ky·vy/2 (ky為增益控制器的調(diào)整系數(shù)),此時(shí)足端虛擬力為
式中:qij(i=1, ···, 5,j=1,···, 6)為系數(shù)矩陣的第i行第j列的元素。
確定了機(jī)器人各腿的足端虛擬力后,再借助虛功原理把它反映成主動(dòng)驅(qū)動(dòng)力矩,則控制機(jī)體姿態(tài)的單腿驅(qū)動(dòng)力矩:
式中:Q表示系數(shù)矩陣。
進(jìn)一步,此方法也可應(yīng)用到機(jī)器人支撐相為多足時(shí)的步態(tài)算法中。
本文中基于Kuramoto 非線性振蕩器的中央模式控制生成四足機(jī)器人運(yùn)動(dòng)所需的基礎(chǔ)信息,關(guān)節(jié)力矩則由彈簧阻尼模型生成。考慮到處于運(yùn)動(dòng)狀態(tài)的機(jī)器人需要對(duì)其自身姿態(tài)、著地角度和運(yùn)動(dòng)方向的調(diào)整,本文采用虛擬組件對(duì)處于運(yùn)動(dòng)狀態(tài)的腿部各關(guān)節(jié)交互力的偏差量實(shí)時(shí)檢測(cè),通過(guò)虛擬模型控制計(jì)算出修正偏差,由其校正因處于不同步態(tài)時(shí)非線性振子產(chǎn)生的各關(guān)節(jié)輸出量,其整體控制框如 圖15 所示。
由圖15 可知,先是由KM 控制網(wǎng)絡(luò)產(chǎn)生步態(tài)控制信息,再經(jīng)彈簧阻尼模型輸出為各關(guān)節(jié)力矩,由其控制機(jī)器人擺動(dòng)腿的運(yùn)動(dòng)軌跡和時(shí)序。機(jī)器人也會(huì)隨時(shí)把支撐相的各姿態(tài)信息向姿態(tài)控制器發(fā)送,機(jī)器人再經(jīng)虛擬模型算出調(diào)整機(jī)體姿態(tài)所需的虛擬力,對(duì)其分配就能得到控制機(jī)器人姿態(tài)的各關(guān)節(jié)力矩,這些力矩和由KM 控制網(wǎng)絡(luò)生成力矩一起對(duì)機(jī)器人的運(yùn)動(dòng)進(jìn)行控制。
圖15 步態(tài)規(guī)劃整體框圖Fig. 15 Overall block diagram of gait planning
基于第3、4 節(jié)的研究,下面就軍用機(jī)器人的步態(tài)控制算法進(jìn)行驗(yàn)證,看其能否穩(wěn)定且有效地對(duì)機(jī)器人的運(yùn)動(dòng)進(jìn)行控制。首先將本文中機(jī)器人的虛擬樣機(jī)模型在V-REP 軟件中完成搭建,并把驗(yàn)證移動(dòng)控制算法所需要的仿真環(huán)境建好,通過(guò)仿真軟件監(jiān)測(cè)本文中機(jī)器人處于不同運(yùn)動(dòng)狀態(tài)時(shí)的各種數(shù)據(jù)以及關(guān)于穩(wěn)定裕度的變化,再由分析得到的各種數(shù)據(jù)來(lái)判斷此控制算法能否穩(wěn)定且有效的對(duì)機(jī)器人進(jìn)行控制[17-20]。
四足移動(dòng)軍用機(jī)器人的三維模型已經(jīng)在SolidWorks 軟件中設(shè)計(jì)完成,而要想在V-REP 中實(shí)現(xiàn)對(duì)三維模型的仿真,就需要在V-REP 軟件中按照實(shí)體–關(guān)節(jié)–實(shí)體的順序重新構(gòu)建一個(gè)帶有各構(gòu)件間依賴關(guān)系的機(jī)器人虛擬模型,最終模型如圖16所示。
圖16 最終模型圖Fig. 16 Final model drawing
最后,為測(cè)得機(jī)器人各足端的接觸力和機(jī)器人在移動(dòng)過(guò)程中的姿態(tài)角,還需在模型各足端處和模型中心處均加上傳感器。
為簡(jiǎn)化仿真操作,本文利用MATLAB 軟件Simulink 中的控制模型直接控制V-REP 中的虛擬樣機(jī)。本文采用Simulink 軟件中Function 直接調(diào)用V-REP 中的remoteAPI 連接庫(kù)同外部程序進(jìn)行通訊[21-22],即步態(tài)控制模型在Simulink 中就完成了搭建,再由Simulink 與V-REP 通信以達(dá)到控制V-REP 中的虛擬模型運(yùn)動(dòng)對(duì)其步態(tài)控制策略進(jìn)行驗(yàn)正的目的,則整體模型框架如圖17 所示。
圖17 步態(tài)控制模型Fig. 17 Gait control model
由圖17 可知,步態(tài)控制模型的左上角連接VREP,啟動(dòng)時(shí)由 V-REP 計(jì)算的數(shù)據(jù)會(huì)實(shí)時(shí)向MATLAB 中發(fā)送;KM 中央模型發(fā)生器位于模型上半部分,其功能為計(jì)算出機(jī)器人行走時(shí)的各關(guān)節(jié)位移,并由彈簧阻尼器將其映射成關(guān)節(jié)扭矩后再輸出;模型的下半部分用來(lái)對(duì)機(jī)器人的行走狀態(tài)進(jìn)行控制,由位于V-REP 中的傳感器把采集到的數(shù)據(jù)返回到MATLAB 軟件,由虛擬模型計(jì)算出機(jī)器人保持預(yù)期狀態(tài)所需要的虛擬力矩,然后把控制各關(guān)節(jié)進(jìn)行調(diào)整的力矩經(jīng)由靜力學(xué)平衡進(jìn)行分配,再把中央模型發(fā)生器產(chǎn)生的力矩和狀態(tài)檢測(cè)得到的支撐相力矩結(jié)合,最后對(duì)實(shí)時(shí)傳入V-REP 中由模型計(jì)算出的力矩進(jìn)行仿真。
首先要對(duì)處于正常行走狀態(tài)的機(jī)器人應(yīng)用步態(tài)控制算法測(cè)出其各項(xiàng)運(yùn)動(dòng)參數(shù)。然后對(duì)在V-REP 中虛擬樣機(jī)應(yīng)用在MATLAB 軟件中搭建的步態(tài)控制算法進(jìn)行平坦地面行走仿真,如圖18 所示。此時(shí)在trot 步態(tài)下機(jī)器人的前進(jìn)速度為0.5 m/s,由圖18 可知位于機(jī)器人機(jī)體上對(duì)角線方位的機(jī)械腿動(dòng)作是一致的,相互交替使機(jī)器人平穩(wěn)向前運(yùn)動(dòng),且在仿真過(guò)程中未出現(xiàn)使機(jī)器人機(jī)體震顫或摔倒的情況。
圖18 平地實(shí)驗(yàn)Fig. 18 Ground experiment
為保證機(jī)器人能夠穩(wěn)定的運(yùn)行,V-REP 需要把機(jī)體姿態(tài)角隨時(shí)向位于MATLAB 軟件中的步態(tài)控制器發(fā)送,保證實(shí)時(shí)輸出足端虛擬力。當(dāng)機(jī)器人處于行走狀態(tài)時(shí),機(jī)體的各個(gè)姿態(tài)角和高度的檢測(cè)值變化情況如圖19 所示。
由圖19 可知,機(jī)器人機(jī)體的姿態(tài)角均存在誤差,且為周期性的,都是因?yàn)樵诓叫袪顟B(tài)中機(jī)器人抬腿、落腿等動(dòng)作生成的難以回避的誤差,但誤差值均在-1°~1°之間;由圖19(d)可知,機(jī)身高度的誤差最小。因此可知本文機(jī)器人能保證機(jī)體按照規(guī)劃好的航向和身體姿態(tài)穩(wěn)定的進(jìn)行運(yùn)動(dòng),機(jī)體速度和足端沖擊力如圖20 所示。
圖19 機(jī)體姿態(tài)與高度Fig. 19 Body attitude and altitude
由圖20(a)可知,機(jī)體前進(jìn)速度會(huì)隨機(jī)器人的運(yùn)動(dòng)狀態(tài)發(fā)生變化,在最開(kāi)始的幾秒內(nèi),機(jī)器人由靜止?fàn)顟B(tài)到快步提速然后速度趨于穩(wěn)定;由 圖20(b)可知,因機(jī)器人足端不停的在觸地-分離間轉(zhuǎn)換,會(huì)使機(jī)體側(cè)向速度產(chǎn)生很小的瞬時(shí)誤差; 由圖20(c)可知,機(jī)體豎直方向速度會(huì)因周期性出現(xiàn)的左前足端沖擊力的影響產(chǎn)生最大0.05 m/s左右的誤差,可忽略不計(jì)。由此可得本文機(jī)器人在行走過(guò)程中能保證機(jī)體的平穩(wěn),不會(huì)使機(jī)體發(fā)生速度突變和機(jī)身傾斜的情況。
圖20 機(jī)體速度與足端力Fig. 20 Body speed and foot force
下面對(duì)處于斜坡行走的機(jī)器人進(jìn)行適應(yīng)能力驗(yàn)證。首先在實(shí)驗(yàn)環(huán)境中設(shè)立一個(gè)傾角為6°的斜坡,然后對(duì)邁入斜坡和在斜坡上運(yùn)動(dòng)時(shí)機(jī)器人的各項(xiàng)運(yùn)動(dòng)參數(shù)進(jìn)行觀察,仿真結(jié)果如圖21 所示。
圖21 斜坡實(shí)驗(yàn)Fig. 21 Slope experiment
當(dāng)機(jī)器人邁入斜坡時(shí),機(jī)體各個(gè)姿態(tài)角和高度的檢測(cè)值變化情況如圖22 所示。
圖22 機(jī)體姿態(tài)與高度Fig. 22 Body attitude and altitude
從圖22中可知,機(jī)身的俯仰角會(huì)在機(jī)器人邁入斜坡時(shí)發(fā)生驟降,擔(dān)當(dāng)機(jī)器人全部機(jī)身邁入斜坡后,機(jī)身的俯仰角會(huì)穩(wěn)定在與斜坡傾角相同的6°左右,達(dá)到新的平衡狀態(tài)。由圖22(c)得知,機(jī)身的行走的趨勢(shì)因不確定的足端接觸力會(huì)向左側(cè)傾斜,隨后又因虛擬力的作用機(jī)體又會(huì)向右產(chǎn)生傾斜,最終機(jī)體會(huì)沿原定角度行走;由圖22(d)可知,在爬坡過(guò)程中機(jī)器人機(jī)體始終保持穩(wěn)定的移動(dòng)狀態(tài)。機(jī)器人速度曲線如圖23所示。
從圖23中得知:除在剛踏入斜坡時(shí)機(jī)體速度會(huì)產(chǎn)生不穩(wěn)定變化外,都能保證機(jī)體速度的平穩(wěn),但由于斜坡的影響,在豎直方向機(jī)體會(huì)產(chǎn)生一個(gè)穩(wěn)定且不在為0 m/s的速度;除在剛踏入斜坡時(shí)機(jī)器人因步態(tài)調(diào)整產(chǎn)生了較大的接觸力外,都能保證機(jī)體的平穩(wěn)運(yùn)行。
圖23 機(jī)體速度與足端力Fig. 23 Body speed and foot force
四足機(jī)器人在行走過(guò)程中,由于機(jī)身長(zhǎng)度一般大于機(jī)身寬度,故機(jī)體在受到側(cè)面沖擊時(shí)會(huì)產(chǎn)生更大的顛覆力矩。本文擬用鐘擺錘模擬機(jī)身側(cè)面的沖擊力來(lái)測(cè)試機(jī)器人的穩(wěn)定性,鐘擺錘重40 kg,擺繩長(zhǎng)0.6 m,初始角度為60°,則發(fā)生撞擊時(shí)速度為2.5 m/s,沖量為100 kg·m/s。當(dāng)機(jī)器人的速度與姿態(tài)角受沖擊而失去穩(wěn)定性時(shí),由控制器中虛擬模型計(jì)算出用來(lái)恢復(fù)機(jī)體平衡所需的足端虛擬力,實(shí)驗(yàn)過(guò)程如圖24所示。
圖24 沖擊實(shí)驗(yàn)Fig. 24 Impact test
當(dāng)機(jī)器人遭受側(cè)向沖擊力作用時(shí),機(jī)體各個(gè)姿態(tài)角和高度的檢測(cè)值變化情況如圖25所示。
從圖25(a)中得知,機(jī)身的俯仰角會(huì)驟降同時(shí)機(jī)體后仰,但因誤差的存在,這時(shí)由虛擬模型生成的足端虛擬力可使機(jī)體向后仰的趨勢(shì)減弱,并最后使機(jī)體慢慢恢復(fù)平衡狀態(tài)。從圖25(b)中得知,機(jī)身橫滾角因沖擊力的影響瞬時(shí)產(chǎn)生一個(gè)反向偏角,且與機(jī)身前進(jìn)方向一致,用來(lái)對(duì)開(kāi)始側(cè)移的機(jī)身進(jìn)行修正,并最終恢復(fù)到原來(lái)的穩(wěn)定狀態(tài)。從 圖25(c)中得知,因本文假設(shè)沖擊力作用于機(jī)器人的前半身處,故在行進(jìn)方向上機(jī)器人偏航角的瞬時(shí)偏差最大能達(dá)20°左右,會(huì)與原前進(jìn)方向產(chǎn)生偏離,但隨機(jī)體足端虛擬力對(duì)偏航角的調(diào)整,最終機(jī)器人的行進(jìn)方向又恢復(fù)原方向上。其速度曲線如 圖26所示。
圖25 機(jī)體姿態(tài)與高度Fig. 25 Body attitude and altitude
從圖26(a)中得知,機(jī)器人的前進(jìn)速度因沖擊的影響發(fā)生驟降,但隨機(jī)體腿部姿態(tài)的調(diào)整,最終機(jī)器人的行進(jìn)速度恢復(fù)到原來(lái)的穩(wěn)定狀態(tài)。由于機(jī)體受到的沖擊來(lái)自側(cè)面,故圖26(b)中的速度值變化最明顯,突變峰值可達(dá)2 m/s,此時(shí)機(jī)器人因與預(yù)期速度產(chǎn)生偏離,機(jī)體會(huì)通過(guò)持續(xù)對(duì)足端虛擬力進(jìn)行調(diào)整來(lái)糾正機(jī)體的側(cè)向速度,一定時(shí)間后側(cè)向速度會(huì)趨于0 m/s,機(jī)體恢復(fù)到正常狀態(tài)。從 圖26(c)和圖26(d)中可知,豎向速度的劇變同姿態(tài)角相同,機(jī)體剛受到?jīng)_擊力時(shí)就會(huì)瞬時(shí)后仰,此時(shí)速度發(fā)生突變,然后隨著機(jī)體姿態(tài)的不斷調(diào)整速度也在不斷變化,并最終恢復(fù)到正常狀態(tài)。
圖26 機(jī)體速度與足端力Fig. 26 Body speed and foot force
本文在四足移動(dòng)軍用機(jī)器人控制上把基于CPG 的控制方法和基于虛擬模型的控制方法進(jìn)行綜合,為四足軍用機(jī)器人的步態(tài)行走控制設(shè)計(jì)了一種新型控制模式,在V-REP 軟件中搭建出虛擬樣機(jī),在Simulink 軟件中搭建出步態(tài)控制算法的框架,通過(guò)V-REP 與MATLAB 軟件對(duì)該虛擬樣機(jī)步態(tài)進(jìn)行聯(lián)合實(shí)驗(yàn)仿真。仿真結(jié)果驗(yàn)證了這種步態(tài)控制算法的有效性,在簡(jiǎn)化控制網(wǎng)絡(luò)的同時(shí)還能保證機(jī)器人在行走過(guò)程中擁有較強(qiáng)的靈活性和抗干擾能力,這種新型控制模式也為四足并聯(lián)軍用機(jī)器人的步態(tài)控制提供了新的思路與方法。