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