劉 虹,張得軍
(1.合肥工業(yè)大學(xué) 機械工程學(xué)院,合肥 230009;2.合肥工業(yè)大學(xué)智能制造技術(shù)研究院,合肥 230009)
近年來,世界主要大國都在工業(yè)生產(chǎn)中大規(guī)模應(yīng)用各類工業(yè)機器人,在工業(yè)機器人技術(shù)飛速發(fā)展的同時,工業(yè)機器人開發(fā)過程中也面臨著一些問題:例如機器人控制系統(tǒng)的封閉性[1];工業(yè)機器人智能化程度低;模塊化和系統(tǒng)化不足;編程效率低下[2];機器人開發(fā)時間長、成本高等。為了解決機器人研究工作量大、耗時長,難以在現(xiàn)代社會普遍應(yīng)用的問題,機器人研究者開發(fā)了大量的機器人軟件平臺,在這些開發(fā)平臺中,機器人操作系統(tǒng)ROS受到了廣泛關(guān)注,為解決當(dāng)前機器人開發(fā)面臨的問題提供了新的方法。ROS是機器人系統(tǒng)設(shè)計的軟件框架,具有跨平臺、多語言支持、代碼復(fù)用等多個優(yōu)點,為各種機器人開發(fā)提供了極大的便利[3]。ROS-I在復(fù)用ROS已有的框架和功能上,對工業(yè)領(lǐng)域進行了針對性的擴展,極大的降低了工業(yè)機器人的開發(fā)的難度。
本文首先簡單介紹了ROS-I項目并基于ROS-I搭建了埃夫特弧焊機器人仿真平臺,然后通過Descartes運動規(guī)劃庫完成了弧焊機器人笛卡爾空間運動規(guī)劃仿真,最后通過機械動力學(xué)軟件ADAMS對規(guī)劃的結(jié)果進行驗證。
ROS是一個面向機器人的開源操作系統(tǒng)[4],其中包含了大量的用于機器人開發(fā)的工具和庫,提供了統(tǒng)一的機器人開發(fā)框架和標(biāo)準(zhǔn)的接口[5]。在2011年,為了將ROS軟件的強大功能擴展到工業(yè)領(lǐng)域,美國西南研究所(SwRI)和Willow Garage公司以及安川機器人公司率先將ROS引入工業(yè)自動化領(lǐng)域,發(fā)起了ROS-Industrial項目。
在ROS中,MoveIt!是一個功能非常強大的機器人運動規(guī)劃工具。它集成了很多已經(jīng)被廣泛使用的第三方庫,包括運動學(xué)和動力學(xué)庫KDL、開放運動規(guī)劃庫OMPL和快速碰撞檢查庫FCL等。MoveIt! 能夠自動實現(xiàn)碰撞檢查,由隨機采樣的運動規(guī)劃算法庫OMPL規(guī)劃的軌跡會避開障礙物和自身干涉等碰撞狀態(tài)[6]。在默認(rèn)情況下,ROS中機器人的正、逆運動學(xué)的計算是使用KDL庫完成的,為了提高運算的效率,用戶可以利用OpenRave的IKFast模塊生成解析器插件,從而可以將運動規(guī)劃求解的速度提高三個數(shù)量級。ROS-Industrial的體系結(jié)構(gòu)框圖如圖1所示。
圖1 ROS-Industrial的體系結(jié)構(gòu)框圖
MoveIt! 目前主要專注于機器人抓握和取放操作方面的應(yīng)用,但是在實際的工業(yè)應(yīng)用中,比如弧焊機器人執(zhí)行焊接作業(yè)任務(wù),既要指定機器人末端執(zhí)行器的起始位姿和目標(biāo)位姿,還要插補出其中間點的位姿。為了解決約束條件下的笛卡爾軌跡規(guī)劃問題,ROS-Industrial項目開發(fā)了Descartes規(guī)劃庫。
Descartes規(guī)劃庫主要用于規(guī)劃具有笛卡爾路徑的機器人動作軌跡,它能夠快速規(guī)劃出性能優(yōu)異的規(guī)劃軌跡并將規(guī)劃的結(jié)果保存在內(nèi)存中,即使當(dāng)機器人路徑發(fā)生變化,Descartes庫也能夠快速規(guī)劃新的關(guān)節(jié)軌跡。
在ROS中要對工業(yè)機器人進行仿真,首先必須創(chuàng)建能夠描述機器人結(jié)構(gòu)的URDF(Unified Robot Description Format)文件[7]。URDF是一種用于描述機器人連桿件和關(guān)節(jié)的XML格式文件,不僅能夠抽象描述一個機器人的硬件,還可以描述整個機器人的工作空間。
本文研究的工業(yè)機器人三維模型來自埃夫特公司官網(wǎng)。通過SolidWorks處理后的機器人模型如圖2所示。
圖2 弧焊機器人三維模型
為了快速將機器人三維模型轉(zhuǎn)換為相應(yīng)的URDF文件,在SolidWorks中通過SW2URDF插件創(chuàng)建包含機器人URDF文件的功能包,然后即可通過Rviz[8]顯示出機器人的仿真模型。
為了幫助機器人開發(fā)者快速配置MoveIt!,其提供了一個具有用戶界面的設(shè)置助手(MoveIt! Setup Assistant)[9],它可以幫助機器人開發(fā)者定制機器人和運動規(guī)劃框架的初始配置,簡化了設(shè)計編譯工作。這些配置包括自碰撞矩陣、虛擬關(guān)節(jié)列表、規(guī)劃組定義、機器人姿勢、末端執(zhí)行器設(shè)置以及被動關(guān)節(jié)列表[10]。
弧焊機器人在執(zhí)行焊接作業(yè)時,其末端執(zhí)行器沿著給定的路徑運動,那么就需要在笛卡爾空間進行軌跡規(guī)劃[11]。所謂笛卡爾軌跡規(guī)劃就是在已知機器人末端的初始狀態(tài)和終止?fàn)顟B(tài)的條件下,通過插補算法求解出運動軌跡的中間軌跡點的狀態(tài),然后使用逆運動學(xué)求解出各中間軌跡點狀態(tài)所對應(yīng)的關(guān)節(jié)角度值[12]。本文主要針對弧焊機器人的笛卡爾空間軌跡規(guī)劃問題進行討論。
已知弧焊機器人末端執(zhí)行器的起點A(xA,yA,zA)和終點B(xB,yB,zB),機器人末端執(zhí)行器按照直線運動從起點運動到終點,則起點和終點之間的插補點坐標(biāo)為:
xi=(1-t)xA+txB
yi=(1-t)yA+tyB
(1)
zi=(1-t)zA+tzB
假設(shè)機器人末端從起點P1(x1,y1,z1)經(jīng)過中間點P2(x2,y2,z2)到達終點P3(x3,y3,z3),則圓弧軌跡規(guī)劃的步驟如下:
步驟1:求圓心坐標(biāo)P0(x0,y0,z0)和半徑R。已知在空間中三個不共線的點可以構(gòu)成一個平面,則相鄰兩點構(gòu)成的線段的垂直平分線的交點即為圓弧的圓心,而圓弧的半徑為:
(2)
步驟2:建立坐標(biāo)系o-uvw。取圓心Po為坐標(biāo)原點,設(shè)POP1方向為u軸的方向,則POP2和POP1的叉乘所得向量方向就是w軸的方向,v軸方向可由w軸和u軸方向向量叉乘得到。
(3)
步驟4:在新坐標(biāo)系上對圓弧進行插補。設(shè)圓弧上有一點P,在坐標(biāo)系o-uvw的坐標(biāo)為(u,v,w),相應(yīng)的歸一化時間算子為λ,POP和POP1的夾角為θ,POP1和POP2的夾角為θ0,則:
θ=λθ0
(4)
(5)
步驟5:將插補結(jié)果變換到基坐標(biāo)系。設(shè)點P在機器人基坐標(biāo)系的坐標(biāo)為(x,y,z),則有:
(6)
即為基坐標(biāo)系下圓弧位置插補點的坐標(biāo)值。
對于直線運動軌跡規(guī)劃,以角焊接為例,取直線焊縫的起點A的位置坐標(biāo)為(1.2,-0.4,0.26) ,終點B位置坐標(biāo)為(1.2,0.4,0.26),然后采用前面的直線軌跡規(guī)劃算法進行插補運算,如圖3所示。
圖3 直線軌跡規(guī)劃
rqt_plot 是ROS 下的一個繪圖插件,可以實時繪制出機器人關(guān)節(jié)角度的變化曲線[13]?;『笝C器人末端執(zhí)行器沿著直線軌跡時,機器人各個關(guān)節(jié)角度變化如圖4所示。
圖4 機器人6個關(guān)節(jié)的角度變化
對于圓弧軌跡規(guī)劃,以管-板相貫線焊接為例,相貫線焊縫的半徑為0.2,圓心的坐標(biāo)為(1.0,0,0.26),焊縫的起始點為(1.2,0,0.26),運動一周之后再次回到焊縫起始點。采用前面的圓弧軌跡規(guī)劃算法進行插補運算,總共插值40個點,如圖5所示。
圖5 圓弧軌跡規(guī)劃
弧焊機器人末端執(zhí)行器沿著圓形軌跡運動時,各個關(guān)節(jié)角度變換如圖6所示。
圖6 機器人6個關(guān)節(jié)的角度變化
為了對Descartes庫的規(guī)劃結(jié)果進行驗證,將上面的機器人6個關(guān)節(jié)的角度數(shù)據(jù)進行處理并導(dǎo)入到機械動力學(xué)軟件ADAMS中進行仿真,得到弧焊機器人執(zhí)行直線焊接時,焊槍末端的位移、速度和加速度曲線如圖7~圖9所示。
圖7 焊槍末端的位移
圖8 焊槍末端的速度
圖9 焊槍末端的加速度
從弧焊機器人焊槍端點的位移、速度和加速度曲線圖中可以看出:弧焊機器人焊槍末端的位移非常平穩(wěn),速度和加速度也沒有出現(xiàn)較大的突變?;『笝C器人的焊槍末端在X軸和Z軸方向的位移始終分別保持在1.2m和0.26m,在Y軸方向從-0.4m勻速增加到+0.4m。說明弧焊機器人的焊槍沿著機器人的基座Y軸方向幾乎做水平勻速運動,符合實際的運動情況。
弧焊機器人執(zhí)行圓形焊接時,焊槍端點的位移、速度和加速度數(shù)曲線如圖10~圖12所示。
圖10 焊槍端點的位移
圖11 焊槍端點的速度曲線
(a)X方向的加速度
(b)Y方向的加速度
(c)Z方向的加速度圖12 焊槍端點的加速度曲線
從弧焊機器人焊槍末端的位移、速度和加速度曲線中可以看出:焊槍末端在機器人基座的X方向為余弦運動,在Y軸方向為正弦運動,在Z軸方向始終保持0.26m,與實際情況相符,弧焊機器人焊槍末端的位移和速度曲線較平穩(wěn),說明弧焊機器人在執(zhí)行焊接時沒有出現(xiàn)較大的沖擊,能夠很好的完成焊接任務(wù)。
本文基于ROS-I搭建了弧焊機器人仿真平臺,完成了機器人笛卡爾空間的直線和圓弧軌跡的構(gòu)建并通過Descartes庫對弧焊機器人的直線和圓弧軌跡規(guī)劃進行了運動仿真,在軌跡規(guī)劃的基礎(chǔ)上,通過機械動力學(xué)軟件ADAMS得到了機器人在這兩種情況下焊槍末端的位移、速度和加速度曲線。研究結(jié)果表明,ROS-I平臺的Descartes庫不僅能夠提高機器人笛卡爾運動規(guī)劃的效率,降低機器人笛卡爾運動規(guī)劃的難度,而且其規(guī)劃的結(jié)果具有較高的精度和可靠性,為弧焊機器人在復(fù)雜環(huán)境中的軌跡規(guī)劃提供了一個可供參考的方案。