安装sw_urdf_exporter。
根据需求在3D模型上添加关节,建议将末端单独分出来 ,完成关节添加后,输出配置。
注意:需设置Limit的最大和最小值,此为关节运动限制,若后期发现关节限制设置错误,可以在生成URDF文件中进一步修改。
此项可以采用默认,根据需要可以修改Color参数,使各关节显示不同颜色。
生成URDF后,需要在ROS环境下进行修改,可参考URDF文件解析
注意1:SolidWorks所有的零件都应该是浮动,并且根据机器人与地面接触及末端点实际状况进行设置,通常设置角度限制不能过大,需去掉配合,保证各关节能动,生成的坐标系与选中构件的坐标重合。
注意2:rviz内坐标系为右手系,如下图所示,若自动生成base坐标系与该坐标系不同,可进行修改,修改后需删除除base坐标系以外的坐标系然后重新生成。
(1) 修改package.xml文件
修改email部分为正确邮件格式
(2) 修改display.launch文件
将urdf文件夹的名字修改与robot_description一致
将display.launch里的gui参数改成“True”
将配置好的的URDF文件夹移动到工作空间的src目录下,打开终端,通过roslaunch 命令运行display.launch,若提示错误可通过source解决。
sudo apt-get install ros-Kinetic-moveit
source /opt/ros/Kinetic/setup.bash
注意:Kinetic需换成当前ROS版本号
注意:若更新过moveit库,需重新配置生成config文件,否则会运行报错。
具体流程可参考官方流程
将配置好的的URDF文件夹移动到工作空间的src目录下,打开终端,运行下面命令,若提示错误可通过source解决
roslaunch moveit_setup_assistant setup_assistant.launch
配置项目概述:
(1)启动,导入URDF,有两个选项,的一个为新建,第二个为修改
(3)添加虚拟关节,将机器人与世界连接,根据机器人类型(固定,移动或其他)选择连接方式,。
(4)添加运动规划组,后续编程时以组为单位进行控制
(5)添加机器人姿态,自定义的机器人基本位置,一般设置初始位置即可。
(6)标记末端执行器,选取末端执行器组,若需将末端点于末端坐标重合,Parent Link需选末端的Link。
(7)添加从动关节,不带驱动器,在主动关节带动下移动,为可选项。
(8)添加3D传感器,生成sensors_3d.yaml文件,如无需要可以选择none,后续有需要也可以手动添加。
sensors_3d.yaml文件具体说明http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/perception_pipeline/perception_pipeline_tutorial.html
(9)Gazebo仿真配置,生成兼容Gazebo的URDF文件,可选项,如需求可生成。
手动生成流程
启动gazebo
roslaunch gazebo_ros empty_world.launch paused:=true use_sim_time:=false gui:=true throttled:=false recording:=false debug:=true
生成模型
rosrun gazebo_ros spawn_model -file -urdf -x 0 -y 0 -z 1 -model panda
(10)ROS_Control配置,设置机器人控制相关接口并自动生成相关文件,也可手动添加,此为新更新后添加选项。
ROS_Control:http://wiki.ros.org/ros_control
根据提示设置控制组的名字和控制器类型,然后将上面设置的规划组添加到控制器中。
(11)添加作者信息,按照格式填写即可,不填会导致报错。
(12)生成配置文件,放置到对应工作空间内(需先新建存放用的文件夹然后选中),建议名字设置为
将配置好的的config文件夹放置到工作空间的src目录下,打开终端,通过roslaunch 命令运行demo.launch,若提示错误可通过source解决。
参考
【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学
MoveIt! Setup Assistant