总结下来,主要区别主要有三点:
1、架构的颠覆
ROS1的架构下,所有节点需要使用Master进行管理,也就是说要启动节点之前,必须向ROS_Master进行注册才可以使用。
ROS2使用基于DDS的Discovery机制,和Master说拜拜,不需要使用roscore来启动Master,直接启动节点即可。
2、API重新设计
ROS1中的大部分代码都基于2009年2月设计的API。
ROS2重新设计了用户API,但使用方法类似,ROS2可以使用Python3。
3、编译系统的升级
ROS1使用rosbuild、catkin管理项目。
ROS2使用升级版的ament、coclon。
两者的底层都是Cmake。