1 ROS存在的问题
- 一旦Ros Master主节点挂掉后,就会造成整个系统通信的异常,
- 通信基于TCP实现,实时性差、系统开销大
- 对Python3支持不友好,需要重新编译
- 消息机制不兼容
- 没有加密机制、安全性不高
2 ROS and ROS2架构对比
ROS和ROS2架构如下图所示:

2.1 OS层
从原来的只支持linux平台变成了支持windows、mac甚至是嵌入式RTOS平台。
2.2 MiddleWare中间件层
中间层ROS2到底相对于ROS做了哪些优化呢?
- 去中心化master,ROS和ROS2中间件不同之处在于,ROS2取消了master节点。
去中心化后,各个节点之间可以通过DDS的节点相互发现,各个节点都是平等的,且可以1对1、1对n、n对n进行互相通信。 - 不造通信的轮子,通信直接更换为DDS进行实现
采用DDS通信,使得ROS2的实时性、可靠性和连续性上都有了增强。
2.3 应用层
对于应用层来说ROS2也做了很大的改进,上面那张图没有体现出来。
ROS2进行改进有:
- Python2到Python3的支持
- 编译系统的改进(catkin到ament)
- C++标准更新到c++11
- 可以使用相同 API 的进程间和进程内通信
3 ROS2新概念例举
可用Python编写的Launch文件
多机器人协同通信支持
支持安全加密通信
同一个进程支持多个节点、
支持Qos服务质量
支持节点生命周期管理
高效的进程间通信



![合并两个有序链表[简单]](https://img-blog.csdnimg.cn/direct/c0753a9444ad47d1a1f9af1ce85ab8f7.png)











![[EndNote学习笔记] 导出库中文献的作者、标题、年份到Excel](https://img-blog.csdnimg.cn/1112a31e6ea040dd9ad83da0467cd684.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAT25lQ2hlc3RudXQ=,size_11,color_FFFFFF,t_70,g_se,x_16)



