ROS与ROS2比较

ROS2新特性

  1. ROS2全面支持三种平台

ØUbuntu 16.04(Xenial)

ØMac OS X 10.12(Sierra)

ØWindows 10
2.实现了分布式架构

ROS与ROS2比较_第1张图片

ROS 1主要构建于Linux系统之上,主要支持Ubuntu。而ROS 2采用全新的架构,底层基于DDS(Data Distribution Service)通信机制,支持实时性、嵌入式、分布式、多操作系统。ROS 2支持的系统包括Linux、windows、Mac、RTOS,甚至是单片机等没有操作系统的裸机。
 
ROS 1的通讯系统基于TCPROS/UDPROS,强依赖于master节点的处理,而ROS 2的通讯系统是基于DDS,进而取消了master,同时在ROS2内部提供了DDS的抽象层实现,有了这个抽象层,用户就可以不去关注底层的DDS使用了哪个商家的API。
ROS 2目前已经在Ubuntu Xenial,OS X El Capitan以及Windows 10上进行了CI测试和支持

(DDS详细介绍:https://www.ncnynl.com/archives/201708/1939.html)
3.使用新版本的编程语言

ØROS 2广泛使用C ++ 11。而ROS 1的核心主要使用C ++ 03,在其API并没有使用C++ 11功能。

ØROS 2的Python版本至少为3.5,ROS 1的Python版本为2.7
4.使用了新的编译系统AmentROSCatkin
5.ROS1可以通过rosbridgeROS 2通信

 

 

ROS应用的缺陷

ROS与ROS2比较_第2张图片

 

相比ROS1,ROS2带来了几个好处。一个好处是托管启动,你可以指定节点启动顺序。另一个好处是数据分发服务(DDS)通信协议,它可以以零拷贝的方式传递消息,节省了CPU和内存资源。在开发方面,他们花了更多的精力来增加测试覆盖率,提供更多更好理解的文档,以及更多持续集成,以便实现软件的认证。

 

说了那么多ROS2的优点,但是在版本稳定性,和社区支持程度(尤其是相关程序包,如MoveIt及相关教程)来讲还是不如ROS,对于独立开发者或者科研人员来讲,个人觉得还是先从ROS基础进行原型开发,开发成熟之后再考虑代码移植(ROS->ROS2)或者平台移植(Linux->Windows)问题。

你可能感兴趣的:(ROS开发)