特色创意

以下是一些功能设想,没有特定顺序。该列表包含了我们认为重要的功能,可以为 ROS 2 做出很好的贡献。 请与我们联系 在开发新功能之前。我们可以为您提供指导,并将您与其他开发人员联系起来。

设计/概念

  • IDL 格式

    • 利用新功能,如将常量分组到枚举中

    • 将使用范围扩大到 .idl 或声明参数的范围

    • 重新审视 IDL 界面命名的约束条件,参见 ros2/design#220

  • 为 ROS 1 -> ROS 2 过渡创建迁移计划

  • 节点名称的唯一性,参见 ros2/design#187

  • 节点在主题/服务等方面的具体 "API "描述格式,请参见 ros2/design#266

基础设施和工具

新功能

尾部的星表示粗略的努力: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 配置

    • 配置中间件的统一标准方法

  • 重新映射 [** / ***]

    • 通过服务接口动态重映射和别名

  • 类型伪装 [***]

  • 扩展实时安全 [***]

    • 服务、客户和参数

    • 公开更多与实时性能相关的服务质量参数

    • 实时安全的进程内消息传递

  • 多机器人支持功能和演示 [***]

    • 所有机器人的所有节点共享同一域(并相互发现),这并不理想

    • 设计如何 "分割 "系统

  • 支持更多的 DDS / RTPS 实现:

    • RTI Connext DDS Micro(已实施,默认未启用,官方也不支持)。

  • 安全方面的改进:

    • 更精细的安全配置(只允许身份验证、身份验证和加密等) [*]

    • 集成 DDS 安全日志插件(汇总安全事件并通过 ROS 界面向用户报告的统一方式) [**]

    • 密钥存储安全(目前,密钥只是存储在文件系统中) [**]

    • 更友好的用户界面(更容易指定安全配置)。也许是 Qt 图形用户界面?该图形用户界面还可以帮助分发密钥。[***]

    • 一种可以说 "请确保正在运行的系统安全 "的方法,它的用户界面可以为当前正在运行的所有系统自动生成密钥和策略。[***]

    • 如果有特定于硬件的功能可用于确保密钥安全或加速加密/签名信息,那么将其添加到尚未使用的 DDS/RTPS 实现中可能会很有趣。[***]

减少技术债务

  • 修复 https://ci.ros2.org/view/nightly.

  • 能够使用 Valgrind、clang-tidy、clang 静态分析(scan-build)、ASAN、TSAN、UBSAN 等工具运行(所有)单元测试。

  • API 审查,特别是 rclcpp 和 rclpy 中面向用户的 API

  • 将 rclcpp 应用程序接口重构为专注于单一方面的独立软件包,之后 rclcpp 仍应提供面向用户的综合应用程序接口

  • 重新审视消息分配器,考虑使用 std::polymorphic_allocator 解决问题

  • 同步/对账 设计文档 实施。

  • 处理待处理票据/将其分类

  • 解决代码/文档中的待办事项

  • 移除 tinyxml 作为依赖项