ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示

 

时间:2018-12

地点:杭州

作者:潜龙

邮箱:[email protected]

=====================================================================

内容概要:

1.如何将UG机器臂文件导入SolidWorks2014中;

2.利用URDF插件,生成机器臂URDF工程文件

3.URDF文件导入rviz中并显示;

4.在moveit中显示URDF文件。

******************************************************************************************************

环境及主要工具:

win10、Ubuntu14、NXUG11、SolidWorks14和SecureCRT等

假定约束:

假定您的机器Ubuntu14已经安装好ROS系统以及moveit等工具,如果没有安装,可百度

相关文章,这里推荐:https://www.ncnynl.com/archives/201801/2273.html

=====================================================================

1.背景介绍:

随着5G、机器学习和工业4.0的快速发展,预感今后机器人领域,在国内市场、特别是中低端及民用领域将存在很大的需求空间,另外本人比较喜欢机器人技术,加之这几年机器人操作系统ROS在国内市场发展很热,于是就去了解了一下该操作系统的设计目的及主要技术思路。本意是想学习一下人家的先进思想来补充自己做的6轴机器臂仿真软件。然而令自己吃惊的是,感觉自己前期做的仿真软件(如下是自己的主要技术路线),人家都做好了,更要命的是人家是通用的。搞技术的就怕闭门造车,于是决定暂时挂起自己原先的开发,转ROS的学习。为了提高学习效率同时怕自己忘记什么东西,于是就强迫自己将每个阶段的东西给记录下来,目的是让今后自己方便回忆同时希望能够给后来之秀一点实用的参考,帮助他们少走弯路,当然本文不排除有很多错误和遗漏,如果有热心的网友,请及时联系我,我将第一时间修改,降低自己的失误对大家的不利影响。

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第1张图片

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第2张图片

2. UG11机器臂模型转SolidWorks模型

由于本人使用UG大概有10年了,相对比较熟悉UG,所以习惯和本能让我不加考虑的在UG11中构建了一个简单的六轴机器臂模型,具体如下图所示:

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第3张图片

2-1 导出parasolid模型

由于UG不支持URDF文件的导出,这里需要先将UG模型导入到solidworks中,注意,为了避免在rviz和moveit中出现问题,建议将模型为独立的零件,不要是多个零件的装配,否则在后面的建立坐标系和旋转轴将变得很复杂,这点,对初学者将非常不利。这里我是六轴机器臂,因此总共有7个零件,取名为link0、link1、link2.....link6,其中link0是基座。

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第4张图片

到出为parasolid模型的方法,请参考下图:

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第5张图片

2-2 在solidworks导入parasolid模型,直接将link0.x_t拖进去

注意,此时每个link连杆是独立的零件,需要创建一个装配图,然后将每个零件装配进来并按照一定的“配合”规则进行装配,设置好之后,如下图所示:

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第6张图片

3. 安装URDF插件

下载地址:http://wiki.ros.org/sw_urdf_exporter

注意,貌似URDF好像只支持solidwork2014及以后的产品,本人验证过SolidWorks2014,其他高级的版本没有证实,使用时请注意SolidWorks版本。

安装成功之后,将在菜单栏中出现URDF菜单工具

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第7张图片

4. 导出URDF文件

4-1 设置坐标系、旋转轴和连杆原件以及连杆/旋转副名称

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第8张图片

4-2 预览和导出

1) 设置旋转副,这里以旋转副joint1为例,其他旋转副以此类推,具体如下图所示。

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第9张图片

2)设置连杆,这里选择Finish就可以了

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第10张图片

3)导出

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第11张图片

 

5. 在Ubuntu系统中准备工作区

具体创建过程请参考文献【2】https://www.jianshu.com/p/6220ffac2056 ,创建成功如下图所示,这里我将刚刚SolidWorks导出的urdf文件通过SecureCRT工具,put到src文件夹中

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第12张图片

5-1 修改文件,默认SolidWorks导出的URDF实际上不能使用,需要我们手动修改,方法如下:

1)修改配置文件package.xml,自动导出的作者和邮箱,在启动的时候有点问题,需要我们手动修改

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第13张图片

2)修改launch文件夹下的display.launch文件,修改内容如下图所示:

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第14张图片

6. 启动roscore ,如果你的操作系统已经成功安装了ROS系统,请直接打开一个终端,输入roscore,按回车,如果出现下图类似的界面,表明启动ROS内核服务成功,本质上他是一个后台服务,其他应用程序和该后台服务通过RPC方式通讯,调用其内部的对外服务的接口方法。

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第15张图片

启动rviz可视化界面,先切换到启动文件的路径下,然后直接启动,具体如下图所示:

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第16张图片

启动成功之后,如下图所示;

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第17张图片

rviz界面没有直接显示我们的机器臂模型,此时我们需要做如下设置:

首先,是设置刚体坐标系/固定坐标系,选择link0为固定坐标系

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第18张图片

接着,添加机器臂模型,添加成功之后如下图所示,此时可通过控制面板对机器臂进行操控,至此rviz上显示自定义机器臂的设置工作已经结束。

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第19张图片

7. 启动moveit并显示自定义的机器臂

rosrun moveit_setup_assistant moveit_setup_assistant

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第20张图片

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第21张图片

导入urdf文件

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第22张图片

碰撞检测

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第23张图片

虚拟结点

ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示_第24张图片

后面的就是moveit的相关设置了,这里可参考这篇文章,文献[4]:https://blog.csdn.net/qq_16397695/article/details/52873597,我就不做展开了,今天就写到这里,后面后续补充,如有不足,请多多指教。为了便于大家学习,已经将该部分内容涉及的URDF文件上传到CSDN下载资源中,可在这里下载,https://download.csdn.net/download/pathfinder1987/10870379

参考文献:

【1】https://www.ncnynl.com/archives/201801/2273.html  ROS入门教程,安装ROS系统等

【2】https://www.jianshu.com/p/6220ffac2056   创建ROS工作区

【3】https://blog.csdn.net/kalenee/article/details/80818658 moveit教程

【4】https://blog.csdn.net/qq_16397695/article/details/52873597 moveit机器臂快速设置

 

你可能感兴趣的:(QT,C++,ROS,rviz)