趙凱凱 常 健 李 斌 杜汶娟
(*中國科學(xué)院沈陽自動化研究所機器人學(xué)國家重點實驗室 沈陽 110016)(**中國科學(xué)院機器人與智能制造創(chuàng)新研究院 沈陽 110016)(***中國科學(xué)院自動化研究所 北京 100190)(****中國科學(xué)院大學(xué) 北京 100049)
近些年來,移動機器人多用在軍事任務(wù)、空間探測、災(zāi)后救援等領(lǐng)域。移動機器人通常分為剛體機器人和軟體機器人。其中,剛體機器人以剛性結(jié)構(gòu)為主,根據(jù)運動形式可大致分為輪式[1]、腿式[2]、履帶式[3]等,具有機構(gòu)剛度大、控制精度高、負載能力強等優(yōu)點,但是其機械結(jié)構(gòu)復(fù)雜、自由度固定、環(huán)境適應(yīng)性較差,多用于已知環(huán)境下。而軟體機器人由軟體材料構(gòu)成,具有柔順性好、變形能力強、自由度高,可抓取不規(guī)則物體或者易碎物體,但存在制造困難、負載能力差、難以建模的問題[4]。因此,為了兼顧剛體機器人和軟體機器人的優(yōu)點,將張拉整體結(jié)構(gòu)的概念引入到移動機器人領(lǐng)域中,即在柔性材料中嵌入剛性材料,可實現(xiàn)張拉整體機器人具有較大的強度質(zhì)量比以及一定的負載能力,同時還具有較強的可變形能力和減震能力。
張拉整體結(jié)構(gòu)可追溯到20世紀(jì)20年代,其是由一系列連續(xù)的彈性拉索和不連續(xù)的剛性壓桿構(gòu)成具有穩(wěn)定體積的力網(wǎng)絡(luò)結(jié)構(gòu)[5,6]。其中,彈性拉索僅承受拉力,而剛性壓桿僅承受壓力。該結(jié)構(gòu)最早應(yīng)用在藝術(shù)、建筑、土木等領(lǐng)域,例如穹頂[7]、橋梁等。隨后又被生物學(xué)家用來描述細胞骨架[8]以及動物肌肉骨骼[9]等。在工程方面,由于該結(jié)構(gòu)具有展開性,可用于反射天線的結(jié)構(gòu)設(shè)計[10]。
張拉整體結(jié)構(gòu)首次由Paul等人[11]提出,他們研制了3壓桿和4壓桿張拉整體機器人,對蠕動步態(tài)進行了研究,表明張拉整體機器人具有容錯性。由于6桿張拉整體機器人結(jié)構(gòu)相對簡單且能實現(xiàn)多種步態(tài),因此眾多研究人員對其展開研究。日本立命館大學(xué)[12]提出了基于氣動人工肌肉的6桿張拉整體機器人,并對其初步形態(tài)以及滾動步態(tài)進行了研究。美國航空航天局(NASA)[13,14]、哈爾濱工程大學(xué)[15]等機構(gòu)對張拉整體機器人的結(jié)構(gòu)以及步態(tài)展開了相關(guān)研究,且均在平坦地形下展開研究,而對于張拉整體機器人在斜坡上的運動研究較少。中國科學(xué)院沈陽自動化研究所[16]分析了6桿張拉整體機器人位于斜坡上的一種低重心的構(gòu)型,可避免機器人向下滾落的情況。加州伯克利大學(xué)[17]通過改變致動器的數(shù)量對機器人在斜坡上的滾動進行研究,可分別有效實現(xiàn)適合機器人在傾斜表面運動和提升運動速度,并利用仿真和物理實驗進行了相關(guān)驗證,但是并未對機器人與坡度的關(guān)系進行研究。本文首先對張拉整體機器人進行數(shù)學(xué)建模,隨后對其臨界翻滾角度進行分析,最后利用open dynamic engine (ODE)仿真平臺對機器人建模并進行了仿真和實驗。
該機器人為第2代電驅(qū)動張拉整體機器人(見圖1),一共包含6根中空的鋁桿和24條彈性拉索。其中,鋁桿長為650 mm,外徑為30 mm,內(nèi)徑為28 mm,它的每一端都設(shè)計了一個空心方塊體(見圖2),具體尺寸為80 mm×80 mm×120 mm,壁厚為1 mm,用來保護2個舵機及控制單元。中空的鋁桿中放置1塊鋰電池,為舵機及控制單元供電。在方塊體上添加一個半球形泡沫塑料使機器人始終與地面保持接觸,同時還能增加與地面的摩擦力。彈性拉索(見圖3)是由彈簧和剛性繩索組成,通過動滑輪進行連接,這樣的設(shè)計使得作用在彈性拉索的力變?yōu)槎鏅C輸出力的2倍。此外,掛有螺母的繩索與舵盤相連,另一根繩索固定在方塊體上。
圖1 6桿張拉整體機器人樣機
圖2 空心方塊體
圖3 拉索組成構(gòu)件
6桿張拉整體機器人是基于張拉整體結(jié)構(gòu)組成的,因此,可首先描述該結(jié)構(gòu)的數(shù)學(xué)模型。6桿張拉整體結(jié)構(gòu)有6根壓桿和24個彈性拉索,如圖4所示,對節(jié)點進行編號。其中,細黑線表示彈性拉索成員,粗線表示壓桿成員。
由圖4可知,張拉整體結(jié)構(gòu)有12個節(jié)點。在圖示坐標(biāo)系中,對于第i個節(jié)點,可表示為
圖4 6桿張拉整體結(jié)構(gòu)
ni=[xi,yi,zi]Ti=1,2,…,12
(1)
張拉整體結(jié)構(gòu)可通過節(jié)點表示出來,其暗含了壓桿和彈性拉索的長度以及相鄰壓桿與彈性拉索的角度等信息。
對于張拉整體結(jié)構(gòu),壓桿和彈性拉索通過節(jié)點相互連接,因此均可由節(jié)點坐標(biāo)進行表示。結(jié)構(gòu)中的第p個壓桿成員定義為bp,可表示為
bp=n2p-n2p-1p=1,…,6
(2)
取結(jié)構(gòu)中第k個彈性拉索成員為sk,該彈性拉索的2個節(jié)點分別為njk和nik,該拉索可表示為
sk=njk-nikk=1,…,24
(3)
其中ik和jk的值見表1。
表1 ik和jk的取值
由式(1)~(3)可分別得到張拉整體結(jié)構(gòu)的節(jié)點矩陣N、壓桿成員矩陣B、彈性拉索成員矩陣S。
N=[n1, …,n12]
B=[b1, …,b6]
S=[s1, …,s24]
(4)
張拉整體結(jié)構(gòu)的整個成員矩陣可寫為
M=[B,S]
(5)
為了建立結(jié)構(gòu)的節(jié)點矩陣與成員矩陣之間的關(guān)系,引入了連接矩陣。連接矩陣的每一行表示一個成員與所有節(jié)點之間的關(guān)系。連接矩陣的每個值可以通過式(2)和式(3)得到。連接矩陣中的元素只包括-1,0和1?!?”代表節(jié)點不是該成員的端點,“1”代表節(jié)點為成員向量的終止點,“-1”表示節(jié)點為該成員向量的初始節(jié)點。
由于張拉整體結(jié)構(gòu)由壓桿和彈性拉索組成,因此連接矩陣可以描述為
C=[CB;CS]
(6)
其中,C為張拉整體結(jié)構(gòu)的連接矩陣,CB和CS分別為壓桿和彈性拉索的連接矩陣。
由此,根據(jù)連接矩陣的定義,可得到如下等式:
M=NCT
(7)
至此,建立起張拉整體機器人的數(shù)學(xué)模型。
機器人重心與底邊三角形投影的關(guān)系可分為2種情況,如圖5所示。其中,G為張拉整體機器人的重心,G′為機器人重心的投影,ijk為底邊接觸的三角形,帶有顏色的區(qū)域為底邊三角形在水平面的投影。當(dāng)重心的水平面投影在底邊三角形的水平面投影區(qū)域時,機器人處于穩(wěn)定狀態(tài),如圖5(a)所示。反之,將發(fā)生滾動,如圖5(b)所示。
(a) 穩(wěn)定狀態(tài) (b) 滾動狀態(tài)
依據(jù)滾動原則,利用Matlab圖形用戶界面(GUI)設(shè)計了張拉整體機器人人機交互界面,如圖6所示。
圖6 張拉整體機器人人機交互界面
首先可選擇與坡面接觸的三角形類型,之后通過輸入斜坡的角度Theta和機器人繞Z軸旋轉(zhuǎn)的角度Beta,點擊“Plot”,生成張拉整體機器人的結(jié)構(gòu)3維圖以及重心與坡面接觸三角形的3維圖。
張拉整體機器人由于坡度以及擺放姿態(tài)的角度不同,其重心會發(fā)生變化。當(dāng)斜坡的角度達到臨界坡度時,無論機器人擺放何種姿態(tài),機器人都能穩(wěn)定在斜坡上,即要保證機器人的重心位于底邊三角形在水平面的投影區(qū)域內(nèi)。
對于張拉整體機器人來說,有2種初始狀態(tài):
(1) 機器人與坡面接觸為RT三角形
當(dāng)機器人與坡面接觸的三角形為RT179時,如圖7(a)所示,坐標(biāo)軸下標(biāo)為w的表示基坐標(biāo)系,下標(biāo)為b的表示體坐標(biāo)系,θ為坡度,β為Xb與Xw的夾角,且逆時針旋轉(zhuǎn),a為2個坐標(biāo)系原點在水平面的距離。此時,機器人關(guān)于軸對稱,因此,β的取值范圍為0~120 °,為逆時針旋轉(zhuǎn)。
(a) 底邊為RT179
(b) 底邊為IT137
通過在張拉整體機器人人機界面輸入不同的θ和β,可得到張拉整體機器人的不同位姿,觀察機器人重心的位置。經(jīng)過反復(fù)計算可知,底邊為RT179時,機器人臨界翻滾坡度在22 °左右, 其中,β值為旋轉(zhuǎn)80~90 °時,機器人的重心的水平面投影靠近17邊的水平面投影,故機器人有沿底邊17翻滾的趨勢。
(2) 機器人與坡面接觸為IT三角形
當(dāng)機器人與坡面接觸的三角形為IT137時,如圖7 (b)所示,坐標(biāo)軸下標(biāo)為w的表示基坐標(biāo)系,下標(biāo)為b的表示體坐標(biāo)系,θ為坡度,β為Xb與Xw的夾角,a為2個坐標(biāo)系原點在水平面的距離。此時,機器人關(guān)于平面對稱,因此,β的取值范圍為-90~90 °,且為逆時針旋轉(zhuǎn)。
分析方法同RT179,利用張拉整體機器人人機界面可得,底邊為IT137時,機器人臨界翻滾坡度在17 °左右, 其中,β值為5~45 °時,機器人的重心的水平面投影靠近17邊的水平面投影,機器人有沿底邊17翻滾的趨勢。
ODE是一個免費的具有工業(yè)品質(zhì)的動力學(xué)仿真平臺。該平臺可以模擬真實環(huán)境下物體的動力學(xué)。在該平臺建立的物體包括2部分:body和geom。其中,body包括物體的位姿和材料參數(shù)(例如密度、質(zhì)量)等;geom包括物體的形狀參數(shù),例如直徑、長度、位姿信息。相比于ADAMS來說,只需要改變機器人的位姿便可對機器人展開研究。對于張拉整體機器人(見圖8),壓桿采用兩頭為半球形的實心構(gòu)件來模擬真實的桿件,彈性拉索簡化為2個萬向關(guān)節(jié),通過滑移關(guān)節(jié)進行連接來模擬彈簧的伸縮。壓桿和彈性拉索的連接采用萬向節(jié)。ODE仿真過程如圖9所示。由于彈性拉索的質(zhì)量遠小于壓桿的質(zhì)量,因此,可以忽略彈性拉索的質(zhì)量。機器人在ODE中建模的其余結(jié)構(gòu)參數(shù)見表2。
圖8 張拉整體機器人仿真模型
圖9 ODE仿真過程
表2 張拉整體機器人構(gòu)件參數(shù)
隨后,通過式(8)進行齊次變換,建立坐標(biāo)系,如圖10所示。
(a) 底邊三角形為RT179
(b) 底邊三角形為IT137
(8)
隨后,改變θ和β的值,可得到如下結(jié)果:
(1) 底邊為RT179時,無論β取何值都能穩(wěn)定在斜坡上的臨界翻滾坡度為18 °。其中,β值為80~90 °時,機器人開始出現(xiàn)不穩(wěn)定狀態(tài),有沿邊17翻滾的跡象,這與Matlab計算得到的結(jié)果一致。
(2) 底邊為IT137時,無論β取何值都能穩(wěn)定在斜坡上的臨界翻滾坡度為14 °,而且β取值為5~45 °時,機器人有沿邊17翻滾的跡象,與Matlab計算的結(jié)果一致。
可以看出,ODE仿真結(jié)果與Matlab的計算結(jié)果有差異,這是由于機器人在ODE仿真平臺中壓桿的末端為半球形結(jié)構(gòu),導(dǎo)致拉索變短,使得機器人的重心略有前傾,導(dǎo)致與理論值有所差別。
為了驗證上述仿真結(jié)果的正確性,搭建了實驗平臺,如圖11所示。其中,數(shù)顯傾角儀可以顯示坡度值,分辨率為0.1 °。海綿墊是為了增大機器人與坡面的摩擦力。
圖11 實驗平臺搭建
通過反復(fù)進行實驗,發(fā)現(xiàn)張拉整體機器人底邊三角形為RT時,機器人可以穩(wěn)定在坡度17.8 °左右,見圖12。底邊三角形為IT時,機器人的臨界翻滾坡度為14.7 °左右,見圖13。由此可知實驗結(jié)果與仿真結(jié)果相近驗證了建立的仿真模型的正確性。
本文首先對6桿張拉整體機器人結(jié)構(gòu)進行了描述和數(shù)學(xué)建模。隨后利用Matlab軟件和ODE仿真平臺對6桿張拉整體機器人建立張拉整體機器人的仿真模型,并根據(jù)翻滾原則對臨界翻滾坡度進行了分析,最后搭建實驗平臺進行實驗,將仿真結(jié)果和實驗結(jié)果進行了對比,驗證了臨界翻滾坡度仿真結(jié)果的正確性和仿真模型的合理性。本文的主要貢獻包括:
圖12 底邊三角形為RT
圖13 底邊三角形為IT
(1) 建立了張拉整體機器人的數(shù)學(xué)模型,并設(shè)計了張拉整體機器人的人機界面,通過輸入?yún)?shù),可以獲得機器人的位姿以及重心的位置。
(2) 利用ODE動力學(xué)平臺建立了仿真模型,對機器人處于靜態(tài)坡面的情形進行了研究,確定了機器人的臨界翻滾坡度,并通過實驗進行了驗證。
未來將利用ODE仿真平臺建立的機器人仿真模型對張拉機器人的動力學(xué)以及斜坡滾動方向展開研究。