Jazzy Jalisco (爵士乐
)
Jazzy Jalisco 以下是 Jazzy Jalisco 自上次发布以来的重要变化和功能亮点。如需了解自 Iron 发布以来的所有变化,请参阅 长篇更新日志
支持的平台
Jazzy Jalisco 主要支持以下平台:
1 级平台:
Ubuntu 24.04(贵族):
amd64
和arm64
Windows 10 (Visual Studio 2019):
amd64
二级平台:
RHEL 9:
amd64
三级平台:
macOS
amd64
Debian 书虫
amd64
有关 RMW 实现、编译器/解释器版本和系统依赖性版本的更多信息,请参见 REP 2000.
安装
改变 ROS 2 和 Gazebo 的集成方式
从 Jazzy Jalisco 开始,我们正在简化 ROS 2 和 凉亭 整合。每发布一个 ROS 2 版本,都会推荐一个与之配套的、受支持的 Gazebo 版本。对于 Jazzy Jalisco,推荐的 Gazebo 版本是 Harmonic。
为了让 ROS 2 软件包更容易使用 Gazebo 软件包,现在有了 gz_*_vendor
包。这些软件包是
gz_common_vendor: https://github.com/gazebo-release/gz_common_vendor
gz_cmake_vendor: https://github.com/gazebo-release/gz_cmake_vendor
gz_math_vendor: https://github.com/gazebo-release/gz_math_vendor
gz_transport_vendor: https://github.com/gazebo-release/gz_transport_vendor
gz_sensor_vendor: https://github.com/gazebo-release/gz_sensor_vendor
gz_sim_vendor: https://github.com/gazebo-release/gz_sim_vendor
gz_tools_vendor: https://github.com/gazebo-release/gz_tools_vendor
gz_utils_vendor: https://github.com/gazebo-release/gz_utils_vendor
sdformat_vendor: https://github.com/gazebo-release/sdformat_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 了解更多详情。
广告和订阅自定义服务质量
允许用户在创建时输入自定义服务质量 图像传输
出版商和订户。
参见 https://github.com/ros-perception/image_common/issues/288 了解更多详情。
已在 Republish 中添加 rclcpp 组件
用户现在可以启动 图像传输
重新发布节点作为 rclcpp_component.
参见 https://github.com/ros-perception/image_common/issues/275 了解更多详情。
消息过滤器
支持 TypeAdapters
允许用户在消息筛选器中使用类型适配。
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/1577 和 https://github.com/ros2/rosbag2/pull/1582.
播放器和录制器现已作为 rclcpp 组件公开
这样,在数据记录或回复过程中使用进程内通信时,就可以实现 "零拷贝"。在处理高带宽数据流时,这可以大大减少记录或回复过程中的 CPU 负载,并有助于避免传输层的数据丢失。它还提供了使用 YAML 配置文件的功能,用于 rosbag2_transport::Player
和 rosbag2_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/796 和 https://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/1109 和 https://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/1241和 https://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.yaml
于rosdistro
将被合并。- 星期四2024 年 5 月 23 日 - 全面开放
发布公告。 ROS 2 桌面软件包 源冻结被解除,并且
rosdistro
已重新开放用于 Jazzy 拉取请求。