吳 亮,李憲華,2
(1.安徽理工大學(xué)機(jī)械工程學(xué)院 安徽 淮南 232001; 2.安徽理工大學(xué)人工智能學(xué)院 安徽 淮南 232001)
傳統(tǒng)串聯(lián)機(jī)械臂通常采用D-H參數(shù)法[1]和旋量法[2]來建立機(jī)器人運(yùn)動(dòng)學(xué)模型。D-H參數(shù)法需要在每個(gè)連桿處建立坐標(biāo)系,然后,得出每一個(gè)連桿坐標(biāo)系相對(duì)于前一連桿坐標(biāo)系的位姿轉(zhuǎn)換矩陣,即得到機(jī)械臂運(yùn)動(dòng)學(xué)方程。D-H參數(shù)法相對(duì)于旋量法更加復(fù)雜,但目前用來分析機(jī)械臂正逆運(yùn)動(dòng)學(xué)十分成熟,且應(yīng)用廣泛[3,4]。而采用旋量法建立機(jī)器人運(yùn)動(dòng)學(xué)模型,只需要建立基坐標(biāo)系和末端執(zhí)行器坐標(biāo)系,通過確定各個(gè)連桿之間的旋轉(zhuǎn)或平移運(yùn)動(dòng),得到機(jī)械臂末端坐標(biāo)系相對(duì)于基坐標(biāo)系的運(yùn)動(dòng)關(guān)系,旋量法相對(duì)于D-H參數(shù)法更加簡明清晰,便于理解,在機(jī)器人運(yùn)動(dòng)學(xué)建模中使用旋量法更加方便[5,6]。
相較于傳統(tǒng)六自由度機(jī)械臂而言,七自由度機(jī)械手臂有著顯著的優(yōu)點(diǎn):更高的工作性能、更廣泛的應(yīng)用空間,因自由度數(shù)目的增加使得機(jī)械臂的操作性能有了一個(gè)質(zhì)的飛躍。但是也因?yàn)楸攘杂啥榷喑鲆粋€(gè)冗余關(guān)節(jié),而增加了計(jì)算逆解的難度,七自由度機(jī)械臂肘部會(huì)產(chǎn)生自運(yùn)動(dòng),其軌跡為圓,由自運(yùn)動(dòng)產(chǎn)生的運(yùn)動(dòng)變量被定義為臂角[7],作為求取逆解的一個(gè)關(guān)鍵參數(shù),對(duì)于臂角的研究至關(guān)重要。文獻(xiàn)[8]將冗余關(guān)節(jié)角作為參數(shù),用解析法求得七自由度機(jī)械臂逆解,然而該方法依賴于機(jī)械臂構(gòu)型,如果冗余角選擇不合適將導(dǎo)致計(jì)算十分復(fù)雜。文獻(xiàn)[9]和文獻(xiàn)[10]分別采用神經(jīng)網(wǎng)絡(luò)和遺傳算法計(jì)算七自由度冗余機(jī)械臂逆解的解析解,然而,兩種算法都很復(fù)雜,并且需要大量的計(jì)算,同時(shí)難以對(duì)機(jī)械臂進(jìn)行實(shí)時(shí)控制。文獻(xiàn)[11]通過固定七自由度機(jī)械臂中的3個(gè)關(guān)節(jié)角度將其轉(zhuǎn)換四自由度,并結(jié)合代數(shù)迭代法和位姿分離法兩種方法求解逆解,簡化了逆解的求解過程,但由于固定了關(guān)節(jié)角度使求出的逆解不夠準(zhǔn)確。
本文以七自由度模塊化機(jī)械臂為研究對(duì)象,提出一種七自由度機(jī)械臂逆解算法。首先,基于SolidWorks軟件建立七自由度模塊化機(jī)械臂模型,采用旋量法建立機(jī)械臂正運(yùn)動(dòng)學(xué)方程;然后,采用矢量法和位姿分離法兩者結(jié)合求解機(jī)械臂逆解;最后,在MATLAB軟件編制逆解算法程序,得出機(jī)械臂八組逆解,將八組逆解代入正運(yùn)動(dòng)學(xué)方程,并在Robotics Toolbox中進(jìn)行仿真,便可得到八組逆解的機(jī)械臂末端位姿。仿真結(jié)果驗(yàn)證了運(yùn)動(dòng)學(xué)建模的正確性,使機(jī)械臂逆解求解更加簡明,為后續(xù)機(jī)械臂動(dòng)力學(xué)研究和軌跡規(guī)劃提供研究基礎(chǔ)。
(1)
剛體的旋量運(yùn)動(dòng)可采用矩陣指數(shù)形式來表示,則有
(2)
(1-cosθ)
將坐標(biāo)系T固定到機(jī)械臂末端上,則坐標(biāo)系T相對(duì)于基坐標(biāo)系S的位姿可由gst表示,初始狀態(tài)下位姿為gst(0),當(dāng)各關(guān)節(jié)轉(zhuǎn)動(dòng)θi后的位姿為
(3)
該七自由度模塊化機(jī)械臂有7個(gè)轉(zhuǎn)動(dòng)關(guān)節(jié),并且后3個(gè)關(guān)節(jié)軸線交于一點(diǎn)(如圖1)。根據(jù)該機(jī)械臂構(gòu)型特點(diǎn),及該機(jī)械臂某一位姿建立基坐標(biāo)系S和固定在末端執(zhí)行器坐標(biāo)系T,如圖2所示,其中d1=0.3 m,d3=0.328 m,d5=0.2765 m,d7=0.2916 m。
圖1 七自由度模塊化機(jī)械臂模型 圖2 初始姿態(tài)機(jī)械臂構(gòu)型及坐標(biāo)系建立
機(jī)械臂運(yùn)動(dòng)學(xué)方程建立步驟為:
(1)在初始位姿下,機(jī)械臂末端執(zhí)行器坐標(biāo)系T相對(duì)于基坐標(biāo)系S的位姿矩陣為
(4)
(2)由圖2可知,各關(guān)節(jié)軸線的單位方向向量為
(3)取各關(guān)節(jié)軸線上一點(diǎn)q,
(4)基于旋量理論計(jì)算機(jī)器人運(yùn)動(dòng)學(xué)正解,結(jié)合式(1)至(3)即可得機(jī)械臂運(yùn)動(dòng)學(xué)正解為
(5)
圖3 機(jī)械臂模型簡圖
(6)
(7)
同時(shí),可以通過給定一個(gè)臂角φ值,求得E點(diǎn)位置。
(8)
(1)關(guān)節(jié)角θ4的求解
在ΔESW中,根據(jù)余弦定理有,可求出
(9)
式中:LSE=d3,LEW=d5。再由∠SEW與θ4的關(guān)系可以求出:θ4=±[π-∠ESW]。
(2)關(guān)節(jié)角θ2的求解
由圖3可知,θ2可由以下式(10)求出
(10)
(3)關(guān)節(jié)角θ1的求解
(11)
(4)關(guān)節(jié)θ3的求解
θ3的求解與θ1是類似的,在關(guān)節(jié)2建立坐標(biāo)系o2-x2y2z2,如圖2所示,θ3可由式(12)求出
(12)
(5)關(guān)節(jié)角θ5、θ6、θ7的求解
已知θ1、θ2、θ3、θ4,根據(jù)旋量理論公式(3),根據(jù)等式相等原則可以求出
θ5=arcsin(R1/s6)
(13)
θ6=±arccos(R2)
(14)
θ7=arcsin(R3/s6)
(15)
式中
R1=-r13(s3c2c1+s1c3)+r23(c1c3-s1s3c2)+s2s3r33/c2
R2=r13(s4c3c2c1+s2c1-s1s3s4)+r23(s1s4c2c3+s1s2+c1c3s4)+r33(c2-s2s4c3)/c2
R3=r12(s4c3c2c1+s2c1-s1s3s4)+r22(s1s4c2c3+s1s2+c1c3s4)+r32(c2-s2s4c3)/c2
以上述正逆運(yùn)動(dòng)學(xué)分析為基礎(chǔ),在MATLAB軟件中編制逆解算法,用來求解機(jī)械臂逆解。由于臂角的確定要結(jié)合避障來討論,該機(jī)械臂運(yùn)動(dòng)分析暫不涉及避障,所以為求解逆解時(shí),臂角用隨機(jī)的值確定。
在機(jī)器人工作空間范圍內(nèi),任意給出7個(gè)關(guān)節(jié)角度,這里取θ1=π/10,θ2=π/3,θ3=π/6,θ4=π/3,θ5=π/12,θ6=π/4,θ7=π/3,并給定臂角為φ=π/6。
(1)將各關(guān)節(jié)角度帶入式(3),即可求得機(jī)械臂末端位姿矩陣為
表1 機(jī)械臂8組逆解
(2)利用本文提出的逆解算法,共得到 8 組逆運(yùn)動(dòng)學(xué)的解,如表1所示。
圖4 機(jī)械臂8組逆解位姿圖
將上述求得的8組逆解帶入正運(yùn)動(dòng)學(xué)方程式(3)中,并在MATLAB Robotics Toolbox中進(jìn)行仿真,設(shè)置時(shí)間t=1 s,便可得到機(jī)械臂末端位姿和末端軌跡線,如圖4所示。
通過表格1和圖4可以發(fā)現(xiàn),第一組解就是仿真前給出的7個(gè)關(guān)節(jié)角度,并且8幅圖的末端執(zhí)行器位姿與正運(yùn)動(dòng)學(xué)方程所得到的位姿是相同的,但是8幅位姿圖的末端軌跡線卻有所不同,表明機(jī)械臂可以通過8組逆解角度反求機(jī)械臂末端位姿,也證明了本文所提出的正逆運(yùn)動(dòng)學(xué)建模和逆解算法的正確性。本文所提出的逆解算法意義鮮明,運(yùn)算速度快,準(zhǔn)確性高,可以用于七自由度冗余機(jī)械臂的實(shí)時(shí)控制。
本文通過旋量法和自運(yùn)動(dòng)對(duì)七自由度機(jī)械臂逆解進(jìn)行分析,得到以下結(jié)論。
(1)以七自由度模塊化機(jī)械臂為研究對(duì)象,基于SolidWorks建立七自由度模塊化機(jī)械臂模型,采用旋量理論建立機(jī)械臂正運(yùn)動(dòng)學(xué)方程。
(2)基于矢量法和位姿分離法兩者結(jié)合求解機(jī)械臂逆解,在MATLAB軟件中編寫逆解算法程序,得到8組逆解,將8組逆解代入正運(yùn)動(dòng)學(xué)方程并結(jié)合MATLAB Robotics Toolbox仿真驗(yàn)證,得出末端執(zhí)行器位姿與正運(yùn)動(dòng)學(xué)所求位姿相符合。
(3)該逆解算法能夠準(zhǔn)確清晰表達(dá)八組逆解的幾何意義,降低了運(yùn)算過程,使機(jī)械臂逆解求解更加簡明。MATLAB Robotics Toolbox仿真結(jié)果驗(yàn)證了逆解算法的正確性,為后續(xù)機(jī)械臂動(dòng)力學(xué)研究和軌跡規(guī)劃提供研究基礎(chǔ)。