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

news/2024/4/20 6:49:55/文章来源:https://blog.csdn.net/weixin_48319333/article/details/129200789

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后,打开发布的话题发现并没有夹爪的话题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mgVkbKQR-1677221406695)(null)]

经过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如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7QfPAujc-1677221386428)(null)]

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_73907.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

18523-47-2,3-Azidopropionic Acid,叠氮基丙酸,可以与炔烃发生点击化学反应

【中文名称】3-叠氮基丙酸【英文名称】 3-Azidopropionic Acid&#xff0c;3-Azidopropionic COOH【结 构 式】【CAS】18523-47-2【分子式】C3H5N3O2【分子量】115.09【纯度标准】95%【包装规格】1g&#xff0c;5g&#xff0c;10g【是否接受定制】可进行定制&#xff0c;定制时…

java原理4:java的io网络模型

文章目录1&#xff1a;基础概念1&#xff1a;同步和异步2&#xff1a;阻塞和非阻塞2.1&#xff1a;阻塞IO2.2&#xff1a;非阻塞io2.3&#xff1a;io复用3&#xff1a;同步/异步和阻塞/非阻塞3.1&#xff1a;同步非阻塞NIO4: redis为什么速度快Java 网络IO模型简介1&#xff1a…

Tapdata 和 Databend 数仓数据同步实战

作者&#xff1a;韩山杰https://github.com/hantmacDatabend Cloud 研发工程师基础架构在云计算时代也发生着翻天地覆的变化&#xff0c;对于业务的支持变成了如何能利用好云资源实现降本增效&#xff0c;同时更好的支撑业务也成为新时代技术人员的挑战。 本篇文章通过&#xf…

删除MySQL表中的重复数据?

前言 一般我们将数据存储在MySQL数据库中&#xff0c;它允许我们存储重复的数据。但是往往重复的数据是作废的、没有用的数据&#xff0c;那么通常我们会使用数据库的唯一索引 unique 键作为限制。问题来了啊&#xff0c;我还没有创建唯一索引捏&#xff0c;数据就重复了&…

jianzhiOffer第二版难重点记录

04. 二维数组中的查找https://leetcode.cn/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/ 思路&#xff1a;可以每层用以恶搞二分查找&#xff0c;优化思路&#xff1a;从左下角出发直接用二分。 ​​​​​​07. 重建二叉树https://leetcode.cn/problems/zhong-jian-er-cha…

springboot+vue.js高校大学生选课成绩管理系统javaweb

本课题要求实现一套学生成绩管理系统&#xff0c;系统主要包括管理员&#xff0c;学生和教师三大模块 (a) 管理员&#xff1b;管理员进入系统主要功能包括首页&#xff0c;个人中心&#xff0c;教师管理&#xff0c;学生管理&#xff0c;公告信息管理&#xff0c;课程类型管理&…

Android自定义View实现横向的双水波纹进度条

效果图&#xff1a;网上垂直的水波纹进度条很多&#xff0c;但横向的很少&#xff0c;将垂直的水波纹改为水平的还遇到了些麻烦&#xff0c;现在完善后发布出来&#xff0c;希望遇到的人少躺点坑。思路分析整体效果可分为三个&#xff0c;绘制圆角背景和圆角矩形&#xff0c;绘…

Linux学习(7.5)linux目录配置与重点回顾

鸟哥的 Linux 私房菜 -- Linux 的文件权限与目录配置 (vbird.org) 怎么记啊&#xff0c;直接点进去看吧 目录 Linux目录配置的依据--FHS 绝对路径与相对路径 重点回顾 以下内容转载自鸟哥的Linux私房菜 Linux目录配置的依据--FHS 是希望让使用者可以了解到已安装软件通常…

16、变量、流程控制与游标

文章目录1 变量1.1 系统变量1.1.1 系统变量分类1.1.2 查看系统变量1.2 用户变量1.2.1 用户变量分类1.2.2 会话用户变量1.2.3 局部变量1.2.4 对比会话用户变量与局部变量2 定义条件与处理程序2.1 案例分析2.2 定义条件2.3 定义处理程序2.4 案例解决3 流程控制3.1 分支结构之 IF3…

嵌入式系统硬件设计与实践(学习方法)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 刚读书的时候&#xff0c;对什么是嵌入式&#xff0c;其实并不太清楚。等到自己知道的时候&#xff0c;已经毕业很多年了。另外对于计算机毕业的学…

Python近红外光谱分析与机器学习、深度学习方法融合实践技术

、 第一n入门基础【理论讲解与案 1、Python环境搭建&#xff08; 下载、安装与版本选择&#xff09;。 2、如何选择Python编辑器&#xff1f;&#xff08;IDLE、Notepad、PyCharm、Jupyter…&#xff09; 3、Python基础&#xff08;数据类型和变量、字符串和编码、list和tu…

每日学术速递2.24

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.LG 1.BUAA_BIGSCity: Spatial-Temporal Graph Neural Network for Wind Power Forecasting in Baidu KDD CUP 2022 标题&#xff1a;BUAA_BIGSCity&#xff1a;百度KDD CUP 2022风电预测…

新C++(10):Map\Set的封装

"湖人总冠军"一、Map\Set的介绍Set是C标准库中的一种关联容器。所谓关联容器就是通过键&#xff08;key&#xff09;来读取和修改元素。与map关联容器不同&#xff0c;它只是单纯键的集合。取自这里Map是STL 的一个关联容器&#xff0c;它提供一对一&#xff08;其中…

《分布式技术原理与算法解析》学习笔记Day21

分布式数据存储三要素 什么是分布式数据存储系统&#xff1f; 分布式存储系统的核心逻辑&#xff0c;就是将用户需要存储的数据根据某种规则存储到不同的机器上&#xff0c;当用户想要获取指定数据时&#xff0c;再按照规则到存储数据的机器中获取。 分布式存储系统的三要素…

【多线程与高并发】- 浅谈volatile

浅谈volatile简介JMM概述volatile的特性1、可见性举个例子总结2、无法保证原子性举个例子分析使用volatile对原子性测试使用锁的机制总结3、禁止指令重排什么是指令重排序重排序怎么提高执行速度重排序的问题所在volatile禁止指令重排序内存屏障(Memory Barrier)作用volatile内…

PHY设备驱动

1. 概述 MAC控制器的驱动使用的是platform总线的连接方式&#xff0c;PHY设备驱动是基于device、driver、bus的连接方式。 其驱动涉及如下几个重要部分&#xff1a; 总线 - sturct mii_bus (mii stand for media independent interface) 设备 - struct phy_device 驱动 - struc…

Java学习笔记——时间日期类

目录概述时间日期类——Date构造方法Date类的常用方法simpledateformate类练习&#xff1a;秒杀活动概述 时间日期类——Date构造方法 Date类的常用方法 package top.xxx.www.date;import java.util.Date;public class DateDemo {public static void main(String[] args) {Date…

LabVIEW如何调用.m脚本LabVIEW调用MATLAB

LabVIEW如何调用.m脚本LabVIEW调用MATLAB有一个用MATLAB编写的脚本&#xff0c;想知道从LabVIEW调用它的方法&#xff0c;以及哪一个是最快的。解决方法有几种方法可以在LabVIEW中调用.m脚本。LabVIEW中的MATLABScript Node使用ActiveX调用MATLAB运行时系统。注意&#xff1a;不…

Linux内核网络协议栈套接字缓冲区原理

概念 Linux网络协议栈是内核中最大的组件之一&#xff0c;由于网络部分应用的范围很广&#xff0c;也相对较热&#xff0c;该部分现有的资料很多&#xff0c;学起来也比较容易。首先&#xff0c;我们看看贯穿网络协议栈各层的一个最关键数据结构——套接字缓冲区&#xff08;s…

python-pycharm爬虫工程(一)-依赖包下载部分

1,创建一个工程所需的python依赖包 2,依赖包下载慢或者无法下载解决 3,国内对应的镜像有哪些 1,创建一个工程所需的python依赖包 python新工程创建新的python依赖虚拟环境 File-->Settings-->Project:pc 其中pc是我的工程名 点击ok之后得到新的虚拟python依赖包…