鹿霖 謝樹新
摘 要: 在眾多的機器人仿真平臺中,ROS可以封裝機器人硬件。提出在ROS環(huán)境下構建機器人的仿真模型方法。設計了機器人仿真模型的導入方法及過程,利用所提方法將模型導入具體的應用實例。將SolidWorks裝配文件解析成機器人模型的URDF文件,并在MoveIt!中進行驗證。結果表明,該仿真模型構建的方法是有效的,模型是可操作的,為后續(xù)的機器人運動規(guī)劃和軌跡規(guī)劃問題的研究提供了易實現(xiàn)和易操作的機器人模型。
關鍵詞: 機器人仿真; 機器人建模; 開源操作系統(tǒng); 仿真模型; 運動規(guī)劃; 軌跡規(guī)劃
中圖分類號: TN98?34; TP391.9 文獻標識碼: A 文章編號: 1004?373X(2018)07?0102?04
Construction method of robot simulation model in ROS environment
LU Lin1, 2, XIE Shuxin1
(1. School of Mechanical and Electric Engineering, Soochow University, Suzhou 215021, China;
2. Suzhou Institute of Industrial Technology, Suzhou 215104, China)
Abstract: Among many robot simulation platforms, the robot operating system (ROS) can encapsulate the robot hardware. A construction method of robot simulation model in ROS environment is proposed. The import method and process of the robot simulation model are designed. The model is imported into a specific application instance by using the proposed method. The SolidWorks assembly file is parsed into the URDF file of the robot model. The model is verified in MoveIt!. The results show that the construction method of the simulation model is effective, and the model is operable. This method provides a robot model with easy implementation and easy operation for the follow?up research of robot motion planning and trajectory planning.
Keywords: robot simulation; robot modeling; open source operating system; simulation model; motion planning; trajectory planning
0 引 言
機械手臂在工業(yè)生產中應用廣泛,例如使用機械手臂進行碼跺、裝配、焊接等工作。對機械手臂技術研究而言,最重要的環(huán)節(jié)就是如何正確精準地規(guī)劃其軌跡路徑,機器人仿真技術在該問題的解決過程中發(fā)揮著重要的作用。
在機器人的仿真研究中,大部分研究者以Matlab作為平臺仿真機器人運動,然而,Matlab語言不方便直接構造復雜的3D機器人模型。另有很多研究者采用OpenGL結合Visual C++開發(fā)機器人仿真平臺[1]。此外,也有學者將VRML(虛擬現(xiàn)實建模語言)引入機器人研究中,輔以3ds Max作為建模工具,建立機器人的三維模型。再有就是購買商業(yè)化的機器人仿真軟件進行機器人研究。以上這些方式存在開發(fā)耗時、不易掌握、軟件價格昂貴等問題,最重要的就是這些仿真平臺都不開源,重復性工作太多。當前的開源軟件不能滿足需要,開源機器人操作系統(tǒng)(ROS)隨之誕生并很快在機器人研究領域展開了學習和使用的熱潮。本文設計了機器人仿真模型的導入方法及過程,利用所提方法將模型導入具體的應用實例。將SolidWorks裝配文件解析成機器人模型的URDF文件,并在MoveIt!中進行驗證。結果表明,該仿真模型構建的方法是有效的,模型是可操作的。
1 基于ROS的機器人仿真研究
1.1 開源機器人操作系統(tǒng)(ROS)簡介
ROS(Robot Operating System)可用來封裝不同結構機器人的硬件。ROS的優(yōu)勢在于無論機器人是何種結構或類型,均可以使用相同的形式(如topic)表示。利用節(jié)點(Node)表示應用程序,在不同節(jié)點間通過固定格式的消息、動作與服務協(xié)調實現(xiàn)鏈接[2]。
1.2 URDF 文件介紹
URDF(Unified Robot Description Format,統(tǒng)一機器人描述格式)[3?6]是ROS中使用的一種機器人描述文件[7],使用XML(可擴展標記語言)格式描述機器人模型。包含的內容有:連桿、關節(jié)、運動學參數(shù)、動力學參數(shù)、可視化模型、碰撞檢測模型等。在ROS下創(chuàng)建URDF文件需要通過編輯器建立URDF的XML格式文件,建立機器人各個關節(jié)的三維幾何模型文件,創(chuàng)立文件夾存儲所建立的文件。ROS的URDF目前只支持兩種格式的模型文件,STL(Stereo Lithography)與DAE(Digital Asset Exchange)。STL文件只記錄了文件的三維坐標信息,沒有紋理信息,DAE可以包含文件的紋理等信息[8]。URDF可單獨指定可視化模型與碰撞模型。可視化模型要求盡量精細、漂亮,最好與實際機器人尺寸相同,可采用DAE文件的模型,而碰撞模型要求盡量精簡,可以適當大于機器人尺寸,可采用STL文件模型。
ROS環(huán)境下建立模型有一定局限性:繁瑣的程序式建模及模型的結構分析。本文在編程創(chuàng)立URDF文件時采用將外部機器人模型導入到ROS中的方法,利用三維軟件建模的優(yōu)勢來避免這個問題。通過導入其他軟件建立的模型,可極大地縮短建模時間,提高工作效率。專業(yè)的三維設計軟件能夠為機器人運動規(guī)劃及復雜的結構仿真提供高質量的三維模型。
1.3 外部模型的建立與導入
本文選擇具有IGES輸出接口的三維造型軟件SolidWorks進行機器人各關節(jié)三維幾何模型的建立。
ROS中的可視化模擬環(huán)境RViz和三維多機器人動力學仿真環(huán)境Gazebo都支持URDF文件。本文采用由Stephen Brawner開發(fā)的SolidWorks轉URDF的插件——sw_URDF_exporter,此導出器能完成由三維軟件SolidWorks所建立的模型文件到URDF文件的解析,創(chuàng)建一個類似ROS的包,其中包含機器人模型的網格、紋理和URDF的XML文件等目錄。
ROS中建立機器人仿真模型的實施步驟如下:
1) 在SolidWorks中建立機器人各個關節(jié)的三維幾何模型;
2) 利用SolidWorks轉URDF的插件sw2URDF將SolidWorks零件和裝配體導出到URDF文件;
3) 在SolidWorks中將機器人各關節(jié)零件模型文件另存為剪裁曲面類型的IGES格式文件;
4) 將步驟3)中的IGES格式文件導入到3ds Max 2015中,然后導出為OpenCollada標準的DAE格式文件;
5) 將生成的URDF文件分別加載到RViz,Gazebo環(huán)境。
2 應用案例
本文以實驗室進行熔覆實驗所用的KUKA KR60型工業(yè)機器人為對象,建立適用于ROS的機器人仿真模型和URDF文件,并對生成的URDF文件和模型文件分別在RViz和Gazebo中加載顯示。
2.1 機器人模型文件的建立
虛擬平臺中機器人的零部件建模,根據(jù)相對運動的組合,大致分為七個部件,包括:底座、腰、大臂、肘、小臂、手腕、帶有激光噴頭的末端執(zhí)行器,在SolidWorks 2014中建立各部件的三維模型并組裝成機器人,如圖1所示。
2.2 輸出生成URDF文件
利用SolidWorks加載項sw2URDF,將1.3節(jié)中步驟1)創(chuàng)建的機器人導出成URDF文件,參數(shù)見圖2。首先,打開插件URDF Exporter,在圖2a)窗口中設置每個連桿、關節(jié)的名字、對應的模型文件以及相應的參考坐標系、參考軸、關節(jié)類型等。設置好所有連桿后,點擊Preview and Export,便會自動生成各坐標系和旋轉軸,之后會彈出圖2b)所示的界面,在此界面中具體設置各關節(jié)運動學和動力學參數(shù),在此界面中設置結束之后,點擊Next,出現(xiàn)圖2c)所示界面,在此界面中設置每個連桿的慣性、顯示和碰撞屬性的參數(shù)。最后點擊Finish在此便會生成一個package,此目錄下包含存放launch文件的launch目錄、每個連桿STL文件的meshes目錄、各連桿紋理的textures目錄以及URDF文件URDF目錄。
2.3 輸出IGES文件
分別將每個機器人另存為IGES格式,按照圖3設置輸出選項,輸出坐標系選擇定義于零件上的參考系。
2.4 生成DAE格式模型文件
打開3ds Max 2015,分別導入1.3節(jié)中步驟3)生成的IGES文件,并按圖4的設置導出成OpenCollada標準的DAE格式文件。
2.5 建立機器人模型仿真環(huán)境
在安裝有Indigo版本ROS的Ubuntu系統(tǒng)中的home目錄下建立一個名字為kr60的catkin工作空間,并創(chuàng)建一個名字為kr60的功能包,具體使用的bash終端中的命令如下:
其中KR60?3.URDF是生成的URDF文件的名字,上述命令運行后會出現(xiàn)如圖5a)所示的RViz仿真窗口。此時,meshes文件中的機器人各連桿模型文件是STL格式。將
在終端中輸入下面的命令:
$ roslaunch URDF_tutorial gazebo.launch model:=KR60?3.URDF
出現(xiàn)Gazebo仿真環(huán)境下的顯示情況,如圖6所示。
2.6 URDF文件有效性的仿真驗證
ROS 為機械臂控制提供了集成功能包MoveIt!,涉及運動規(guī)劃、機器人正逆運動學、碰撞檢測、機械手抓取等領域。MoveIt!默認使用KDL庫通過數(shù)值迭代算法求解逆運動學問題,對不同機器人模型的通用性和適應性較強。
使用MoveIt!的moveit_setup_assistant命令配置了KR60的運動學配置功能包,然后使用MoveIt!完成機械臂運動規(guī)劃。MoveIt!提供了方便的交互界面,給定機器人模型的起始位姿和目標位姿,如圖7a) 所示,MoveIt!采用基于隨機采樣的運動規(guī)劃算法庫OMPL完成軌跡規(guī)劃,規(guī)劃的軌跡會避開障礙物和自身干涉等碰撞狀態(tài),運動軌跡如圖7b)所示。圖7中,綠色為初始位姿,橙色為目標位姿。
測試結果表明,對于合理任務要求,本文方法所建立的URDF機器人仿真模型,能夠在MoveIt!快速規(guī)劃出合適的軌跡,并控制機械臂實現(xiàn)動作,證明了該模型是有效的。
3 結 論
本文對開源機器人操作系統(tǒng)和ROS中機器人模型描述文件URDF進行介紹,研究了ROS 環(huán)境下機器人模型的構建方法,詳細介紹了模型導入方法、具體過程和技術要點,同時給出模型導入的實例。將從SolidWorks中輸出的機器人模型導入到3ds Max中,創(chuàng)建了機器人模型的URDF文件,分別加載到RViz和Gazebo仿真工具中,并在MoveIt!中進行驗證。結果表明,該仿真模型的構建方法是有效的,模型是可操作的,該仿真技術對機器人模型軌跡規(guī)劃問題具有普遍的指導意義。
參考文獻
[1] 張彥斐,宮金良,魏修亭.一種串聯(lián)機器人的實時運動仿真[J].組合機床與自動化加工技術,2013(5):42?43.
ZHANG Yanfei, GONG Jinliang, WEI Xiuting. Real time kinematic simulation of a serial robot [J]. Modular machine tool & automatic manufacturing technique, 2013(5): 42?43.
[2] 李博,羅振軍,田永利,等.基于Modelica的并聯(lián)機器人整機建模與仿真[J].機械設計與研究,2015,35(3):1?3.
LI Bo, LUO Zhenjun, TIAN Yongli, et al. Modeling and simulation of a parallel robot based on Modelica [J]. Machine design & research, 2015, 35(3): 1?3.
[3] 陳盛龍,平雪良,曹正萬,等.基于ROS串聯(lián)機器人虛擬運動控制及仿真研究[J].組合機床與自動化加工技術,2015(10):108?111.
CHEN Shenglong, PING Xueliang, CAO Zhengwan, et al. Virtual motion control and simulation of serial robot based on ROS [J]. Modular machine tool & automatic manufacturing technique, 2015(10): 108?111.
[4] 曹正萬,平雪良,陳盛龍,等.基于ROS的機器人模型構建方法研究[J].組合機床與自動化加工技術,2015(8):51?54.
CAO Zhengwan, PING Xueliang, CHEN Shenglong, et al. Research of robot model construction method based on robot opera?ting system [J]. Modular machine tool & automatic manufactu?ring technique, 2015(8): 51?54.
[5] 劉汝佳,王芳,張強,等.基于ROS的機械臂軌跡規(guī)劃研究[J].導航定位與授時,2016,16(3):82?88.
LIU Rujia, WANG Fang, ZHANG Qiang, et al. Research on trajectory planning of ROS?based robot arm [J]. Navigation positioning and timing, 2016, 16(3): 82?88.
[6] 陳前里,劉成良,貢亮,等.基于ROS的機械臂控制系統(tǒng)設計[J].機電一體化,2016,24(2):38?40.
CHEN Qianli, LIU Chengliang, GONG Liang, et al. The design of control system for robot arm based on ROS [J]. Mechatronics, 2016, 24(2): 38?40.
[7] 楊呂劍,沈林勇,丁航.四自由度上肢康復機器人運動軌跡規(guī)劃與仿真[J].計算機仿真,2016,33(8):332?337.
YANG Lüjian, SHEN Linyong, DING Hang. The trajectory planning simulation of 4?DOF upper limb rehabilitation robot [J]. Computer simulation, 2016, 33(8): 332?337.
[8] 劉坤明,徐國艷,余貴珍.駕駛機器人機械腿動力學建模與仿真分析[J].北京航空航天大學學報,2016,42(8):1709?1714.
LIU Kunming, XU Guoyan, YU Guizhen. Dynamic modeling and simulation analysis of robot driver′s mechanical legs [J]. Journal of Beijing University of Aeronautics and Astronautics, 2016, 42(8): 1709?1714.
[9] 梁春艷,李志雄,蘇清茂.六自由度機器人3D建模仿真研究[J].西南科技大學學報,2016,31(2):81?86.
LIANG Chunyan, LI Zhixiong, SU Qingmao. Research on six degrees of freedom robot 3D modeling and simulation [J]. Journal of Southwest China Institute of Technology, 2016, 31(2): 81?86.