趙章焰 秦 烺
武漢理工大學(xué)交通與物流工程學(xué)院 武漢 430063
起重機(jī)械是用于港口碼頭裝卸貨物的主要設(shè)備,隨著工作年限的增加會(huì)出現(xiàn)裂痕、生銹或表面污漬等現(xiàn)象,故需定期檢查與清潔。傳統(tǒng)的檢查與清潔方式是由工作人員在起重機(jī)各表面完成任務(wù),危險(xiǎn)程度高,且效率較低。采用攀爬機(jī)器人來代替工人完成工作,可以極大地提高工人的安全保障以及工作效率[1]。因此,設(shè)計(jì)一款輪腿結(jié)合式的攀爬機(jī)器人,由4 條支腿和4 個(gè)車輪協(xié)同工作,在平坦的壁面攀爬時(shí)采用車輪運(yùn)行的方式,跨越障礙和過壁面棱角時(shí)采用支腿運(yùn)行的方式。不僅可避免輪式機(jī)器人的越障困難問題,還能提高足式機(jī)器人的運(yùn)行平穩(wěn)性和運(yùn)行速度[2]。
針對(duì)機(jī)器人的越障性能,本文使用Matlab 對(duì)輪腿結(jié)合式機(jī)器人進(jìn)行越障過程的運(yùn)動(dòng)學(xué)分析,研究機(jī)器人支腿在運(yùn)動(dòng)過程中的軌跡、速度、加速度等運(yùn)動(dòng)特征,采用改進(jìn)的D-H 參數(shù)建立模型[3],運(yùn)用解析法計(jì)算出運(yùn)動(dòng)學(xué)逆解的各關(guān)節(jié)的關(guān)節(jié)角[4],最后通過Matlab 機(jī)器人工具箱完成支腿越障的運(yùn)動(dòng)學(xué)仿真分析,進(jìn)而研究攀爬機(jī)器人的運(yùn)動(dòng)特點(diǎn)[5]。
攀爬機(jī)器人的整體結(jié)構(gòu)是一個(gè)4 輪小車,車體與車輪之間通過支腿連接,支腿由多個(gè)關(guān)節(jié)軸和連桿組成,機(jī)器人支腿三維模型如圖1 所示。在研究支腿的運(yùn)動(dòng)學(xué)時(shí),設(shè)所有構(gòu)件均為剛體,僅考慮各桿件之間的運(yùn)動(dòng)關(guān)系,不考慮各桿件及構(gòu)件之間的力學(xué)因素,忽略關(guān)節(jié)受彈性、摩擦、遲緩和間隙的影響。
圖1 攀爬機(jī)器人支腿三維模型
攀爬機(jī)器人的支腿由5 個(gè)關(guān)節(jié)串聯(lián)組成,可在三維空間中實(shí)現(xiàn)5 個(gè)旋轉(zhuǎn)自由度的運(yùn)動(dòng)。通過關(guān)節(jié)角θi、連桿偏距di、關(guān)節(jié)偏移ai和連桿扭轉(zhuǎn)角αi等參數(shù)來描述相鄰2 連桿之間的相對(duì)空間位置關(guān)系。運(yùn)用改進(jìn)的Denavit-Hartenber 參數(shù)法(簡(jiǎn)稱D-H 參數(shù)法),建立機(jī)器人支腿關(guān)節(jié)的空間坐標(biāo)系,進(jìn)而構(gòu)建出整個(gè)機(jī)器人的空間結(jié)構(gòu)模型。機(jī)器人支腿的參數(shù)如表1 所示。
表1 機(jī)器人的D-H 參數(shù)表
采用D-H 參數(shù)法建立機(jī)器人支腿運(yùn)動(dòng)學(xué)模型,設(shè)連桿i 相對(duì)于連桿i-1 坐標(biāo)系的位姿表達(dá)式為i-1iT,則連桿i 相對(duì)于基座標(biāo)系的位姿表達(dá)式為
式中:[n o a]為姿態(tài)向量,P 為位置向量。
給機(jī)器人的支腿每個(gè)關(guān)節(jié)指定各自的關(guān)節(jié)坐標(biāo)系,再確定從一個(gè)關(guān)節(jié)到其相鄰關(guān)節(jié)坐標(biāo)系間的變換矩陣,在已知各關(guān)節(jié)的轉(zhuǎn)角后即可求解出支腿末端的位姿,從而建立出機(jī)器人的運(yùn)動(dòng)學(xué)方程。
將機(jī)器人連桿的4 個(gè)參數(shù)代入到廣義變換矩陣中,即可得到相鄰2 桿件之間的位姿變換矩陣。相鄰2 連桿之間的廣義變換矩陣為
將各關(guān)節(jié)的4 個(gè)參數(shù)代入上述廣義變換矩陣中即可得到相鄰2 桿件之間的位姿變換矩陣,記為所以攀爬機(jī)器人的支腿末端位姿的變換矩陣可表示為
上述變換矩陣的公式中變量只有θi,當(dāng)已知各關(guān)節(jié)的關(guān)節(jié)角θi時(shí),即可求解出各相鄰桿件間的相對(duì)位姿坐標(biāo)以及末端執(zhí)行器相對(duì)于基座標(biāo)系的位姿坐標(biāo),通過上式計(jì)算可得變換矩陣中表示姿態(tài)和位置向量對(duì)應(yīng)元素的值分別為
機(jī)器人在實(shí)際運(yùn)動(dòng)過程中,通常已知一個(gè)末端工作位置,然后按照某個(gè)設(shè)定的軌跡運(yùn)動(dòng)到目標(biāo)位置,從而完成相應(yīng)的工作。所以,當(dāng)已知攀爬機(jī)器人支腿末端相對(duì)于基座標(biāo)的姿態(tài)和位置05T 后,即可通過運(yùn)動(dòng)學(xué)逆解代數(shù)求解出各關(guān)節(jié)的關(guān)節(jié)角θ 值。通過矩陣計(jì)算機(jī)器人的逆解,分別可得出5 個(gè)關(guān)節(jié)的求解過程。
由式(3)計(jì)算出矩陣中各元素的值為
由式(4)和(5)計(jì)算可得
通過式(3)得到變換矩陣為
方程(7)兩邊矩陣(1,4)、(3,4)對(duì)應(yīng)位置元素相等可得
對(duì)式(8)、式(9)進(jìn)行化簡(jiǎn)計(jì)算,消除包含有θ3的項(xiàng),得到
由上述運(yùn)動(dòng)學(xué)逆解計(jì)算結(jié)果可知,θ2有2 個(gè)解,而在機(jī)器人實(shí)際運(yùn)動(dòng)過程中,由于周圍環(huán)境或自身體積形狀會(huì)對(duì)機(jī)器人的工作空間有限制,并不是所有的解都是有效解,故應(yīng)根據(jù)實(shí)際的工作情況來驗(yàn)證所求的運(yùn)動(dòng)學(xué)逆解是否合理。
在運(yùn)動(dòng)學(xué)分析時(shí),要考慮機(jī)器人的實(shí)際工作范圍,取攀爬機(jī)器人支腿末端所能到達(dá)的三維空間所有點(diǎn)的集合,該集合即為其工作域。在研究機(jī)器人工作域時(shí),不考慮機(jī)器人支腿的姿態(tài),而只研究其位置,所用數(shù)學(xué)公式只與位置向量P 有關(guān),即
式中:p 為工作域,θi為各關(guān)節(jié)變量,分別為第i 個(gè)關(guān)節(jié)變量的最小值和最大值。
由于工作環(huán)境、機(jī)器人自身結(jié)構(gòu)以及構(gòu)件間的相對(duì)配合等條件會(huì)對(duì)各關(guān)節(jié)的活動(dòng)范圍有約束,所以θi的取值是一個(gè)范圍,在最大值和最小值之間不可取任意值。在進(jìn)行機(jī)器人工作域的求解時(shí)可采用蒙特卡洛法[6],蒙特卡洛法是一種以概率和統(tǒng)計(jì)理論方法為基礎(chǔ)的隨機(jī)模擬方法[7]。首先通過運(yùn)動(dòng)學(xué)正解的變換矩陣可得機(jī)器人末端點(diǎn)的位置向量,即
根據(jù)實(shí)際工作情況確定各關(guān)節(jié)角的取值范圍,然后調(diào)用Matlab 中的Rand 函數(shù)對(duì)關(guān)節(jié)變量在取值區(qū)間內(nèi)進(jìn)行隨機(jī)取值,最大關(guān)節(jié)變量值與最小關(guān)節(jié)變量值的差乘以Rand 函數(shù)再加上最小值,每進(jìn)行一次計(jì)算就隨機(jī)產(chǎn)生一個(gè)關(guān)節(jié)變量θi,即
將5 個(gè)關(guān)節(jié)變量對(duì)應(yīng)的最大值和最小值分別代入對(duì)應(yīng)關(guān)節(jié)角的計(jì)算公式中,并賦予a2、d4對(duì)應(yīng)的數(shù)值,然后使用循環(huán)命令設(shè)置生成關(guān)節(jié)變量角的次數(shù),每執(zhí)行一次循環(huán)命令即輸出一個(gè)末端點(diǎn),通過Matlab 編寫程序完成該算法,輸出表示機(jī)器人工作域的點(diǎn)集圖形。
根據(jù)攀爬機(jī)器人的實(shí)際工況代入?yún)?shù)數(shù)值a2=100 mm,d4=100 mm,代入各關(guān)節(jié)變量θi的取值范圍邊界值為分別θ1=[-pi/2,pi/2]、θ2=[-pi/4,pi/2]、θ3=[-3pi/4,pi/4]、θ4=[-pi/2,pi/2]、θ5=[-3pi/4,3pi/4]。設(shè)置循環(huán)次數(shù)為100 000 次,即可隨機(jī)生成100 000 個(gè)點(diǎn)位,由這些點(diǎn)位組成的集合即機(jī)器人支腿末端可達(dá)到的工作區(qū)域,通過調(diào)用Matlab 的Plot3 繪圖命令,仿真輸出代表機(jī)器人支腿工作域的三維空間點(diǎn)集云圖,如圖2 所示。
圖2 三維空間點(diǎn)集云圖
由圖2 可知,攀爬機(jī)器人支腿末端所能到達(dá)的工作區(qū)域與Matlab 仿真所得到的三維空間點(diǎn)集云圖尺寸大小以及點(diǎn)位分布相對(duì)應(yīng),圖中下方點(diǎn)的分布比較密集,由于支腿末端多是與攀爬壁面相接觸,故實(shí)際上機(jī)器人支腿末端大多也是在相對(duì)位置的下方。中間部分由于2相鄰連桿的長(zhǎng)度相同導(dǎo)致中間一部分區(qū)域支腿末端無法到達(dá),故形成了無點(diǎn)區(qū)域。左側(cè)空白部分沒有點(diǎn)位,因?yàn)樽髠?cè)為機(jī)器人車體部分,機(jī)器人的支腿只能在機(jī)器人車體外側(cè)以及下側(cè)部分區(qū)域活動(dòng)。仿真結(jié)果點(diǎn)位云圖與機(jī)器人實(shí)際工作區(qū)域相一致,符合攀爬機(jī)器人的正常工作要求。
機(jī)器人在使用支腿進(jìn)行前進(jìn)運(yùn)動(dòng)時(shí)有2 種狀態(tài):1)支腿足端運(yùn)動(dòng)狀態(tài),包括支腿位姿調(diào)整,支腿抬高進(jìn)行越障;2)支腿足端不動(dòng)而車體運(yùn)動(dòng)的狀態(tài),主要是用于越障時(shí)改變機(jī)器人車身高度和位置,以便后續(xù)的支腿越障行為。
使用Matlab 中的Robotics Toolbox 工具箱對(duì)攀爬機(jī)器人的支腿進(jìn)行三維建模[8],通過Link 函數(shù)以及關(guān)節(jié)參數(shù)θ、d、a、α 來創(chuàng)建5 個(gè)連桿,調(diào)用SerialLink 函數(shù)連接5 個(gè)連桿組成一條運(yùn)動(dòng)鏈[9],生成的機(jī)器人支腿模型如圖3 所示。
圖3 機(jī)器人支腿模型
機(jī)器人支腿末端從起始點(diǎn)運(yùn)動(dòng)到終止點(diǎn)有許多條路徑,要在這些路徑中選擇出一條速度和時(shí)間都最優(yōu)的路徑,本文采用五次多項(xiàng)式插值算法進(jìn)行計(jì)算[10],為了讓機(jī)器人的運(yùn)動(dòng)更加平穩(wěn),需要在起始點(diǎn)和終止點(diǎn)之間添加幾個(gè)中間路徑點(diǎn)用于過渡。將關(guān)節(jié)角之間的變換看成關(guān)于時(shí)間的函數(shù)θ(t),該函數(shù)從起始點(diǎn)開始依次通過個(gè)中間點(diǎn)最后到達(dá)終止點(diǎn),可表示為
調(diào)用Robotics Toolbox 工具箱中的Jtraj 函數(shù),Jtraj函數(shù)用于在關(guān)節(jié)空間下機(jī)器人2 個(gè)不同位行間各關(guān)節(jié)角度變化差值擬合生成軌跡,調(diào)用格式為
式中:qs為初始關(guān)節(jié)角度,qe為終止關(guān)節(jié)角度,t表示此過程包含的時(shí)間步數(shù),每個(gè)時(shí)間步對(duì)應(yīng)一個(gè)瞬時(shí)位行。Q、qd、qdd分別為關(guān)節(jié)角的角位移、角速度和角加速度。
Jtraj 函數(shù)利用五次多項(xiàng)式進(jìn)行插值規(guī)劃軌跡[11],默認(rèn)初始時(shí)和終止時(shí)關(guān)節(jié)的速度和加速度的值均為零。
由于機(jī)器人的4 個(gè)支腿越障時(shí)的軌跡相同,本文將研究一條支腿跨越障礙時(shí)的軌跡規(guī)劃仿真,支腿在越障時(shí)的動(dòng)作可分為4 步:1)支腿抬高脫離壁面;2)支腿關(guān)節(jié)轉(zhuǎn)動(dòng)調(diào)整位置使支腿越過障礙物;3)調(diào)節(jié)支腿末端點(diǎn)姿態(tài),使車輪方向保持繼續(xù)向前;4)降低支腿高度,與工作面接觸,完成越障。
支腿越障初始位置的各關(guān)節(jié)角qs1和終止位置的各關(guān)節(jié)角qe1分別為
為了使機(jī)器人工作時(shí)的軌跡平穩(wěn)過渡,在初始位置與終止位置之間添加3 個(gè)中間路徑點(diǎn)。每2 個(gè)路徑點(diǎn)之間設(shè)置采樣時(shí)間為2 s,總時(shí)長(zhǎng)為8 s,步長(zhǎng)為0.05 s,機(jī)器人支腿的末端軌跡圖如圖4 所示。
圖4 位姿調(diào)整時(shí)機(jī)器人支腿末端軌跡
在支腿位姿調(diào)整的過程中,主要運(yùn)動(dòng)關(guān)節(jié)為關(guān)節(jié)1和關(guān)節(jié)2,調(diào)用Matlab 機(jī)器人工具箱中的Plot 函數(shù),對(duì)采用5 次多項(xiàng)式插值的計(jì)算的軌跡結(jié)果繪制圖形,得到各關(guān)節(jié)的角位移、加速度和角加速度隨時(shí)間變化的曲線圖,分別如圖5 ~圖7 所示。
圖5 越障時(shí)關(guān)節(jié)1、關(guān)節(jié)2 角位移曲線
圖6 越障時(shí)關(guān)節(jié)1、關(guān)節(jié)2 角速度曲線
圖7 越障時(shí)關(guān)節(jié)1、2 角加速度曲線
由圖5 ~圖7 曲線可知,關(guān)節(jié)1 和關(guān)節(jié)2 的位移、速度和加速度曲線光滑平穩(wěn),且相互對(duì)應(yīng);在起始和終止位置速度為0,且位移不再發(fā)生變化,加速度的正負(fù)與速度的增大減小相對(duì)應(yīng)。因此,越過障礙的軌跡規(guī)劃合理,該動(dòng)作可以正常運(yùn)行。
1)針對(duì)用于大型金屬結(jié)構(gòu)的監(jiān)測(cè)平臺(tái),設(shè)計(jì)了一款輪腿結(jié)合式的攀爬機(jī)器人,通過對(duì)機(jī)器人采用支腿越障的過程進(jìn)行了運(yùn)動(dòng)學(xué)分析,合理安排機(jī)器人運(yùn)動(dòng)過程中的位姿,保證支腿運(yùn)動(dòng)的精度和效率,為后續(xù)的動(dòng)力學(xué)、控制算法以及運(yùn)動(dòng)規(guī)劃分析奠定理論基礎(chǔ)。
2)在正、逆運(yùn)動(dòng)學(xué)分析的基礎(chǔ)上運(yùn)用蒙特卡洛法對(duì)機(jī)器人的支腿工作域進(jìn)行三維仿真分析。結(jié)果表明,支腿的工作空間范圍充足,能滿足支腿越障和過棱邊時(shí)的各種動(dòng)作要求。
3)采用Matlab 中的機(jī)器人工具箱,對(duì)機(jī)器人越障的過程進(jìn)行軌跡規(guī)劃。結(jié)果表明,機(jī)器人在越障運(yùn)動(dòng)中的角位移、角速度和角加速度曲線光滑平穩(wěn),未出現(xiàn)突變和間斷現(xiàn)象,說明機(jī)器人能夠安穩(wěn)地跨越障礙。