使用 ROS 安装 Gazebo

一、说明

        本文档提供了如何将不同版本的 ROS 与不同版本的 Gazebo 结合使用的指南。注意,有时候我们的仿真无法正常启动,或存在莫名奇妙的提示,在我们无所适从的时候,有必要坐下来先看看此文。

我们建议在安装ros_gz之前阅读它。

二、选择 ROS 和 Gazebo 的“正确”版本

        如果这是您第一次使用 ROS 和 Gazebo,并且您没有遵循特定说明或教程,我们建议您使用 ROS 和 Gazebo 的最新长期支持 (LTS) 版本,以获得最佳用户体验。ROS 和 Gazebo 版本的后续版本按字母顺序命名,每个 ROS 和 Gazebo 版本的文档都会表明它是否是 LTS 版本。值得注意的是,ROS 的每个版本都与每个 Tier 1 平台的特定版本配合得最好。第一层平台是用于 ROS 和 Gazebo 开发的平台/主机操作系统。所有这些信息都在REP-2000中概述 。

        总而言之,最好的用户体验是使用最新的 LTS 版本的 ROS 以及为该版本的 ROS 推荐的第 1 层平台/操作系统。如果您的主机操作系统与第 1 层操作系统不匹配,请考虑在虚拟机中使用第 1 层平台。这种方法的另一个好处是不修改主机操作系统并允许您回滚错误。

在撰写本文时,我们建议新用户安装:

  • Ubuntu Jammy 22.04
  • ROS 2 Humble Hawksbill
  • Gazebo Fortress

三、兼容 ROS 和 Gazebo 组合的总结

        该表包括当前支持的所有 ROS 和 Gazebo 版本。所有其他 ROS 和 Gazebo 版本均已终止生命周期,我们不建议继续使用它们。

GZ Citadel (LTS)GZ Fortress (LTS)GZ GardenGZ Harmonic (LTS)
ROS 2 Rolling
ROS 2 Iron
ROS 2 Humble (LTS)
ROS 2 Foxy (LTS)
ROS 1 Noetic (LTS)
  • ✅ - 推荐组合
  • ❌ - 不兼容/不可能。
  • ⚡ - 可能,但请谨慎使用。ROS 和 Gazebo 的这些组合可以协同工作,但需要付出一些努力。

四、使用旧版本的 ROS 安装 Gazebo

        如果您计划使用特定版本的 ROS 并且没有理由使用特定版本的 Gazebo,我们建议在安装时使用 ROS 存储库中提供的默认版本的 Gazebo ros_gz。以下命令将安装正确版本的 Gazebo 以及ros_gzLinux 系统上的 ROS 安装。您应该替换${ROS_DISTRO}为您的 ROS 发行版(例如humblerollingfoxy等)。

sudo apt-get install ros-${ROS_DISTRO}-ros-gz

        此命令将安装推荐用于 ROS 安装的 Gazebo 库。

本文档的其余部分提供了更多信息和其他替代安装途径。我们不建议新用户使用以下方法。

五、特定 ROS 和 Gazebo 配对

        Gazebo 是一个独立的项目,就像 Boost、Ogre 以及 ROS 使用的许多其他项目一样。通常,Gazebo 的最新版本会在每个 ROS 发布周期开始时提供(例如 ROS 2 Humble 的 Gazebo Fortress)。此版本的 Gazebo 被选为该 ROS 发行版的官方 Gazebo 版本,并在 ROS 发行版的生命周期内完全集成、测试和支持。

        请注意,所有 Gazebo 库都遵循语义版本控制理念以实现 ABI 稳定性。所有具有相同主编号(gz-sim7_7.0.0gz-sim7_7.1.0、 gz-sim7_7.0.1、 ...)的 Gazebo 版本都是二进制兼容的,因此可以与给定的 ROS 发行版互换。

5.1安装凉亭(gazebo)

        适用于 Ubuntu 的 Gazebo 软件包。

        在 Ubuntu 上安装 Gazebo 最简单的方法是使用二进制包。有两个主要存储库托管 Gazebo 模拟器和 Gazebo 库:一个是packages.ros.orgGazebo 存储库,另一个是名为 packages.osrfoundation.org. 截至撰写本文时,以下主机上提供了以下软件包:

  • ros.org 包

    • ROS1 Noetic:凉亭城堡
    • ROS2 Foxy:凉亭城堡
    • ROS2 银河:凉亭大厦
    • ROS2 Humble:凉亭堡垒
    • ROS2 铁:凉亭堡垒
    • ROS2滚动:Gazebo Fortress(经常变化)
  • packages.osrfoundation.org

    •  Gazebo Citadel  凉亭城堡

    •  Gazebo Edifice  凉亭大厦

    • Gazebo Fortress 凉亭堡垒

    • Gazebo Garden  凉亭花园

    • Gazebo Harmonic 凉亭谐波

        这意味着获取osrfoundation.orgGazebo 二进制包并不严格需要包含存储库,因为它可以从 ROS 存储库安装。

5.2 使用二进制安装安装 ROS 发行版的默认 Gazebo 版本

        对于需要运行特定版本 ROS 并希望开箱即用使用所有 Gazebo ROS 相关软件包的用户,建议采用以下方法:

        ROS 2 谦虚和 ROS 2 滚动

  • ROS 2 Humble 和 ROS 2 Rolling 正式支持 Gazebo Fortress,这意味着 Fortress 是推荐使用的 Gazebo 版本。
  • 要安装 ROS 和 Gazebo 的组合,首先安装 ROS,然后安装ros-humble-ros-gzros-rolling-ros-gz中的 一个packages.ros.org
  • 这些软件包将自动安装 Gazebo Fortress 和 ros-gz 桥接器。

        ROS 2 银河

  • ROS 2 Galicate 目前已结束生命周期,我们不建议使用此版本的 ROS。然而,如果你需要这个版本的 ROS,它官方支持也已结束生命的 Gazebo Edifice。
  • 要安装 Gazebo Edifice,只需ros-galactic-ros-gz 从packages.ros.org.
  • 该软件包将自动安装 Gazebo Edifice 和 ros-gz 桥。

        ROS 2 狐狸

  • ROS 2 Foxy 正式支持 Gazebo Citadel,这意味着 ROS 2 Foxy 推荐的 Gazebo 版本是 Citadel。
  • 要使用 Foxy 安装 Gazebo Citadel,只需ros-foxy-ros-gzpackages.ros.org.
  • 该软件包将自动安装 Gazebo Citadel 和 ros-gz 桥。

        ROS 1 意念

  • ROS Noetic 官方支持 Gazebo Citadel,这意味着 ROS Noetic 推荐的 Gazebo 版本是 Citadel。
  • 要使用 Noetic 安装 Gazebo Citadel,只需ros-noetic-ros-gzpackages.ros.org.
  • 该软件包将自动安装 Gazebo Citadel 和 ros-gz 桥。

六、在 ROS 2 中使用特定且不受支持的 Gazebo 版本

警告:仅当您绝对需要运行 ROS 发行版未正式支持的 Gazebo 版本时,才使用此方法。使用这种方法将无法使用依赖于 Gazebo 的官方 ROS Ubuntu 软件包。

我们不建议初学者使用这种方法!

        要选择与 ROS 发行版官方支持的版本不同的 Gazebo 版本,您必须使用非 ROS 官方 Gazebo 二进制包或 从源代码手动编译 ros_gz(此规则适用于每个使用 Gazebo 库的 ROS 包):

  • 使用非ROS官方的ros_gz二进制包: 为Gazebo和ROS的一些组合packages.osrfoundation.org提供二进制包,这些组合与官方支持的组合不同。ros_gz在某些情况下,非官方软件包可能会过时甚至有错误,它们的使用仅供高级用户使用。

  • 手动编译ros_gz: Gazebo和ROS的一些组合可以准备一起构建,但没有二进制包,既不在packages.ros.orgpackages.osrfoundation.org

        这两种方法可能还需要您修改 ROS 或 Gazebo 源代码以支持此编译。

6.1 Gazebo Harmonic 与 ROS 2 Iron 或 Rolling(谨慎使用)

        Gazebo Harmonic 可与 ROS 2 Iron 和托管在packages.osrfoundation.org. 这些包与包冲突ros-iron-ros-gz* (Iron 官方支持 Gazebo Fortress)。

        要安装二进制 Gazebo Harmonic/ROS 2 Iron 软件包:

  • 按照这些说明 从存储库安装 gz-harmonicpackages.osrfoundation.org 。
  • ros_gz从 apt 的非官方二进制包安装:
    • apt-get install ros-iron-ros-gzharmonic

        Gazebo Harmonic 可以与 ROS 2 Rolling 一起使用,但 ros_gz需要从源代码编译。

  • 按照这些说明 从存储库安装 gz-harmonicpackages.osrfoundation.org 。
  • 为 Gazebo Harmonic安装rosdep 规则
  • 按照说明ros_gz从 colcon 工作区中的源代码进行编译
    • ROS 2 滚动
      • 请务必使用export GZ_VERSION=harmonic

6.2 配有 ROS 2 Humble、铁或滚动的凉亭花园(谨慎使用)

        Gazebo Garden 可与 ROS 2 Humble 和非 ROS 官方二进制包一起使用packages.osrfoundation.org。这些包与包冲突ros-humble-ros-gz* (Humble 官方支持 Gazebo Fortress)。

        要安装二进制 Gazebo Garden/ROS 2 Humble 软件包:

  • 按照这些说明 从存储库安装 gz-gardenpackages.osrfoundation.org 。
  • ros_gz从 apt 的非官方二进制包安装:
    • apt-get install ros-humble-ros-gzgarden

        Gazebo Garden 可与 ROS 2 Iron 和托管在packages.osrfoundation.org. 这些包与包冲突ros-iron-ros-gz* (Iron 官方支持 Gazebo Fortress)。

        要安装二进制 Gazebo Garden/ROS 2 Iron 软件包:

  • 按照这些说明 从存储库安装 gz-gardenpackages.osrfoundation.org 。
  • ros_gz从 apt 的非官方二进制包安装:
    • apt-get install ros-iron-ros-gzgarden

        Gazebo Garden 可以与 ROS 2 Rolling 一起使用,但 ros_gz需要从源代码编译。

  • 按照这些说明 从存储库安装 gz-gardenpackages.osrfoundation.org 。
  • 为 Gazebo Garden安装rosdep 规则
  • 按照说明ros_gz从 colcon 工作区中的源代码进行编译
    • ROS 2 滚动
      • 请务必使用export GZ_VERSION=garden

ros_gz通过从源代码编译,Gazebo Fortress 可以与 ROS 2 Galicate 和 ROS 1 Noetic 一起使用 。

  • 按照这些说明 从存储库安装 gz-fortresspackages.osrfoundation.org 。
  • 按照说明ros_gz从 colcon 工作区中的源代码进行编译
    • ROS 2 银河
      • 请务必使用export GZ_VERSION=fortress
    • ROS1意念
      • 请务必使用export GZ_VERSION=fortress

ros_gzGazebo Edifice 目前已停止使用,不建议使用,但是,通过从源代码编译,Gazebo Edifice 可以与 ROS 2 Foxy、ROS 2 Rolling 和 ROS 1 Noetic 配合使用。

  • 按照说明 从存储库安装 gz-edificeosrfoundation.org
  • 按照说明ros_gz从 colcon 工作区中的源代码进行编译
    • ROS 2 狐狸
      • 请务必使用export GZ_VERSION=edifice
    • ROS 2 滚动
      • 请务必使用export GZ_VERSION=edifice
    • ROS1意念
      • 请务必使用export GZ_VERSION=edifice

6.5 使用最新的 Gazebo 源代码进行 Gazebo 发行版

        Gazebo 团队通常会向后移植并发布每个受支持的 Gazebo 版本和库的新版本(即:碰撞gz-sim 7.0.0到 gz-sim 7.1.0)。这些更新首先托管在packages.osrfoundation.org 存储库中。ROS 存储库osrfoundation.org经常从存储库同步,但版本可能不同。

        获取最新版本的 Gazebo 库和模拟器就像将osrfoundation.org存储库 与 ROS 存储库一起安装一样简单。更新应该完全兼容。

七、 常问问题

7.1 我根本没有使用 ROS,我应该使用哪个版本?

如果您不需要 ROS 支持,推荐的版本是可以 根据您的平台使用osrfoundation.org存储库安装的最新发布版本。

7.2 我想在 ROS 2 中使用 Gazebo Harmonic 或 Gazebo Garden。软件包在哪里?

  ros_gz我们在packages.osrfoundation.org存储库中为以下Gazebo和ROS 2配对提供了二进制包,但这些包不是官方ROS包,这意味着如果相应的ROS 2发行版中有重大更改,将会有一个简短的更新在通过更改重新构建这些包之前存在延迟。安装这些软件包还可能会导致与依赖 Gazebo-classic 的其他 ROS 软件包发生冲突。

凉亭花园凉亭谐波 (LTS)
ROS 2 铁ros-iron-ros-gzgardenros-iron-ros-gzharmonic
ROS 2 谦虚 (LTS)ros-humble-ros-gzgarden

7.3 在哪里可以找到每个 Gazebo 版本实现的不同功能?

        最好的地方是 Gazebo 网页,其中包含 每个 Gazebo 发行版中可用的主要功能的列表。

         Gazebo 社区网站上会定期发布一些注释 ,当新版本发布时,也会在那里发布特殊帖子和视频:请参阅 Garden 或 Fortress的示例 。

此外,当浏览不同版本的 Gazebo 时,有一个名为“功能比较”的菜单项,它提供与 Gazebo-Classic 的功能的比较。在Gazebo 文档页面的右上角,可以选择要比较的特定 Gazebo 版本。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JSP基本表单和Request对象使用例子

表单的jsp&#xff1b; <%page contentType"text/html;charsetgbk" pageEncoding"UTF-8"%> <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><titl…

golang学习笔记——接口interfaces

文章目录 Go 语言接口例子空接口空接口的定义空接口的应用空接口作为函数的参数空接口作为map的值 类型断言接口值 类型断言例子001类型断言例子002 Go 语言接口 接口&#xff08;interface&#xff09;定义了一个对象的行为规范&#xff0c;只定义规范不实现&#xff0c;由具…

数据库大事记

数据库分类分类方法为&#xff1a;按数据模型分类、按业务类型分类、按部署方式分类、按存储介质分类。 按数据模型分类 按业务类型分类 按部署方式分类 按存储介质分类 喜欢点赞收藏&#xff0c;下期再见。

【Redux】Redux 基本使用

1. Redux 快速上手 Redux 是 React 最常用的集中状态管理工具&#xff0c;类似于Vue中的Pinia&#xff08;Vuex&#xff09;&#xff0c;可以独立于框架运行。 <button id"decrement">-</button> <span id"count">0</span> <…

多线程Thread(初阶一:认识线程)

目录 一、引用线程的原因 二、线程的概念 三、进程和线程的区别 四、多线程编程 一、引用线程的原因 多任务操作系统&#xff0c;希望系统能同时运行多个任务。所以会涉及到进程&#xff0c;需要对进程进行管理、调度等。 而单任务操作系统&#xff0c;就完全不涉及到进程…

YOLOv8-Seg改进策略:全新的聚焦式线性注意力模块Focused Linear Attention | ICCV2023

🚀🚀🚀本文改进:深入分析了现有线性注意力方法的缺陷,并提出了一个全新的聚焦的线性注意力模块(Focused Linear Attention),同时具有高效性和很强的模型表达能力。 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新,…

深度学习系列53:mmdetection上手

1. 安装 使用openmim安装&#xff1a; pip install -U openmim mim install "mmengine>0.7.0" mim install "mmcv>2.0.0rc4"2. 测试案例 下载代码和模型&#xff1a; git clone https://github.com/open-mmlab/mmdetection.git mkdir ./checkpoi…

2023年【熔化焊接与热切割】考试试卷及熔化焊接与热切割试题及解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 熔化焊接与热切割考试试卷考前必练&#xff01;安全生产模拟考试一点通每个月更新熔化焊接与热切割试题及解析题目及答案&#xff01;多做几遍&#xff0c;其实通过熔化焊接与热切割模拟考试很简单。 1、【单选题】 对…

React+后端实现导出Excle表格的功能

最近在做一个基于Reactantd前端框架的Excel导出功能&#xff0c;我主要在后端做了处理&#xff0c;这个功能完成后&#xff0c;便总结成一篇技术分享文章&#xff0c;感兴趣的小伙伴可以参考该分享来做导出excle表格功能&#xff0c;以下步骤同样适用于vue框架&#xff0c;或者…

“轻松实现文件夹批量重命名:使用顺序编号批量改名“

你是否曾经遇到过需要批量重命名文件夹&#xff0c;却因为繁琐的手动操作而感到困扰&#xff1f;现在&#xff0c;我们为你带来了一款全新的工具——轻松实现文件夹批量重命名&#xff0c;使用顺序编号批量改名。这款工具将帮助你轻松解决文件夹重命名的问题&#xff0c;提高工…

SpringSecurity5|12.实现RememberMe 及 实现原理分析

security/day08 这个功能大家还熟悉么&#xff1f;我们在登录网站的时候&#xff0c;除了让你输入用户名和密码&#xff0c;还会有个勾选框&#xff1a; 记住我&#xff01;&#xff01;&#xff01;不是让大家记住我哈。 值得一提的是&#xff0c;Spring Security 也提供了这个…

2023年汉字小达人市级比赛在线模拟题更新:40分钟150题完整对标

今天是2023年11月19日&#xff0c;距离11月30日的汉字小达人市级比赛还有11天。许多孩子正在利用难得的周末抓紧练习和备赛。 结合一些孩子的反馈和需求&#xff0c;我把150题的在线模拟题做了更新&#xff0c;增加了前面的个人信息填写的部分&#xff0c;并且把整个试卷的完成…

python自动化标注工具+自定义目标P图替换+深度学习大模型(代码+教程+告别手动标注)

省流建议 本文针对以下需求&#xff1a; 想自动化标注一些目标不再想使用yolo想在目标检测/语意分割有所建树计算机视觉项目想玩一玩大模型了解自动化工具了解最前沿模型自定义目标P图替换… 确定好需求&#xff0c;那么我们发车&#xff01; 实现功能与结果 该模型将首先…

python——第九天

今日目标&#xff1a; 偏函数 递归 字符串对象 切片 常见排序和查找 偏函数&#xff1a; python中存在一种函数的特殊使用&#xff0c;称为偏函数 如果在调用某个函数时&#xff0c;恰好某一个或者&#xff0c;某一些参数都是一个固定值&#xff08;正好不是默认值&#xff09;…

Linux常用命令——bye命令

在线Linux命令查询工具 bye 命令用于中断FTP连线并结束程序。。 补充说明 bye命令在ftp模式下&#xff0c;输入bye即可中断目前的连线作业&#xff0c;并结束ftp的执行。 语法 bye实例 bye在线Linux命令查询工具

从0开始学习JavaScript--JavaScript 数字与日期

JavaScript中的数字和日期是处理数值计算和时间相关任务的核心。本文将深入研究JavaScript中数字的表示、常见运算&#xff0c;以及日期对象的创建、格式化等操作&#xff0c;并通过丰富的示例代码&#xff0c;可以更全面地了解和应用这些概念。 JavaScript数字基础 JavaScri…

【RocketMq系列-01】RocketMq安装和基本概念

RocketMq系列整体栏目 内容链接地址【一】RocketMq安装和基本概念https://zhenghuisheng.blog.csdn.net/article/details/134486709 RocketMq安装和基本概念 一&#xff0c;RocketMq安装和基本概念1&#xff0c;RocketMq基本安装(本地安装)2&#xff0c;Rocketmq的核心概念2.1&…

Linux使用ifconifg命令,没有显示ens33

Linux使用ifconifg命令&#xff0c;没有显示ens33 1.问题2.步骤2.1 查看虚拟机的组件是否启动了2.2 修改网络配置文件 ONBOOT修改为yes2.3 重启网络2.4 修改网络服务配置 3.解决 1.问题 打开虚拟机准备使用xshell连接时发现连接失败&#xff0c;在机器上查看ip发现ens33不现实…

Mysql主从搭建

Mysql主从搭建 1.Mysql下载1.1 查看操作系统2.2 下载mysql安装包 2.Mysql安装2.1 解压2.2 目录重命名2.3 创建data&#xff0c;存储文件2.4 创建用户组2.5 授权用户2.6 配置环境变量2.7 编辑my.cnf2.8 创建相关目录和文件2.9 初始化数据库2.10 复制mysql.server到/etc/init.d/下…

安卓环境搭建及运行安卓应用

1 jdk安装 安卓项目也是java开发的&#xff0c;运行在虚拟器上&#xff0c;安装jdk及运行的时候&#xff0c;就会带上虚拟器 jdk前面已经讲过&#xff0c;不在讲解 2 下载安装androj studio https://developer.android.google.cn/studio?hlzh-cn 下载下来&#xff0c;双击…
最新文章