Jazzy Jalisco (爵士乐)

Jazzy Jalisco 以下是 Jazzy Jalisco 自上次发布以来的重要变化和功能亮点。如需了解自 Iron 发布以来的所有变化,请参阅 长篇更新日志

支持的平台

Jazzy Jalisco 主要支持以下平台:

1 级平台:

  • Ubuntu 24.04(贵族): amd64arm64

  • Windows 10 (Visual Studio 2019): amd64

二级平台:

  • RHEL 9: amd64

三级平台:

  • macOS amd64

  • Debian 书虫 amd64

有关 RMW 实现、编译器/解释器版本和系统依赖性版本的更多信息,请参见 REP 2000.

安装

安装 Jazzy Jalisco

改变 ROS 2 和 Gazebo 的集成方式

从 Jazzy Jalisco 开始,我们正在简化 ROS 2 和 凉亭 整合。每发布一个 ROS 2 版本,都会推荐一个与之配套的、受支持的 Gazebo 版本。对于 Jazzy Jalisco,推荐的 Gazebo 版本是 Harmonic。

为了让 ROS 2 软件包更容易使用 Gazebo 软件包,现在有了 gz_*_vendor 包。这些软件包是

ROS 2 软件包可以通过在 package.xml例如

<;取决>;gz_math_vendor</取决>;

然后在 CMakeLists.txt例如

查找软件包(gz_math_vendor 要求)
查找软件包(gz-算术)

添加可执行(我的可执行 来源/exe.cpp)
目标链接库(我的可执行 gz-算术::核心)

备注

在 Jazzy Jalisco 中仍然可以使用其他版本的 Gazebo。但这些版本将无法与 ROS 2 进行很好的测试或集成。 请参见 https://gazebosim.org/docs/harmonic/ros_installation 了解更多信息。

ROS 2 发布的新功能

通用接口

新的VelocityStamped信息

添加了一个新信息,其中包含定义速度和转换速度所需的所有字段。

参见 https://github.com/ros2/common_interfaces/pull/240 了解更多详情。

在 Marker.msg 中添加 ARROW_STRIP

添加了新的标记类型、 箭头,转到 Marker.msg。

参见 https://github.com/ros2/common_interfaces/pull/242 了解更多详情。

图像传输

支持懒人订阅

参见 https://github.com/ros-perception/image_common/issues/272 了解更多详情。

公开设置回调组的选项

参见 https://github.com/ros-perception/image_common/issues/274 了解更多详情。

启用允许列表

添加了参数,用户可以有选择性地禁用 图像传输 插件。

参见 https://github.com/ros-perception/image_common/issues/264 了解更多详情。

已在 Republish 中添加 rclcpp 组件

用户现在可以启动 图像传输 重新发布节点作为 rclcpp_component.

参见 https://github.com/ros-perception/image_common/issues/275 了解更多详情。

消息过滤器

支持 TypeAdapters

允许用户在消息筛选器中使用类型适配。

参见 https://github.com/ros2/message_filters/pull/96 了解更多信息。

rcl

添加获取类型描述服务

执行 ~/get_type_description 服务,允许外部用户获取节点提供的每种类型的描述。每个节点根据 REP 2016.

参见 https://github.com/ros2/rcl/pull/1052 了解更多详情。

rclcpp

服务类型支持助手

新型服务支持助手 rclcpp::get_service_typesupport_handle 被添加到提取服务类型支持句柄中。

参见 https://github.com/ros2/rclcpp/pull/2209 了解更多详情。

rclpy

参数事件处理程序

新班级 参数事件处理程序 允许我们通过参数事件监控和响应参数变化。

参见 https://github.com/ros2/rclpy/pull/1135 了解更多详情。

ros2cli

添加了一个 --日志文件名 命令行参数

现在可以使用 --日志文件名 命令行参数,用于指定日志文件名前缀。

玫瑰2 运行 演示节点 话匣子 --ros-args --日志文件名 文件名

参见 https://github.com/ros2/ros2cli/issues/856 了解更多信息。

在订阅选项中添加了 QoS

中添加了一个用户可设置的 QoS 参数。 主题统计选项,从而使统计数据具有不同于订阅本身的 QoS。

参见 https://github.com/ros2/rclcpp/pull/2323 了解更多详情。

添加客户和服务计数

现在可以获取服务创建的客户数量。

ros2action

类型 支持的子命令

现在可以使用 类型 子命令来检查操作类型。

玫瑰2 行动 类型 /fibonacci action_tutorials_interfaces/action/Fibonacci

参见 https://github.com/ros2/ros2cli/pull/894 了解更多信息。

rosbag2

服务记录和回放

现在可以使用 ros2bag 命令行界面。

该功能基于 服务自省从 Iron Irwini 开始就有了。 服务记录和显示 增加了将服务数据记录到包文件中的功能。以及 服务回放 可播放袋文件中的服务数据。

记录所有服务数据:

玫瑰2 背包 记录 --所有服务

记录所有服务和所有主题数据:

玫瑰2 背包 记录 --全部

播放文件袋中的服务数据:

玫瑰2 背包 游戏 --发布服务请求 袋子路径

参见 设计文件 了解更多信息。

新的过滤器模式

现在可以按主题类型进行筛选。

玫瑰2 背包 记录 --主题类型 传感器_msgs/msg/图像 sensor_msgs/msg/CameraInfo
玫瑰2 背包 记录 --主题类型 传感器_msgs/msg/图像

查看更多详情 https://github.com/ros2/rosbag2/pull/1577https://github.com/ros2/rosbag2/pull/1582.

播放器和录制器现已作为 rclcpp 组件公开

这样,在数据记录或回复过程中使用进程内通信时,就可以实现 "零拷贝"。在处理高带宽数据流时,这可以大大减少记录或回复过程中的 CPU 负载,并有助于避免传输层的数据丢失。它还提供了使用 YAML 配置文件的功能,用于 rosbag2_transport::Playerrosbag2_transport::Recorder 可组合节点。

参见 https://github.com/ros2/rosbag2/tree/jazzy?tab=readme-ov-file#using-with-composition 了解更多详情。

添加了禁用录音机键盘控制的选项

参见 https://github.com/ros2/rosbag2/pull/1607 了解更多详情。

使用中间件发送和接收来自 消息信息 记录期间

哪里有 rosbag2 现在使用中间件提供的发送和接收时间戳。这些时间戳更能说明数据实际发送和接收的时间。请注意,目前只有 MCAP 文件(默认)才支持将时间戳保存到文件袋中。

参见 https://github.com/ros2/rosbag2/pull/1531 了解更多详情。

在记录选项中添加了压缩线程优先级

现在可以指定执行压缩的线程的优先级。

参见 https://github.com/ros2/rosbag2/pull/1457 了解更多详情。

增加了按时间分割已存在的 ros2 袋的功能

已添加 开始时间结束时间存储选项 以排除不在 [开始时间;结束时间]玫瑰2 背包 转化 操作。

参见 https://github.com/ros2/rosbag2/pull/1455 了解更多详情。

直接在包文件中存储序列化元数据

rosbag2 一直将元数据存储在 metadata.yaml 文件相关联。现在,元数据也存储在每个包文件中,打开文件时存储一次,关闭写入的包文件时存储第二次。这样,文件袋文件就可以自成一体,在使用时无需使用 metadata.yaml 或第三方应用程序中的文件。 玫瑰2 背包 重新索引 仍可用于恢复 metadata.yaml 文件。

在元数据中存储 ROS_DISTRO 名称

参见 https://github.com/ros2/rosbag2/pull/1241 了解更多详情。

为 Python 绑定添加了自省 QoS 方法

现在可以从 Python 绑定中查看 QoS 设置。

参见 https://github.com/ros2/rosbag2/pull/1648 了解更多详情。

rosidl

已添加接口以支持关键注释

"(《世界人权宣言》) 密钥 注解允许指示数据成员是键的一部分,键字段可以是零个或多个,并可应用于各种类型的结构字段。

参见 https://github.com/ros2/rosidl/pull/796https://github.com/ros2/rosidl_typesupport_fastrtps/pull/116 了解更多详情。

rviz2

为 TF 显示添加了 regex 过滤器字段

/tf 在 RViz 中很难正确显示它们,尤其是当帧重叠时。通常的解决方法是在 TF 显示屏的 "帧 "字段中启用或禁用所需的帧。现在可以使用正则表达式过滤帧。

参见 https://github.com/ros2/rviz/pull/1032 了解更多详情。

将测量的订阅频率附加到主题状态

可以在主题状态部件中将 Hz 可视化。

参见 https://github.com/ros2/rviz/issues/1113 了解更多详情。

重置功能

可以使用新服务或键盘快捷键重置时间 R.

参见 https://github.com/ros2/rviz/issues/1109https://github.com/ros2/rviz/issues/1088 了解更多详情。

添加了对 point_cloud_transport 的支持

可以使用 点云传输 包装

参见 https://github.com/ros2/rviz/pull/1008 了解更多详情。

与 ROS 的 RViz 功能对等

可以使用与 ROS 1 版本相同的插件。

  • 深度云

  • 加速冲压

  • 扭转印花

  • 扳手盖章

  • 努力

相机信息显示

可以在 3D 场景中将 CameraInfo 信息可视化。

参见 https://github.com/ros2/rviz/pull/1166 了解更多详情。

rcpputils

已添加 tl_expected

std::expected 是 C++23 的功能,ROS 2 还不支持该功能。 不过,可以使用 tl::expected 从 rcpputils 移植的实现。

参见 https://github.com/ros2/rcpputils/pull/185 了解更多详情。

rcutils

在日志格式中添加人可读日期

在使用控制台日志时,现在可以通过使用 {日期_时间(含毫秒)}{日期_时间(含毫秒)}{日期_时间(含毫秒)}. 令牌中的 rcutils_console_output_format 环境变量。

参见 https://github.com/ros2/rcutils/pull/441 了解更多详情。

铁版本发布后的变化

通用接口

已为 geometry_msgs/Polygon 和 PolygonStamped 添加 ID

多边形通常用来表示特定的对象,但如果没有任何特定的标识,目前很难纠正。此功能增加了一个 ID 字段,以消除多边形的歧义。

参见 https://github.com/ros2/common_interfaces/pull/232 了解更多详情。

几何2

删除了过时的标头

在谦卑中,标题 tf2_bullet/tf2_bullet.h, tf2_eigen/tf2_eigen.h, tf2_geometry_msgs/tf2_geometry_msgs.h, tf2_kdl/tf2_kdl.h, tf2_sensor_msgs/tf2_sensor_msgs.h 已被弃用,取而代之的是 tf2_bullet/tf2_bullet.hpp, tf2_eigen/tf2_eigen.hpp, tf2_geometry_msgs/tf2_geometry_msgs.hpp, tf2_kdl/tf2_kdl.hpp, tf2_sensor_msgs/tf2_sensor_msgs.hpp 在 Jazzy 中 tf2_bullet/tf2_bullet.h, tf2_eigen/tf2_eigen.h, tf2_geometry_msgs/tf2_geometry_msgs.h, tf2_kdl/tf2_kdl.h, tf2_sensor_msgs/tf2_sensor_msgs.h 完全移除。

更改了 等待转换同步wait_for_transform_full_async

此前 等待转换同步wait_for_transform_full_async缓冲器 类返回一个包含 true 或 false 的 future 在 Jazzy 中,future 将包含正在等待的变换的信息。

已启用 扭转插补器

包含新的应用程序接口,用于查询参照系中运动帧的速度。

参见 https://github.com/ros2/geometry2/pull/646 了解更多信息。

rcl

调用计时器时的实际和预期呼叫时间

新的定时器应用程序接口 rcl_timer_call_with_info 被添加,以收集定时器被调用时的实际和预期调用时间。这样,用户就能在定时器预计被调用时和实际被调用时获得定时器信息。

参见 https://github.com/ros2/rcl/pull/1113 了解更多详情。

在超时计算和虚假唤醒方面改进了 rcl_wait。

添加了对时钟已启用时间覆盖的定时器的特殊处理。对于这些计时器,我们不应计算超时,因为等待集会被相关的保护条件唤醒。

参见 https://github.com/ros2/rcl/issues/1146 了解更多详情。

rclcpp

修复了数据竞赛条件

修正了执行器中的数据竞赛条件。

参见 https://github.com/ros2/rclcpp/issues/2500 了解更多详情。

利用 rclcpp::WaitSet 作为执行人的一部分

增加 rcl_wait_set 通过使默认的单线程/多线程执行器在实体集合重建方面像静态单线程执行器一样工作,可以实现创建和删除。

参见 https://github.com/ros2/rclcpp/pull/2142 了解更多详情。

由于这一更改,执行器中的回调不再按一致的顺序排列,即使在同一实体中也是如此。

参见 https://github.com/ros2/rclcpp/issues/2532 了解更多详情。

rclcpp::get_typesupport_handle 已被弃用

"(《世界人权宣言》) rclcpp::get_typesupport_handle 的提取信息类型支持句柄已被弃用,并将在未来的版本中删除。取而代之的是 rclcpp::get_message_typesupport_handle 应使用

参见 https://github.com/ros2/rclcpp/pull/2209 了解更多详情。

已停用 rclcpp/qos_event.hpp 删除了页眉

在 Iron 中,标题 rclcpp/qos_event.hpp 已被弃用,取而代之的是 rclcpp/event_handler.hpp.在 Jazzy 中 rclcpp/qos_event.hpp 页眉已完全移除。

删除了过时的订阅回调签名

回到汉布尔,订阅表格的签名 空白 callback(std::shared_ptr<MessageT>)空白 callback(std::shared_ptr<MessageT>、 rclcpp::MessageInfo &) 已被弃用。

在 Jazzy 中,这些订阅签名已被删除。用户应改用 空白 callback(std::shared_ptr<const MessageT>)空白 callback(std::shared_ptr<const MessageT>、 rclcpp 消息信息 &).

调用计时器时的实际和预期呼叫时间

rclcpp::TimerInfo 参数被添加到定时器回调中,以收集定时器被调用时的实际和预期调用时间。这样,用户就能在定时器预计被调用时和实际被调用时获得定时器信息。

参见 https://github.com/ros2/rclcpp/pull/2343 了解更多详情。

rclcpp_action

取消后的回调

添加了一个函数,用于在目标句柄超出作用域后停止其回调。该函数允许我们在锁定的上下文中丢弃句柄。

参见 https://github.com/ros2/rclcpp/pull/2281 了解更多详情。

rclcpp_lifecycle

添加新节点接口 TypeDescriptionsInterface

添加新节点界面 类型描述接口 以提供 获取类型描述 服务。

参见 https://github.com/ros2/rclcpp/pull/2224 了解更多详情。

rclpy

rclpy.node.Node.declare_parameter

"(《世界人权宣言》) rclpy.node.Node.declare_parameter 不允许静态键入没有默认值的参数。

参见 https://github.com/ros2/rclpy/pull/1216 了解更多详情。

为方法参数添加了类型

添加了类型检查功能,以改善使用静态类型检查的用户的体验。

参见 https://github.com/ros2/rclcpp/pull/2224, https://github.com/ros2/rclpy/issues/1240, https://github.com/ros2/rclpy/issues/1237, https://github.com/ros2/rclpy/issues/1231, https://github.com/ros2/rclpy/issues/1241https://github.com/ros2/rclpy/issues/1233.

rosbag2

重命名 --排除 CLI 选项

"(《世界人权宣言》) --排除 CLI 选项更名为 --exclude-regex 以更好地反映它的工作。

参见 https://github.com/ros2/rosbag2/pull/1480 了解更多信息。

代表权的变化 offered_qos_profiles

枚举值现在用于 offered_qos_profiles 代码、元数据中 QoS 设置的人可读字符串值,以及覆盖 QoS 配置文件 YAML 文件。

参见 https://github.com/ros2/rosbag2/tree/jazzy?tab=readme-ov-file#overriding-qos-profiles 为例。

在读写袋拆分事件信息中添加了节点名称

参见 https://github.com/ros2/rosbag2/pull/1609 了解更多详情。

已添加 BagSplitInfo 关闭袋子时的服务请求

参见 https://github.com/ros2/rosbag2/pull/1422 了解更多详情。

已添加 topic_id 存储返回给 主题元数据

参见 https://github.com/ros2/rosbag2/pull/1538 了解更多详情。

已添加 CompressionOptions 和 CompressionMode 结构的 Python 绑定

参见 https://github.com/ros2/rosbag2/pull/1425 了解更多详情。

提高以下方面的性能 SqliteStorage::get_bagfile_size()

这样,在使用 SQLite3 存储插件记录时,就能最大限度地降低分袋操作过程中丢失信息的可能性。

参见 https://github.com/ros2/rosbag2/pull/1516 了解更多详情。

rqt_bag

改进性能并更新 rosbag API

rosbag2 应用程序接口和 Ubuntu Noble 库版本中有一些破坏性更改,需要对以下内容进行修改 rqt_bag.

参见 https://github.com/ros-visualization/rqt_bag/pull/156 了解更多详情。

发展进度

有关 Jazzy Jalisco 的开发进展,请参见 该项目板.

有关 Jazzy Jalisco 所遵循的大致流程,请参见 流程描述页面.

已知问题

即将到来

发布时间表

2023 年 11 月 - 平台决定

REP 2000 已根据目标平台和主要依赖版本进行了更新。

到 2024 年 1 月 - 滚动平台转移

使用 Jazzy Jalisco 的新平台版本和依赖版本更新构建农场。

周一2024 年 4 月 8 日 - 阿尔法 + RMW 冻结

初步测试和稳定 ROS 基地 [1] 以及 RMW 提供商软件包的 API 和功能冻结。

周一2024 年 4 月 15 日 - 冻结

冻结 ROS Base 的应用程序接口和功能 [1] 软件包。在此之后,只能发布错误修复版本。新软件包可以独立发布。

周一2024 年 4 月 22 日 - 分部

滚雷德利的分支。 rosdistro 重新开放 ROS Base 的滚动 PR [1] 包。Jazzy 开发从 滚动* 包到 ros-jazzy-* 打包。

周一2024 年 4 月 29 日 - Beta 版

ROS 桌面更新版本 [2] 可提供套餐。一般测试请致电。

2024年5月1日,星期三 - 启动教程派对

教程托管在 https://github.com/osrf/ros2_test_cases 开放供社区测试。

周一2024 年 5 月 13 日 - 候选发布版本

构建候选发布版软件包。ROS 桌面的更新版本 [2] 可提供的套餐。

周一2024 年 5 月 20 日 - 分配器冻结

冻结所有 ROS 2 桌面软件包rosdistro.没有为任何 爵士乐 分支或目标 jazzy/distribution.yamlrosdistro 将被合并。

星期四2024 年 5 月 23 日 - 全面开放

发布公告。 ROS 2 桌面软件包 源冻结被解除,并且 rosdistro 已重新开放用于 Jazzy 拉取请求。