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

现在UR官方把机器人的仿真包更新了,和原来我用的不一样,这里还有我之前的版本,需要的可以去下载https://github.com/Luchuanzhao/UR5-robotiq85_gripper-gazebo
之前配置过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>true</legacyModeNS>
        </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" />

  <!--dh_ag95_gripper-->
  <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,把<include>这一行修改一下,使其指向修改后的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,应该有如下效果:
在这里插入图片描述
运行roslaunch ur_gazebo ur5.launch,会打开gazebo,效果如下:
在这里插入图片描述

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/PositionJointInterface</hardwareInterface>

改为

<hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>

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

  • 6
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 36
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值