張瑜 劉冰 馬雪 管曉宏
摘 要:傳統(tǒng)的機器人虛擬控制與仿真平臺在控制機器人運動時存在諸多問題,例如控制系統(tǒng)設(shè)計工作量大、開發(fā)難度大等,需要利用基于開源軟件平臺即ROS平臺的機械臂運動控制方法解決問題,加大軟件控制的力度,提高機器人運動控制的精準性。
關(guān)鍵詞:ROS平臺;機械臂;精確控制
前言:
一直以來,軟件控制領(lǐng)域都十分關(guān)注機械臂的精確控制問題。從控制工程這一層面來看,機械臂屬于含有非線性模型的物理系統(tǒng)。但是,當(dāng)前基于ROS平臺的機械臂控制器研究的都是線性PID控制器,為此應(yīng)該加大對基于ROS平臺的機械臂精確控制的研究力度。
1 機器人操作系統(tǒng)分析
ROS指的是以UNIX環(huán)境為基礎(chǔ)的用于機器人的操作系統(tǒng),具有多重功能,主要包括硬件抽象描述、底層驅(qū)動程序管理、程序發(fā)行包管理、程序消息傳遞、共用功能執(zhí)行等【1】。同時,該系統(tǒng)也可以提供一些程序與庫,從而編寫程序、運行程序。
1.1 構(gòu)建ROS中的仿真模型
ROS作為機器人操作系統(tǒng)不僅可以和真實的機器人通信,也可以對機器人仿真模型進行相應(yīng)的操作。ROS當(dāng)中有標準化機器人描述格式,可以識別機器人模型文件,可以描述機器人的結(jié)構(gòu)、自由度以及關(guān)節(jié)等各個方面的情況,可以為機器人提供多種物理響應(yīng),例如運動學(xué)鏈、結(jié)構(gòu)參數(shù)等。應(yīng)該利用SolidWorks構(gòu)建機械臂的三維模型,之后利用SW2urdf插件設(shè)置機械臂的各個關(guān)節(jié)與連接,這樣就可以導(dǎo)出標準化機器人描述格式。
1.2? ROS控制架構(gòu)
機器人機械系統(tǒng)的運行需要控制系統(tǒng)的支持,以ROS平臺為基礎(chǔ)的機械臂控制系統(tǒng)架構(gòu)。機械系統(tǒng)控制架構(gòu)是由五個層次共同構(gòu)成的,即關(guān)節(jié)狀態(tài)反饋、被控對象機械臂、運動控制層、路徑規(guī)劃層、用戶層。其中,關(guān)節(jié)狀態(tài)觀測器可以實時掌握機器人關(guān)節(jié)的狀態(tài),并處理突發(fā)情況;運動控制層是控制框架的核心,可以運算規(guī)劃軌跡,驅(qū)動機械臂;路徑規(guī)劃層可以根據(jù)用戶層設(shè)置的機械臂運動目標位置規(guī)劃運動軌跡;用戶層可以根據(jù)機器人模型規(guī)劃任務(wù),明確機械臂運動的目標位置【2】。
2 機器人運動學(xué)分析
2.1機械臂正運動學(xué)
本文主要研究UR5機器人,這一機器人的旋轉(zhuǎn)關(guān)節(jié)有6個,根據(jù)D-H參數(shù)法建立了該機器人的坐標系(如圖一所示)。在完成坐標系的建立后,需要根據(jù)相鄰坐標系之間的約束關(guān)系明確D-H參數(shù)(如表1所示)。根據(jù)參數(shù)并進行計算便可以得到機器人運動學(xué)正解。
2.2機械臂逆運動學(xué)
機械臂逆運動學(xué)可以實現(xiàn)機械臂位姿從工作空間到關(guān)節(jié)空間的映射,從本質(zhì)上來看機械臂逆運動學(xué)是在已知末端執(zhí)行器位置與姿態(tài)的條件下,對關(guān)節(jié)變量進行求解??梢酝ㄟ^三角函數(shù)與關(guān)節(jié)角的角度求出六個關(guān)節(jié)變量。
3? 計算力矩控制器
可以通過牛頓歐拉方程分析機械臂,即τ = Dn (q)·u + Hn (q, q) + Gn (q)。其原理是在機械臂控制系統(tǒng)內(nèi)控制回路當(dāng)中增添非線性補償,加入非線性補償后將機械臂簡化為線性系統(tǒng)??梢愿鶕?jù)計算力矩控制方法將PD控制引入到機械臂控制內(nèi)回路當(dāng)中,這樣控制系統(tǒng)就可以反饋位置信號,并通過一次微分獲得速度信號,但是兩次微分之間的偏差較大,所以需要進行優(yōu)化??梢酝ㄟ^OROCOS運動學(xué)與動力學(xué)庫進行機器人運動學(xué)與動力學(xué)模型的計算,增強計算結(jié)果的準確性。
4 仿真與結(jié)果分析
4.1機械臂運動規(guī)劃
需要通過ROS平臺當(dāng)中的MoveIt!這一模塊進行機械臂的運動規(guī)劃。在進行機械臂的運動規(guī)劃之前需要明確機械臂各個關(guān)節(jié)的初始位置以及目標位置的取值。之后需要利用RRTconnect規(guī)劃算法規(guī)劃UR5機械臂的軌跡,在規(guī)劃機械臂軌跡時需要獲取在關(guān)節(jié)空間中解算的關(guān)節(jié)角度插值,所以需要在笛卡爾空間當(dāng)中進行軌跡規(guī)劃【3】。在笛卡爾空間中進行軌跡規(guī)劃需要利用機器人逆運動學(xué)計算轉(zhuǎn)化其表示方式。而在ROS平臺當(dāng)中,可以利用數(shù)值迭代算法進行機械臂運動學(xué)的求解,并轉(zhuǎn)化工作空間。同時,利用RRTconnect算法獲得的軌跡也可以避開自身干涉與障礙物等碰撞狀態(tài)。
4.2運動控制
運動規(guī)劃在獲取機械臂軌跡信息之后會將信息傳輸給ROS平臺的底層關(guān)節(jié)控制器。底層關(guān)節(jié)控制器獲取信息之后會進行插值運算,使機械臂沿著預(yù)定的軌跡運動,而ROS可以通過gazebo_ros_control插件控制Gazebo當(dāng)中的機械臂模型,即通過軟件控制的方式控制機械臂模型。ROS平臺當(dāng)中的底層關(guān)節(jié)控制器屬于插件,所以更換控制器具有較強的靈活性。
4.3實驗結(jié)果分析
在對UR5機器人的運動進行控制時,可以通過joint_states節(jié)點監(jiān)測機械臂運動時各個關(guān)節(jié)的位置以及速度等各方面信息,并將這些信息保存到文本當(dāng)中,利用MATLAB分析這些信息,從而明確UR5機械臂各個關(guān)節(jié)的運動關(guān)系。UR5機械臂在進行運動規(guī)劃時理論關(guān)節(jié)角與不同控制器影響下的實際關(guān)節(jié)角,這兩種控制器都可以控制機械臂按照預(yù)定的軌跡運動,可有效增強軟件控制的效果,但是都存在相應(yīng)的誤差。經(jīng)過分析發(fā)現(xiàn),相比于PID控制器,CTC控制器的控制效果更好一些,誤差也更小。
結(jié)語:
總而言之,應(yīng)該加大對機器人操作系統(tǒng)、機器人運動學(xué)等各個方面的研究力度,從而實現(xiàn)基于ROS平臺的機械臂精確控制。
參考文獻:
[1]王好, 范平清, 王巖松,等. 基于ROS平臺的機械臂精確控制研究[J]. 輕工機械, 2018(02):018-022.
[2]劉亞秋, 陶然, 丁峰,等. 基于ROS和EtherCAT的視覺伺服7DOF機械臂仿真研究[J]. 黑龍江大學(xué)自然科學(xué)學(xué)報, 2018, 35(1): 94-101.
[3]張松偉, 馮常. 基于ROS的四軸機械臂運動仿真與控制的研究[J]. 電子設(shè)計工程, 2018, 026(010):124-128.
(福鞍控股有限公司,遼寧 鞍山 114000)