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

news/2025/1/10 22:17:48/文章来源:https://www.cnblogs.com/freedom-w/p/18664803

原文地址: ur3+robotiq ft sensor+robotiq 2f 140配置gazebo仿真环境

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

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

通过上一篇博客配置好ur3、力传感器和robotiq夹爪的rviz仿真环境后,现在来配置一下对应的gazebo的仿真环境

当我们启用机械臂的gazebo仿真环境时,我们使用的是下面的命令

# 启动gazebo仿真环境
roslaunch ur_gazebo ur3_bringup.launch
# 如果gazebo报错,可能是之前的没有完全关闭,需要执行killall gzserver

那么我们就从ur_gazebo中的ur3_bringup.launch文件入手,查找在哪放力传感器和夹爪的urdf配置文件

首先,从universal_robot/ur_gazebo/launch/ur3_bringup.launch中调用ur3的描述文件(urdf)是从下图中红框中调用,所以继续进入该文件查看

同理,load_ur3.launch.xml文件指向下面红框的文件,继续趴

同理,load_ur.launch.xml文件指向下面红框的文件,继续趴

同理,ur.xacro文件指向下面第一个红框的文件,并在第二个红框中调用的它的宏函数,继续往ur_macro.xacro文件找

可以看到universal_robot/ur_gazebo/urdf/ur_macro.xacro文件调用了universal_robot/ur_description/urdf/inc/ur_macro.xacro中的宏函数来包含ur3的描述文件(urdf),ur_gazebo/urdf/ur_macro.xacro里面加上了gazebo的一些配置,我们就在加载完ur3描述文件后面加上我们的力传感器和夹爪描述文件就可以了

加入的代码和上一篇博客加入的代码一样,如下图所示

该文件完整代码如下:

<?xml version="1.0"?>
<robot xmlns:xacro="http://wiki.ros.org/xacro"><!-- Definition of the main macro --><xacro:macro name="ur_robot_gazebo" params="prefixjoint_limits_parameters_filekinematics_parameters_filephysical_parameters_filevisual_parameters_filetransmission_hw_interface:=hardware_interface/EffortJointInterfacesafety_limits:=false safety_pos_margin:=0.15 safety_k_position:=20"><xacro:include filename="$(find ur_description)/urdf/inc/ur_macro.xacro"/><!-- Instantiate model for the REAL robot. --><xacro:ur_robotprefix="${prefix}"joint_limits_parameters_file="${joint_limits_parameters_file}"kinematics_parameters_file="${kinematics_parameters_file}"physical_parameters_file="${physical_parameters_file}"visual_parameters_file="${visual_parameters_file}"transmission_hw_interface="${transmission_hw_interface}"safety_limits="${safety_limits}"safety_pos_margin="${safety_pos_margin}"safety_k_position="${safety_k_position}"/><!-- Configure self collision properties per link --><gazebo reference="${prefix}shoulder_link"><selfCollide>true</selfCollide></gazebo><gazebo reference="${prefix}upper_arm_link"><selfCollide>true</selfCollide></gazebo><gazebo reference="${prefix}forearm_link"><selfCollide>true</selfCollide></gazebo><gazebo reference="${prefix}wrist_1_link"><selfCollide>true</selfCollide></gazebo><gazebo reference="${prefix}wrist_3_link"><selfCollide>true</selfCollide></gazebo><gazebo reference="${prefix}wrist_2_link"><selfCollide>true</selfCollide></gazebo><gazebo reference="${prefix}ee_link"><selfCollide>true</selfCollide></gazebo><!--Inject Gazebo ROS Control plugin, which allows us to use ros_controlcontrollers to control the virtual robot hw.--><gazebo><plugin name="ros_control" filename="libgazebo_ros_control.so"><!--robotNamespace>/</robotNamespace--><!--robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType--></plugin></gazebo></xacro:macro><xacro:include filename="$(find robotiq_ft_sensor)/urdf/robotiq_ft300.urdf.xacro"/> <xacro:include filename="$(find robotiq_2f_140_gripper_visualization)/urdf/robotiq_arg2f_140.xacro" /><!--robotiq_ft_sensor--><xacro:robotiq_ft300 prefix="" parent="tool0"><origin xyz="0 0 0" rpy="0 0 0"/></xacro:robotiq_ft300><!--robotiq_arg2f_140.xacro已经调用了robotiq_arg2f_140宏定义,这里只需要把gripper和sensor用joint连接起来即可--><joint name="ft_gripper_joint" type="fixed"><parent link="robotiq_ft_frame_id"/><child link="robotiq_arg2f_base_link"/><origin xyz="0 0 0" rpy="0 0 0"/></joint>
</robot>

查看效果:

运行代码,打开gazebo仿真

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

注意:可以看到夹爪和力传感器是安装上去了,但是夹爪看起来要散架了,还会一直抖动,解决办法看我这篇博客

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

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

相关文章

Git学习遇到的抽风问题记录

学习git commit和git add的区别的时候,一不小心git commit 没有加“-m”,进入了一个vim配置页面:搞了半天死活出不来,而且担心修改了不该动的东西 解决办法:输入“:”然后输入qa!//放弃任何更改并退出 解决!

咸鱼学习第一天

markdown以及编辑器obsidian的学习 1 创建新笔记Ctrl+n Ctrl+o (可以快速打开需要的笔记;可以加文档名+笔记标题)2 文档属性设置 三个“---”可以添加日期、别名、标签 3 最常用语言一个’-‘加一个空格是一个小圆点 几个“#”+一空格就是几级标题 链接设置①:如我要在…

BurpSuite实操之重发器功能使用

手动操作来触发单独的HTTP请求,并进行应用程序响应的工具,此功能用于根据不同的情况修改和发送相后的请求并分析,通过调整Request的参数,不断尝试,通过Response查看状态,从而节省在浏览器中操作的时间。 在渗透测试过程中,我们经常使用Repeater进行请求与响应的消息验证…

G1原理—3.G1是如何提升垃圾回收效率

大纲 1.G1为了提升GC的效率设计了哪些核心机制 2.G1中的记忆集是什么 3.G1中的位图和卡表 4.记忆集和卡表有什么关系 5.RSet记忆集是怎么更新的 6.DCQ机制的底层原理是怎样的 7.DCQS机制及GC线程对DCQ的处理提升G1垃圾回收器GC效率的黑科技 G1设计了一套TLAB机制 + 快速分配机制…

1.10日学习笔记之C++的类

类其实就是一种数据类型,和结构相似。类的成员包括两类,属性(成员变量)和行为(成员函数)。 成员函数定义的两种方法(可能有多种,觉得这两种比较常用) 1、将类的成员函数定义在类体内,如 class CPerson {public: short age;short getage(){return age;}};2、将类的成…

着火智能监测识别摄像机

着火智能监测识别摄像机利用了先进的图像处理技术和人工智能算法,能够快速、准确地检测环境中的着火点,从而及时采取必要的安全措施。其工作原理如下:首先,摄像机配备高清摄像头,能够实时捕捉并传输环境图像。这些图像通过内置的处理单元,进行高效处理和分析。其次,利用…

BurpSuite实操之测试器功能

对web应用程序进行自动化攻击。此功能有多种用途,如漏洞利用、模糊测试、进行暴力pojie等1、目标设置代理发送过来请求的目标主机及端口信息。 输入要攻击的目标及端口2、位置设置在这个模块可以设置攻击的参数,及攻击使用的类型(1)Sniper-狙击手(2)Battering ram-破城锤…

采沙船智能监测识别摄像机

采沙船智能监测识别摄像机还支持数据记录和分析功能,可以生成详尽的非法采沙统计报告和趋势分析,为河流管理决策提供科学依据。管理部门可以通过监控系统的数据分析,制定精准的禁采政策和优化河流资源管理,有效保护水域生态环境,防止非法采砂对生态系统的破坏。在实际应用…

C api简单查询需要的几步

C api查询简单需要的几步 1.准备sql语句 2.绑定变量 通过sqlstatement类bindout方法将查询出来的值与存储他们的变量绑定。 这里绑定是为了以后从结果集中提取一行时只需要一行就可以完成将提取出 来的变量赋值。 3.执行execute 在这一步将sql语句执行。在这里有几个重点 mysql…

iterm2

外观 这个github上的项目提供了很多主题 https://iterm2colorschemes.com/ 亮色主题感觉还可以的几个: OneHalfLight、BuiltinLight、BlulocoLight、Materil、ProLight、Tango Half Adapted 下面截图是基于 Tango Half Adapted用蓝色代替青色,黄色加深之后的效果(vim括号插件…

22. MDI窗口设计

一、什么是MDI窗口MDI 窗口(Multiple-Document Interface),又称多文档界面,它主要用于同时显示多个文档,每个文档显示在各自的窗口中。MDI 窗口中通常包含子菜单和窗口菜单,用于在窗口或文档之间进行切换。用 QMainWindow 建立的主界面,通常会同时建立或打开多个相互独立…

详解:订单履约系统规划

大家好,我是汤师爷~ 什么是订单履约系统? 订单履约是从消费者下单支付到收到商品的全流程管理过程,包括订单接收、订单派单、库存分配、仓储管理和物流配送等环节,核心目标是确保商品准时、准确地送达消费者手中。 通过订单履约系统,消费者可以实时了解商品的物流状态和预…