在ROS中配置使用Robotiq二指抓手(三)

本文详细介绍了如何在ROS中为Robotiq二指抓手配置Gazebo仿真,包括安装插件、修改URDF文件、配置控制器文件、创建launch文件等步骤,以解决Gazebo中因mimic标签导致的问题。
摘要由CSDN通过智能技术生成

前言

这部分内容主要讲如何实现Robotiq二指抓手在Gazebo中的仿真。
由于在二指抓手中使用了mimic标签,而Gazebo无法识别,导致直接读取二指手抓模型会在Gazebo中离散。
在这里插入图片描述之前已经介绍过,可以使用mimic的插件实现(https://blog.csdn.net/weixin_42268975/article/details/106255685)。本文主要讲,如何在gazebo中为robotiq二指手抓配置该插件。

安装插件

https://github.com/roboticsgroup/roboticsgroup_gazebo_plugins
下载该插件功能包并编译安装。然后,将该插件功能包添加到工作空间。
可以用echo $ROS_PACKAGE_PATH查看是否添加到工作空间。

需要注意:由于这是外部添加的插件,需要在使用时确认该插件功能包已经添加到工作空间,插件功能才会生效。

配置Robotiq二指手抓相关文件

这里使用robotiq的纯原生功能包https://github.com/ros-industrial/robotiq.git

1. 修改URDF

主要修改robotiq_2f_140_gripper_visualization/urdf/robotiq_arg2f_transmission.xacro,添加三块内容。需要注意,对于transmission标签只需要给主动关节配置即可,不需要给被动关节(mimic)配置,不然可能会用ros_control来驱动。

另外,如果报错:

Deprecated syntax, please prepend ‘hardware_interface/’ to ‘PositionJointInterface’ within the tag in joint ‘finger_joint’.

在robotiq_arg2f_transmission.xacro中更新标签如下:

<hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>

1.1 添加mimic插件宏

  <xacro:macro name="mimic_joint_plugin_gazebo" params="name_prefix parent_joint mimic_joint has_pid:=false multiplier:=1.0 offset:=0 sensitiveness:=0.0 max_effort:=1.0 robot_namespace:=''">
    <gazebo>
      <plugin name="${name_prefix}mimic_joint_plugin" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
        <joint>${parent_joint}</joint>
        <mimicJoint>${mimic_joint}</mimicJoint>
        <xacro:if value="${has_pid}">                     <!-- if set to true, PID parameters from "/gazebo_ros_control/pid_gains/${mimic_joint}" are loaded -->
          <hasPID />
        </xacro:if>
        <multiplier>${multiplier}</multiplier>
        <offset>${offset}</offset>
        <sensitiveness>${sensitiveness}</sensitiveness>   <!-- if absolute difference between setpoint and process value is below this threshold, do nothing; 0.0 = disable [rad] -->
        <maxEffort>${max_effort}</maxEffort>              <!-- only taken into account if has_pid:=true [Nm] -->
        <xacro:unless value="${robot_namespace == ''}">
          <robotNamespace>($robot_namespace)</robotNamespace>
        
  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值