張騰飛,溫秀蘭,崔俊宇,芮 平,白冰峰
(南京工程學(xué)院 自動(dòng)化學(xué)院,南京 211167)
六足機(jī)器人具有豐富的步態(tài)和冗余的肢體結(jié)構(gòu), 是仿生機(jī)器人的典型代表之一[1]。目前國(guó)內(nèi)外研究熱點(diǎn)多是機(jī)械結(jié)構(gòu)的優(yōu)化設(shè)計(jì)[2-5]。國(guó)內(nèi)哈爾濱工業(yè)大學(xué)鄧宗全教授對(duì)六足機(jī)器人步行腿節(jié)段比例進(jìn)行研究,找出最適合基節(jié)比例[2],并且提出一種低沖擊運(yùn)動(dòng)規(guī)劃方法的液壓六足機(jī)器人,該方法以低沖擊平順運(yùn)動(dòng)為目標(biāo),減小足地接觸沖擊的足端軌跡規(guī)劃方法[3]。河北工業(yè)大學(xué)張建華副教授設(shè)計(jì)了一種基于馬爾可夫決策過(guò)程的自由步態(tài)六足機(jī)器人,有變形關(guān)節(jié)和輪式足端,具備較好的靈活性及環(huán)境適應(yīng)能力[4]。國(guó)外,美國(guó)密歇根大學(xué)和卡內(nèi)基梅隆大學(xué)合作組成的研究團(tuán)隊(duì)通過(guò)模仿蟑螂步態(tài)成功地研制了仿生六足步行機(jī)器人RHex,通過(guò)改變5個(gè)參數(shù)值控制機(jī)器人的步態(tài),平均速度0.5 m/s[5]??偨Y(jié)目前研究成果,多是通過(guò)對(duì)六足昆蟲(chóng)運(yùn)動(dòng)時(shí)的觀察來(lái)進(jìn)行模擬仿真確定其所設(shè)計(jì)六足機(jī)器人的運(yùn)動(dòng)步態(tài),雖然可以滿足六足機(jī)器人運(yùn)動(dòng)的要求,但提出的運(yùn)動(dòng)步態(tài)各有不同,沒(méi)有具體的針對(duì)多模式下步態(tài)的測(cè)量系統(tǒng)開(kāi)展深入研究。因此,為了進(jìn)一步探究六足機(jī)器人的運(yùn)動(dòng)特性問(wèn)題,結(jié)合Kinect相機(jī),設(shè)計(jì)出一種空間多模式下的六足機(jī)器人運(yùn)動(dòng)測(cè)量系統(tǒng)。
六足機(jī)器人多模式運(yùn)動(dòng)測(cè)量系統(tǒng)硬件結(jié)構(gòu)主要包括六足機(jī)器人、視覺(jué)采集系統(tǒng)和圖像處理系統(tǒng)三部分。六足機(jī)器人通過(guò)控制器CM-530編程,利用絕對(duì)值A(chǔ)X-12A 舵機(jī)來(lái)實(shí)現(xiàn)多模式下步態(tài)設(shè)計(jì)[6]。視覺(jué)采集系統(tǒng)主要是利用Kinect視覺(jué)相機(jī)來(lái)獲取測(cè)量六足機(jī)器人在空間三維下的位置信息。通過(guò)微軟Kinect系統(tǒng)的單目RGB攝像機(jī)以及深度距離RGB-D像機(jī),來(lái)獲取六足機(jī)器人在世界坐標(biāo)系X-0-Y平面的坐標(biāo)和Z軸方向上的坐標(biāo)進(jìn)而求得六足機(jī)器人在空間坐標(biāo)系X-Y-Z下的三維坐標(biāo)參數(shù)。圖像處理系統(tǒng)主要是通過(guò)PC機(jī)來(lái)處理Kinect相機(jī)采集到的數(shù)據(jù)。通過(guò)opencv庫(kù)進(jìn)行圖像處理,在VS2010軟件平臺(tái)下,進(jìn)行數(shù)據(jù)的分析處理,從而實(shí)現(xiàn)六足機(jī)器人多模式下的步態(tài)檢測(cè)[7]。系統(tǒng)的硬件環(huán)境如圖1所示。
圖1 六足機(jī)器人運(yùn)動(dòng)測(cè)量系統(tǒng)硬件環(huán)境
本系統(tǒng)所設(shè)計(jì)的六足機(jī)器人,由一個(gè)Robot機(jī)器人控制器、兩塊大小不等的PP塑料、18個(gè)RX-23舵機(jī)和若干個(gè)舵機(jī)連接件組成。Robot機(jī)器人控制器是六足仿生機(jī)器人的控制中心,控制器與6只腳連接,每只腳由3個(gè)RX-23舵機(jī)組成。兩塊大小不等的PP塑料,分別是矩形紅色和正方形白色。
為了更好的驗(yàn)證六足機(jī)器人在不同步態(tài)下的運(yùn)動(dòng)穩(wěn)定性問(wèn)題,共設(shè)計(jì)單足、雙足、三足三種步態(tài)??紤]到六足機(jī)器人在平面運(yùn)動(dòng)時(shí)Z軸方向的穩(wěn)定性因素的影響,設(shè)計(jì)了旋轉(zhuǎn)運(yùn)動(dòng)步態(tài)。單足步態(tài)指六足機(jī)器人每個(gè)運(yùn)動(dòng)周期只有一只腳作為前進(jìn)腳,剩下的5只腳作為支撐足。同理,雙足步態(tài)就是兩只腳作為前進(jìn)足,三足步態(tài)就是三只腳作為前進(jìn)足。旋轉(zhuǎn)步態(tài)是六足機(jī)器人繞Z軸,在X-O-Y平面上做旋轉(zhuǎn)運(yùn)動(dòng)。上述4種步態(tài)結(jié)構(gòu)圖如2所示。
圖2 六足機(jī)器人步態(tài)
本測(cè)量系統(tǒng)要求對(duì)六足機(jī)器人在世界坐標(biāo)系下的三維坐標(biāo)做到實(shí)時(shí)反饋。要想保證測(cè)量系統(tǒng)的準(zhǔn)確性,必須要保證Kinect相機(jī)的精度。因此,要對(duì)Kinect設(shè)備進(jìn)行標(biāo)定。Kinect相機(jī)的參數(shù)分為內(nèi)參,畸變參數(shù)和外參。由于Kinect相機(jī)模型采用的是針孔成像原理,中心軸安裝偏心問(wèn)題會(huì)產(chǎn)生精度誤差,所以要進(jìn)行內(nèi)參數(shù)標(biāo)定??紤]到Kinect相機(jī)為了提高采光效率而使用透鏡,這種透鏡會(huì)造成畸變誤差的問(wèn)題,所以對(duì)畸變參數(shù)進(jìn)行標(biāo)定?;冋`差分為徑向畸變誤差和切向畸變誤差。徑向畸變誤差是因?yàn)橥哥R會(huì)使得成像的中心O產(chǎn)生畸變,并且越偏離光學(xué)中心O,畸變誤差越大。切向畸變誤差是透鏡所在平面不完全平行于圖像平面而產(chǎn)生[8]。Kinect相機(jī)外參數(shù)誤差標(biāo)定是針對(duì)旋轉(zhuǎn)3個(gè)角度和平移的6個(gè)方向參數(shù)進(jìn)行標(biāo)定。
1.2.1 標(biāo)定原理
由于光學(xué)畸變的影響,使得彩色圖和深度圖對(duì)應(yīng)的像素點(diǎn)不一致,采用Kinect攝像頭標(biāo)定的方法可以校正二者對(duì)齊。Kinect的標(biāo)定采用棋盤式標(biāo)定方法。在棋盤中,黑色格子與白色格子相見(jiàn)排列,不同顏色的格子之間有明顯的邊界,即“角點(diǎn)”。通過(guò)程序來(lái)識(shí)別二維圖像上的彩色像素點(diǎn),從而獲取坐標(biāo)[9]。對(duì)Kinect設(shè)備的彩色相機(jī)和深度相機(jī)進(jìn)行標(biāo)定,設(shè)景物點(diǎn)P1的坐標(biāo)為(x1,y1,z1),P1在成像平面的成像點(diǎn)P2的坐標(biāo)為(x2,y2,z2),則:
(1)
f是相機(jī)的焦距,f=z2。在Kinect相機(jī)內(nèi)參數(shù)標(biāo)定中,成像平面上的像經(jīng)放大處理得到數(shù)字圖像,成像平面上成像點(diǎn)(x2,y2)轉(zhuǎn)換為圖像點(diǎn)(u,v)。將光軸中心線在成像平面的交點(diǎn)的圖像坐標(biāo)記為(u0,v0),則:
(2)
ax和ay成像平面到圖像平面在X軸和Y軸方向上的放大系數(shù)。聯(lián)立(1)和(2)可以得到攝像機(jī)內(nèi)參矩陣(3):
(3)
式中,kx=axf,f是X軸方向的放大系數(shù);ky=ayf,f是Y軸方向的放大系數(shù),Min即為內(nèi)參矩陣。
(4)
Kinect外參數(shù)的矩陣為:
(5)
式中,(xc,yc,zc)表示景物點(diǎn)在攝像機(jī)坐標(biāo)系中坐標(biāo),(xw,yw,zw)表示景物點(diǎn)在owxwywzw中坐標(biāo),cMw是外參矩陣。
1.2.2 標(biāo)定誤差
通過(guò)軟件編程,利用opencv開(kāi)源庫(kù),對(duì)14幅不同角度的棋盤圖標(biāo)定得到Kinect相機(jī)的標(biāo)定參數(shù)為:
(1)內(nèi)參數(shù)
(2)畸變參數(shù)
式中,k1為徑向參數(shù),k2為畸變參數(shù),p1為切向參數(shù),p2為畸變參數(shù),k3為可選參數(shù)無(wú)實(shí)際意義。
(3)外參數(shù)
通過(guò)對(duì)每幅圖像像素進(jìn)行計(jì)算,得出紅外相機(jī)到彩色相機(jī)的旋轉(zhuǎn)矩陣和平移矩陣,進(jìn)而計(jì)算出Kinect的外參矩陣。
標(biāo)定結(jié)果:
由旋轉(zhuǎn)矩陣得,紅外相機(jī)與彩色相機(jī)之間無(wú)明顯的旋轉(zhuǎn)變換。由平移矩陣得,紅外相機(jī)與彩色相機(jī)在X軸方向上有0.023m的平移量,Y軸和Z軸方向上的平移可以忽略不計(jì)。
(4)標(biāo)定像素誤差s
通過(guò)對(duì)不同角度的14幅圖的像素進(jìn)行采樣分析,得到每幅采樣圖像的平均誤差如圖3所示。
圖3 標(biāo)定像素誤差
計(jì)算圖3中不同角度的14幅圖的像素平均誤差為0.05像素,標(biāo)準(zhǔn)差0.0066,滿足實(shí)驗(yàn)的要求。
六足機(jī)器人多模式測(cè)量系統(tǒng)軟件流程圖如圖4所示。當(dāng)程序開(kāi)始運(yùn)行時(shí),首先對(duì)各個(gè)硬件設(shè)備進(jìn)行初始化設(shè)置,包括六足機(jī)器人、Kinect相機(jī)等。設(shè)計(jì)六足機(jī)器人的運(yùn)動(dòng)步態(tài)軌跡,當(dāng)六足機(jī)器人進(jìn)入Kinect相機(jī)工作區(qū)域時(shí),程序就會(huì)采集圖片信息,進(jìn)行二值化、RGB識(shí)別處理,然后根據(jù)處理結(jié)果,輸出處理過(guò)后的圖片和所需的三維坐標(biāo)信息。運(yùn)行主界面設(shè)計(jì)主要是分為三部分,第一部分是RGB顏色顯示區(qū)域,分別顯示采集到的圖片的紅色、綠色和藍(lán)色三種顏色;第二部分用一幅圖來(lái)顯示Kinect相機(jī)輸入經(jīng)過(guò)VS2010處理過(guò)后輸出的圖片,包含定位點(diǎn)在整個(gè)世界坐標(biāo)系的三維坐標(biāo)信息。第三部分是數(shù)據(jù)的實(shí)時(shí)顯示和存儲(chǔ)。程序開(kāi)始運(yùn)行,所采集到的坐標(biāo)就會(huì)在編輯框中顯示并且生成文本文件,記錄所需數(shù)據(jù)。
圖4 軟件流程
通過(guò)對(duì)六足仿生機(jī)器人的舵機(jī)編程,實(shí)現(xiàn)六足機(jī)器人的單足、雙足、三足和旋轉(zhuǎn)四種步態(tài)下的運(yùn)動(dòng)。使用Kinect彩色相機(jī)和紅外相機(jī)采集到的圖像進(jìn)行處理,得到不同步態(tài)下六足機(jī)器人在空間坐標(biāo)系X、Y、Z軸的坐標(biāo)和當(dāng)前運(yùn)動(dòng)方向與X軸的夾角。
使用所設(shè)計(jì)的多步態(tài)運(yùn)動(dòng)測(cè)量系統(tǒng),采集到在各步態(tài)下的三維坐標(biāo)數(shù)據(jù),將數(shù)據(jù)導(dǎo)入MATLAB 7.0中進(jìn)行分析計(jì)算,得出各步態(tài)Z平面如圖5所示,各步態(tài)運(yùn)動(dòng)軌跡如圖6所示。如圖5所示,是為了驗(yàn)證各步態(tài)的穩(wěn)定性,對(duì)四種步態(tài)下參考點(diǎn)到Kinect相機(jī)距離進(jìn)行計(jì)算得到的點(diǎn)云數(shù)據(jù)。由圖可得,四種步態(tài)下的整體數(shù)據(jù)均無(wú)較大波動(dòng)。圖6中X、Y軸為圖像坐標(biāo)系轉(zhuǎn)換為世界坐標(biāo)系的坐標(biāo)軸,(x,y)坐標(biāo)點(diǎn)是六足機(jī)器人定位點(diǎn),所擬合出來(lái)的曲線為六足機(jī)器人定位點(diǎn)的運(yùn)動(dòng)軌跡。分析四幅圖可知,六足機(jī)器人沿直線運(yùn)動(dòng)時(shí),單足步態(tài)下,擬合出的軌跡線與直線最為貼合,但在運(yùn)動(dòng)過(guò)程中,會(huì)出現(xiàn)數(shù)據(jù)突變現(xiàn)象。雙足步態(tài)下,軌跡線較為貼近直線且運(yùn)動(dòng)過(guò)程中,不會(huì)發(fā)生突變現(xiàn)象。三足步態(tài)下,六足機(jī)器人擺動(dòng)幅度較大,因此實(shí)驗(yàn)擬合出來(lái)的軌跡線與直線相差較大,且波形不穩(wěn)定。旋轉(zhuǎn)步態(tài),六足機(jī)器人在X-0-Y平面上做橢圓運(yùn)動(dòng),由于六足機(jī)器人步態(tài)設(shè)計(jì)運(yùn)動(dòng)周期與程序運(yùn)行周期存在時(shí)間間隔,軌跡線出現(xiàn)了一定的錯(cuò)位和交叉現(xiàn)象。綜上所述,該測(cè)量系統(tǒng)實(shí)現(xiàn)了對(duì)不同步態(tài)下六足機(jī)器人運(yùn)動(dòng)特性的測(cè)量,改進(jìn)了僅僅通過(guò)軟件仿真對(duì)六足機(jī)器人運(yùn)動(dòng)特性描述方法的不足,通過(guò)對(duì)實(shí)驗(yàn)結(jié)果的分析得出的結(jié)論,更可靠,具有說(shuō)服力。
圖5 Z軸距離點(diǎn)云
圖6 步態(tài)運(yùn)動(dòng)軌跡
本文針對(duì)目前缺乏對(duì)六足機(jī)器人多模式下運(yùn)動(dòng)特性探究的問(wèn)題,通過(guò)對(duì)舵機(jī)控制器進(jìn)行編程來(lái)控制舵機(jī)實(shí)現(xiàn)仿生運(yùn)動(dòng),利用Kinect相機(jī)RGB-D特征提取等圖像處理技術(shù)完成對(duì)六足機(jī)器人空間的定位,從而實(shí)現(xiàn)了六足機(jī)器人在多模式下的空間運(yùn)動(dòng)的跟蹤和測(cè)量功能。系統(tǒng)可應(yīng)用在六足機(jī)器人的多模式的運(yùn)動(dòng)參數(shù)測(cè)量中,并且由實(shí)驗(yàn)得出六足機(jī)器人在雙足步態(tài)直線前進(jìn)中有較高的穩(wěn)定性,為仿生機(jī)器人運(yùn)動(dòng)特性研究提供了一定的參考價(jià)值。
[1] Chen X, Wang L Q, Ye X F, et al. Prototype development and gait planning of biologically inspired multi-legged crablike robot[J]. Mechatronics, 2013, 23(4): 429-444.
[2] 鄧宗全,劉逸群,高海波,等. 液壓驅(qū)動(dòng)六足機(jī)器人步行腿節(jié)段長(zhǎng)度比例研究[J]. 機(jī)器人,2014,36(5):544-551.
[3] 劉逸群,鄧宗全,劉振,等. 液壓驅(qū)動(dòng)六足機(jī)器人一種低沖擊運(yùn)動(dòng)規(guī)劃方法[J]. 機(jī)械工程學(xué)報(bào),2015,51(3):10-17.
[4] 李滿宏,張建華,張明路. 新型仿生六足機(jī)器人自由步態(tài)中足端軌跡規(guī)劃[J]. 中國(guó)機(jī)械工程,2014,25(6):821-825.
[5] 李滿宏,張明路,張建華,等. 六足機(jī)器人關(guān)鍵技術(shù)綜述[J]. 機(jī)械設(shè)計(jì),2015,32(10):1-8.
[6] J Zhang J Wang, W Chen, et al.Virtual model optimization and locomotion control of bionic hexapod robot[C].2012 7th IEEE Conference on Industrial Electronics and Applications (ICIEA), Singapore, 2012:497-501.
[7] 楊東方,王仕成,劉華平,等. 基于Kinect系統(tǒng)的場(chǎng)景建模與機(jī)器人自主導(dǎo)航[J]. 機(jī)器人,2012,34(5):581-589.
[8] 喬鳳斌,張松,郭立杰. 基于機(jī)器視覺(jué)的槍式微型電阻焊接系統(tǒng)設(shè)計(jì)與應(yīng)用[J]. 組合機(jī)床與自動(dòng)化加工技術(shù),2013(4):86-88,92.
[9] 鄭梓均.基于ROS系統(tǒng)的簡(jiǎn)易服務(wù)機(jī)器人關(guān)鍵技術(shù)的研究[D].無(wú)錫:江南大學(xué),2016.