gazebo+rviz配置UR5+dh_gripper(大寰)夹爪最详细教程

UR5+dh_gripper在gazebo中配置

  • 1.urdf文件修改
  • 2.launch文件修改
  • 3.可能出现的问题

之前配置过ur5+robotiq_gripper,但是在我的仿真中机械夹爪会散架,所以我把机械夹爪换成了这个。

参考另一篇文章,说的比较详细:https://blog.csdn.net/qq_44642372/article/details/123995916#t12

dh_gripper功能包下载:https://github.com/DH-Robotics/dh_gripper_ros

1.urdf文件修改

dh_gripper的功能包直接可以支持在gazebo中仿真,所以不怎么需要修改夹爪的描述文件,更多是修改ur5的描述文件来完成整合。
dh_gripper功能包下载下来之后,打开dh_robotics_ag95_gripper/dh_robotics_ag95_description/urdf/dh_robotics_ag95_gripper.xacro,这个文件中使用了ros-control的插件,由于我们和ur机器人一块使用,在ur中已经调用了这个插件,所以这里要删掉,不然运行时会报错。删除或注释如下几行:

<gazebo>
        <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so"> 
            <robotNamespace>/robotNamespace>
            <legacyModeNS>truelegacyModeNS>
        plugin> 
    gazebo>

还是这个文件中,下面几行都是设定坐标系变换的,本来是定义了一个长方体基座,让夹爪固定在基座上,这里我们直接把夹爪的基坐标系定在机械臂上,所以这里要把这些代码删除。删除或注释以下几行:

 <link name="world"/>
    <joint name="world_fixed" type="fixed">
        <origin xyz="0 0 0" rpy="0 0 0"/>
        <parent link="world"/>
        <child link="gripper_root_link"/>
    joint>

    <link name="gripper_root_link">
        <visual>
            <origin xyz="0 0 0.5" rpy="0 0 0"/>
            <geometry>
                <box size="0.1 0.1 1.0"/>
            geometry>
        visual>
        <collision>
            <origin xyz="0 0 0.5" rpy="0 0 0"/>
            <geometry>
                <box size="0.1 0.1 1.0"/>
            geometry>
        collision>
        <inertial>
            <mass value="1e2" />
            <origin xyz="0.0 0.0 0.0" />
            <inertia ixx = "0.000001" ixy = "0.000000" ixz = "0.000000"
                     iyx = "0.000000" iyy = "0.000001" iyz = "0.000000"
                     izx = "0.000000" izy = "0.000000" izz = "0.000001" />
        inertial>
    link>
    
    <xacro:dh_robotics_ag95_gripper prefix="" parent="gripper_root_link" >
        <origin xyz="0.05 0 0.85" rpy="${pi/2}  0 ${pi/2}"/>
    xacro:dh_robotics_ag95_gripper>

接下来就是修改ur机器人的描述文件:
找到universial_robot/ur_description/urdf/文件夹,复制ur5_robot.urdf.xacro,重命名为ur5_dh.urdf.xacro,并在其中添加以下几行:

<xacro:include filename="$(find dh_robotics_ag95_description)/urdf/dh_robotics_ag95_gripper.xacro" />

  
  <xacro:dh_robotics_ag95_gripper prefix="" parent="tool0" >
        <origin xyz="0 0 0" rpy="0 0 0"/>
    xacro:dh_robotics_ag95_gripper>

第一行的代码作用就是把dh_gripper的描述文件包含进来
下面代码的作用是实例化dh_gripper,并定义其parent坐标系为ur5的tool0关节。

2.launch文件修改

首先在ur_description/launch下复制ur5_upload.launch,重命名为ur5_upload_dh_gripper,将其中的加载的文件改成dh的:

<param unless="$(arg limited)" name="robot_description" command="$(find xacro)/xacro --inorder $(find ur_description)/urdf/ur5_dh.urdf.xacro transmission_hw_interface:=$(arg transmission_hw_interface)" />

还是这个文件夹下,继续复制view_ur5.launch,重命名为view_ur5_dh_gripper.launch,把这一行修改一下,使其指向修改后的upload文件:

<include file="$(find ur_description)/launch/ur5_upload_dh_gripper.launch"/>

找到ur_gazebo/launch中的ur5.launch,同上,修改include标签内容,改为:

<include file="$(find ur_description)/launch/ur5_upload_dh_gripper.launch"/>

添加这一行来加载控制参数:

<rosparam file="$(find dh_robotics_ag95_gazebo)/controller/gripper_controller_dh_robotics.yaml" command="load"/>

修改下面这一行:(其实相比原来就多了个gripper)

<node name="arm_controller_spawner" pkg="controller_manager" type="controller_manager" args="spawn arm_controller gripper" respawn="false" output="screen"/>

添加下面这一行来启动gui关节控制:

<node name="gui_controller" pkg="rqt_joint_trajectory_controller" type="rqt_joint_trajectory_controller" />

这样文件修改就基本完成了。
运行roslaunch ur5_description view_ur5_dh_gripper.launch,应该有如下效果:
gazebo+rviz配置UR5+dh_gripper(大寰)夹爪最详细教程_第1张图片
运行roslaunch ur_gazebo ur5.launch,会打开gazebo,效果如下:
gazebo+rviz配置UR5+dh_gripper(大寰)夹爪最详细教程_第2张图片

3.可能出现的问题

1.如果运行时有报错Deprecated syntax, please prepend ‘hardware_interface/’ to ‘PositionJointInterface’ within the tag in joint ‘finger_joint’
就把dh_robotics_ag95_gripper/dh_robotics_ag95_description/urdf/dh_robotics_ag95_gripper.transmission.xacro中的

<hardwareInterface>hardware_interface/PositionJointInterfacehardwareInterface>

改为

<hardwareInterface>hardware_interface/PositionJointInterfacehardwareInterface>

2.可以先安装gazebo的一些插件,有的地方会用到
下载地址:https://github.com/JenniferBuehler/gazebo-pkgs

你可能感兴趣的:(机器人,ubuntu,ubuntu,c++,人工智能,计算机视觉)