前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【2022】Ubuntu18.04安装Gazebo9并与ROS连接(包括各种报错及解决方案)

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

作者头像
Qomolangma
发布2024-07-30 08:16:45
3170
发布2024-07-30 08:16:45
举报
文章被收录于专栏:深度学习

一、安装Gazebo

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

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

代码语言:javascript
复制
sudo apt-get remove gazebo-*

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

终端输入:

代码语言:javascript
复制
sudo sh -c 'echo "deb 

显示:

代码语言:javascript
复制
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 软件包管理器的可信密钥库中,以便安装和验证通过该密钥签名的软件包。

终端输入:

代码语言:javascript
复制
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

显示:

代码语言:javascript
复制
--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的命令
代码语言:javascript
复制
sudo apt-get update && sudo apt-get upgrade
2. 下载并安装Gazebo 9版本的软件包
代码语言:javascript
复制
sudo apt-get install gazebo9
  • Gazebo是一款3D机器人模拟器,可以用于测试和展示机器人模型。
  • 安装Gazebo需要先安装依赖的一些基础软件,apt命令会自动进行安装。
  • 安装完成后,可以在终端使用gazebo命令启动Gazebo模拟器。

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

  • Gazebo 11:
代码语言:javascript
复制
sudo apt-get install gazebo11
  • 最新版本Gazebo就是当前的版本就是当前版本Gazebo 12:
代码语言:javascript
复制
sudo apt-get install gazebo

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

3. 安装 Gazebo 9 的开发库。
代码语言:javascript
复制
sudo apt-get install libgazebo9-dev

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

二、 Gazebo与ROS连接

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

代码语言:javascript
复制
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) 的核心节点
代码语言:javascript
复制
 roscore

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

2. 启动 Gazebo 仿真环境
代码语言:javascript
复制
rosrun gazebo_ros gazebo

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

三、报错及解决方案

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

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

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

报错1

代码语言:javascript
复制
[ 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)
改错
代码语言:javascript
复制
 sudo gedit ~/.ignition/fuel/config.yaml

报错2

代码语言:javascript
复制
[ 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

临时:

代码语言:javascript
复制
export SVGA_VGPU10=0

永久:

代码语言:javascript
复制
echo "export SVGA_VGPU10=0" >> ~/.bashrc

STEP7 重新验证是否连接成功

代码语言:javascript
复制
roscore
代码语言:javascript
复制
 rosrun gazebo_ros gazebo

连接成功:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装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 重新验证是否连接成功
              • 连接成功:
              相关产品与服务
              云服务器
              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档