Ubuntu22.04安装/使用Gazebo时踩的一些坑

首先,本人原本打算安装gazebo11的,因为官方好像不支持ubuntu22.04,所以要通过PPA和ROS2 humble来安装,安装过程跟着教程来的,也就是下面这篇

ubuntu22.04安装gazebo11(ROS2 Humble)-CSDN博客

安装ROS2可以直接用小鱼一键式安装

wget http://fishros.com/install -O fishros && . fishros
 

但是,不知道是什么原因,最关键的gazebo--common这个包没下到,我直接--version看版本出来了以为就安装完了,没想到这只是个壳,内核根本没下到,大家一定要注意自己gazebo11的安装完整性。

然而到这里还没有完,我的gazebo运行只能显示UI,但卡死了根本加载不进去,且终端报错。

[Err] [Server.cc:584] Waited 11 seconds for namespaces. Giving up.

[Err] [Node.cc:118] No namespaces found

网上尝试了各种办法,去github上下载了模型通过共享文件夹塞进.gazebo/models试过了,拉大显存开3D图形加速也试过,也换了Xorg登录,结局都是失败。我猜测应该是Ubuntu22.04与gazebo11的兼容性太差了,或者是我用的是虚拟机(非双系统Linux)导致的。

随后便放弃了,我不能一条路走到黑,选择大于努力!然后查阅资料发现我这个Ubuntu版本和gazebo harmonic的兼容性不错,就开始准备换个gazebo版本

Gazebo Harmonic 和 ROS2 jazzy 安装和测试-CSDN博客

五条指令就能装完这个Harmonic版本的gazebo

sudo apt-get install lsb-release gnupgsudo curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/nullsudo apt-get updatesudo apt-get install gz-harmonic

启动指令    gz sim shapes.sdf

这里顺便补充一下彻底删除gazebo11的流程指令

删除gazebo11sudo apt remove gazebo11* libgazebo11* libsdformat9* -y# 删除 Gazebo 11 核心包
sudo apt purge gazebo11 libgazebo11-dev gazebo11-common# 删除遗留插件
sudo apt purge 'ros-*-gazebo11-*'  # 如果使用ROS# 清理配置
rm -rf ~/.gazebo# 检查 Gazebo 11 是否移除
which gzserver  # 应无输出
gz sim --versions  # 应只显示 Harmonic# 检查 Harmonic 功能
ign gazebo -v  # 或 gz sim -v

重新安装好gazebo后,能成功打开gazebo了,但是世界界面仍然是一片黑,按照经验把模型提前下载好拷过去后还是没有用,且又出现了很多新的bug,气死我了(我不李姐)。

这里参考博客Gazebo Harmonic学习笔记2-CSDN博客,先把本地模型绑定进gazebo,命令如下

#下面的路径填你存放模型的文件夹的绝对路径,指令有两个,我忘了我跑的哪个指令成功绑的了,反正其中一个是能绑的233~export GZ_SIM_RESOURCE_PATH=~/xxx/xxx/gazebomodels/   echo "export GZ_SIM_RESOURCE_PATH="xxx/xxx/xxx/models"" >> ~/.bashrc
source ~/.bashrc

重新打开gazebo,确实能看见本地模型了,但界面还是一片黑,我尝试去使用截图功能,就是界面第二栏的那个照相机,它截出来的图片是能显示出我的模型的,但我没法直观的看到他,我这的显示还是一片黑。

中间省略一堆修BUG的过程,因为没用,最后我一气之下把他卸载了。

#卸载指令
sudo apt remove gz-harmonic gz-* libgz-*  # 移除所有 Gazebo Harmonic 相关包
sudo apt autoremove  # 清理未使用的依赖rm -rf ~/.gz  # Harmonic 的配置和缓存(新版本用 ~/.gz 替代 ~/.gazebo)
rm -rf ~/.gazebo  # 旧版本缓存(如果存在)
sudo rm -rf /tmp/gz-*  # 临时文件gz sim --versions  # 验证是否删干净了

我决定重新安装一次,这次我换了个平台,来到了最大的学习中心b站来找安装教程,就是这个视频BV1WF4m1A72u,按照它的教程我重新按照了gazebo-Harmonic

sudo wget https://packages.osrfoundation.org/gazebo.gpg -O/usr/share/keyrings/pkgs-osrf-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/nullsudo apt-get updatesudo apt-get install gz-harmonicgz sim shapes.sdf

然而结果还是一片黑,就在这时我在评论区看到一个老哥说VMWare要把3D图形加速给关掉!

没错我关掉之后就能正常使用了,关键点就在这,大模型害人啊,一直让我开3D图形加速

但是要注意关掉3D图形加速后你的虚拟机会变卡,这里还是建议要跑仿真的小伙伴装双系统

太长不看省流版

总结几个要点,要过程指令的自己往上翻

1.务必根据你的你的虚拟机系统版本安装对应的gazebo,不要安装不推荐的版本

2.注意给你的系统换源,不要用默认源,当然如果你会虚拟机科学上网也可以这么做

小鱼一键式安装ROS2这里面可选自动换国内源,可以用这条命令改下你的系统源顺便安装ROS2

wget http://fishros.com/install -O fishros && . fishros

3.如果出现了下面的报错

[Err] [Node.cc:118] No namespaces found

大概率是你.gazebo/models里面的模型需要自己提前下载,让他在线获取大概率会超时,请自己建好文件夹并把模型复制进去,至于下载的GitHub链接网上一搜很多,我这里也在绑定资源上传了一个给你们

4.一定要记得关掉3D图形加速,不要听大模型的,他只会让你的bug越来越多。注意关掉3D图形加速后你的虚拟机会变卡,建议要跑仿真还是装双系统比较好。

5.开机登录时一定要选择Xorg形式登录

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

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

相关文章

CPT203-Software Engineering: Introduction 介绍

目录 1.专业名词定义 1.1计算机软件的定义 1.2软件系统的定义 1.3软件工程的定义 2.软件的失败与成功 2.1 失败 2.2 成功 3.软件开发 Professional software development 3.1 分类 3.2 专业软件开发 professional software development 3.3专业软件开发产品特性 3.4…

诊断工程师进阶篇 --- 车载诊断怎么与时俱进?

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

奥特曼论人工智能、OpenAI与创业

来自Y Combinator的YouTube视频,展示了OpenAI首席执行官萨姆奥特曼分享的深刻见解。他讨论了OpenAI从一个看似疯狂的通用人工智能(AGI)梦想,如何发展成为一个全球性的现象。奥特曼强调了早期决策的关键性、吸引顶尖人才的策略&…

React Ref使用

受控与非受控组件 Ref 1.获取原生dom 类组件中&#xff1a;在componentDidMount方法内使用document.getElementById的方法获取到dom元素 1 目标dom增加ref属性 设置为字符串 <h2 reftitleref></h2>function changeRef(){this.refs.titleref.innerHtml }2 函数组件…

地下管线安全的智能监测先锋:智能标志桩图像监测装置解析​

​在城市与乡村的地下&#xff0c;纵横交错的管线是能源与信息传输的关键通道。但深埋地下的电缆、燃气管道等设施&#xff0c;因难以直观监测&#xff0c;面临施工误挖、自然灾害等风险。传统防护手段力不从心&#xff0c;TLKS-PAZ01 智能标志桩图像监测装置的诞生&#xff0c…

Camera相机人脸识别系列专题分析之十六:人脸特征检测FFD算法之libcvface_api.so数据结构详细注释解析

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; Camera相机人脸识别系列专题分析之十六&#xff1a;人脸特征检测FFD算法之libcvface_api.so数据结构详细注释解析…

【字节跳动】数据挖掘面试题0012:数据分析、数据挖掘、数据建模的区别

文章大纲 数据分析、数据挖掘、数据建模的区别一、核心定义与目标二、技术方法差异三、应用场景对比四、三者的关联与递进关系五、面试应答策略 数据分析、数据挖掘、数据建模的区别 一、核心定义与目标 数据分析&#xff1a; 是对已有的数据进行收集、清洗、整理&#xff0c;并…

预警:病毒 “黑吃黑”,GitHub 开源远控项目暗藏后门

在开源生态蓬勃发展的当下&#xff0c;黑客们也将黑手伸向了代码共享平台。当黑产开发者以为在共享 “行业秘笈” 时&#xff0c;殊不知已经掉入了黑客布置的陷阱 —— 看似方便的后门远程控制源码和游戏作弊外挂源码等 “圈内资源”&#xff0c;实则是植入了恶意代码的投毒诱饵…

Qt中的QProcess类

Qt中的QProcess类 QProcess 是 Qt 框架中用于启动和控制外部进程的类&#xff0c;它属于 QtCore 模块。这个类提供了执行外部程序并与它们交互的功能。 一、主要功能 启动外部程序&#xff1a;可以启动系统上的其他可执行程序进程通信&#xff1a;通过标准输入、输出和错误流…

周任务自动化升级:N8N与多维表格无缝联动全解析

.自动化之言&#xff1a; 在上一篇文章中&#xff0c;我们介绍了如何利用多维表格&#xff08;如飞书多维表格或Notion&#xff09;搭建一个灵活的任务管理系统。现在我们将进一步扩展这个系统&#xff0c;借助 N8N 实现周报的自动汇总与邮件发送&#xff0c;真正实现任务管理…

Go语言的web框架--gin

本章内容&#xff0c;会介绍一下gin的运用&#xff0c;以及gin框架底层的内容&#xff0c;话不多说&#xff0c;开始进入今天的主题吧&#xff01; 一.基本使用 gin框架支持前后端不分离的形式&#xff0c;也就是直接使用模板的形式。 模板是什么&#xff1f; 这里可能有同…

企业为什么需要双因素认证?

从进入互联网时代开始&#xff0c;密码是我们个人日常的重要保护。但是单独的密码保护可能已经不再适应当前的数字化时代。密码已经不再足够安全最近发生的各种安全漏洞让我重新审视网络安全。几行代码可能就导致了全球数以百万的登录凭证被泄露。今天&#xff0c;仅仅周期性地…

Spring Boot + 本地部署大模型实现:优化与性能提升!

在Spring Boot中集成本地部署的大模型&#xff08;如LLaMA、ChatGLM等&#xff09;并进行优化&#xff0c;需要从模型选择、推理加速、资源管理和架构设计等多方面入手。以下是完整的优化方案及实现步骤&#xff1a; 一、核心优化策略 1. 模型量化 目标&#xff1a;减少显存占…

仿mudou库one thread oneloop式并发服务器

前言 我们所要实现的是一个高并发服务器的组件&#xff0c;使服务器的性能更加高效&#xff0c;是一个高并发服务器的组件&#xff0c;并不包含实际的业务。 首先需要先明确我们所要实现的目标是什么 第一点&#xff0c;实现一个高并发的服务器第二点&#xff0c;在服务器的基础…

超详细的私有化安装部署Dify服务以及安装过程中问题处理

一、什么是Dify Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务&#xff08;Backend as Service&#xff09;和 LLMOps 的理念&#xff0c;使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员&#xff0c;也能参与到 AI 应用的定义和数据…

国产DSP,QXS320F280049,QXS320F28377D,QXS320F2800137,QXS320F28034

自定义指令集&#xff0c;自研内核架构&#xff0c;基于eclipse自研IDE&#xff0c;工具链&#xff0c;算法库。 根据自研QXS320F280049&#xff0c;做了600W和2KW数字电源方案&#xff0c;1.5KW电机方案&#xff0c;目前已在市场大量投产。 QXS320F290049应用于数字电源&#…

dotnet publish 发布后的项目,例如asp.net core mvc项目如何在ubuntu中运行,并可外部访问

复制到 Ubuntu 上的是使用 Visual Studio 或 dotnet publish 命令生成的 发布后的输出文件&#xff08;publish output&#xff09;&#xff0c;而不是原始项目源代码。在这种情况下&#xff0c;确实没有 .csproj 文件&#xff0c;所以不能直接用 dotnet run 启动。但你可以通过…

Linux多线程(十二)之【生产者消费者模型】

文章目录生产者消费者模型为何要使用生产者消费者模型生产者消费者模型优点基于BlockingQueue的生产者消费者模型BlockingQueueC queue模拟阻塞队列的生产消费模型单线程生产消费模型多线程生产消费模型生产者消费者模型 consumer/productor 321原则(便于记忆) 为何要使用生产…

MySQL表的操作(3)

文章目录前言一、创建表创建表时指定属性二、查看表查看表结构查看建表消息三、修改表修改列属性修改列名修改表名四、删除表总结前言 Hello! 那我们乘胜追击&#xff0c;开始 表的操作&#xff01; 一、创建表 首先创建一个 数据库 testForTable mysql> create database i…

从“人工智障”到“智能助手”:集成为什么能拯救AI用户体验?

几年前&#xff0c;当人们满怀期待地与AI语音助手对话时&#xff0c;常常遭遇令人啼笑皆非的回应——“抱歉&#xff0c;我不明白你在说什么”“请再说一遍”甚至答非所问。AI被戏称为“人工智障”&#xff0c;用户体验一度让人失望。然而&#xff0c;近年来&#xff0c;随着技…