0. 简介
百度的Apollo主要的改进点有如下几个部分:
通信性能优化
- 通信性能优化 -> 共享内存能减少传输中的数据拷贝,显著提升传输效率
- 去中心化的网络拓扑 -> 使用RTPS服务发现协议实现完全的P2P网络拓扑
- 数据兼容性扩展 -> protobuf能够很好支持向后兼容
1. Apollo对ROS优化总结
1.1 关于通信性能优化
通信性能优化过程中通过指针或者调用值的方式实现了共享内存
,该方法支持一次写入、多次读取。这里就不多说了。
1.2 关于去中心化的网络拓扑
apollo在ROS中添加基于RTPS服务协议功能
,但是去中心化的功能在ROS2里面已经被解决,因此,具体哪个优化更加好,还等待后续测试。
1.3 关于数据兼容性扩展
在Apollo中在模块内部使用protobuf来替代ROSmessage,个人认为这是Apollo最主要
的优化,关于protobuf的介绍可以看我整理的protobuf分类。
2. 详细介绍
2.1 通信性能优化 -> 共享内存
- 共享内存 -> 在一对一传输过程中,吞吐量达到socket两倍,一对多传输过程中,共享内存传输对带宽的优势进一步扩大。
- 共享内存 -> 传输延迟比Shared节省一半,对强实时性系统的自动驾驶汽车帮助很大。
- 共享内存 -> CPU资源占用要比so