王煥,楊佳欣,張昊,,尹銘澤,盧敏,倪進峰
(南京航空航天大學 a. 航天學院; b.機電學院,江蘇 南京 210016)
近年來,關(guān)于移動機器人的很多有價值的研究均集中在不規(guī)則地面、上下坡和階梯等不同地面環(huán)境下的行走。各種粘附材料的成功制備使得機器人克服重力在垂直墻面上的行走成為一個新的研究熱點[1]。南京航空航天大學仿生所的吉愛紅、王周義等致力于壁虎腳掌粘附力的測試[2]、大壁虎在天花板上的運動行為研究[3-4]。大壁虎之所以能成為炙手可熱的研究對象,一方面由于其超強的壁面行走能力,另一方面它能自如地從一個平面過渡到另一個平面,雖然目前很多研究機構(gòu)已經(jīng)研制出了各種可以在垂直壁面上行走的仿壁虎機器人[5],但是從一個平面過渡到另一個平面的步態(tài)研究很少。2009年,首爾國立大學的Donghoon Son[6]提出了一套完整的算法研究了移動機器人從地面移動到墻面及在垂直面上的爬行步態(tài),文章運用逆向運動學分析了機器人整個機身的雅克比矩陣,規(guī)劃出了地壁過渡的步態(tài)。成均館大學的Vo-Gia Loc等[7-8]人詳細仿真了四足機器人在復雜地形上的行走,其中包括兩相交平面之間的過渡,文章首先分析求解了足端工作空間,再通過篩選將其限制在行走面上,通過傳感器判斷障礙物距離與形態(tài),調(diào)用步態(tài)規(guī)劃算法來跨越障礙或者進行相交平面之間的過渡。張昊等[9]提出了一種側(cè)向橫爬型過渡步態(tài),即當機器人身體軸線(頭部與尾巴連線)與墻面平行時,機器人可以像螃蟹一樣進行側(cè)向橫爬運動,以完全對稱的步態(tài)過渡到墻面。西北工業(yè)大學曹飛祥等[10]設(shè)計并研究了一種具有柔性多桿機構(gòu)腰部和尾巴的仿壁虎機器人結(jié)構(gòu),這種機器人可以跟真實壁虎一樣雙前腿和雙后腿分別經(jīng)過一次完整的步態(tài)過程跨上墻壁面。因此,研究出仿壁虎機器人從地面過渡到墻面的步態(tài)不僅可以運用于其他爬壁機器人、清洗機器人垂直面間過渡的步態(tài),也可以應用于搜救機器人在地震現(xiàn)場、廢棄建筑物里的行動,而且結(jié)合機器學習的知識,可以研究機器人自主規(guī)劃垂直面間過渡的初始條件判斷、爬行角度、步態(tài)選擇。
如圖1所示為南航仿生所研制的仿壁虎機器人,該機器人采用四足正向?qū)ΨQ布置方式,腿部采用串聯(lián)式旋轉(zhuǎn)關(guān)節(jié)結(jié)構(gòu),每條腿具有6個自由度(3個主動驅(qū)動自由度,3個被動約束自由度)。1號電機負責抬、放腿動作;2號電機和3號電機負責完成腳掌在平面內(nèi)的運動。球關(guān)節(jié)腳掌為自主恢復的3個被動約束自由度。從身體到腿依次往外為髖關(guān)節(jié)、膝關(guān)節(jié)和踝關(guān)節(jié),其中髖關(guān)節(jié)由1號電機和2號電機組成,膝關(guān)節(jié)由3號電機組成,踝關(guān)節(jié)采用被動結(jié)構(gòu)球鉸鏈,幫助腳掌調(diào)整起姿態(tài),其中,髖關(guān)節(jié)連接軀干與大腿,膝關(guān)節(jié)連接大腿與小腿,足端通過球關(guān)節(jié)與小腿相連。
圖1 南航仿壁虎機器人三維模型圖
機器人結(jié)構(gòu)簡圖如圖2所示,腿部為串聯(lián)連桿機構(gòu),任意一條腿包括l1、l2、l33個連桿以及J1、J2、J3、J44個關(guān)節(jié)。髖關(guān)節(jié)由軸線在空間中相互垂直的2個旋轉(zhuǎn)關(guān)節(jié)J1,J2(抬腿、邁腿關(guān)節(jié))組成,忽略電機安裝導致的少量位移,2關(guān)節(jié)的中心在空間中重合;膝關(guān)節(jié)處為J3外擺關(guān)節(jié);踝關(guān)節(jié)處為J4球關(guān)節(jié)。其中l(wèi)1為大腿連桿,l2,l3為90°固接的平面連桿機構(gòu),組成機器人的小腿。
圖2 仿壁虎機器人結(jié)構(gòu)簡圖
建立如下坐標系:設(shè)OC為機器人的幾何中心,Ki為髖關(guān)節(jié)處與機身固連的一點,Ai為足端中心,則OC處建立OC-XCYCZC為質(zhì)心坐標系∑C,在Ki處建立腿基坐標系∑K(OK-XKYKZK)。在J1、J2、J3處依次建立O1-X1Y1Z1,O2-X2Y2Z2,O3-X3Y3Z3,分別為髖關(guān)節(jié)坐標系∑1,∑2,膝關(guān)節(jié)坐標系∑3,由于踝關(guān)節(jié)J4為被動自由度,故不建立坐標系,最后建立足端坐標系∑A(OA-XAYAZA)。需要說明的是,由于腿基坐標系∑K(OK-XKYKZK)與機身軀干固連,因此腿基坐標系與質(zhì)心坐標系之間的位姿關(guān)系始終不變。
已知機器人的幾何參數(shù)和各個關(guān)節(jié)的旋轉(zhuǎn)變量,求末端部件相對于選定基準坐標系的位姿時首先建立連桿坐標系,取機器人右前腿為例,如圖2所示。用D-H[11-14]法推導變換矩陣,代入機器人模型的數(shù)據(jù),結(jié)合電機的運動范圍以及機構(gòu)的干涉情況,用變換矩陣求解得α、β和γ的轉(zhuǎn)動范圍分別為-55°~43°,-80°~60°,-38°~90°。其中機器人大腿長21 cm,小腿長18 cm。
右前腿的D-H參數(shù)見表1。
表1 右前腿D-H參數(shù)表
仿壁虎機器人采用對角步態(tài)[15-17]行走,身體前進的時候四肢分為兩組前進,右前腿(right front leg)和左后腿(left hind leg)尋找落腳點的時候,左前腿(left front leg)和右后腿(right hind leg)保持支撐;左前腿和右后腿尋找落腳點的時候,右前腿和左后腿支撐。如圖3所示,初始步態(tài)OC1中,由身體質(zhì)心坐標正向推導得4個足端腳掌的落腳點RF1,RH1,LF1,LH1;步態(tài)OC1-OC2中,給身體重心坐標一個前進向量,通過新的身體重心位置推導得右前腿和左后腿的足端腳掌落腳點RF2,LH2,右前腿和左后腿為擺動相,左前腿和右后腿為支撐相,落腳點LF2和RH2同LF1和RH1一樣;步態(tài)OC2-OC3中,右前腿和左后腿變?yōu)橹蜗囹?qū)動身體前進,落腳點RF3和LH3同RF2和LH2一樣,通過RF2和LH2運用逆向運動學反推得OC3中的關(guān)節(jié)旋轉(zhuǎn)角度,左前腿和右后腿變?yōu)閿[動相,落腳點為LF3,RH3。如此循環(huán)利用正向運動學和逆向運動學完成對角步態(tài)的行走。
圖3 仿壁虎機器人對角步態(tài)Matlab仿真
機器人足端運動空間[18-20]是指機器人足端參考點所可以達到點的集合,代表了機器人的活動范圍,是衡量機器人工作能力的重要指標。機器人的工作空間可以分為兩類,第一類是靈活工作空間,指機器人足端能夠以任何方位到達的目標點集合;第二類是可達工作空間,指機器人足端能夠以至少一個方位到達的目標點集合。本文所研究仿壁虎機器人足端腳掌的工作空間為可達工作空間,即機器人腳掌能夠以至少一個方位到達的目標點集合,具體求解過程如下:
1) 求解機器人足端腳掌的運動學正解,并根據(jù)正解求出機器人足端腳掌在世界坐標系中的坐標值;
2) 在各個關(guān)節(jié)轉(zhuǎn)動范圍內(nèi),依次從大腿抬起角度、腿機構(gòu)相對于身體的旋轉(zhuǎn)角度和小腿相對于大腿的旋轉(zhuǎn)角度以一定的步距角轉(zhuǎn)動,得到多種關(guān)節(jié)變量組合;
3) 將各種關(guān)節(jié)變量組合代入變換矩陣,求出足端腳掌在各種情況下的坐標值。
以機器人身體中心為坐標原點,用機器人足端腳掌在該坐標系中的一系列坐標值點的集合表示機器人在世界坐標系中的運動范圍。用D-H參數(shù)法推導從身體中心坐標系到足端腳掌的變換矩陣,最終計算結(jié)果如下:
在上式中,求解工作空間所用到的足端腳掌的坐標值為第四列,即足端腳掌在世界坐標系中的位置:
將上文求得的α、β和γ的轉(zhuǎn)動范圍分別為-55°~43°,-80°~60°,-38°~90°代入程序,按照上文描述的步驟,畫出足端腳掌的運動空間,如圖4所示。
圖4 右前腿足端腳掌的工作空間
機器人實際的過渡步態(tài)是一個不斷調(diào)整身體和四肢的過程,這就需要根據(jù)前一步來篩選后一步的足端工作空間,從而篩選出最優(yōu)過渡的關(guān)節(jié)變量范圍。定義前一個步態(tài)的足端坐標值RF1[xi,yi,zi],后一個步態(tài)的足端坐標值RF2[xi+1,yi+1,zi+1],以右前腿地面爬行為例,過程如下:
① 首先畫出右前足端腳掌完整工作區(qū)間;
② 求解工作區(qū)間與地面的交集,如圖5(a)所示,藍色部分為右前腳掌落腳點RF1的集合,黑色部分為落腳點RF2的集合,黑色和藍色的交集部分既是步態(tài)OC1的解集,同時又是步態(tài)OC2驅(qū)動身體向前的解集(因本刊是黑白印刷,有需要詳細了解的請與作者聯(lián)系)。
③ 由于整體是斜向前的爬行,所以xi+1和yi+1均大于xi和yi;
④ 由于整體是斜上爬的過程,所以地面爬行和墻面過渡的過程中zi+1大于zi。
從位置OC1到OC2,按篩選規(guī)則逐步縮小工作空間范圍,假設(shè)這個范圍是等質(zhì)量的,計算出這個最優(yōu)區(qū)間的質(zhì)量點,即認為這個質(zhì)量點為最優(yōu)落腳點,如圖5(b)所示。
圖5 篩選后的右前腿足端腳掌工作空間
本文所研究的是機器人身體縱向截面和墻壁夾角從0°~90°的任意夾角時的過渡步態(tài)。因為仿壁虎機器人腰部是剛性構(gòu)件,不能進行彎曲,即當身體縱向截面和墻壁面垂直時不能像生物壁虎一樣,以直爬方式過渡。本節(jié)分別模擬當身體縱向截面和墻面呈10°角和60°角的過渡步態(tài),且省略在地面行走和墻壁面行走的部分,著重規(guī)劃過渡瞬間下四肢的邁步狀態(tài),并求解出可以進行側(cè)爬過渡方式的夾角范圍以及機器人身體中心距墻壁面的距離范圍。當壁虎機器人質(zhì)心進入這個距離范圍時,采用本文所規(guī)劃的步態(tài)方法從地面過渡到墻面。
仿壁虎機器人的初始位置如圖6所示,身體中心坐標為OC1(x1,y1,h),高度為h,機器人身體與y軸的夾角為θ;結(jié)束位置機器人的中心坐標為OC10(h,y10,z10),身體與y軸的夾角為θ。首末中心點連線的空間直線方程為:
將空間直線軌跡劃分為10個關(guān)鍵姿態(tài)。初始位置時,機器人身體繞自身坐標系y軸旋轉(zhuǎn)角度為0°,即身體橫截面與地面平行,在中心點OCn(n=2,3,…,10)位置時身體繞y軸旋轉(zhuǎn)角度為10(n-1)度。結(jié)束位置時,機器人身體繞自身坐標系y軸旋轉(zhuǎn)角度為90°,身體橫截面平面與墻面平行。
圖6 機器人側(cè)爬的中心軌跡規(guī)劃
用這10個關(guān)鍵姿態(tài)在3ds MAX中初步擬定一個軌跡,擬合關(guān)鍵點畫出一條樣條曲線,在曲線上重新選擇8個關(guān)鍵點,已知身體中心坐標,當θ=10°時,用上文的方法初步計算出身體坐標系相對于世界坐標系的旋轉(zhuǎn)角度和4條腿各關(guān)節(jié)的旋轉(zhuǎn)角度,如表2所示。假設(shè)機器人經(jīng)過一個完整序列8步過渡到墻壁面,設(shè)置地面和墻壁面垂直相交的模型,地面和墻面長寬均為800 mm,身體中心相對于世界坐標系的位置矩陣為[Cx,Cy,Cz];身體相對于自身坐標系的轉(zhuǎn)動矩陣[δ1,δ2,δ3],δ1、δ2、δ3分別為繞z軸、x軸和y軸的旋轉(zhuǎn)角度;4條腿的關(guān)節(jié)變量矩陣[α,β,γ],α、β、γ分別為大腿的抬起角度,腿機構(gòu)相對于身體的旋轉(zhuǎn)角度,小腿相對于大腿的旋轉(zhuǎn)角度。
規(guī)劃關(guān)節(jié)數(shù)據(jù)的過程如下:腿部的關(guān)節(jié)轉(zhuǎn)動會隨著身體的旋轉(zhuǎn)而旋轉(zhuǎn),第一步為過渡之前的準備狀態(tài),身體相對于自身坐標系z軸旋轉(zhuǎn)10°,身體縱向截面和墻面呈一定夾角;第二步右前腿跨上墻壁面時,身體繞自身坐標系y軸旋轉(zhuǎn)5°進行微調(diào),此時其余3條腿大腿會抬起一定角度,后面步態(tài)以此類推。但是規(guī)劃的過程中各個角度不能超出前文中求出的轉(zhuǎn)動范圍。最后機器人跨上墻壁之后經(jīng)過調(diào)整和初始在地面上的狀態(tài)相同,且關(guān)于中間狀態(tài)是對稱的。
在Matlab中首先建立和理論分析中一致的地壁模型,地面和墻壁面相互垂直,設(shè)地面和墻壁面的長寬均為800 mm;然后根據(jù)機器人實際模型的大小建立桿機構(gòu)模型;再分別建立世界坐標系,身體坐標系和腿基坐標系,并且寫出各個坐標系之間的轉(zhuǎn)換矩陣和足端腳掌相對于世界坐標系之間的轉(zhuǎn)換矩陣,仿真結(jié)果如圖7所示,wall代表墻面,ground代表地面,兩個平面垂直相交,由仿真過程可以看出機器人關(guān)節(jié)可以利用前文所規(guī)劃的數(shù)據(jù)進行一次完整的過渡步態(tài)。
表2 機器人身體中心及各個腿關(guān)節(jié)旋轉(zhuǎn)數(shù)據(jù)(10°)
圖7 仿壁虎機器人從地面過渡到墻面的步態(tài)仿真(10°夾角)
當身體縱向截面和墻壁面的夾角不斷增大時就會出現(xiàn)一個臨界角,目前計算得到臨界角為60°。超過臨界角時,機器人的前肢跨上墻壁后,由于剛性構(gòu)件的腰部不能進行彎曲,后肢夠不到墻壁,機器人就不能夠以側(cè)爬的方式爬上墻壁面,必須先調(diào)整身體縱向截面和墻壁面的夾角,調(diào)至臨界角以內(nèi),再以側(cè)爬方式過渡到墻壁面。表3所示為同樣的方法計算得到的仿壁虎機器人各關(guān)節(jié)數(shù)據(jù),同上,得到圖8所示的仿真過程。值得注意的是,過渡過程中右后腿和左前腿的抬起順序由落腳點與墻壁的距離決定,哪只足端腳掌到墻壁的距離先小于步長乘以身體縱向截面和墻壁夾角的余弦值,哪只腿就緊隨右前腿跨上墻壁。后期的研究中可以在身體中心安裝距離傳感器,測量身體中心離墻壁的距離,再經(jīng)過變換矩陣求出各足端腳掌離墻壁的距離,判斷抬腳順序。
表3 機器人身體中心及各個腿關(guān)節(jié)旋轉(zhuǎn)數(shù)據(jù)(60°)
圖8 仿壁虎機器人從地面過渡到墻面的步態(tài)仿真(60°夾角)
機器人實際爬行中關(guān)鍵步態(tài)中間的步態(tài)可以通過插值法計算得到。首先插值求出身體中心坐標,再通過變換矩陣求得各足端腳掌的坐標,用前文所述方法求解每一個步態(tài)中4個足端腳掌的落腳點,從而可以得到整個過渡過程中的步態(tài)序列和關(guān)節(jié)數(shù)據(jù),對整個過渡過程實現(xiàn)仿真。
本文通過Matlab軟件規(guī)劃并仿真了仿壁虎機器人的側(cè)爬式地壁過渡步態(tài)。首先建立了仿壁虎機器人桿結(jié)構(gòu)模型,詳細計算了仿壁虎機器人足端腳掌在側(cè)爬式地壁過渡過程中每一個步態(tài)中確定落腳點的過程,用正逆向運動學交替的方法確定了對角步態(tài)下每一步中從完整工作空間篩選到最優(yōu)落腳點的過程,然后用插值法規(guī)劃了過渡過程中機器人身體中心的軌跡。在軌跡上選取關(guān)鍵點,用Matlab計算得到關(guān)鍵步態(tài)的關(guān)節(jié)旋轉(zhuǎn)數(shù)據(jù)。對整個過程進行了仿真分析,為仿壁虎機器人的過渡步態(tài)提供了數(shù)據(jù)支撐。