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