邮箱:你的邮箱地址@example.com

ubuntu22.04的conda 环境下gazebo打开不正常

一、问题描述:

在跟学古月居老师B站视频教程时,出现在Gazebo安装完成但无法打开的情况,具体有如下两种情况:

问题一:第一次输入Gazebo指令可以打开,但是再次输入指令无报错,也无显示界面。

此时使用的安装指令如下:

sudo apt install ros-humble-gazebo-*

问题2:运行Gazebo指令时出现下面的报错

运行指令:

ros2 launch gazebo_ros gazebo.launch.py

报错信息:

westar@legion:~$ ros2 launch gazebo_ros
file 'None' was not found in the share directory of package 'gazebo_ros' which is at '/opt/ros/humble/share/gazebo_ros'

二、排查记录

1.问题一决解决办法:

打开系统自带的“系统监视器”,找到gzserver,右键kill,杀死进程。

并且关闭该终端,重启终端之后就可以再次打开。

参考如下博客:

https://blog.csdn.net/qq_48580785/article/details/135821380

2.问题二决解决办法:

查询当前系统所有python版本

cd /usr/bin
ls -l python*

输出如下,我的电脑只有一个版本,这不合理。

westar@legion:~$ cd /usr/bin
westar@legion:/usr/bin$ ls -l python*
lrwxrwxrwx 1 root root      10  6月 21 00:12 python3 -> python3.10
-rwxr-xr-x 1 root root 5904936  3月 23 00:50 python3.10
lrwxrwxrwx 1 root root      34  3月 23 00:50 python3.10-config -> x86_64-linux-gnu-python3.10-config
-rwxr-xr-x 1 root root     979  3月 18  2022 python3.10-coverage
lrwxrwxrwx 1 root root      17  8月 18  2022 python3-config -> python3.10-config
-rwxr-xr-x 1 root root     973  3月 18  2022 python3-coverage
-rwxr-xr-x 1 root root     960  1月 25  2023 python3-futurize
-rwxr-xr-x 1 root root     964  1月 25  2023 python3-pasteurize
-rwxr-xr-x 1 root root    2555  2月 27  2021 python-argcomplete-check-easy-install-script3
-rwxr-xr-x 1 root root     314  2月 27  2021 python-argcomplete-tcsh3

分别在根目录和conda环境下查询python版本和路径

python3 --version
which python3

 输出中发现都是指向/usr/bin/python3也就是主目录下的python

westar@legion:/usr/bin$ python3 --version
Python 3.10.12
westar@legion:/usr/bin$ which python3
/usr/bin/python3
westar@legion:/usr/bin$ conda activate slam
(slam) westar@legion:/usr/bin$ which python3
/usr/bin/python3

 

且conda的包中也没有python信息

(slam) westar@legion:/usr/bin$ conda list
# packages in environment at /home/westar/miniconda3/envs/slam:
#
# Name                    Version                   Build  Channel

 

可以确定是创建conda环境时没有指定该环境的python 版本,一直使用的是根目录下的python..(hhh想起来当时是不确定要装什么版本,后来就忘记装了)

 立刻在虚拟环境i下安装了一个3.9版本的

(slam) westar@legion:/usr/bin$ conda install python=3.9

 但是上述运行不了Gazebo的问题还在...只能说没装python不是主要原因。

查询到一篇比较官方的文章:

https://gazebosim.org/docs/latest/ros_installation/

 联想到我使用过很多不同的指令来解决问题,系统中已经有两个Gazebo的图标了,可能是Gazebo版本不对的问题:

 我的是ROS2 Humble因此支持的只有GZ Fortress,但是我的安装方式下有两种图标Gazebo,可能是有冲突。输入下列指令查找所有的gazebo包:

dpkg -l | grep gazebo

 我有如下界面:

 既有gazebo又有gazebo6,输入下面指令卸载所有的包:

sudo apt-get remove gazebo gazebo-common gazebo-plugin-base libgazebo11:amd64 libgazebo-dev ros-humble-gazebo-* libignition-gazebo6:amd64 libignition-gazebo6-dev:amd64 libignition-gazebo6-plugins:amd64

卸载配置和数据文件

 rm -rf ~/.gazebo/

清除配置文件(谨慎使用,可能误删除系统主题之类的)

sudo apt autoremove

卸载之后两个gazebo的图标都不见了。

接下来按照官网教程安装:

sudo apt-get install ros-humble-ros-gz

 按照这个指令安装的是:默认的 与ROS版本配对的gazebo

最终图标长这样:

 双击运行后成功RUN目标示例:

 至此问题解决!

 测试运行:

ign gazebo shapes.sdf

三、后记

通过查阅资料发现,gazebo和Ignition gazebo指令都不匹配,且后者是前者的升级版,对比如下

  • Gazebo Classic:指机器人仿真软件Gazebo,一共有11个主要版本。
  • Ignition Gazebo:指Ignition中Gazebo模拟器的部分。
  • Ignition:一个包含了各种软件库和服务的平台,Gazebo模拟器是其中的一部分。

介绍参考如下博客:

http://www.lxshaw.com/tech/iginition/2021/06/29/ignition-gazebo%E4%BB%8B%E7%BB%8D/

 虽然Ignition是Gazebo的未来,但是依然有很长的路要走。有许多Gazebo Classic中存在的功能,还没有被复刻到Ignition Gazebo中去。

posted @ 2024-07-31 11:00  WestaR  阅读(1693)  评论(0)    收藏  举报