Skip to content

Jetty 版本发布说明

Gazebo Jetty 图片

Gazebo 团队很高兴地宣布 Gazebo 第 10 个主版本发布,代号 Jetty!Jetty 是一个长期支持(LTS)版本,拥有更长的支持周期——确切地说,支持到 2031 年 5 月。

以下是 Gazebo Jetty 所有新功能的概览:

我们创建了一个逼真的仓库环境,用于展示 Jetty 的最新功能。这个免费、可下载的演示包含货架和一辆用于装卸货物的自主叉车,并附带一个 Open-RMF 演示。

jetty_demo_warehouse jetty_packing_station jetty_loading_dock jetty_upstairs

在 Ionic 之前,Gazebo 一直使用 ZeroMQ(0MQ)作为主要的消息传输协议。Gazebo 现在支持 Zenoh 作为替代的传输实现,提供更好的发现机制、互操作性和性能。启用方式:设置环境变量 export GZ_TRANSPORT_IMPLEMENTATION=zenoh。这使得 Gazebo 能够利用 Zenoh 的特性,更无缝地与 ROS 2 Jazzy 以及其他使用 Zenoh 的系统集成。

根据社区反馈,我们新增了一篇完整教程,介绍如何使用 Gazebo Jetty 和 Stable Baselines3 Python 库 进行强化学习。教程将带领你训练强化学习控制器,使安装在机器人小车上的倒立摆保持平衡。Stable Baselines3 只是起点,有经验的开发者可以在此基础上将其他强化学习框架集成到 Gazebo 中。

经过训练可自行保持平衡的经典 cartpole 演示

ROS 社区成员 构建了一套标准仿真接口,旨在提高机器人代码在不同仿真器之间的可移植性。这套标准接口让 ROS 开发者能够根据开发需求,快速便捷地在不同仿真器之间切换。

使用 Simulation Interfaces 的传送带测试装置简单演示

占用栅格(Occupancy Grid)是机器人用于路径规划的简单 2D 地图。Nav2 等开源导航框架利用这些地图为机器人实现安全导航。现在可以通过 /scan_image 话题并运行以下命令,轻松从 Gazebo 导出占用栅格地图: gz topic -t /start_exploration -m gz.msgs.Boolean -p 'data: true'

新的占用栅格导出功能

以前,SDFormat 中的 inertial/@auto 属性要求指定物体密度才能自动计算惯性参数。现在可以在 SDFormat 中直接指定物体质量,Gazebo 会自动计算密度和惯性参数!

从左到右:使用默认、自动、手动计算的惯量的电钻

Qt 是 Gazebo 使用的跨平台 GUI 子系统。我们已升级到最新版本 Qt6——Qt 5 已于 2025 年 5 月 26 日停止支持,因此升级势在必行。此次升级涉及整个 Gazebo 项目中的数百个文件,工作量不小。Gazebo 插件开发者需要将 GUI 插件升级到 Qt6 以保持兼容性。 我们准备了 一份 Gazebo 插件 Qt 迁移指南,帮助开发者更新插件。

Qt6 中的界面可能略有不同

我们为 gz-sim 新增了 LookupWheelSlip 系统,它使用 8 位 RGB 查找图来动态调整材质的摩擦参数。该功能可将纹理图像中的特定颜色映射到特定的摩擦值。想在仿真地面添加油渍?只需在纹理图像上绘制油渍区域,并设置所需的摩擦值即可。

动态调整车轮打滑 / 摩擦力

我们改进了 gz 工具的工作方式,使调试应用程序更容易,同时改善了对 Windows 和 MacOS 的跨平台支持。为此,我们不再使用基于 Ruby 的 CLI 加载库,改回加载独立应用程序。

我们改进了 Gazebo 从 Fuel(我们的在线模型仓库) 下载模型的方式。模型现在可以在后台并行下载,使 Gazebo 仿真启动更快,资源下载更高效。

包名中包含主版本号是为了允许两个不同版本的 Gazebo 并排安装。虽然这对某些用户有帮助,但给必须定期更新这些版本号的开发者带来了不少麻烦。我们已取消这种做法,使 Gazebo 更易于维护,也方便包开发者使用。

我们已将 gz 包从传统的 Bazel workspace 设置迁移到新的 Bazel 模块系统(Bzlmod)。作为这项工作的一部分,DARTSim、Bullet、FreeImage、Assimp 等关键第三方依赖已打包并发布到 Bazel Central Registry(BCR)。所有 Jetty 和 Ionic 版本的库均已上传到 BCR。

使用 gz-transport 的 Bazel 客户端程序演示

特别感谢在 Jetty 测试与教程派对(Jetty Test and Tutorial Party)期间通过审查教程帮助完成此次 Gazebo 发布的社区成员。我们的 Jetty 测试与教程派对 成果颇为可观,很高兴看到这么多新贡献者!这次教程派对举办得非常成功——有 25 名参与者帮助测试 Jetty 版本,使我们能够:

  • 关闭 388 个 Issue,占我们 Issue 总数的 68%
    • 关闭 148 个 Ubuntu 工单中的 148 个(100%)
    • 关闭 83 个 MacOS 工单中的 65 个(44%)
    • 关闭 147 个 Windows 工单中的 47 个(32%)
    • 关闭 128 个全平台工单中的 128 个(100%)
  • 创建了 74 个 PR 来修复发现的问题!

T&T 派对的前二十名贡献者是:

名次用户积分
1akky20 akky20719.2
2Creator-1705 Creator-1705410.6
3nikodemj9 nikodemj9310.0
4saiaravind19 saiaravind19273.6
5jmackay2 jmackay2269.0
6Physic69 Physic69234.0
7srmainwaring srmainwaring187.2
8jasmeet0915 jasmeet0915165.6
9avanmalleghem avanmalleghem114.0
10Narashima1808 Narashima1808111.0
11AronLapp AronLapp100.0
12matosinho matosinho84.4
13mukul2020 mukul202079.2
14SuperGops7 SuperGops776.0
15pratik-adhikari pratik-adhikari75.0
16mohamedsayed18 mohamedsayed1866.0
17shreya-ramesh shreya-ramesh53.0
18CursedRock17 CursedRock1745.0
19s0um0r0y s0um0r0y40.0
20chen-harrison chen-harrison40.0

我们还要感谢所有为 Jetty 做出贡献的人: