馬國慶,劉 麗,于正林,曹國華,范師杰
(長春理工大學 機電學院,長春 130022)
機器人的運動學分析是機器人學的一個重要組成部分,為機器人的動力學分析、軌跡規(guī)劃和運動控制提供重要依據(jù)[1]。本文使用經(jīng)典D-H法對HP20D型六自由度工業(yè)機器人進行運動學分析,并用MATLAB進行運動學的仿真與方程計算,通過數(shù)據(jù)對比驗證了其運動學模型與運動學正逆運算的正確性。為機器人進行軌跡規(guī)劃研究與仿真提供了必要的理論基礎和正確的運動學模型。
工業(yè)機器人主要由機身主體、驅動系統(tǒng)和控制系統(tǒng)三部分組成[2]。機身主體即機座與執(zhí)行機構,包括臂部、腕部和手部;驅動系統(tǒng)涵蓋動力裝置與傳動機構,負責為機身主體提供動力輸出與傳輸;控制系統(tǒng)負責按照輸入的命令及程序對驅動系統(tǒng)與執(zhí)行機構發(fā)出信號,并進行控制[3]。工業(yè)機器人的有效工作范圍、重復定位精度、荷載以及允許扭矩是評判機器人工作能力的重要參數(shù)。HP20D型工業(yè)機器人為六自由度垂直多關節(jié)型機器人,末端最大負載為20kg,重復定位精度為±0.06mm,但由于機器人制造導致的模型誤差和日常工作產(chǎn)生的磨損,其定位精度在幾毫米左右,可以通過標定技術來提高精度[4]。
機器人可簡化成由一系列桿件串聯(lián)而成,將坐標系置于每一連桿的關節(jié)中心處,則可用齊次坐標變換對這些坐標系之間的位姿進行數(shù)學表述[5]。
1.2.1 工業(yè)機器人的位姿描述
1)位置描述
在空間直角坐標系{A}中的任意一點P的位置可用一個(3×1)的位置矢量AP來表示:
其中,px、py、pz為點P的三個位置坐標分向量,AP稱為位置矢量。
2)姿態(tài)描述
可通過在物體質(zhì)心或者中心上固定一個坐標系,并給出此坐標系相對于參考坐標系的數(shù)學表達來描述物體的姿態(tài)[6]。定義直角坐標系{B},將剛體B的質(zhì)心或者中心定義為坐標系{B}的原點,則可以用一個(3×3)的旋轉矩陣ARB來表示剛體B相對于坐標系{A}的姿態(tài):
ARB是一個正交矩陣,稱為旋轉矩陣,上標A表示參考坐標系{A},下標B表示被描述坐標系{B}。
3)位姿描述
點的位置信息可用位置矢量來表述,物體的姿態(tài)可用旋轉矩陣來表述,那么物體的位姿可由坐標系{B}來描述:
其中APB0為坐標系{B}的原點位置相對參考坐標系{A}的位置矢量。
1.2.2 坐標系映射
在機器人學中同一點的位置信息常常需要在不同的參考坐標下進行描述,因此需要運用一種數(shù)學方法來表示坐標系之間的變換,這就是映射[7]。
設坐標系{B}與坐標系{A}的坐標原點不重合且姿態(tài)也不相同,用APB0表示坐標系{B}的原點OB相對于坐標系{A}的位置矢量,用旋轉矩陣ABR表示坐標系{B}相對于坐標系{A}的姿態(tài),若點p在坐標系{B}中可用BP描述,則它相對于另一個坐標系{A}的描述AP可按式(4) 求出:
式(4)為坐標系平移與旋轉的復合變換,引入一個過渡坐標系{C},令{C}的坐標原點OC與坐標系{B}的坐標原點OB重合,而{C}的姿態(tài)與{A}相同,如圖1所示,則可得復合變換:
圖1 一般情況下的映射
1.2.3 齊次坐標變換
不同的坐標系對空間中任意點p的描述是不同的,利用齊次坐標變換可完成點在不同矩陣之間位置關系的轉換,若已知某點在坐標系{B}中坐標為BP,則該點在坐標系{A}中坐標AP可表示為:
在機器人運動學求解過程中,僅研究各桿件之間的運動關系并不考慮相互作用力的影響。正運動學問題是根據(jù)桿件尺寸與各關節(jié)角,對機器人末端執(zhí)行器相對于基坐標系下的位姿進行求解,其本質(zhì)是運動學方程的建立與求解。而逆運動學問題正好相反,是根據(jù)末端執(zhí)行器在基坐標系下的期望位姿與已知的桿件幾何參數(shù),來對機器人末端執(zhí)行器運行到此位姿時的各個關節(jié)角度值進行求解[8]。
根據(jù)D-H坐標變換法對機器人進行建模,可清晰的展示各連桿間的位姿關系,建模原則如下:
1)繞Zi-1軸旋轉θi角,令Xi-1軸同Xi處于同一平面;
2)沿Zi-1軸平移di,令Xi-1軸同Xi處于同一直線;
3)沿Xi軸平移距離ai,將連桿i-1的坐標系移動,令其原點同連桿i的坐標系原點重合;
4)繞Xi-1軸旋轉ai角,令Zi-1軸旋轉到同Zi軸處于一條直線上。
HP20D機器人D-H坐標系如圖2所示。
圖2 Motoman-HP20D機器人D-H坐標系
根據(jù)1.2.1中的建模原則即可確定HP20D型機器人的D-H參數(shù),如表1所示。HP20D為6R型機器人,因此只有關節(jié)角θ是變量,連桿長度α、關節(jié)扭轉α和連桿距離d均是固定值。
表1 HP20D機器人的連桿參數(shù)
式(7)中Rot 表示旋轉變換矩陣,Trans 表示平移變換矩陣。式(7)的矩陣表示形式如下:
根據(jù)相鄰連桿間的坐標變換矩陣,可以得到末端坐標系相對于機器人基坐標系的變換矩陣如下:
將機器人的每個坐標轉換矩陣代入式(9)即可求出HP20D機器人的正運動學方程。
采用雙變量正切函數(shù)表示關節(jié)變量,避免出現(xiàn)解丟失的可能性,得到各個關節(jié)角如下:
求解θ1:
求解θ2:
求解θ3:
求解θ5:
求解θ4:
求解θ6:
結合逆運動學求解過程,再考慮到θ5等于0,或者不等于0兩種情況,同一種末端位姿可以求出8組逆解。但由于機械參數(shù)的約束,部分逆解處于機器人的不可達空間,因此應根據(jù)機器人的運動情況與可達空間范圍,確定運動學逆解。
Robotics Toolbox是MATLAB軟件中的一個專門針對工業(yè)機器人開發(fā)的工具箱,它可以為機器人提供多種運動學函數(shù)。根據(jù)表1提供的數(shù)據(jù),對HP20D型機器人進行仿真如圖3所示。
圖3 HP20D機器人仿真三維圖
為了驗證正運動學方程求解的正確性,隨機選取1組關節(jié)變量值,將從控制器中讀取機器人末端執(zhí)行器位姿作為真值;將按照2.2節(jié)中的正運動學方程計算所得的位姿作為計算值。隨機選取關節(jié)變量q1=[-0.3744, 2.7564,-1.2282,-0.6109,-1.5281,-0.3743],將真值與計算值進行數(shù)據(jù)對比。計算結果如表2所示。
表2 真值與MATLAB計算值比較
表2中數(shù)據(jù)表明真值和計算值的誤差很小,證明了機器人正運動學方程與運動學模型的正確性。
定義機器人末端位姿W=[PxPyPzaxayaz],將其代入2.3節(jié)機器人逆運動學求解方法可求得機器人的多組運動學逆解Qi=[θ1θ2θ3θ4θ5θ6]。將兩個末端位姿W1=[-1189.369,531.995,-648.702,0.327, -0.744,-0.583]與W2=[1159.549,-730.090,-745.683, -0.362,0.787,-0.500]代入計算程序,求得逆解如表3和表4所示。
表3 位姿W1的運動學逆解
每個位姿可以獲取8組解,但由于機械結構約束與各桿件運動時的干涉,僅有部分解為機器人可以真實達到的關節(jié)角度值,位姿W1的有效解為Q1、Q2,位姿W2的有效解為Q1、Q2、Q5、Q6,通過數(shù)據(jù)對比可知,表3中的Q1與3.2節(jié)的q1相等,驗證了逆運動學的正確性。
表4 位姿W2的運動學逆解
本文在機器人的數(shù)學基礎和運動學基本知識的基礎上,以HP20D為研究對象求取其正解和逆解,并在Robotics Toolbox中進行了運行學模型仿真,并通過數(shù)據(jù)對比驗證了其正運動學與逆運動學的正確性,為后續(xù)進行軌跡規(guī)劃研究與仿真提供了必要的理論基礎和正確的運動學模型。