gazebo遇到的阶段性问题汇总

1 gazebo中碰撞模型崩坏或者飞的问题

主要原因:惯性(质量和惯性矩阵)设置不准确

个别零件质量太大,个别零件质量太小,同样的速度发生碰撞

  1. 弹性碰撞(或称完全弹性碰撞),如果在弹性力的作用下,只产生机械能的转移,系统内无机械能的损失,称为弹性碰撞(或称完全弹性碰撞)。此类碰撞过程中,系统动量和机械能同时守恒。

  2. 非弹性碰撞,如果是非弹性力作用,使部分机械能转化为物体的内能,机械能有了损失,称为非弹性碰撞。此类碰撞过程中,系统动量守恒,机械能有损失,即机械能不守恒。

  3. 完全非弹性碰撞,如果相互作用力是完全非弹性力,则机械能向内能转化量最大,即机械能的损失最大,称为完全非弹性碰撞。碰撞物体粘合在一起,具有同一速度。此类碰撞过程中,系统动量守恒,机械能不守恒,且机械能的损失最大。

2 编译报错

大致意思就是编译了不必要的包(gazebo)

CMake Warning (dev)at /usr/share/cmake-3.22/Modules/FindPackageHandlestandardArgs.cmake:438(message):The package name passed to find package handle standard args*(PkgConfig)does not match the name of the calling package (gazebo). This can lead toproblems in calling code that expects find package  result variables(e.g.,FOUND`)to follow a certain pattern.all stack(most recent call first):
/usr/share/cmake-3.22/Modules/Findpkgconfig.cmake:99 (find package handle stanard args)/usr/lib/x86 64-linux-gnu/cmake/gazebo/gazebo-config.cmake:72 (include)CMakeLists.txt:20(find package)This warning is for project developers. use -Wno-dev to suppress it.

报错截图

在这里插入图片描述

解决方法

在 CMakeLists.txt 中删除 find_package(gazebo REQUIRED) 这行,重新编译就行

在这里插入图片描述

3 控制器无法正常启动

[ERROR] [gzserver-1]: process has died [pid 8858, exit code 255, cmd 'gzserverhome/xucg/car exp ws/install/gazebo simulation/share/gazebo simulation/worlds/4ws world,model slibgazebo ros init,so "slibgazebo ros factory.so -slibgazebo rosforce system.so'l.
[ros2-8] could not contact service /controller manager/load controllerERROR] [ros2-8]: process has died [pid 8872, exit code 1, cmd 'ros2 control loacontroller "set-state active joint state broadcaster'].ros2-7] Could not contact service /controller manager/load controllerERROR] 
[ros2-7]: process has died [pid 8870, exit code 1, cmd 'ros2 control loacontroller .set-state active forward velocity_controller'].
[ros2-6] Could not contact service /controller manager/load controllerERROR] 「ros2-6l: process has died 「pid 8868, exit code 1, cmd 'ros2 control loacontroller .set-state active forward position controller']

在这里插入图片描述

解决方法

修改如下所示,把原本的 ExecuteProcess 函数注释,改用 Node 函数。

    forward_position_controller = Node(package="controller_manager",executable="spawner",arguments=["forward_position_controller"],)forward_velocity_controller = Node(package="controller_manager",executable="spawner",arguments=["forward_velocity_controller"],)joint_state_broadcaster = Node(package="controller_manager",executable="spawner",arguments=["joint_state_broadcaster"],)# forward_position_controller = ExecuteProcess( #     cmd=['ros2', 'control', 'load_controller', '--set-state', 'active', 'forward_position_controller'], #     output='screen'# )# forward_velocity_controller = ExecuteProcess(#         cmd=['ros2', 'control', 'load_controller', '--set-state', 'active', 'forward_velocity_controller'], #         output='screen'#     )# # gazebo在加载urdf时,根据urdf的设定,会启动一个joint_states节点# # 关节状态发布器# joint_state_broadcaster = ExecuteProcess(#         cmd=['ros2', 'control', 'load_controller', '--set-state', 'active', 'joint_state_broadcaster'], #         output='screen'#     )

4 xacro:macro 定义函数

函数里面不能引用外部变量,只能使用函数定义的内部变量

在这里插入图片描述

5 xacro:property 定义变量的值

注意:不能使用小数的分数表示形式(1/100)

[ERROR] [launch]: caught exception in launch (see debug for traceback): caught multipLe exceptions when trying to load file of format flaunch]:. InvalidfrontendLaunchfileError: caught multiple exceptions when trying to load file of format [launch]:
ParseError:syntax error:line 1,column ScannerError: mapping values are not allowed herein "/home/xucg/car exp_ws/install/car_urdf/share/car urdf/launch/gazebo,launch", line 16,column 26
.XacroException: can't multiply sequence by non int of type 'floatwhen evaluating expression'948.91 * ratio'

报错截图

在这里插入图片描述

解决方法

#<xacro:property name="ratio" value="1/1000"/><xacro:property name="ratio" value="0.001"/>

6 gazebo 模型视觉穿模(已设置碰撞体积)

解决方法

需要设置更大的 kp 值(刚性系数)

<xacro:property name="kp" value="1000000"/>

穿模截图

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

王道408考研数据结构-绪论

1.1 数据结构的基本概念 数据结构 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。在任何问题中&#xff0c;数据元素 都不是孤立存在的&#xff0c;它们之间存在某种关系&#xff0c;这种数据元素相互之间的关系称为结构(Structure)。 数据结构包括三方面的内…

中秋的“超级月亮”在哪?来竹海幻境寻找心中的白月光

夜幕低垂&#xff0c;一场视觉盛宴悄然拉开序幕——《桃花江竹海幻境》&#xff08;下文简称《竹海幻境》&#xff09;剧场中。一轮轮明月仿佛穿越时空的使者&#xff0c;与葱郁的竹林交相辉映&#xff0c;与天际那轮皎洁的明月共同编织出一幅“超级月亮”的绝美画卷&#xff0…

sizeof与strlen()函数的对比总结

目录 1.sizeof操作符1.1sizeof操作符特点 2.strlen( )函数2.1 函数简介2.2 创建字符串 3.sizeof 和 strlen的对比 1.sizeof操作符 在学习操作符的时候&#xff0c;我们学习了 sizeof &#xff0c; sizeof 计算变量所占内存内存空间⼤⼩的&#xff0c;单位是字节&#xff0c;如…

C++的类与对象下

目录 1.初始化列表 2.隐式类型转换 1.单参数 2.多参数&#xff08;C11提供的新功能&#xff09; 3.static成员 4.友元 5.内部类 6.匿名对象 1.初始化列表 C祖师爷规定初始化列表是成员变量定义与初始化的地方。 class Time { public:Time(int hour):_hour(hour){cout &…

从虚拟机安装CentOS到自定义Dockerfile构建tomcat镜像

写在开头 整个过程中涉及的三方软件均来源于三方的官网&#xff0c;因此需要有一个稳定良好的访问公网网络的环境&#xff0c;可能需要科学上网 下载并安装 VMware Workstation Player 下载 需要先注册登录&#xff1a;https://login.broadcom.com/signin 下载页面&#xff1a…

7-23 还原二叉树

代码&#xff1a; #include<iostream> using namespace std; int n; char a[55],b[55]; int dfs(int l,int r,int x,int y){ // printf("**l%d,r%d,x%d,y%d\n",l,r,x,y);if(l>r) return 0; // if(lr) return 1;int i;for(ix;i<y;i){if(a[l]b[i]) break;…

信息安全工程师(6)网络信息安全现状与问题

一、网络信息安全现状 威胁日益多样化&#xff1a;网络攻击手段不断翻新&#xff0c;从传统的病毒、木马、蠕虫等恶意软件&#xff0c;到勒索软件、钓鱼攻击、DDoS攻击、供应链攻击等&#xff0c;威胁形式多种多样。这些攻击不仅针对个人用户&#xff0c;还广泛影响企业、政府等…

【OJ刷题】双指针问题5

这里是阿川的博客&#xff0c;祝您变得更强 ✨ 个人主页&#xff1a;在线OJ的阿川 &#x1f496;文章专栏&#xff1a;OJ刷题入门到进阶 &#x1f30f;代码仓库&#xff1a; 写在开头 现在您看到的是我的结论或想法&#xff0c;但在这背后凝结了大量的思考、经验和讨论 目录 1…

Mac下nvm无法安装node问题

背景 最近换用mac开发&#xff0c;然后使用nvm&#xff08;版本0.40.1&#xff09;进行node安装的时候出现了一些问题 使用 nvm ls-remote发现只有 iojs 版本 原因可能是nodejs升级了某个协议导致的 解决方案 可以使用 NVM_NODEJS_ORG_MIRRORhttp://nodejs.org/dist nvm ls-re…

关于一道逻辑思维训练题的理解(手表、闹钟、标准时间的骗局)

说有一块手表&#xff0c;比闹钟每时慢30秒&#xff0c;而闹钟比标准时间每时快30秒&#xff0c;那么&#xff0c;这块手表是准时的么 &#xff1f; 这道题就是个带时间刻度的四维骗局 就是个文字游戏 接下来我们来分析一下&#xff0c;为什么说它是个骗局&#xff0c;简直与…

初写MySQL四张表:(3/4)

我们已经完成了四张表的创建&#xff0c;学会了创建表和查看表字段信息的语句。 初写MySQL四张表:(1/4)-CSDN博客 初写MySQL四张表:(2/4)-CSDN博客 接下来&#xff0c;我们来学点对数据的操作&#xff1a;增 删 查&#xff08;一部分&#xff09;改 先来看这四张表以及相关…

Java入门,初识Java

Java背景知识 Java是早期美国 sun 公司&#xff08;Stanford University Network&#xff09;在1995年推出的一门计算机高级编程语言。Java早期称为Oak&#xff08;中文翻译为&#xff1a;橡树&#xff09;&#xff0c;后期改名为Java。&#xff08;因为当时sun公司门口有很多…

【Linux系统编程】用互斥量和信号量加锁STL容器,避免并发问题

目录 引言 容器模型 容器代码 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 STL容器并没有保证线程安全&#xff0c;而大多数应用场景下&#xff0c;为了追求效率&#xff0c;多线程是必不可少的。而底层容器难免会有并发问题。从设计上来说要么在上层代码做加锁处…

Effective C++笔记之二十三:非void函数不写return

一.main函数 Qt Creator查看汇编的步骤如下 上图是g编译器下的汇编 eax就是main()函数的返回值 如果删掉return 0&#xff1b; 可以发现编译器还是把eax的值设为了0&#xff0c;由此可见&#xff0c;即使在main函数中不写return 0&#xff0c;编译器还是会默认添加个return 0。…

如何使用ssm实现一家运动鞋店的产品推广网站的设计

TOC ssm623一家运动鞋店的产品推广网站的设计jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xf…

手把手教你:在微信小程序中加载map并实现拖拽添加标记定位

本文将为大家详细介绍如何在微信小程序中加载map组件&#xff0c;并实现拖拽标记定位功能。 实现步骤 1、首先&#xff0c;我们需要在项目的app.json文件中添加map组件的相关配置。如下所示&#xff1a; {"pages": ["pages/index/index"],"permiss…

【网络安全 | 代码审计】PHP无参数RCE

未经许可,不得转载。 文章目录 无参数RCE代码审计1、利用Session ID实现无参数RCE2、利用get_defined_vars ()函数实现无参数RCE3、利用getallheaders()实现无参数RCE4、利用getenv()实现无参数RCE5、利用scandir()实现无参数RCE靶场实例无参数RCE 一般情况下,RCE需要通过传…

销管系统 —— P14 菜单项悬停高亮显示遇到的问题

悬停在子菜单背景颜色并没有显示&#xff0c;为什么&#xff1a; 什么是后代选择器 —— 选中父元素 后代中 满足条件的元素&#xff1b;这个子菜单menu—item它既满足上面的也满足下面的&#xff0c;按这个顺序的话&#xff0c;下面的就被覆盖了&#xff08;CSS优先级规则&…

godot——tween_method插值,如何处理多参数?参数位置怎么调?

知识点&#xff1a; tween_method()可以对方法的某一参数进行插值&#xff0c;并连续调用该方法。 如果方法有多个参数&#xff0c;可以用bind()提前绑定。 然而bind()绑定的参数会被放在参数列表的最后。如果我要插值的参数在参数列表后面&#xff0c;那么就会出问题。 …

FPGA-Vivado-IP核-虚拟输入输出(VIO)

VIO IP核 背景介绍 Vivado中的VIO&#xff08;Virtual Input/Output&#xff0c;虚拟输入/输出&#xff09; IP核是一种用于调试和测试FPGA设计的IP核。当设计者通过JTAG接口与FPGA芯片连接时&#xff0c;在Vivado的Verilog代码中添加VIO IP核&#xff0c;就可以让设计者与FPG…