区别如下:
1、ros1 组件用c++/python,ros2 组件用c/python;
2、ros1 只支持Linux和MacOS,而 ros2 支持Linux/Windows/MacOS/RTOS;
3、ros1 的通讯基于TCPROS/UDPROS,强依赖于master节点的处理,而 ros2 基于DDS(分布式架构);
4、ros2 支持实时控制;
5、ros2 广泛使用C++11,和Python3.5以上;
6、ros2 使用了新的编译系统 Ament;
7、在 ros2 上通过ros_bridge和 ros1 进行通信;
8、ros2 使用托管启动:用户可以指定节点启动顺序;
9、ros2 取消了 nodelet 的概念,支持多节点初始化;
10、ros2 launch文件使用 python 编写,相比于 xml 拓展了功能性。