陈永平 何永艳 王凯凯
摘 要: 机械臂建模是开源机器人操作系统ROS的应用基础,为提高机械臂运动规划、仿真的效率,研究了基于ROS的机械臂模型URDF文件的构建方法,并采用常量定义、宏定义、文件包含等方法对URDF文件进行了精简、优化,同时介绍了一种利用三维模型生成URDF文件的方法。结果证明,经过优化的模型可参数化地进行修改,便于二次开发,优化方法大大提高了机械臂模型构建的效率,为后续利用MoveIt、Gazebo工具对机械臂进行路径规划、仿真等操作提供了便利。
关键词: 机械臂建模; 机器人操作系统; 模型优化
中图分类号: TP391.9; TP242.2 文献标志码: A
Research on Modeling and Optimizing Method of
Robotic Manipulator Based on ROS
CHEN Yongping, HE Yongyan, WANG Kaikai
(Department of Mechanical and Energy Engineering, Shanghai Technical Institute of
Electronics & Information, Shanghai 201411)
Abstract: Manipulator modeling is the application foundation of ROS. In order to improve the efficiency of manipulator motion planning and simulation, this paper studies the construction method of URDF file of manipulator model based on ROS, and simplifies and optimizes the URDF file by constant definition, macro definition, file inclusion and so on. At the same time, a method of URDF file generation using three-dimensional model is introduced. The results show that the optimized model can be parameterized and modified to facilitate secondary development. The optimized method greatly improves the efficiency of the manipulator model construction, and provides convenience for subsequent manipulation such as path planning and simulation using MoveIt, Gazebo tools.
Key words: Manipulator modeling; Robot operating system (ROS); Model optimization
0 引言
Robot Operating System简称ROS,是一种开源机器人操作系统,2007年诞生于斯坦福。经过10多年的发展,ROS为开发者提供了一系列非常有用的工具和先进算法,例如:超强大的3D可视化工具Rviz、机械臂运动规划的模块MoveIt、最著名的运动规划开源项目OMPL、开源视觉伺服项目Visp、优秀的开源仿真平台Gazebo、开源点云处理库PCL、移动机器人路径规划模块Navagation等[1-3],使用它们可以大大提高开发效率。现在,包括四大家族在内的越来越多的机器人厂商开始尝试使用ROS,通过采用统一的URDF模型和机器人驱动的方式来封装机器人。这样可以不用关心机器人的控制方式,只要在ROS环境下,用MoveIt规划控制机械臂运动、编写应用程序,即可实现机器人的控制。
1 机械臂运动学模型及其建立
ROS中采用通用描述格式URDF( Unified Robot Description Format)来定义机械臂模型。不同于传统的CAD模型文件,URDF文件以XML文本文件的格式描述机器人模型,可存储模型的外观、运动学、动力学等信息,同时还支持模型的自碰撞检测[4]。
一个完整的机械臂模型由一系列连杆和关节组成[4-7],在URDF文件中,机械臂模型的描述方法为,如图1所示。
”>
……
……
……
连杆用于描述机器人刚体,存储其尺寸(size)、外形(shape)、颜色(color)、惯性(inertial)、碰撞(collision)等信息,其描述方法为,如图2所示。
”>
……
……
……
关节则用于表达两连杆的连接,如图3所示。
描述关节的运动学和动力学属性、關节运动的位置和速度限制等信息,描述方法为:
” type=””>
……
根据关节运动形式,可以将其分为六种类型:continuous(旋转关节,可以围绕单轴无限旋转)、tevolute(旋转关节,类似与continuous,但是有旋转的角度极限)、 prismatic(滑动关节,沿某一轴线移动的关节,带有位置极限)、 planar(平面关节,允许在平面正交方向上平移或者旋转)、 floating (浮动关节,允许进行平移、旋转运动)、fixed(固定关节、不允许运动的特殊关节)。
2 URDF文件的优化方法
URDF建模存在模型冗长,重复内容过多,参数修改麻烦,不便于二次开发,没有参数计算的功能的缺点。因此可对URDF模型进行改进,利用xacro文件通过进行宏定义、文件包含等方法进行模型代码的精简,通过常量、变量、数学计算、条件语句提供可编程的接口。
xacro文件主要优化方法如下:
1) 常量定义: ,其中name为常量名称,value为常量值。例如,定义了一个3.14159的常量M_PI。
2) 数学计算:{ },例如:。
3) 宏定义: ……
其中name为宏名称,params为宏参数。
4) 文件包含:
例如:,包含了一个mbot_base.xacro文件,且指明了路径。
一带夹爪的六轴机械臂简化模型,对于该模型link1的采用xacro优化后的代码如下,图4所示。
其属性 (Visual)、惯性(inertial)、碰撞(collision)等屬性代码中的link1_length、M_PI等常量都进行了定义、数学计算等预处理,这样精简了模型,便于修改。以圆柱体惯性矩阵为例,其宏定义如下所示。
iyy="{m*(3*r*r+h*h)/12}" iyz = "0"
izz="{m*r*r/2}" />
xcaxo文件的解析可采用2种方法:
1) 运行ros指令将xacro文件转换成URDF文件后显示。
例如将mbot.xacro文件转换为mbot.urdf文件:rosrun xacro xacro.py mbot.xacro>mbot.urdf。
2) 直接调用xacro文件解析器显示。
例如:
3 三维模型生成URDF文件方法
对于结构较简单的机械臂可以采用以上描述的方法手动编写URDF文件,但对于结构复杂的机械臂模型,大部分都是使用三维软件创建的。可在SolidWorks软件中安装sw2urdf插件,借助工具将CAD模型文件转换成URDF模型文件。模型文件指向STL外部网格数据可以精确表现机械臂的模型特征[5-6]。
SolidWorks中的UR3机器人模型,在SolidWorks中设置各个基准轴,各个基准轴即为,如图5所示。
打开sw2urdf插件,在插件中设置连杆属性,设置完成后导出URDF模型,如图6所示。
4 解析URDF文件
(1) 显示URDF关系
对构建的三维模型可使用ROS中的graphiz虚拟显示所构建的URDF结构关系[8-9]。UR3模型的结构关系图如图7所示。图中矩形代表link,椭圆代表joint。
(2) 使用Rviz显示模型
使用sw2urdf插件导出的模型文件夹命名为ur3,其中包含了URDF模型及一些辅助显示的文件,可将其拷贝至src文件夹中进行编译。然后使用roslaunch ur3 display.launch打开launch文件夹中的display.launch文件,利用rivz显示3D模型,并可使用joint_state_publisher对机器人进行关节控制,如图8所示。
但对于手动编写的URDF文件,需要自己编写显示的launch文件进行显示。
5 总结
本文研究了ROS 环境下机器人模型的编程构建方法和3D模型导出方法,并详细介绍了URDF模型的优化方法。通过graphiz虚拟显示了模型连杆、关节的结构关系,并利用Rviz中进行了URDF模型三维加载和关节控制。实践证明,该模型的构建方法是有效、可靠的。后续可在ROS中利用MoveIt!、Gazebo等工具对机械臂进行路径规划、仿真操作等操作。
参考文献
[1] 袁杰,刘祚时.基于ROS的六自由度机械臂避障研究[J].制造业自动化,2017(12):41-43.
[2] 郭建根,双丰,阚宏林.基于ROS的六关节机器人运动规划研究[J].安徽工程大学学报,2019(1):36-45.
[3] 孟韶南,梁雁冰,师恒.基于ROS平台的六自由度机械臂运动规划[J].上海交通大学学报,2016(A1):94-97.
[4] 刘启帆,谢明,姜磊.基于ROS的工业机器人运动规划[J].组合机床与自动化加工技术,2017(5):36-39.
[5] 陈前里,刘成良,贡亮,等.基于ROS的机械臂控制系统设计[J].机电一体化,2016(2):38-40.
[6] 鹿霖,谢树新.ROS环境下的机器人仿真模型构建方法研究[J].现代电子技术,2018(7):102-105.
[7] 曹正万,平雪良,陈盛龙,等.基于ROS的机器人模型构建方法研究[J].组合机床与自动化加工技术,2015(8):51-54.
[8] 陈盛龙,平雪良,曹正万,等.基于ROS串联机器人虚拟运动控制及仿真研究[J].组合机床与自动化加工技术,2015(10):108-111.
[9] 刘磊,宁祎.基于ROS的六自由度机械臂轨迹规划[J].自动化与仪表,2018(3): 22-25.
(收稿日期: 2019.08.23)
基金项目:2018年上海高校青年科研骨干培养计划(18CGB15)
作者简介:陈永平(1977-),男,硕士,讲师,研究方向:工业机器人技术应用文章编号:1007-757X(2020)02-0013-04