劉 磊,寧 祎
(河南工業(yè)大學(xué) 機器人研究所,鄭州 450007)
當(dāng)前,機器人的功能越來越豐富,機器人系統(tǒng)更加復(fù)雜,機器人軟件的編寫復(fù)雜且繁瑣,大量的冗余代碼,復(fù)雜的建模,可移植性差的平臺,功能層次性差,仿真的通用性差,等各種問題也顯現(xiàn)出來。機器人操作系統(tǒng)可以很好地解決這些問題。基于ROS相關(guān)軟件包,可以對各類型的機器人進行快速建模、仿真和控制[1]。在此,利用ROS搭建了1個六自由度機械臂的仿真平臺,并在該平臺下對六自由度機械臂的直線圓弧軌跡規(guī)劃進行了實驗。由實驗結(jié)果可見,機械臂各關(guān)節(jié)運動軌跡平滑,末端位置精度滿足要求。
ROS系統(tǒng)是構(gòu)建在 Ubuntu系統(tǒng)上的一種應(yīng)用程序框架。它利用Ubuntu系統(tǒng)來獲得對硬件的支持,同時在這個應(yīng)用程序框架上有開發(fā)有多種的應(yīng)用軟件功能包[2]。ROS整合了許多工具包,如:系統(tǒng)可視化工具rqt,3D可視化工具Rviz,地圖構(gòu)建與導(dǎo)航工具SLAM,機械臂仿真包MoveIt!,等。在此,主要采用ROS的3D可視化工具Rviz和機械臂仿真包MoveIt!,構(gòu)建了機器人仿真平臺。
MoveIt!是一款可用于正逆運動學(xué)求解、集成運動規(guī)劃、感知檢測等方面的機器人軟件包[3]。在此使用它進行了運動學(xué)的解算和運動規(guī)劃。MoveIt!的節(jié)點框架如圖1所示。
圖1 MoveIt!的節(jié)點框架Fig.1 MoveIt!node framework
ROS系統(tǒng)中利用通用機器人描述格式URDF來表示機器人模型[4]。該文件通過ROS中的robot_state_publisher節(jié)點發(fā)布機器人的坐標(biāo)變換關(guān)系,以實現(xiàn)在任意時間,將點、向量等數(shù)據(jù)的坐標(biāo),在2個參考系中完成坐標(biāo)變換,可以用于機器人軌跡規(guī)劃、MoveIt!等,從而實現(xiàn)機器人各關(guān)節(jié)位姿的精確跟蹤[5]。
對于在SolidWorks中建立的機器人模型,可以用ROS官方制作的sw2urdf插件來生成URDF文件,在ROS中使用可視化URDF工具可以生成機器人模型連桿、關(guān)節(jié)之間的關(guān)系和相應(yīng)位姿的樹狀圖,如圖2所示。
圖2 機器人關(guān)節(jié)、連桿樹狀圖Fig.2 Joint and link tree structure of robot
利用URDF文件,在ROS的工作空間中編寫ROS軟件包,創(chuàng)建節(jié)點和launch文件,在launch文件中定義啟動的節(jié)點和相應(yīng)的參數(shù)[6]。機器人模型在Rviz中顯示如圖3所示。
圖3 機器人模型顯示界面Fig.3 Robot model display interface
基于機器人操作系統(tǒng)所搭建的軟件框架如圖4所示。其中,MoveIt!為機械臂運動規(guī)劃的核心工具包,主要負(fù)責(zé)運動學(xué)解算[7];OMPL為運動規(guī)劃算法庫,向MoveIt!提供復(fù)雜算法支持;3D可視化軟件包Rviz,可直接查看機器人的結(jié)構(gòu)和坐標(biāo)系,進行實時仿真。
ROS平臺下,MoveIt!是機械臂仿真運算的核心,Move_group節(jié)點是MoveIt!的核心節(jié)點,所有的信息都在這里匯集。通過解析URDF描述文件初始化機器人模型的運動學(xué)信息,由OMPL運動規(guī)劃庫生成軌跡消息包,并傳遞給控制器節(jié)點??刂破鲗?shù)據(jù)送到ROS底層的角度軌跡控制器作為加減速控制和插補的輸入;控制器在進行實時運算時,不斷修改URDF模型,在Rviz中實時仿真[8]。實時運算輸出的插補結(jié)果,也可以通過通訊節(jié)點輸出到真實環(huán)境中的機器人上,實現(xiàn)實時運動。
圖4 軟件框架Fig.4 Sofeware framework
在所搭建的仿真實驗平臺上,對六自由度機械臂進行笛卡爾空間的直線和圓弧軌跡規(guī)劃,以保證機器人快速平穩(wěn)的運動,實現(xiàn)滿足精度要求的軌跡。MoveIt!默認(rèn)使用KDL(kinematics and dynamics library),通過數(shù)值迭代算法求解逆運動學(xué)問題。該方法對于不同機器人模型的通用性較強。
已知機械臂末端起點 P1(xa,ya,za)和終點 P2(xb,yb,zb),并沿直線從 P1點運動到 P2點,插補的次數(shù)為N,則中間插補點的坐標(biāo)(xi+1,yi+1,zi+1)為
式中:i=1,2,3,…,N。
在建立的ROS仿真平臺中,實現(xiàn)直線插補運算過程如下:先給定起點和終點,由P1運動到P2,規(guī)劃的直線軌跡運動圖5所示。采用笛卡爾空間的軌跡約束,通過逆解運算求得各關(guān)節(jié)的變化,并繪制關(guān)節(jié)角度變化,如圖6所示。將ROS中生成的機械臂末端點位置和理論的差值位置進行比較,繪制誤差曲線,如圖7所示。
圖5 直線軌跡運動Fig.5 Linear trajectory planning
圖6 直線軌跡關(guān)節(jié)角度變化曲線Fig.6 Curve joint angle change curve of straight line
圖7 直線軌跡規(guī)劃誤差曲線Fig.7 Error curve of linear trajectory planning
在三維空間中,給定 3 個點 P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3),如圖8所示。 將 P1,P2,P3這 3 點確定的唯一平面設(shè)為α,該平面方程為
在平面α上取直線P1P2和P2P3的垂直平分線,兩線相交于點 O1(x0,y0,z0),O1點即為圓弧的圓心坐標(biāo),從而可得半徑R,也可求得弧P1P2和弧P2P3對應(yīng)的圓心角 θ1和 θ2。
圖8 笛卡爾空間的圓弧軌跡Fig.8 Arc planning in Cartesian space
由圓心坐標(biāo)建立新的坐標(biāo)系如圖8所示,便可得到UVW坐標(biāo)系相對于基坐標(biāo)系的變換矩陣為
為X軸在基坐標(biāo)系下的方向余弦;
為Y軸在基坐標(biāo)系下的方向余弦;o=a×n為Z軸在基坐標(biāo)下的方向余弦。圓弧軌跡的圓心角之和θ=θ1+θ2,插補的角度位移量為Δθ,總的插補次數(shù)為 N=,則圓弧在UV平面的插補為
式中:i=1,2,3,…,N。對于平面 UV 的任意點 P 的齊次坐標(biāo)[u v 0]T,可通過式(5)將其轉(zhuǎn)化到基坐標(biāo)系 X0Y0Z0下,即
借助于該變換矩陣公式,對新坐標(biāo)系下的圓弧軌跡點進行矩陣計算,從而可以得到在笛卡爾空間上的圓弧軌跡。在ROS平臺上,實現(xiàn)的圓弧插補如圖9所示,關(guān)節(jié)角度變化如圖10所示。將ROS中生成的機械臂末端點位置和理論的差值位置進行比較,繪制的誤差曲線如圖11所示。
搭建了基于ROS平臺的機器人仿真平臺,利用URDF文件完成了六自由度機械臂的建模,利用
圖9 圓弧軌跡規(guī)劃Fig.9 Circular trajectory planning
圖10 圓弧軌跡關(guān)節(jié)角度變化Fig.10 Arc trajectory joint Angle change
圖11 圓弧軌跡規(guī)劃誤差曲線Fig.11 Error curve of arc trajectory planning
MoveIt!進行了六自由度機械臂的運動學(xué)解算和軌跡規(guī)劃,并在Rviz上進行了三維實時仿真模擬;完成了笛卡爾空間的直線圓弧軌跡規(guī)劃,實現(xiàn)了插補運算;在仿真平臺進行了實驗,通過ROS顯示的各個關(guān)節(jié)的角度變化信息,可以看出六自由度機械臂各關(guān)節(jié)運動軌跡平滑,軌跡誤差滿足要求,驗證了該方法的有效性。
參考文獻:
[1]陳盛龍,平雪良,曹正萬,等.基于ROS串聯(lián)機器人虛擬運動控制及仿真研究[J].組合機床與自動化加工技術(shù),2015,52(10):108-111.
[2]曹正萬,平雪良,陳盛龍,等.基于ROS的機器人模型構(gòu)建方法研究[J].組合機床與自動化加工技術(shù),2015,52(8):51-54.
[3]徐扣.六自由度機械臂的逆運動學(xué)求解與軌跡規(guī)劃研究 [D].廣州:廣東工業(yè)大學(xué),2016.
[4]Hoske M T.ROS Industrial aims to open unify advanced robotic programming[J].Control Engineering,2013,60(2):20-21.
[5]鄭梓均.基于ROS系統(tǒng)的簡易服務(wù)機器人關(guān)鍵技術(shù)的研究[D].無錫:江南大學(xué),2016.
[6]JOSEPH L.Mastering ROS for robotics rrogramming[M].Birmingham:Packet Publishing Ltd,2015.
[7]Chitta S,Sucan I,Cousins S.“Moveit![ROS topics]”[J].Robotics&Automation Magazine IEEE,2012(19):18-19.
[8]左軒塵,韓亮亮,莊杰,等.基于ROS的空間機器人人機交互系統(tǒng)設(shè)計[J].計算機工程與設(shè)計,2015,36(12):3370-3374.