Ubuntu 22 安装 ROS2 Humble 及 Gazebo
1 ROS2 Humble 介绍
2 Gazebo 介绍
2.1 概述
Gazebo 是三维物理仿真平台,强调的是创建一个虚拟的仿真环境。只能在 Linux 系统下使用。
Gazebo 是一组开源软件库,旨在简化高性能应用程序的开发。Gazebo 的主要受众是机器人开发人员、设计师和教育工作者。但是,Gazebo 的结构可以满足许多不同的用例。Gazebo 中的每个库都具有最低限度的依赖性,因此它们可用于从解决数学变换到视频编码,再到模拟和流程管理等各种任务。只需为您的应用程序选择所需的库,而无需投入整个生态系统。
Gazebo 是一款开源 2D/3D 机器人模拟器,于 2002 年开始开发。2017 年,开发分为两个版本,称为'Gazebo'(原始单片架构)和'Ignition'(已转变为松散耦合库的现代化集合)。在 2022 年因使用'Ignition'名称而出现商标障碍后,Open Robotics 借此机会更改了版本名称,将原始分支命名为'Gazebo Classic',将新的现代分支命名为'Gazebo'。
Gazebo Classic 集成了 ODE 物理引擎、OpenGL 渲染以及传感器模拟和执行器控制的支持代码。
Gazebo Classic 可以使用多种高性能物理引擎,例如 ODE、Bullet 等(默认为 ODE)。它提供包括高质量照明、阴影和纹理在内的逼真环境渲染。它可以模拟'看到'模拟环境的传感器,例如激光测距仪、相机(包括广角)、Kinect 风格的传感器等。
对于 3D 渲染,Gazebo Classic 使用 OGRE 引擎。
2.2 发展历程
- 2002 年~2011 年,Gazebo 是 Player 项目的一部分。
- 2011 年,Gazebo 成为 Willow Garage 支持的独立项目。
- 2012 年,开源机器人基金会 (OSRF) 成为 Gazebo 项目的管理者。OSRF 于 2018 年更名为 Open Robotics。
- 2020 年 1 月,Gazebo 11 发布,这是 Gazebo Classic 的最新也是最后一个主要版本,计划于 2025 年 1 月终止生命周期。Gazebo 之前发布的所有版本也都获得了长期支持,随着 Gazebo 11.0.0 的发布,Gazebo 9 和 10 也发布了小更新。
- Gazebo 11 发布后,Open Robotics 将重点转向开发 Ignition,这是一个'旨在简化高性能应用程序开发的开源软件库集合',目标受众是机器人开发人员、设计师和教育工作者。
- 2019 年 2 月,Ignition 的第一个版本发布。
- 2022 年 4 月,在一场商标纠纷之后,Ignition 品牌名称退役,并恢复为 Gazebo。Gazebo 的网站将最初的独立 Gazebo 模拟器称为 Gazebo Classic,以区别于 Gazebo。Open Robotics 提到 Gazebo 的代码需要进行重大的现代化改造,同时有机会从单片架构转变为松散耦合库的集合。
2.3 Gazebo 开发遵循的核心原则
- 通用性:Gazebo 并不专注于某一类型的机器人。其功能旨在尽可能适用于机器人领域的多种用例。
- 稳定性:定期向社区提供稳定版本。稳定版本的后续改进力求保持 API、ABI 和行为的向后兼容性。重大更改将在即将发布的版本中发布。
- 更新:只要有可能,就会将新的向后兼容功能添加到稳定版本中。这样,用户就可以利用新功能,而无需升级到更高版本,并且可以推迟升级工作,直到需要进行重大更改为止。
- 易用性:默认行为应该对初学者友好。例如,默认情况下,Gazebo 会开始运行图形界面。高级用户可以无头运行,但需要额外的配置才能实现此行为。
- 模块化:Gazebo 软件包尽可能独立,以便它们可用于 Gazebo 之外的各种项目。例如,Gazebo Rendering 的用户不需要安装、编译,甚至不需要了解 Gazebo Physics。
- 可扩展性:用户无需分叉核心库或从源代码编译即可添加功能。例如,可以将新的渲染引擎作为插件加载。
- 灵活性:用户可以在合理的情况下选择启用或停用某些功能。例如,物理学作为插件集成到 Gazebo 中,因此用户可以根据需要加载不带物理学的模拟,或者加载带其他物理学的模拟。
- 可维护性:在开发过程中,我们会考虑代码的长期可维护性。为此,项目遵循严格的测试、文档、代码检查和样式标准。
- 可移植性:Gazebo 支持所有主流操作系统:Linux、macOS 和 Windows。这会影响依赖项的选择方式和功能的实现方式。


