ROS进阶——在ROS平台的搭建自己的机器人

一、将SOLIDWORKS中的3D模型转换为URDF导入RVIZ中

1.1 将3D模型转为URDF

安装sw_urdf_exporter。

根据需求在3D模型上添加关节,建议将末端单独分出来 ,完成关节添加后,输出配置。

注意:需设置Limit的最大和最小值,此为关节运动限制,若后期发现关节限制设置错误,可以在生成URDF文件中进一步修改。

ROS进阶——在ROS平台的搭建自己的机器人_第1张图片

此项可以采用默认,根据需要可以修改Color参数,使各关节显示不同颜色。

ROS进阶——在ROS平台的搭建自己的机器人_第2张图片

生成URDF后,需要在ROS环境下进行修改,可参考URDF文件解析

注意1SolidWorks所有的零件都应该是浮动,并且根据机器人与地面接触及末端点实际状况进行设置,通常设置角度限制不能过大,需去掉配合,保证各关节能动,生成的坐标系与选中构件的坐标重合。

注意2:rviz内坐标系为右手系,如下图所示,若自动生成base坐标系与该坐标系不同,可进行修改,修改后需删除除base坐标系以外的坐标系然后重新生成。

ROS进阶——在ROS平台的搭建自己的机器人_第3张图片

 

1.2 修改package文件内容

(1) 修改package.xml文件

修改email部分为正确邮件格式

  

(2) 修改display.launch文件

将urdf文件夹的名字修改与robot_description一致

将display.launch里的gui参数改成“True”


  
  
  
  
  
  
  

1.3 测试

    将配置好的的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 配置向导

注意:若更新过moveit库,需重新配置生成config文件,否则会运行报错。

具体流程可参考官方流程

将配置好的的URDF文件夹移动到工作空间的src目录下,打开终端,运行下面命令,若提示错误可通过source解决

roslaunch moveit_setup_assistant setup_assistant.launch

配置项目概述:

  • start:启动,导入URDF
  • Generate Self-Collision Matrix:生成碰撞检测矩阵
  • Add Virtual Joints:添加虚拟关节
  • Add Planning Groups:添加运动规划组
  •  Add Robot Poses:添加机器人姿态
  • Label End Effectors:标记末端执行器
  • Add Passive Joints:添加从动关节
  • 3D Perception:添加3D传感器
  • Gazebo Simulation:Gazebo仿真配置
  • ROS Control:ROS Control配置
  • Add Author Information:添加作者信息
  • Generate Configuration Files:生成配置文件

(1)启动,导入URDF,有两个选项,的一个为新建,第二个为修改

ROS进阶——在ROS平台的搭建自己的机器人_第4张图片

(2)生成碰撞检测矩阵,点击生成即可,参数采用默认ROS进阶——在ROS平台的搭建自己的机器人_第5张图片

(3)添加虚拟关节,将机器人与世界连接,根据机器人类型(固定,移动或其他)选择连接方式,。

ROS进阶——在ROS平台的搭建自己的机器人_第6张图片

(4)添加运动规划组,后续编程时以组为单位进行控制

  • 机械臂规划组:chain包括base到末端,必须设置默认运动规划算法和逆解算法。
  • 末端规划组:Joint:末端;Links:末端Links;若无动作无需解算器。

ROS进阶——在ROS平台的搭建自己的机器人_第7张图片

(5)添加机器人姿态,自定义的机器人基本位置,一般设置初始位置即可。

ROS进阶——在ROS平台的搭建自己的机器人_第8张图片

(6)标记末端执行器,选取末端执行器组,若需将末端点于末端坐标重合,Parent Link需选末端的Link。

ROS进阶——在ROS平台的搭建自己的机器人_第9张图片

(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

ROS进阶——在ROS平台的搭建自己的机器人_第10张图片

(9)Gazebo仿真配置,生成兼容Gazebo的URDF文件,可选项,如需求可生成。

ROS进阶——在ROS平台的搭建自己的机器人_第11张图片

手动生成流程

启动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

根据提示设置控制组的名字和控制器类型,然后将上面设置的规划组添加到控制器中。

ROS进阶——在ROS平台的搭建自己的机器人_第12张图片

ROS进阶——在ROS平台的搭建自己的机器人_第13张图片

(11)添加作者信息,按照格式填写即可,不填会导致报错。

(12)生成配置文件,放置到对应工作空间内(需先新建存放用的文件夹然后选中),建议名字设置为_moveit_config

ROS进阶——在ROS平台的搭建自己的机器人_第14张图片

2.3 测试

    将配置好的的config文件夹放置到工作空间的src目录下,打开终端,通过roslaunch 命令运行demo.launch,若提示错误可通过source解决。

 

参考

【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学

MoveIt! Setup Assistant

你可能感兴趣的:(ubuntu,ros,moveit,ROS,moveit)