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