鹿霖 谢树新
摘 要: 在众多的机器人仿真平台中,ROS可以封装机器人硬件。提出在ROS环境下构建机器人的仿真模型方法。设计了机器人仿真模型的导入方法及过程,利用所提方法将模型导入具体的应用实例。将SolidWorks装配文件解析成机器人模型的URDF文件,并在MoveIt!中进行验证。结果表明,该仿真模型构建的方法是有效的,模型是可操作的,为后续的机器人运动规划和轨迹规划问题的研究提供了易实现和易操作的机器人模型。
关键词: 机器人仿真; 机器人建模; 开源操作系统; 仿真模型; 运动规划; 轨迹规划
中图分类号: 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 引 言
机械手臂在工业生产中应用广泛,例如使用机械手臂进行码跺、装配、焊接等工作。对机械手臂技术研究而言,最重要的环节就是如何正确精准地规划其轨迹路径,机器人仿真技术在该问题的解决过程中发挥着重要的作用。
在机器人的仿真研究中,大部分研究者以Matlab作为平台仿真机器人运动,然而,Matlab语言不方便直接构造复杂的3D机器人模型。另有很多研究者采用OpenGL结合Visual C++开发机器人仿真平台[1]。此外,也有学者将VRML(虚拟现实建模语言)引入机器人研究中,辅以3ds Max作为建模工具,建立机器人的三维模型。再有就是购买商业化的机器人仿真软件进行机器人研究。以上这些方式存在开发耗时、不易掌握、软件价格昂贵等问题,最重要的就是这些仿真平台都不开源,重复性工作太多。当前的开源软件不能满足需要,开源机器人操作系统(ROS)随之诞生并很快在机器人研究领域展开了学习和使用的热潮。本文设计了机器人仿真模型的导入方法及過程,利用所提方法将模型导入具体的应用实例。将SolidWorks装配文件解析成机器人模型的URDF文件,并在MoveIt!中进行验证。结果表明,该仿真模型构建的方法是有效的,模型是可操作的。
1 基于ROS的机器人仿真研究
1.1 开源机器人操作系统(ROS)简介
ROS(Robot Operating System)可用来封装不同结构机器人的硬件。ROS的优势在于无论机器人是何种结构或类型,均可以使用相同的形式(如topic)表示。利用节点(Node)表示应用程序,在不同节点间通过固定格式的消息、动作与服务协调实现链接[2]。
1.2 URDF 文件介绍
URDF(Unified Robot Description Format,统一机器人描述格式)[3?6]是ROS中使用的一种机器人描述文件[7],使用XML(可扩展标记语言)格式描述机器人模型。包含的内容有:连杆、关节、运动学参数、动力学参数、可视化模型、碰撞检测模型等。在ROS下创建URDF文件需要通过编辑器建立URDF的XML格式文件,建立机器人各个关节的三维几何模型文件,创立文件夹存储所建立的文件。ROS的URDF目前只支持两种格式的模型文件,STL(Stereo Lithography)与DAE(Digital Asset Exchange)。STL文件只记录了文件的三维坐标信息,没有纹理信息,DAE可以包含文件的纹理等信息[8]。URDF可单独指定可视化模型与碰撞模型。可视化模型要求尽量精细、漂亮,最好与实际机器人尺寸相同,可采用DAE文件的模型,而碰撞模型要求尽量精简,可以适当大于机器人尺寸,可采用STL文件模型。
ROS环境下建立模型有一定局限性:繁琐的程序式建模及模型的结构分析。本文在编程创立URDF文件时采用将外部机器人模型导入到ROS中的方法,利用三维软件建模的优势来避免这个问题。通过导入其他软件建立的模型,可极大地缩短建模时间,提高工作效率。专业的三维设计软件能够为机器人运动规划及复杂的结构仿真提供高质量的三维模型。
1.3 外部模型的建立与导入
本文选择具有IGES输出接口的三维造型软件SolidWorks进行机器人各关节三维几何模型的建立。
ROS中的可视化模拟环境RViz和三维多机器人动力学仿真环境Gazebo都支持URDF文件。本文采用由Stephen Brawner开发的SolidWorks转URDF的插件——sw_URDF_exporter,此导出器能完成由三维软件SolidWorks所建立的模型文件到URDF文件的解析,创建一个类似ROS的包,其中包含机器人模型的网格、纹理和URDF的XML文件等目录。
ROS中建立机器人仿真模型的实施步骤如下:
1) 在SolidWorks中建立机器人各个关节的三维几何模型;
2) 利用SolidWorks转URDF的插件sw2URDF将SolidWorks零件和装配体导出到URDF文件;
3) 在SolidWorks中将机器人各关节零件模型文件另存为剪裁曲面类型的IGES格式文件;
4) 将步骤3)中的IGES格式文件导入到3ds Max 2015中,然后导出为OpenCollada标准的DAE格式文件;
5) 将生成的URDF文件分别加载到RViz,Gazebo环境。
2 应用案例
本文以实验室进行熔覆实验所用的KUKA KR60型工业机器人为对象,建立适用于ROS的机器人仿真模型和URDF文件,并对生成的URDF文件和模型文件分别在RViz和Gazebo中加载显示。
2.1 机器人模型文件的建立
虚拟平台中机器人的零部件建模,根据相对运动的组合,大致分为七个部件,包括:底座、腰、大臂、肘、小臂、手腕、带有激光喷头的末端执行器,在SolidWorks 2014中建立各部件的三维模型并组装成机器人,如图1所示。
2.2 输出生成URDF文件
利用SolidWorks加载项sw2URDF,将1.3节中步骤1)创建的机器人导出成URDF文件,参数见图2。首先,打开插件URDF Exporter,在图2a)窗口中设置每个连杆、关节的名字、对应的模型文件以及相应的参考坐标系、参考轴、关节类型等。设置好所有连杆后,点击Preview and Export,便会自动生成各坐标系和旋转轴,之后会弹出图2b)所示的界面,在此界面中具体设置各关节运动学和动力学参数,在此界面中设置结束之后,点击Next,出现图2c)所示界面,在此界面中设置每个连杆的惯性、显示和碰撞属性的参数。最后点击Finish在此便会生成一个package,此目录下包含存放launch文件的launch目录、每个连杆STL文件的meshes目录、各连杆纹理的textures目录以及URDF文件URDF目录。
2.3 输出IGES文件
分别将每个机器人另存为IGES格式,按照图3设置输出选项,输出坐标系选择定义于零件上的参考系。
2.4 生成DAE格式模型文件
打开3ds Max 2015,分别导入1.3节中步骤3)生成的IGES文件,并按图4的设置导出成OpenCollada标准的DAE格式文件。
2.5 建立机器人模型仿真环境
在安装有Indigo版本ROS的Ubuntu系统中的home目录下建立一个名字为kr60的catkin工作空间,并创建一个名字为kr60的功能包,具体使用的bash终端中的命令如下:
其中KR60?3.URDF是生成的URDF文件的名字,上述命令运行后会出现如图5a)所示的RViz仿真窗口。此时,meshes文件中的机器人各连杆模型文件是STL格式。将
在终端中输入下面的命令:
$ roslaunch URDF_tutorial gazebo.launch model:=KR60?3.URDF
出现Gazebo仿真环境下的显示情况,如图6所示。
2.6 URDF文件有效性的仿真验证
ROS 为机械臂控制提供了集成功能包MoveIt!,涉及运动规划、机器人正逆运动学、碰撞检测、机械手抓取等领域。MoveIt!默认使用KDL库通过数值迭代算法求解逆运动学问题,对不同机器人模型的通用性和适应性较强。
使用MoveIt!的moveit_setup_assistant命令配置了KR60的运动学配置功能包,然后使用MoveIt!完成机械臂运动规划。MoveIt!提供了方便的交互界面,给定机器人模型的起始位姿和目标位姿,如图7a) 所示,MoveIt!采用基于随机采样的运动规划算法库OMPL完成轨迹规划,规划的轨迹会避开障碍物和自身干涉等碰撞状态,运动轨迹如图7b)所示。图7中,绿色为初始位姿,橙色为目标位姿。
测试结果表明,对于合理任务要求,本文方法所建立的URDF机器人仿真模型,能够在MoveIt!快速规划出合适的轨迹,并控制机械臂实现动作,证明了该模型是有效的。
3 结 论
本文对开源机器人操作系统和ROS中机器人模型描述文件URDF进行介绍,研究了ROS 环境下机器人模型的构建方法,详细介绍了模型导入方法、具体过程和技术要点,同时给出模型导入的实例。将从SolidWorks中输出的机器人模型导入到3ds Max中,创建了机器人模型的URDF文件,分别加载到RViz和Gazebo仿真工具中,并在MoveIt!中进行验证。结果表明,该仿真模型的构建方法是有效的,模型是可操作的,该仿真技术对机器人模型轨迹规划问题具有普遍的指导意义。
参考文献
[1] 张彦斐,宫金良,魏修亭.一种串联机器人的实时运动仿真[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的并联机器人整机建模与仿真[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串联机器人虚拟运动控制及仿真研究[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的机械臂轨迹规划研究[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的机械臂控制系统设计[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] 杨吕剑,沈林勇,丁航.四自由度上肢康复机器人运动轨迹规划与仿真[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.