ROS 2 的 Humble Hawksbill 和 Foxy Fitzroy 是两个不同的发行版,分别发布于不同的时间,针对不同的用户需求和硬件支持。以下是它们的主要区别:
1. 发布时间和支持周期
-
Foxy Fitzroy:
- 发布时间:2020 年 6 月。
- 支持周期:Foxy 是一个 标准支持版本(Standard Support),官方支持到 2023 年 5 月。之后不再提供官方更新或 bug 修复。
- 适合场景:适合已经基于 Foxy 开发的项目,或者不需要最新功能的用户。
-
Humble Hawksbill:
- 发布时间:2022 年 5 月。
- 支持周期:Humble 是一个 长期支持版本(LTS, Long-Term Support),官方支持到 2027 年 5 月。
- 适合场景:适合新项目或需要长期支持的用户。
2. 支持的平台
-
Foxy Fitzroy:
- 支持 Ubuntu 20.04(Focal Fossa)。
- 支持 Windows 10。
- 支持 macOS(实验性支持)。
-
Humble Hawksbill:
- 支持 Ubuntu 22.04(Jammy Jellyfish)。
- 支持 Windows 10 和 Windows 11。
- 支持 macOS(实验性支持)。
3. 功能改进和新特性
Humble 在 Foxy 的基础上引入了许多新特性和改进,包括:
核心功能改进
-
更高效的 DDS 实现:
- Humble 默认使用 CycloneDDS 作为 DDS 中间件,性能更好。
- Foxy 默认使用 Fast DDS(原名 FastRTPS)。
-
Type Description 支持:
- Humble 引入了 Type Description 功能,可以更好地描述消息类型,支持动态类型检查。
-
改进的 QoS 配置:
- Humble 提供了更灵活的 QoS(Quality of Service)配置选项,适合复杂的网络环境。
工具链改进
-
rclpy 和 rclcpp 的改进:
- Humble 对 ROS 2 的 Python 和 C++ 客户端库进行了优化,提升了性能和易用性。
-
Launch 系统改进:
- Humble 的 Launch 系统支持更多功能,例如条件执行、更好的错误处理等。
-
TF2 改进:
- Humble 对 TF2 库进行了优化,支持更高效的时间管理和坐标变换。
新包和工具
-
Navigation2 改进:
- Humble 的 Navigation2 包(用于机器人导航)增加了对新算法的支持,并修复了 Foxy 中的一些问题。
-
ROS 2 控制(ros2_control):
- Humble 引入了更多硬件接口和控制器支持,适合更复杂的机器人系统。
4. 兼容性
-
Foxy:
- 由于发布时间较早,某些新功能(如 Type Description)在 Foxy 中不可用。
- 如果需要与旧版 ROS 1 桥接,Foxy 的
ros1_bridge
支持较好。
-
Humble:
- Humble 更注重与未来版本的兼容性,适合长期项目。
- 如果需要使用最新的硬件(如 Ubuntu 22.04 或新传感器驱动),Humble 是更好的选择。
5. 社区和生态
-
Foxy:
- 由于已经过了官方支持周期,社区支持逐渐减少。
- 适合已经成熟的项目,不需要频繁更新。
-
Humble:
- 作为 LTS 版本,Humble 拥有更活跃的社区支持和更丰富的第三方包。
- 适合新项目或需要长期维护的项目。
6. 如何选择?
- 如果你正在启动一个新项目,或者需要长期支持,建议选择 Humble Hawksbill。
- 如果你的项目已经基于 Foxy Fitzroy 开发,并且不需要新功能,可以继续使用 Foxy,但需要注意官方支持已结束。
总结
特性 | Foxy Fitzroy | Humble Hawksbill |
---|---|---|
发布时间 | 2020 年 6 月 | 2022 年 5 月 |
支持周期 | 2023 年 5 月结束 | 2027 年 5 月结束(LTS) |
默认 DDS | Fast DDS | CycloneDDS |
支持的 Ubuntu 版本 | Ubuntu 20.04 | Ubuntu 22.04 |
新功能 | 较少 | Type Description、改进 QoS |
适合场景 | 已有项目或不需要新功能 | 新项目或需要长期支持 |