----ROS 2 Ardent Apalone发布----

现在,最常用的ROS indigo或ROS Kinetic等都是1.0时代的ROS,这个时代的ROS有一个master(roscore)。

ROS 1 和 ROS 2 的前世、今生、安装使用说明与资料汇总_java

历经10年发展,不断壮大。那么问题来了为什么会有ROS 2.0?

要想搞清楚这个问题,需要参考ROS 2.0设计网址:http://design.ros2.org/

ROS 1 和 ROS 2 的前世、今生、安装使用说明与资料汇总_desktop_02

这里摘录一段话,选自Why ROS 2.0:

 

Why not just enhance ROS 1

 

In principle, the changes described above could be integrated into the existing core ROS code. E.g., new transport technologies could be added to roscpp and rospy. We considered this option and concluded that, given the intrusive nature of the changes that would be required to achieve the benefits that we are seeking, there is too much risk associated with changing the current ROS system that is relied upon by so many people. We want ROS 1 as it exists today to keep working and be unaffected by the development of ROS 2. So ROS 2 will be built as a parallel set of packages that can be installed alongside and interoperate with ROS 1 (e.g., through message bridges).

----

为什么不改进完善ROS 1.0?

从本质上来说,上面描述的更改都可以集成到现有的ROS核心代码中。如,新的传输机制可以添加到roscpp和rospy中。但是当我们考虑到下面问题时,就能理解这个结论,即这些改进和优化对原有系统会造成入侵式的变化,改变当前ROS系统有非常大的风险,当前有很多功能是开发人员依赖原ROS系统开发的。于是,我们既继续维护ROS 1.0,不受ROS 2.0的影响,同时进行ROS 2.0的设计。ROS 2.0与ROS 1.0并行不悖,同时通过消息桥接进行通信。

----

下面放几张图,大家感受一下两者的差别:

图1,架构图

ROS 1 和 ROS 2 的前世、今生、安装使用说明与资料汇总_客户端_03

Master没了,节点平等了,无主节点了。DDS是什么?数据分发服务。我想到了微软的DSS(分布式软件服务)。

图2,数据发布与订阅

ROS 1 和 ROS 2 的前世、今生、安装使用说明与资料汇总_ROS_04    ROS 1 和 ROS 2 的前世、今生、安装使用说明与资料汇总_ROS_05

需要了解更多内容,推荐古月居ROS 2.0探索总结+ROS 1.0和ROS 2.0到底用哪个呢?

ROS1与ROS2的区别?http://design.ros2.org/articles/changes.html

 

ROS 1和ROS 2之间的区别

本文概述了ROS 2与ROS 1相比所做的更改。

更多文章请关注《万象专栏》