警告
您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.
特色创意
以下是一些功能设想,没有特定顺序。该列表包含了我们认为重要的功能,可以为 ROS 2 做出很好的贡献。 请与我们联系 在开发新功能之前。我们可以为您提供指导,并将您与其他开发人员联系起来。
设计/概念
IDL 格式
利用新功能,如将常量分组到枚举中
将使用范围扩大到
.idl
或声明参数的范围重新审视 IDL 界面命名的约束条件,参见 ros2/design#220
为 ROS 1 -> ROS 2 过渡创建迁移计划
节点名称的唯一性,参见 ros2/design#187
节点在主题/服务等方面的具体 "API "描述格式,请参见 ros2/design#266
在运行时配置 QoS,请参阅 ros2/design#280
基础设施和工具
建筑
合并 build.ros2.org 和 ci.ros2.org
提供 macOS
Windows 和 Mac OS 软件包
支持以下配置文件
胶管
文件
改进文献平台
支持
文件
工作岗位 ROS 2 建筑群考虑与 design.ros2.org 合并
提供三种不同的内容:
用 "演示 "来展示功能,并用测试来覆盖功能
"示例 "显示简单/简约的用法,可能有多种方法来做某事
包含更多评论和维基锚点的 "教程"(推荐的一种教学方式)
新功能
尾部的星表示粗略的努力:1颗星代表小型,2颗星代表中型,3颗星代表大型。
日志记录改进 [* / **]
文件中指定的配置
每个记录仪配置(例如启用
rqt_logger_level
)
与时间有关
支持基于时钟的速率和睡眠
参数
强制类型
附加图形应用程序接口功能 [** / ***]
自省所有(尤其是远程)主题的 QoS 设置
a la ROS 1 Master API: https://wiki.ros.org/ROS/Master_API
基于事件的通知
需要了解需要扩展的 rmw 接口
执行人
性能改进(主要围绕等待集)
确定性排序(公平调度)
与回调组一起工作
解耦可等待程序
信息生成
为开箱即不支持的语言生成补充信息
在信息中拼凑字段名,以避免使用特定语言的关键字
在同一个 Python 解释器中运行,提高生成器性能
启动
支持使用
xacro
进行替换,然后再传递包含参数的结果使用 pytest 进行启动测试
支持启动多节点可执行文件(即手动合成)
扩展启动 XML/YAML 支持:事件和事件处理程序、标记命名空间和别名
罗斯巴格
支持记录服务(和行动)
ros1_桥
支持衔接行动
RMW 配置
配置中间件的统一标准方法
重新映射 [** / ***]
通过服务接口动态重映射和别名
类型伪装 [***]
如 ROS 1 的信息特征: https://wiki.ros.org/roscpp/Overview/MessagesSerializationAndAdaptingTypes
要求了解排版支持系统
扩展实时安全 [***]
服务、客户和参数
公开更多与实时性能相关的服务质量参数
实时安全的进程内消息传递
多机器人支持功能和演示 [***]
所有机器人的所有节点共享同一域(并相互发现),这并不理想
设计如何 "分割 "系统
实施 C 客户端库
rclc
[**]支持更多的 DDS / RTPS 实现:
Connext 6,见 ros2/rmw_connext#375
Connext 动态[*]
RTI 的微观实施 [*]
改善安全状况:
更精细的安全配置(只允许验证、验证和加密等) [*]
集成 DDS 安全日志插件(汇总安全事件并通过 ROS 界面向用户报告的统一方式)[**]
密钥存储安全(目前,密钥只是存储在文件系统中) [**]
更友好的用户界面(更容易指定安全配置)。也许是 Qt 图形用户界面?这个图形用户界面还可以帮助分发密钥。[***]
一种可以说 "请确保正在运行的系统安全 "的方法,它的用户界面可以为当前正在运行的所有系统自动生成密钥和策略。[***]
如果有特定于硬件的功能可用于确保密钥安全或加速加密/签名信息,那么将其添加到尚未使用的 DDS/RTPS 实现中可能会很有趣。[***]
现有 ROS 1 功能的移植
感知元软件包
感知 PCL
移动
RQt
转换更多插件 [* 每个插件都有依赖关系]
减少技术债务
扩展测试并解决当前代码库中的错误
等待集不一致
组件的多线程问题
修复不稳定的测试
使用 Valgrind 等工具运行(所有)单元测试的能力
API 审查,特别是 rclcpp 和 rclpy 中面向用户的 API
将 rclcpp 应用程序接口重构为专注于单一方面的独立软件包,之后 rclcpp 仍应提供面向用户的综合应用程序接口
重新审视消息分配器,考虑使用 std::polymorphic_allocator 解决问题
现代化
支持/使用导出 CMake 目标(而不是使用 CMake 变量,如
*_INCLUDE_DIRS
,*_LIBRARIES
)使用 C++17 文件系统功能,而不是自定义代码
为 rclpy 使用 pybind11
移至 Python 代码中的 f 字符串
为 Python 软件包使用 setup.cfg 文件
同步/协调设计文档与实施。
发布前回顾审查(应用程序接口、文档等)
处理待处理票据/将其分类
解决代码/文档中的待办事项