【2022】Ubuntu18.04安装Gazebo9并与ROS连接(包括各种报错及解决方案)

目录

一、安装Gazebo

STEP1 设置计算机以接受来自package.osrfoundation.org的软件

STEP2 添加密钥

STEP3 安装Gazebo

1. 更新软件源,然后再执行安装Gazebo的命令

2. 下载并安装Gazebo 9版本的软件包

3. 安装 Gazebo 9 的开发库。

二、 Gazebo与ROS连接

STEP4 安装ROS Melodic与Gazebo相关的软件包

STEP5 验证是否连接成功

1. 启动 ROS (Robot Operating System) 的核心节点

2. 启动 Gazebo 仿真环境

三、报错及解决方案

STEP6 如果在上一步骤发现Gazebo打开后长时间停留在启动界面,且显示黑屏(没有网格),关掉Gazebo,并依次执行以下语句

报错1

改错

报错2

改错

 STEP7 重新验证是否连接成功

连接成功:


一、安装Gazebo

注意:Ubuntu18.04需要下载Gazebo9这个版本,Gazebo的版本不要弄错

如果已经下载了其他版本的Gazebo,请先执行如下命令进行卸载

sudo apt-get remove gazebo-*

STEP1 设置计算机以接受来自package.osrfoundation.org的软件

终端输入:

sudo sh -c 'echo "deb 

显示:

http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'

STEP2 添加密钥

        从指定 URL 下载一个 GPG 密钥文件 (gazebo.key),并将其内容通过管道 (|) 传递给 apt-key 命令,并通过 sudo 在具有超级用户权限的环境下执行 apt-key add。这将把密钥添加到 apt 软件包管理器的可信密钥库中,以便安装和验证通过该密钥签名的软件包。

终端输入:

wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

显示:

--2022-10-16 20:28:26--  https://packages.osrfoundation.org/gazebo.key
Resolving packages.osrfoundation.org (packages.osrfoundation.org)... 52.52.171.73
Connecting to packages.osrfoundation.org (packages.osrfoundation.org)|52.52.171.73|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1772 (1.7K) [application/octet-stream]
Saving to: ‘STDOUT’

-                   100%[===================>]   1.73K  --.-KB/s    in 0s      

2022-10-16 20:28:27 (82.2 MB/s) - written to stdout [1772/1772]

OK

STEP3 安装Gazebo

终端依次输入:

1. 更新软件源,然后再执行安装Gazebo的命令

sudo apt-get update && sudo apt-get upgrade

2. 下载并安装Gazebo 9版本的软件包

sudo apt-get install gazebo9
  • Gazebo是一款3D机器人模拟器,可以用于测试和展示机器人模型。
  • 安装Gazebo需要先安装依赖的一些基础软件,apt命令会自动进行安装。
  • 安装完成后,可以在终端使用gazebo命令启动Gazebo模拟器。

Gazebo 9是一个较为稳定的旧版,如果是新项目,推荐安装较新的Gazebo版本,例如:

  • Gazebo 11:
sudo apt-get install gazebo11
  • 最新版本Gazebo就是当前的版本就是当前版本Gazebo 12:
sudo apt-get install gazebo

(如果之前已经安装过Gazebo的版本,安装新版本也不会覆盖之前的版本)

3. 安装 Gazebo 9 的开发库。

sudo apt-get install libgazebo9-dev

        开发库是用于编译和开发 Gazebo 插件、扩展和自定义功能的工具。下面这个命令将会从 Ubuntu 的软件仓库下载并安装 Gazebo 9 的开发库及其相关的依赖项。安装完成后,就可以开始使用 Gazebo 9 的开发库来开发自己的项目。

二、 Gazebo与ROS连接

STEP4 安装ROS Melodic与Gazebo相关的软件包

sudo apt install ros-melodic-gazebo-ros-pkgs  ros-melodic-gazebo-msgs  ros-melodic-gazebo-plugins  ros-melodic-gazebo-ros-control

主要有:

  • ros-melodic-gazebo-ros-pkgs : Gazebo模拟器相关的ROS包

  • ros-melodic-gazebo-msgs : Gazebo消息类型定义

  • ros-melodic-gazebo-plugins : Gazebo插件

  • ros-melodic-gazebo-ros-control : ROS控制器与Gazebo的接口
    这些软件包可以让ROS节点与Gazebo环境交互,比如:

  • 订阅Gazebo中的对象信息

  • 控制Gazebo中的物体

  • 与Gazebo物理引擎通信

安装完成后,就可以在ROS节点中使用gazebo_ros包, 与Gazebo世界互动了。

STEP5 验证是否连接成功

1. 启动 ROS (Robot Operating System) 的核心节点

 roscore

        roscore 提供了 ROS 系统所需的基础服务,包括参数服务器、消息传输和节点通信等。在终端中执行 roscore 命令后,ROS 将会启动一个名为 roscore 的进程。这个进程将会监听 ROS 系统中的各个节点,并为它们提供各种服务。启动 roscore 后,可以开始运行其他 ROS 节点和相关程序,它们将会与 roscore 进行通信并利用其提供的服务。

2. 启动 Gazebo 仿真环境

rosrun gazebo_ros gazebo

    该命令会运行 Gazebo ROS 包中的 gazebo 节点,它会加载 Gazebo 仿真器并提供 ROS 接口。一旦命令成功执行,Gazebo 仿真环境将会启动,并可以使用 ROS 消息传递来控制仿真场景、机器人模型或其他物理实体。

三、报错及解决方案

STEP6 如果在上一步骤发现Gazebo打开后长时间停留在启动界面,且显示黑屏(没有网格),关掉Gazebo,并依次执行以下语句

        在 ~/.gazebo/ 目录下创建一个 models 目录,下载模型文件列表并解压缩这些文件。

  • 切换到 ~/.gazebo/ 目录
cd ~/.gazebo/
  • 创建一个名为 models 的目录。如果该目录已存在,则不会产生任何错误,因为使用了 -p 选项
mkdir -p models
  • 切换到 ~/.gazebo/models/ 目录
cd ~/.gazebo/models/
  • 使用 wget 命令下载 gazebo_models.txt 文件到当前目录。
wget http://file.ncnynl.com/ros/gazebo_models.txt
  • 使用 wget 命令读取 gazebo_models.txt 文件中列出的模型文件 URL,并将这些文件下载到当前目录。
wget -i gazebo_models.txt
  • 列出当前目录下以 model.tar.g 开头的文件,并使用 xargs 命令逐个执行 tar xzvf 命令将这些文件解压缩
 ls model.tar.g* | xargs -n1 tar xzvf

报错1

[ INFO] [1665923863.099798768]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1665923863.111388523]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1665923866.814475043]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1665923866.982214681]: Physics dynamic reconfigure ready.
[Err] [REST.cc:205] Error in REST request

libcurl: (51) SSL: no alternative certificate subject name matches target host name 'api.ignitionfuel.org'
VMware: vmw_ioctl_command error Invalid argument.
^[aAborted (core dumped)

改错

 sudo gedit ~/.ignition/fuel/config.yaml

报错2

[ INFO] [1665929397.262289602]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1665929397.264244460]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1665929399.188514866]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1665929399.243283924, 0.004000000]: Physics dynamic reconfigure ready.
VMware: vmw_ioctl_command error Invalid argument.
Aborted (core dumped)

改错

终端下设置环境变量为0

临时:

export SVGA_VGPU10=0

永久:

echo "export SVGA_VGPU10=0" >> ~/.bashrc

 STEP7 重新验证是否连接成功

roscore
 rosrun gazebo_ros gazebo

连接成功:

猜你喜欢

转载自blog.csdn.net/m0_63834988/article/details/132020603