原文地址: gazebo仿真环境中添加robotiq 2f 140的gripper_controller控制器

gazebo仿真环境中添加robotiq 2f 140的gripper_controller控制器
搭建环境:

ubuntu: 20.04
ros: Nonetic
sensor: robotiq_ft300
gripper: robotiq_2f_140_gripper
UR: UR3
reasense: D435i

通过下面几篇博客配置好了ur3、力传感器、robotiq夹爪、realsense的rviz和gazebo仿真环境

ubuntu20.04配置UR机械臂的仿真环境

ur3+robotiq ft sensor+robotiq 2f 140配置rviz仿真环境

ur3+robotiq ft sensor+robotiq 2f 140配置gazebo仿真环境

ur3+robotiq ft sensor+robotiq 2f 140+realsense d435i配置rviz,gazebo仿真环境

通过上一篇博客在仿真环境配置好realsense后,打开发布的话题发现并没有夹爪的话题

经过robotiq/robotiq_2f_140_gripper_gazebo/launch/robotiq_2f_140_bringup.launchuniversal_robot/ur_gazebo/launch/ur3_bringup.launch文件比对,发现ur3_bringup.launch只有机

械臂的控制器(如下图),没有加上夹爪的控制器

找到robotiq_2f_140_bringup.launch中夹爪控制器(如下图)

然后将其加入到ur3_bringup.launch文件中(注意仿照这两个文件控制器的加载方式来加入,而不是单纯复制框中的代码)

我在ur3_bringup.launch加入的代码如下

<!-- Load Gripper controller settings -->
<rosparam file="$(find robotiq_2f_140_gripper_gazebo)/config/robotiq_2f_140_gripper_controllers.yaml" command="load"/>
<!-- Load and start the gripper controllers listed in the 'controllers' arg. -->
<node name="gripper_controller_spawner" pkg="controller_manager" type="spawner"
args="gripper_controller" output="screen" respawn="false" />

ur3_bringup.launch完整代码如下

<?xml version="1.0"?>
<launch>
<!--Robot description and related parameter files -->
<arg name="robot_description_file" default="$(dirname)/inc/load_ur3.launch.xml" doc="Launch file which populates the 'robot_description' parameter."/>
<arg name="joint_limit_params" default="$(find ur_description)/config/ur3/joint_limits.yaml"/>
<arg name="kinematics_params" default="$(find ur_description)/config/ur3/default_kinematics.yaml"/>
<arg name="physical_params" default="$(find ur_description)/config/ur3/physical_parameters.yaml"/>
<arg name="visual_params" default="$(find ur_description)/config/ur3/visual_parameters.yaml"/> <!-- Controller configuration -->
<arg name="controller_config_file" default="$(find ur_gazebo)/config/ur3_controllers.yaml" doc="Config file used for defining the ROS-Control controllers."/>
<arg name="controllers" default="joint_state_controller eff_joint_traj_controller" doc="Controllers that are activated by default."/>
<arg name="stopped_controllers" default="joint_group_eff_controller" doc="Controllers that are initally loaded, but not started."/> <!-- robot_state_publisher configuration -->
<arg name="tf_prefix" default="" doc="tf_prefix used for the robot."/>
<arg name="tf_pub_rate" default="125" doc="Rate at which robot_state_publisher should publish transforms."/> <!-- Gazebo parameters -->
<arg name="paused" default="false" doc="Starts Gazebo in paused mode" />
<arg name="gui" default="true" doc="Starts Gazebo gui" /> <!-- Load urdf on the parameter server -->
<include file="$(arg robot_description_file)">
<arg name="joint_limit_params" value="$(arg joint_limit_params)"/>
<arg name="kinematics_params" value="$(arg kinematics_params)"/>
<arg name="physical_params" value="$(arg physical_params)"/>
<arg name="visual_params" value="$(arg visual_params)"/>
</include> <!-- Robot state publisher -->
<node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher">
<param name="publish_frequency" type="double" value="$(arg tf_pub_rate)" />
<param name="tf_prefix" value="$(arg tf_prefix)" />
</node> <!-- Start the 'driver' (ie: Gazebo in this case) -->
<include file="$(dirname)/inc/ur_control.launch.xml">
<arg name="controller_config_file" value="$(arg controller_config_file)"/>
<arg name="controllers" value="$(arg controllers)"/>
<arg name="gui" value="$(arg gui)"/>
<arg name="paused" value="$(arg paused)"/>
<arg name="stopped_controllers" value="$(arg stopped_controllers)"/>
</include> <!-- Load Gripper controller settings -->
<rosparam file="$(find robotiq_2f_140_gripper_gazebo)/config/robotiq_2f_140_gripper_controllers.yaml" command="load"/>
<!-- Load and start the gripper controllers listed in the 'controllers' arg. -->
<node name="gripper_controller_spawner" pkg="controller_manager" type="spawner"
args="gripper_controller" output="screen" respawn="false" />
</launch>

查看效果

运行命令

cd ~/catkin_ws
source devel/setup.bash
roslaunch ur_gazebo ur3_bringup.launch

现在多出来gripper夹爪控制器的话题

遇到的bug

在弄完上面的直接运行会发现命令行中有一个报错

主要原因是universal_robot/ur_gazebo/urdf/ur_macro.xacro文件和

robotiq/robotiq_2f_140_gripper_gazebo/urdf/robotiq_arg2f_140_macro.xacro都有声明

ros_control如下图

只要注释掉其中一个ros_control就可以了,这里我注释了robotiq_arg2f_140_macro.xacro中的,问题解决,没有再报错

4. gazebo仿真环境中添加robotiq 2f 140的gripper_controller控制器的更多相关文章

  1. 【转载】如何在FPGA设计环境中添加加时序约束

    转自:http://bbs.ednchina.com/BLOG_ARTICLE_198929.HTM 如何在FPGA设计环境中加时序约束    在给FPGA做逻辑综合和布局布线时,需要在工具中设定时序 ...

  2. 【探索之路】机器人篇(5)-Gazebo物理仿真环境搭建_让机器人运动起来

    如果完成了前两步,那么其实我们已经可以去连接我们的现实中的机器人了. 但是,做机器人所需要的材料还没有到,所以我们这里先在电脑平台上仿真一下.这里我们用到的就算gazebo物理仿真环境,他能很好的和R ...

  3. gazebo仿真踩坑--rviz中设定机器人的目标位置,move_base后台日志报错

    启动仿真环境及各种节点(amcl,move_base,map_server)后,在rviz中设定机器人的目标位置,后台日志报错 [ INFO] [1571974242.864525935, 40.51 ...

  4. ROS(indigo)机器人操作系统学习有趣丰富的Gazebo仿真示例evarobot

    一直在寻找一个示例可以将ROS学习中常用的基础内容大部分都包含进去,最好还包括Gazebo仿真, 这样即使没有硬件设备,也可以很好的学习ROS相关内容,但又必须有对应的硬件,便于后续研究. 这里,介绍 ...

  5. 【黑金原创教程】【Modelsim】【第四章】激励文本就是仿真环境

      声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/ ...

  6. 向VS中添加个PATH怎么样?

    属性中,有个调试的目录,向"环境"中添加: PATH="your path";$(PATH) 可以调试用一下.

  7. ROS学习笔记十二:使用gazebo在ROS中仿真

    想要在ROS系统中对我们的机器人进行仿真,需要使用gazebo. gazebo是一种适用于复杂室内多机器人和室外环境的仿真环境.它能够在三维环境中对多个机器人.传感器及物体进行仿真,产生实际传感器反馈 ...

  8. Bug2算法的实现(RobotBASIC环境中仿真)

    移动机器人智能的一个重要标志就是自主导航,而实现机器人自主导航有个基本要求--避障.之前简单介绍过Bug避障算法,但仅仅了解大致理论而不亲自动手实现一遍很难有深刻的印象,只能说似懂非懂.我不是天才,不 ...

  9. 在WebStorm环境中给nodejs项目中添加packages

    照前文 http://www.cnblogs.com/wtang/articles/4133820.html  给电脑设置了WebStorm的IDE的nodejs开发环境.新建了个express的网站 ...

  10. servers中添加server时,看不到运行环境的选择。

    servers中添加server时,看不到运行环境的选择. 主要原因是tomcat目录中的配置文件格式不对.

随机推荐

  1. C++ pair对组 学习总结

    ----------------------------------------------pair对组 对组(pair)将一对值组合成一个值,这一对值可以具有不同的数据类型两个值可以分别用pair的 ...

  2. Xamarin.Android 关于GridView 的正确使用方式

    https://blog.csdn.net/qq_35504350/article/details/78189004 这个是重点 JavaList<IDictionary<string, ...

  3. pdf工具类之合并pdf文件

    实现思路:根据文件集合中第一个pdf文件新建一个pdf文件对象和文件流,将此pdf文件打开,然后循环文件及和将所有的文件按章集合顺序添加到创建的这个文件中 这样生成的pdf文件的每一个部分,会和原pd ...

  4. adobe破解工具

    Adobe GenP激活器是个适用Adobe产品激活工具,激活所有Adobe软件 下载 搜素GenP 或 点击这里去官网 下载. 参考 https://blog.csdn.net/Cappuccino ...

  5. jenkins部署到另一台服务器

    安装插件 搜索安装插件:publish over ssh 配置插件 系统管>SSH Servers 前端部署到另一台服务器 其实前端就是将编译后的代码传送至目标服务器的nginx的html目录下 ...

  6. ZKW 非递归线段树详解

    在算法竞赛和高性能计算场景中,线段树(Segment Tree) 是一个必修的数据结构.它可以在 $O(\log n)$ 时间内高效地完成区间查询与修改,比如:区间求和/最大/最小值查询配合区间加法/ ...

  7. apt 相关操作

    apt-cache search XXX 寻找相关的包 apt-cache showpkg XXX 显示相关包的信息 sudo apt-get --purge remove *** 移除相关的包 dp ...

  8. ABC397

    最热泪盈眶的一次,中间被 D 卡了半小时,最后极限过 EF 翻盘. 不过 D 好像就是暴力,只是因为我没开 __int128?( rk.562. A - Thermometer 按照题意模拟即可. 点 ...

  9. 标准结构篇:10)合理收集和理解标准standards

    本章目标:合理收集.理解.使用标准. 1.前言 没有比标准更好的设计依据了. 如果说哪种设计更可靠.更能经得起验证.更能说服别人,那就是按照国家标准的设计(有明确标准编号的那种). 依据标准来设计,总 ...

  10. Win11正式版ipv6无网络访问权限的问题

    一些深度官网的用户,在最新版win11正式版使用ipv6网络的时候,出现无法正常上网,如何处理这个问题呢?本文中,深度系统小编带来详细的解决方法,有需要的用户可以看看学习一下. 当 Win11 出现 ...