使用Moveit配置助手实现rivz与Gazebo的联合控制

需求

使用Moveit配置助手实现rivz与Gazebo的联合控制

环境

ubuntu20.04 + ROS1 noetice

准备工作

修改相关文件

  1. 需要实现在UR5机械臂末端添加robotiq 2f 85夹爪并在Gazebo中仿真。完成该步骤后,才能继续进行下面的步骤。
  2. 打开ur.xacro,其路径如下
    catkin_UR5/src/universal_robot/ur_gazebo/urdf/ur.xacro
    
  3. 设置默认参数,便于Moveit导入文件时直接加载。将上述ur.xacro文件中35-38行左右位置的内容
    <xacro:arg name="joint_limit_params" default=""/>
    <xacro:arg name="physical_params" default=""/>
    <xacro:arg name="kinematics_params" default=""/>
    <xacro:arg name="visual_params" default=""/>
    
    替换为
    <xacro:arg name="joint_limit_params" default="$(find ur_description)/config/ur5/joint_limits.yaml"/>
    <xacro:arg name="physical_params" default="$(find ur_description)/config/ur5/physical_parameters.yaml"/>
    <xacro:arg name="kinematics_params" default="$(find ur_description)/config/ur5/default_kinematics.yaml"/>
    <xacro:arg name="visual_params" default="$(find ur_description)/config/ur5/visual_parameters.yaml"/>
    

安装并启动Moveit

  1. 安装Moveit
    sudo apt-get install ros-noetic-moveit 
    
  2. 启动Moveit
    首先启动roscore
    roscore
    
    打开新终端,启动moveit配置助手
    cd ~/catkin_UR5
    catkin_make
    source ./devel/setup.bash
    rosrun moveit_setup_assistant moveit_setup_assistant
    
    在这里插入图片描述

Moveit可视化配置

  1. Start加载模型
    依次点击

    Create New Moveit Configuration Package -> Browse
    

    选择文件

    catkin_UR5/src/universal_robot/ur_gazebo/urdf/ur.xacro
    

    在optional xacro arguments:下方中输入

    ur.xacro文件本身存在输入参数robot_model,在文件catkin_UR5/src/universal_robot/ur_gazebo/launch/inc/load_ur5.launch.xml中可以看到其值为ur5

    robot_model:=ur5
    

    最后点击Load Files。
    在这里插入图片描述

  2. Self-Collisions碰撞检测矩阵
    直接点击Generate Collision Matrix生成即可。
    在这里插入图片描述

  3. Virtual Joints定义虚拟关节
    点击Add Virtual Joint,设置Child Link为base_link,Parent Frame为world,Type为fixed,Virtual Joint Name为fixed_base。
    在这里插入图片描述

  4. Planning Groups设置规划组
    添加一个 Planning Group,名称为 manipulator,运动学求解器使用 ur5 机械臂的专用求解器 ur_kinematics/UR5KinematicsPlugin,运动规划库选择 RRTConnect。
    在这里插入图片描述

    分别点击Add Kin.Chain 和 Add Joints进行设置。
    添加新的Group,名称为gripper,使用默认配置,仅需要点击 Add Joints 添加关节。最终配置如下

    下图所示界面中的Joints和Chain也可以直接点击进行相关配置,完成后可以在此界面中点击右下角的Add Group添加新的组。
    在这里插入图片描述

  5. Robot Poses定义机械臂和夹爪的常用姿势
    在这里插入图片描述

    在这里插入图片描述

  6. End Effectors设置末端执行器
    在这里插入图片描述

  7. Passive Joints设置被动关节
    在这里插入图片描述

  8. Controllers控制器
    点击Auto Add FollowJointsTrajectoryControllers For Each Planning Group自动生成controllers。

    为实现Moveit对Gazebo中机械臂的控制,需要确保命名空间一致,即控制器名称要统一。参考如下ur5_controllers.yaml文件的控制器名称

    catkin_UR5/src/universal_robot/ur_gazebo/config/ur5_controllers.yaml
    

    设置两个controller的Name和Type,如下
    在这里插入图片描述

  9. Simulation 和 3D Perception
    跳过不配置。

  10. Author Information 作者信息
    填写自己的姓名和邮箱。

  11. Configuration Files 生成配置文件
    先新建文件夹

    catkin_UR5/src/universal_robot/ur5_gripper_moveit_config
    

    选择上述文件夹路径,生成ur5_gripper_moveit_config包。
    在这里插入图片描述

启动rviz、gazebo仿真和moveit运动规划

  1. 打开如下文件

    catkin_UR5/src/universal_robot/ur_gazebo/launch/ur5_bringup.launch
    

    将gui_controller注释掉

    <!-- 添加控制节点 -->
    <!-- <node name="gui_controller" pkg="rqt_joint_trajectory_controller" type="rqt_joint_trajectory_controller" /> --> 
    
  2. 启动相应launch

    cd ~/catkin_UR5
    catkin_make
    source ./devel/setup.bash
    roslaunch ur_gazebo ur5_bringup.launch
    roslaunch ur5_gripper_moveit_config move_group.launch
    roslaunch ur5_gripper_moveit_config moveit_rviz.launch config:=true 
    

    rviz启动后,将Fixed Frame设置为base_link,手动添加RobotModel和MotionPlanning。

    MotionPlanning选择PlanningGroup为gripper,在Joints中调整关节角度至目标位置,点击Plan&Execute,即可完成运动规划及gazebo中夹爪的运动控制。

    MotionPlanning选择PlanningGroup为manipulator,拖动末端规划球或在Joints中调整关节角度至目标位置,点击Plan&Execute,即可完成运动规划及gazebo中机械臂的运动控制。

    在这里插入图片描述

参考

  1. 在UR5机械臂末端添加robotiq 2f 85夹爪并在Gazebo中仿真
  2. UR5机械臂仿真实例(三)3 末端添加robotiq夹爪 [ubuntu20.04+ROSnoetic+gazebo11]
  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值