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

7 篇文章 5 订阅

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

1.1 将3D模型转为URDF

安装sw_urdf_exporter

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

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

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

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

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

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

 

1.2 修改package文件内容

(1) 修改package.xml文件

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

  <maintainer email="me@email.com" />

(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.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,有两个选项,的一个为新建,第二个为修改

../../_images/setup_assistant_start.png

(2)生成碰撞检测矩阵,点击生成即可,参数采用默认after

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

../../_images/setup_assistant_panda_virtual_joints.png

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

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

../../_images/setup_assistant_panda_planning_groups_gripper.png

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

../../_images/setup_assistant_panda_saved_poses.png

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

../../_images/setup_assistant_panda_end_effector_add.png

(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

../../_images/setup_assistant_panda_3d_perception_point_cloud.png

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

../../_images/setup_assistant_panda_simulation_screen.png

手动生成流程

启动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 </path_to_new_urdf/file_name.urdf> -urdf -x 0 -y 0 -z 1 -model panda

(10)ROS_Control配置,设置机器人控制相关接口并自动生成相关文件,也可手动添加,此为新更新后添加选项。

ROS_Control:http://wiki.ros.org/ros_control

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

../../_images/setup_assistant_panda_ros_control_create.png

../../_images/setup_assistant_panda_ros_control_add_joints.png

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

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

../../_images/setup_assistant_panda_done.png

2.3 测试

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

 

参考

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

MoveIt! Setup Assistant

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值