首先,本人原本打算安装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形式登录