环境
linux平台:Ubuntu16.04+ROS Kinetic(ROS版本建议采用LTS版本)
windows平台:Windows 10+Solidworks2017
一、将SOLIDWORKS中的3D模型转换为URDF导入RVIZ中
1.1、安装SolidWorks转URDF插件
插件链接:http://wiki.ros.org/sw_urdf_exporter
经测试可在Windows 10+Solidworks2017环境中使用,安装详情参考插件下载页面。
1.2、将3D模型转为URDF
根据需求在3D模型上添加关节,建议将末端单独分出来 ,完成关节添加后,输出配置。
注意:需设置Limit的最大和最小值,此为关节运动限制,若后期发现关节限制设置错误,可以在生成URDF文件中进一步修改。
此项可以采用默认,根据需要可以修改Color参数,使各关节显示不同颜色。
注意:SolidWorks所有的零件都应该是浮动,并且根据机械手与地面接触及末端点实际状况进行设置,通常设置角度限制不能过大,需去掉配合,保证各关节能动,生成的坐标系与选中构件的坐标重合。
1.3、修改package文件内容
(1) 修改package.xml文件
修改email部分为正确邮件格式
<maintainer email="[email protected]" />
(2) 修改display.launch文件
将urdf文件夹的名字修改与robot_description一致
将display.launch里的gui参数改成“True”
<launch> <arg name="model" /> <arg name="gui" default="True" /> <param name="robot_description" textfile="$(find robothand)/robots/robothand.urdf" /> <param name="use_gui" value="$(arg gui)" /> <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" /> <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" /> <node name="rviz" pkg="rviz" type="rviz" args="-d $(find robothand)/urdf.rviz" /> </launch>
1.4、测试
将配置好的的URDF文件夹移动到工作空间的src目录下,打开终端,通过roslaunch 命令运行display.launch,若提示错误可通过source解决。
二、使用Moveit提供的setup_assistant配置三轴机械臂
2.1、安装Moveit
sudo apt-get install ros-Kinetic-moveit
source /opt/ros/Kinetic/setup.bash
注意:Kinetic需换成当前ROS版本号
2.2、配置向导
具体流程可参考(官方流程):
http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/setup_assistant/setup_assistant_tutorial.html
将配置好的的URDF文件夹移动到工作空间的src目录下,打开终端,运行下面命令,若提示错误可通过source解决
roslaunch moveit_setup_assistant setup_assistant.launch
导入URDF,并按照教程设置
(1)Virtual Joints 机器人与世界接触的关节:将机器人与世界连接,根据机器人类型(固定,移动或其他)选择连接方式。
(2)Planning Group 规划组:
机械臂规划组:chain包括base到末端
末端规划组:Joint:末端;Links:末端Links;若无动作无需解算器。
(3)Robot Poses 设置位置:自定义的机器人基本位置,一般设置初始位置即可。
(4)End Effectors 末端执行器:选取末端执行器组,若需将末端点于末端坐标重合,Parent Link需选末端地Link。
(5)Passive Joint 被动关节:不带驱动器,在主动关节带动下移动,为可选项。
(6)Generate Configuration Files:生成功能包,放置到对应工作空间内。
2.3、测试
将配置好的的config文件夹放置到工作空间的src目录下,打开终端,通过roslaunch 命令运行display.launch,若提示错误可通过source解决。
参考
http://rosclub.cn/post-607.html
https://blog.csdn.net/gpeng832/article/details/73917487
http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/setup_assistant/setup_assistant_tutorial.html