阿尔法版本

这是ROS 2的8个阿尔法版本之前分开页面的合并版本。

我们希望您尝试它们,并提供反馈。请访问 这个页面

ROS 2 alpha8发布(代号为*Hook-and-Loop*;2016年10月)

对支持的DDS供应商进行了更改

ROS 2支持多种中间件实现(更多详细信息请参阅`此页面 <../../Concepts/Intermediate/About-Different-Middleware-Vendors>`)。直到 Alpha 8,ROS 2支持eProsima的Fast RTPS、RTI的Connext和PrismTech的OpenSplice等ROS中间件实现。为了简化我们的工作,从 Alpha 8 开始,将支持 Fast RTPS 和 Connext(静态),其中 Fast RTPS (现在是 Apache 2.0 许可的)将作为默认选项提供。

范围

正如"alpha"限定词所示,这个ROS 2版本还远未完成。您不应期望从ROS 1切换到ROS 2,也不应期望使用ROS 2构建新的机器人控制系统。相反,您应该尝试一些演示,探索代码,也许编写自己的演示。

此版本中包含的改进内容有:

  • 对Fast RTPS及其rmw实现进行了多项改进

    • Fast RTPS支持大型(图像)消息

    • Fast RTPS中添加了``wait_for_service``功能

  • Python和C语言中支持所有ROS 2消息类型

  • 在Python中添加了对服务质量(QoS)设置的支持

  • 修复了上一个 alpha 版本中的各种错误

几乎没有列出的任何内容都不包含在此版本中。下一步在 Roadmap 中有详细说明。

ROS 2 alpha7 发布(代号 Glue Gun; 2016 年 7 月)

需要新版本的 Ubuntu

到 Alpha 6 为止,ROS 2 的目标是 Ubuntu Trusty Tahr(14.04)。从此 Alpha 版本开始,ROS 2 的目标是 Ubuntu Xenial Xerus(16.04),以利用更新的编译器、CMake、Python 等版本。

范围

正如"alpha"限定词所示,这个ROS 2版本还远未完成。您不应期望从ROS 1切换到ROS 2,也不应期望使用ROS 2构建新的机器人控制系统。相反,您应该尝试一些演示,探索代码,也许编写自己的演示。

此版本中包含的主要特性有:

  • 图形 API 功能:等待服务

    • 在 rclcpp 中添加接口,并在示例、演示和测试中使用它们

  • 在 Connext 和 Fast-RTPS 中改进对大型消息的支持(Fast-RTPS 部分改进)

  • 使用从 ROS 1 移植的代码的 Turtlebot 演示

几乎没有列出的任何内容都不包含在此版本中。下一步在 Roadmap 中有详细说明。

ROS 2 alpha6 发布(代号 Fastener;2016 年 6 月)

目录

范围

正如"alpha"限定词所示,这个ROS 2版本还远未完成。您不应期望从ROS 1切换到ROS 2,也不应期望使用ROS 2构建新的机器人控制系统。相反,您应该尝试一些演示,探索代码,也许编写自己的演示。

此版本中包含的主要特性有:

  • 图形 API 功能:等待服务

    • 为等待图形变化的节点添加了图形保护条件

    • 添加了``rmw_service_server_is_available``用于验证服务是否可用

  • 重构了``rclcpp``以使用``rcl``

  • 改进了Python中对复杂消息类型的支持

    • 嵌套消息

    • 数组

    • 字符串

几乎没有列出的任何内容都不包含在此版本中。下一步在 Roadmap 中有详细说明。

ROS 2 alpha5 发布(代号 Epoxy;2016年4月)

目录

范围

正如"alpha"限定词所示,这个ROS 2版本还远未完成。您不应期望从ROS 1切换到ROS 2,也不应期望使用ROS 2构建新的机器人控制系统。相反,您应该尝试一些演示,探索代码,也许编写自己的演示。

此版本中包含的主要特性有:

  • Fast RTPS 和 Connext Dynamic rmw 实现中对 C 数据结构的支持。

  • 对 C 中的支持服务。

  • 作为实验性支持平台,新增了32位和64位的 ARM。

几乎没有列出的任何内容都不包含在此版本中。下一步在 Roadmap 中有详细说明。

ROS 2 alpha4 发布(代号 Duct tape;2016年2月)

背景

正如在一篇`设计文章<https://design.ros2.org/articles/why_ros2.html>`__中解释的那样,我们正在开发ROS的一个新的主要版本,称为“ROS 2”。虽然底层概念(例如发布/订阅消息)和目标(例如灵活性和可重用性)与ROS 1相同,但我们借此机会对系统进行了重大更改,包括更改一些核心API。有关这些更改及其理由的更深入的处理,请参阅其他的`ROS 2设计文章<https://design.ros2.org>`__。

状态

在2016年2月17日,我们发布了ROS 2 alpha4,代号为**Duct tape**。我们此次发布的主要目标是增加更多功能,同时解决了之前版本的反馈意见。为此,我们构建了一组`演示示例<../../Tutorials>`,展示了ROS 2的一些关键特性。我们鼓励您尝试这些演示示例,查看实现它们的代码,并提供反馈意见<../../Contact>。我们特别想知道我们在解决对您重要的用例方面表现得如何(好或不好)。

目标受众

虽然欢迎所有人尝试演示示例并查看代码,但我们将此版本定位于那些已经有ROS 1开发经验的人群。目前,ROS 2文档相当稀缺,大部分系统是通过与ROS 1的比较来解释的。

范围

正如"alpha"限定词所示,这个ROS 2版本还远未完成。您不应期望从ROS 1切换到ROS 2,也不应期望使用ROS 2构建新的机器人控制系统。相反,您应该尝试一些演示,探索代码,也许编写自己的演示。

此版本中包含的主要特性有:

  • 改进的类型支持基础设施,包括对C的支持

  • 初步的Python客户端库,仅支持发布者和订阅者。请注意,API可能会发生变化,并且远未完成!

  • 在C API中添加了ROS时间的结构(仍需要C++ API)。

    • ROS时间的新概念是可扩展的“时间源”,默认的时间源将类似于ROS 1(实现待定)。

几乎没有列出的任何内容都不包含在此版本中。下一步在 Roadmap 中有详细说明。

发布了ROS 2 alpha3版本(代号*Cement*;2015年12月)。

背景

正如在一篇`设计文章<https://design.ros2.org/articles/why_ros2.html>`__中解释的那样,我们正在开发ROS的一个新的主要版本,称为“ROS 2”。虽然底层概念(例如发布/订阅消息)和目标(例如灵活性和可重用性)与ROS 1相同,但我们借此机会对系统进行了重大更改,包括更改一些核心API。有关这些更改及其理由的更深入的处理,请参阅其他的`ROS 2设计文章<https://design.ros2.org>`__。

状态

于2015年12月18日发布了ROS 2 alpha3版本,代号**Cement**。我们在这个版本中的主要目标是添加更多功能,同时解决之前版本收到的反馈。为此,我们构建了一组`演示 <../../Tutorials>`,展示了ROS 2的一些关键功能。我们鼓励您尝试这些演示,查看实现它们的代码,并`提供反馈 <../../Contact>`。我们特别希望了解我们在多大程度上满足了您重要的使用案例。

目标受众

虽然欢迎所有人尝试演示示例并查看代码,但我们将此版本定位于那些已经有ROS 1开发经验的人群。目前,ROS 2文档相当稀缺,大部分系统是通过与ROS 1的比较来解释的。

范围

正如"alpha"限定词所示,这个ROS 2版本还远未完成。您不应期望从ROS 1切换到ROS 2,也不应期望使用ROS 2构建新的机器人控制系统。相反,您应该尝试一些演示,探索代码,也许编写自己的演示。

此版本中包含的主要特性有:

  • 更新了``rcl``接口。

    • 这个接口将被包装,以创建语言绑定,例如 rclpy

    • 这个接口在文档和测试覆盖方面比我们目前已有的接口有所改进,例如 rmwrclcpp

    • 请参阅 rcl headers

  • 在 rclcpp 中增加了对使用 TLSF(两级分离适配器)内存分配器的支持,这是一种为嵌入式和实时系统设计的内存分配器。

  • 提高了 MultiThreadedExecutor 的效率,并修复了多线程执行中的许多错误,现在已经在 CI 上进行了测试。

  • 增加了在 spin 中从回调函数内部取消 Executor 的能力。

  • 通过支持接受对自身的引用作为函数参数的定时器回调,添加了定时器自我取消的功能。

  • 添加了禁止多个线程进入Executor::spin的检查。

  • 提高了许多测试的可靠性,这些测试以前会间断性地失败。

  • 添加了使用Fast RTPS的支持(而不是使用OpenSplice或Connext等)。

  • 部分移植了tf2,包括核心库和核心命令行工具。

几乎没有列出的任何内容都不包含在此版本中。下一步在 Roadmap 中有详细说明。

ROS 2 alpha2发布(代号 Baling wire;2015年10月)。

背景

正如在一篇`设计文章<https://design.ros2.org/articles/why_ros2.html>`__中解释的那样,我们正在开发ROS的一个新的主要版本,称为“ROS 2”。虽然底层概念(例如发布/订阅消息)和目标(例如灵活性和可重用性)与ROS 1相同,但我们借此机会对系统进行了重大更改,包括更改一些核心API。有关这些更改及其理由的更深入的处理,请参阅其他的`ROS 2设计文章<https://design.ros2.org>`__。

状态

在2015年11月3日,我们发布了ROS 2 alpha2,代号为**Baling wire**。我们在这个版本中的主要目标是增加更多功能,并解决上一个alpha 1版本收到的反馈。为此,我们创建了一组 demos 来展示ROS 2的一些关键功能。我们鼓励您尝试这些演示,查看实现它们的代码,并 提供反馈。我们特别希望了解我们在解决对您重要的用例方面的表现如何(好或差)。

目标受众

虽然欢迎所有人尝试演示示例并查看代码,但我们将此版本定位于那些已经有ROS 1开发经验的人群。目前,ROS 2文档相当稀缺,大部分系统是通过与ROS 1的比较来解释的。

范围

正如"alpha"限定词所示,这个ROS 2版本还远未完成。您不应期望从ROS 1切换到ROS 2,也不应期望使用ROS 2构建新的机器人控制系统。相反,您应该尝试一些演示,探索代码,也许编写自己的演示。

此版本中包含的主要特性有:

  • 支持rclcpp中的自定义分配器,对实时消息传递很有用

  • 将Windows与Linux/OSX的功能进行匹配,包括工作空间管理、服务和参数

  • 改进了rclcpp的API

  • 改进了FreeRTPS

几乎没有列出的任何内容都不包含在此版本中。下一步在 Roadmap 中有详细说明。

ROS 2 alpha1版本发布(代号为*Anchor*;2015年8月)

背景

正如在一篇`设计文章<https://design.ros2.org/articles/why_ros2.html>`__中解释的那样,我们正在开发ROS的一个新的主要版本,称为“ROS 2”。虽然底层概念(例如发布/订阅消息)和目标(例如灵活性和可重用性)与ROS 1相同,但我们借此机会对系统进行了重大更改,包括更改一些核心API。有关这些更改及其理由的更深入的处理,请参阅其他的`ROS 2设计文章<https://design.ros2.org>`__。

状态

2015年8月31日,我们发布了ROS 2 alpha1版本,代号为**Anchor**。我们此次发布的主要目标是让您有机会了解ROS 2的工作原理,特别是与ROS 1的区别。为此,我们构建了一组`演示示例 <../../Tutorials>`,展示了ROS 2的一些关键特性。我们鼓励您尝试这些演示示例,查看实现它们的代码,并`提供反馈 <../../Contact>`。我们特别希望了解我们在解决对您重要的用例方面做得如何(好或差)。

目标受众

虽然欢迎所有人尝试演示示例并查看代码,但我们将此版本定位于那些已经有ROS 1开发经验的人群。目前,ROS 2文档相当稀缺,大部分系统是通过与ROS 1的比较来解释的。

范围

正如"alpha"限定词所示,这个ROS 2版本还远未完成。您不应期望从ROS 1切换到ROS 2,也不应期望使用ROS 2构建新的机器人控制系统。相反,您应该尝试一些演示,探索代码,也许编写自己的演示。

此版本中包含的主要特性有:

几乎没有列出的任何内容都不包含在此版本中。下一步在 Roadmap 中有详细说明。