戴偉 陳峰 周根榮



摘要
以物品碼垛應用為背景,設計了一種四自由度的關節機器人系統。運用正運動學及逆運動學方法對碼垛動作過程進行分析,獲取運動參數表達形式。在此基礎上,利用MATLAB平臺,按照物理系統的結構參數,用D-H方法構造相應的虛擬關節機器人系統。并采用Rotics TooIBox對其進行最短運動軌跡仿真,得到各關節的狀態參數與時間關系曲線,為后續實體關節機器人的控制系統設計、動力學分析以及軌跡規劃等提供理論基礎。
【關鍵詞】關節機器人 碼垛 四自由度
1 前言
常見的工業機器人按照坐標可以分成極坐標型、圓柱坐標型、直角坐標型、關節坐標型等。其中關節坐標型雖然具有運動耦合性強,控制較復雜的特點,但因其運動靈活性最好,自身占據空間小,作為一種通用平臺獲得廣泛應用。
關節型機器人與人的手臂非常類似,主要由底座、大臂和小臂三部分構成,大臂、小臂在通過底座的垂平面內運動。連接大臂和底座間的關節一般稱作肩關節;連接大、小臂的關節稱肘關節。要實現水平面上的旋轉運動,既可由肩關節完成,也可繞底座旋轉實現。其通常按照給定程序、軌跡及要求模擬人手動作來實現抓取和搬運等特定功能,常應用于物品自動碼垛場合。
2 關節機器人結構及運動特性
設計的關節機器人結構如圖1所示。其由橫向移動的大臂(x軸)、左右旋轉的腰部(y軸)、上下移動的小臂(z軸)與可用作夾持器具的腕部(w軸)四個自由度組成。
其中腰部高245mm,且繞腰部關節軸心做3600旋轉運動;大臂總長480mm,垂直于腰部軸心,利用電機經絲桿傳動做橫向運動,伸縮行程為260mm;小臂臂長為250mm,由小臂電機經連桿驅動,繞大臂一端做旋轉運動;腕部由電機驅動實現360度自由旋轉,其上安裝不同類型的手抓,可以實現抓取、夾持、吸附等不同的功能,最大承載重量為1.5kg。機械臂底座、橫杠后端與腕部有四個步進電機順序安裝,配以減速器,用以完成四自由度驅動,周身還設有接近傳感器與限位開關,接近傳感器可以通過探測特定位置安裝的突出螺絲,用來檢測關節機器人運動位置,提供給控制器進行決策。
3 碼垛運動過程運動規劃
在物品自動碼垛過程中,碼垛點往往是事先確定好的,關節機器人只需要在運動過程準確有序的到達即可,對于相鄰點位間的運動軌跡可以不需要太精確。
按照自動碼垛生產要求,碼垛軌跡規劃如圖2所示:從起始點P開始,當需要將物品從P2搬運至Q點時,為保證抓取端在運動過程中基本走直線,規劃沿PP1→P1P2→P2P1→P1P→PQ2→Q2Q1→Q1Q→QQ1→Q1Q2→P路線運動。
在其中設計了中間點P1和Q1。P1(z軸坐標為0)將原來P→P2路線分成P→P1、P1→P2兩段。在P→P1段時,x軸方向電機后退(A→A1),以保證運動軌跡基本垂直,而P1→P2段時,x軸方向電機前行(A1→A2),以保證此時軌跡基本垂直。中間點Q1的設置同理。
如果沒有中間點進行規范,大臂在x軸坐標相同的情況下就不會運動,腕部末端的軌跡就是一段弧線,相比于按照P→P2路線所走的弧線,設置中間點的軌跡所占用的空間更小。在實際的一些場合中,例如狹窄的空間搬運,各關節要同時運作,保證占用空間最少,所以這種路線要更為符合實際要求。
3.1 碼垛點運動學算法分析
在機械臂控制過程中,需要將目標點的距離坐標轉化為脈沖坐標然后進行軟件編程設計,為此進行運動學分析。
在碼垛系統運行前,需要對碼垛點和抓取點進行定位,一般利用示教法來確定點位坐標脈沖。但由于碼垛位置往往不止一處,此方法顯得繁瑣、靈活度差。更多采用示教與運動在線解算相結合的方式:首先通過示教法確定碼垛的起始點各軸脈沖坐標;其次通過反運動學解算分析各個軸脈沖坐標,轉化為距離坐標最后,通過疊加新碼垛點與首個碼垛點的各個軸距離偏差形成新的距離坐標,然后通過正運動學求解得出脈沖坐標。
3.2 正運動學算法分析
即根據目標點D的距離坐標(xd,yd,zd)后,解算出相應的脈沖坐標(xpls,ypls,zpls)。
系統中y軸和z軸是通過腰部電機和小臂電機控制做旋轉運動的,但當y軸和z軸做旋轉運動時都會對x軸的坐標產生影響,所以要計算關節機器人在x軸行進的脈沖坐標,就必須要采用分解坐標系的方法,把其在x軸的行進情況分解到x-z和x-y兩個坐標系中,計算其在這兩個坐標系的坐標xz和xy。兩者相加得到x軸坐標。為分析方便,將目標點D在x-z和x-y的映射點稱為Dxa和Dxy。
3.2.1 x-z坐標下運動分析
如圖3所示,在x-z坐標系中,目標點D的運動分解為沿z軸的轉向運動和沿x軸的直線運動。
(1)z軸旋轉運動分析。
z軸為旋轉運動,設z軸轉動的角度為θ1。在圖3.2中,引入計算目標點Bxz以簡化計算過程。將腕部電機及和夾具整體視作一個固定大小矩形,根據工藝其始終與平臺底面平行,因此計算的實際目標點Dxz到A點的距離并非一個固定值,會隨轉動角度變化而變化。引入計算目標點B'xz后,B'xz點與A點之間的距離就是固定值且等于小臂長度Roze是引入的計算目標點Bxz的z軸坐標,根據上述分析:
由引入的計算目標點B'xz的坐標可以得到實際目標點Dxz的坐標:
Rx和Rz是R在坐標系上的投影,為可以測量的固定值。
由上式(1)、(2)可以得到:
(2)x軸直線運動分析。
設x軸的運動在x-z坐標系中行進距離為xz,由圖3.2可得:
3.2.2 x-y坐標系下運動分析
在x-y坐標系中,目標點D的運動類似分解為沿y軸的旋轉運動和沿x軸的直線運動。
(1)y軸的旋轉運動。
關節機器人在y軸方向做旋轉運動,設腰部電機旋轉θ2角度后,到達新的實際目標點Dxy,由圖4可知:
(2)x軸直線的運動。
在x-y坐標系中,由于腰部電機旋轉θ2角度后,目標點在y軸的坐標會發生變化,所以為了能夠滿足實際目標點Dxy在x軸的坐標不變,x軸方向要前行。設目標點D沿x軸方向再次前行xy,直到目標點從位置Dxz行進到C點,由圖4可知:
其中Rxy為測量原點到腰部軸心的距離。
3.2.3 目標點D的脈沖坐標
根據上述分析,得到沿x軸方向總行進距離xdis:
xdis=xz+xy(7)
則目標點D的脈沖坐標(xpls,ypls,zpls)為:
其中xdiv、ydiv分別為x軸、y軸電機行進分度值(pls/mm,每毫米對應脈沖數),zdiv為z軸電機行進的分度值CPUs/rad,每弧度對應脈沖數)。
3.3 逆運動學算法分析
逆運動學求解方法與正運動學求解方法相反,是根據已知的目標點位D的脈沖坐標(xpls,ypls,zpls),求解相應的距離坐標(xd,yd,zd)。
3.3.1 在z軸的距離坐標zd
由目標點位D在z軸轉動角度:
得到:
3.3.2 在x軸的距離坐標xd
由目標點位D在y軸轉動的角度:
由圖4可知:
將上式(14)代入式(6),可得:
得出x軸行進總距離:
化簡之后可以求出:
3.3.3 目標點在y軸的距離坐標yd
將式(17)代入到式(14)中可得:
4 基于MATLAB的運動仿真
在Matlab環境下結合Robotics Toolbox,可以模擬關節機器人的運動過程,規劃運動軌跡,反映各關節的位置、速度和加速度變化,為其控制算法設計提供參考依據。
4.1 關節坐標系建立
關節機器人常由一系列連桿和關節任意連接而成,關節運動可為滑動(線性)或旋轉 (轉動),位置關系上可處在不同平面并允許轉軸間存在偏差。連桿長度可以是任意的(包括零),可被扭曲或彎曲。因此利用任何一組關節和連桿都可以構成機器人系統。對這樣的系統進行結構描述,表示每個關節與連桿的關系,首先就需要建立相應的坐標系。
Denavit和Hartenberg 1955年提出了一種通用方法,用D-H參數描述多連桿結構中連桿之間的關系。其在機器人系統的每根連桿上都固定一個坐標系,然后用一個4階齊次變換矩陣表示相鄰兩連桿空間轉換關系。通過依次遞推,最終得到末端執行器相對于基坐標系的位姿變換矩陣,建立出機器人的運動學方程。
通過對基座和連桿進行編號,按照下面的規則建立連桿連接的坐標系,
(1)沿關節i+1的軸的方向選定軸Zi。
(2)原點Oi定位于軸Zi和軸Zi-1公垂線的交點。
(3)沿軸Zi和Zi-1的公垂線方向選擇Xi,方向由關節i指向關節i-1。
(4)按照右手定則確定Yi的方向。
相應的連桿參數定義如表1所示。
建立好的坐標系如圖5所示。
連桿L1~L4分別代表腰部、大臂、小臂、手腕四個機構的運動。連桿坐標系上獲得相應的D-H參數如表2所示。
4.2 建立關節機器人模型
在D-H參數表建立好之后,利用RoboticsToolbox中的Link函數,描述各連桿關節關系,其中形參為前面分析得到的D-H參數;使用SerialLink函數就可以實現關節之間的連接組合,連接完成的關節機器人如圖6所示。
搭建完關節機器人的模型后,給其提供兩組不同的位姿或者關節狀態,就可以進行軌跡規劃。其中需要注意,系統中設計的關節機器人的大臂和小臂運動范圍不是無限制的,是受到機械結構約束,經測試可知,大臂的可移動坐標范圍為4~30cm,小臂的旋轉范圍為45~135度,需要在仿真中將這一運動約束納入。
4.3 軌跡規劃
在Robotics Toolbox中,對于關節機器人的軌跡規劃,可以采用兩種方式。一種是調用ctraj函數,根據已知初始和終止的末端關節位姿,采用勻加、減速運動來規劃軌跡,在笛卡兒空間下表現出關節最末端的運動軌跡。第二種是調用jtraj函數,在已知初始和終止的關節角度下,利用五次多項式來規劃軌跡,適用于關節空間下的軌跡規劃,輸出的是各個關節的運動參數,可用于各個關節驅動。
將構建的關節機器人系統,置于一個200*200*200cm的空間中,底座所處位置為笛卡爾坐標原點。利用Robotics Toolbox,對于給定的初始點和終止點,進行手爪安裝端最短運動軌跡規劃。
4.3 仿真結果分析
設置各個關節的初始位置qz=[04pi/40],終止位置qr=[pi/430pi/20]。手爪安裝端關節結結算出相應的齊次變換矩陣為:
運行仿真獲得如圖7所示的四個關節空間運動仿真圖。
第1列上圖是關節機器人的運行過程動態演示,下圖是其末端關節(手爪安裝端)在笛卡爾空間下的軌跡,顯示為一條直線。
第2~4列為為四個關節的空間規劃圖,分別顯示其位置(角位移)、速度(角速度)和加速度(角加速度)在關節運動過程中的相應變化。相應的運動曲線可以為設計各關節驅動電機的控制參數提供參考。其中關節4主要用于安裝手爪,因在當前碼垛工藝中沒有考慮手爪運動,因此該關節在整個過程實際并不運動。
根據圖2中碼垛的路線規劃要求,從位置P→P2、P2→Q2、Q2→Q均需要保證為直線運動。因此只要將P、P2、Q2、Q作為各段起始和終止位姿,測量相應參數,通過仿真就可以獲得整個過程各關節的運動曲線。
通過觀察運動仿真過程還可以發現,笛卡爾軌跡與軌跡規劃結果與關節空間規劃是相對應的,通過規劃各關節協同動作,實現了自主堆垛運行所要求的最短路徑,滿足了設計要求。
5 結論
以物品碼垛應用為背景,設計了一種四自由度的關節機器人系統,建立了基于D-H法的關節機器人模型。結合碼垛工藝,利用正、逆運動學方法分析自主碼垛動作過程,得到關節坐標系下和笛卡爾坐標系下的轉換關系。在MATLAB中,運用Rotics ToolBox構建仿真模型,研究了在最短運動軌跡下,各關節運動參數曲線,為實體機器人的運動控制、軌跡規劃提供了重要依據。
參考文獻
[1]吳振彪,王正家,熊有倫.工業機器人(第二版)[M].武漢:華中科技大學出版社,2006.
[2]孫樹棟.工業機器人技術基A [M].西安:西北工業大學出版社,2007.
[3]葉辰雷,劉曉平,負超.碼垛機器人的軌跡規劃與仿真分析[ J].機械研究與應用,2013,26(05):26-30.
[4]周根榮,姜平,鐘永彥.碼垛機器人運動學分析和控制系統設計[J].計算機測量與控制,2016(1):81-84.
[5]Swaraj Zodey,Sharad K.Pradhan.Matlab Toolbox for KinematicAnalysis and Simulation of DexterousRobotic Grippers[J].ProcediaEngineering,2014,97.
[6]Singh Amanpreet,Singla Ekta,SoniSanjeev,Singla Ashish.Kinematicmodeling of a 7-degree of freedomspatial hybrid manipulator formedical surgery.[J].Proceedingsof the Institution of MechanicalEngineers.Part H,Journal ofengineering in medicine,2018,232(1).
[7]任崇軒.五自由度機械臂運動和控制仿真分析[D].華南理工大學,2012.