劉 虹,張得軍
(1.合肥工業大學 機械工程學院,合肥 230009;2.合肥工業大學智能制造技術研究院,合肥 230009)
近年來,世界主要大國都在工業生產中大規模應用各類工業機器人,在工業機器人技術飛速發展的同時,工業機器人開發過程中也面臨著一些問題:例如機器人控制系統的封閉性[1];工業機器人智能化程度低;模塊化和系統化不足;編程效率低下[2];機器人開發時間長、成本高等。為了解決機器人研究工作量大、耗時長,難以在現代社會普遍應用的問題,機器人研究者開發了大量的機器人軟件平臺,在這些開發平臺中,機器人操作系統ROS受到了廣泛關注,為解決當前機器人開發面臨的問題提供了新的方法。ROS是機器人系統設計的軟件框架,具有跨平臺、多語言支持、代碼復用等多個優點,為各種機器人開發提供了極大的便利[3]。ROS-I在復用ROS已有的框架和功能上,對工業領域進行了針對性的擴展,極大的降低了工業機器人的開發的難度。
本文首先簡單介紹了ROS-I項目并基于ROS-I搭建了埃夫特弧焊機器人仿真平臺,然后通過Descartes運動規劃庫完成了弧焊機器人笛卡爾空間運動規劃仿真,最后通過機械動力學軟件ADAMS對規劃的結果進行驗證。
ROS是一個面向機器人的開源操作系統[4],其中包含了大量的用于機器人開發的工具和庫,提供了統一的機器人開發框架和標準的接口[5]。在2011年,為了將ROS軟件的強大功能擴展到工業領域,美國西南研究所(SwRI)和Willow Garage公司以及安川機器人公司率先將ROS引入工業自動化領域,發起了ROS-Industrial項目。
在ROS中,MoveIt!是一個功能非常強大的機器人運動規劃工具。它集成了很多已經被廣泛使用的第三方庫,包括運動學和動力學庫KDL、開放運動規劃庫OMPL和快速碰撞檢查庫FCL等。MoveIt! 能夠自動實現碰撞檢查,由隨機采樣的運動規劃算法庫OMPL規劃的軌跡會避開障礙物和自身干涉等碰撞狀態[6]。在默認情況下,ROS中機器人的正、逆運動學的計算是使用KDL庫完成的,為了提高運算的效率,用戶可以利用OpenRave的IKFast模塊生成解析器插件,從而可以將運動規劃求解的速度提高三個數量級。ROS-Industrial的體系結構框圖如圖1所示。

圖1 ROS-Industrial的體系結構框圖
MoveIt! 目前主要專注于機器人抓握和取放操作方面的應用,但是在實際的工業應用中,比如弧焊機器人執行焊接作業任務,既要指定機器人末端執行器的起始位姿和目標位姿,還要插補出其中間點的位姿。為了解決約束條件下的笛卡爾軌跡規劃問題,ROS-Industrial項目開發了Descartes規劃庫。
Descartes規劃庫主要用于規劃具有笛卡爾路徑的機器人動作軌跡,它能夠快速規劃出性能優異的規劃軌跡并將規劃的結果保存在內存中,即使當機器人路徑發生變化,Descartes庫也能夠快速規劃新的關節軌跡。
在ROS中要對工業機器人進行仿真,首先必須創建能夠描述機器人結構的URDF(Unified Robot Description Format)文件[7]。URDF是一種用于描述機器人連桿件和關節的XML格式文件,不僅能夠抽象描述一個機器人的硬件,還可以描述整個機器人的工作空間。
本文研究的工業機器人三維模型來自埃夫特公司官網。通過SolidWorks處理后的機器人模型如圖2所示。

圖2 弧焊機器人三維模型
為了快速將機器人三維模型轉換為相應的URDF文件,在SolidWorks中通過SW2URDF插件創建包含機器人URDF文件的功能包,然后即可通過Rviz[8]顯示出機器人的仿真模型。
為了幫助機器人開發者快速配置MoveIt!,其提供了一個具有用戶界面的設置助手(MoveIt! Setup Assistant)[9],它可以幫助機器人開發者定制機器人和運動規劃框架的初始配置,簡化了設計編譯工作。這些配置包括自碰撞矩陣、虛擬關節列表、規劃組定義、機器人姿勢、末端執行器設置以及被動關節列表[10]。
弧焊機器人在執行焊接作業時,其末端執行器沿著給定的路徑運動,那么就需要在笛卡爾空間進行軌跡規劃[11]。所謂笛卡爾軌跡規劃就是在已知機器人末端的初始狀態和終止狀態的條件下,通過插補算法求解出運動軌跡的中間軌跡點的狀態,然后使用逆運動學求解出各中間軌跡點狀態所對應的關節角度值[12]。本文主要針對弧焊機器人的笛卡爾空間軌跡規劃問題進行討論。
已知弧焊機器人末端執行器的起點A(xA,yA,zA)和終點B(xB,yB,zB),機器人末端執行器按照直線運動從起點運動到終點,則起點和終點之間的插補點坐標為:
xi=(1-t)xA+txB
yi=(1-t)yA+tyB
(1)
zi=(1-t)zA+tzB

假設機器人末端從起點P1(x1,y1,z1)經過中間點P2(x2,y2,z2)到達終點P3(x3,y3,z3),則圓弧軌跡規劃的步驟如下:
步驟1:求圓心坐標P0(x0,y0,z0)和半徑R。已知在空間中三個不共線的點可以構成一個平面,則相鄰兩點構成的線段的垂直平分線的交點即為圓弧的圓心,而圓弧的半徑為:
(2)
步驟2:建立坐標系o-uvw。取圓心Po為坐標原點,設POP1方向為u軸的方向,則POP2和POP1的叉乘所得向量方向就是w軸的方向,v軸方向可由w軸和u軸方向向量叉乘得到。

(3)

步驟4:在新坐標系上對圓弧進行插補。設圓弧上有一點P,在坐標系o-uvw的坐標為(u,v,w),相應的歸一化時間算子為λ,POP和POP1的夾角為θ,POP1和POP2的夾角為θ0,則:
θ=λθ0
(4)

(5)
步驟5:將插補結果變換到基坐標系。設點P在機器人基坐標系的坐標為(x,y,z),則有:
(6)
即為基坐標系下圓弧位置插補點的坐標值。
對于直線運動軌跡規劃,以角焊接為例,取直線焊縫的起點A的位置坐標為(1.2,-0.4,0.26) ,終點B位置坐標為(1.2,0.4,0.26),然后采用前面的直線軌跡規劃算法進行插補運算,如圖3所示。

圖3 直線軌跡規劃
rqt_plot 是ROS 下的一個繪圖插件,可以實時繪制出機器人關節角度的變化曲線[13]。弧焊機器人末端執行器沿著直線軌跡時,機器人各個關節角度變化如圖4所示。

圖4 機器人6個關節的角度變化
對于圓弧軌跡規劃,以管-板相貫線焊接為例,相貫線焊縫的半徑為0.2,圓心的坐標為(1.0,0,0.26),焊縫的起始點為(1.2,0,0.26),運動一周之后再次回到焊縫起始點。采用前面的圓弧軌跡規劃算法進行插補運算,總共插值40個點,如圖5所示。

圖5 圓弧軌跡規劃
弧焊機器人末端執行器沿著圓形軌跡運動時,各個關節角度變換如圖6所示。

圖6 機器人6個關節的角度變化
為了對Descartes庫的規劃結果進行驗證,將上面的機器人6個關節的角度數據進行處理并導入到機械動力學軟件ADAMS中進行仿真,得到弧焊機器人執行直線焊接時,焊槍末端的位移、速度和加速度曲線如圖7~圖9所示。

圖7 焊槍末端的位移

圖8 焊槍末端的速度

圖9 焊槍末端的加速度
從弧焊機器人焊槍端點的位移、速度和加速度曲線圖中可以看出:弧焊機器人焊槍末端的位移非常平穩,速度和加速度也沒有出現較大的突變。弧焊機器人的焊槍末端在X軸和Z軸方向的位移始終分別保持在1.2m和0.26m,在Y軸方向從-0.4m勻速增加到+0.4m。說明弧焊機器人的焊槍沿著機器人的基座Y軸方向幾乎做水平勻速運動,符合實際的運動情況。
弧焊機器人執行圓形焊接時,焊槍端點的位移、速度和加速度數曲線如圖10~圖12所示。

圖10 焊槍端點的位移

圖11 焊槍端點的速度曲線

(a)X方向的加速度

(b)Y方向的加速度

(c)Z方向的加速度圖12 焊槍端點的加速度曲線
從弧焊機器人焊槍末端的位移、速度和加速度曲線中可以看出:焊槍末端在機器人基座的X方向為余弦運動,在Y軸方向為正弦運動,在Z軸方向始終保持0.26m,與實際情況相符,弧焊機器人焊槍末端的位移和速度曲線較平穩,說明弧焊機器人在執行焊接時沒有出現較大的沖擊,能夠很好的完成焊接任務。
本文基于ROS-I搭建了弧焊機器人仿真平臺,完成了機器人笛卡爾空間的直線和圓弧軌跡的構建并通過Descartes庫對弧焊機器人的直線和圓弧軌跡規劃進行了運動仿真,在軌跡規劃的基礎上,通過機械動力學軟件ADAMS得到了機器人在這兩種情況下焊槍末端的位移、速度和加速度曲線。研究結果表明,ROS-I平臺的Descartes庫不僅能夠提高機器人笛卡爾運動規劃的效率,降低機器人笛卡爾運動規劃的難度,而且其規劃的結果具有較高的精度和可靠性,為弧焊機器人在復雜環境中的軌跡規劃提供了一個可供參考的方案。