更详细的介绍可以跳转到:【自动驾驶】百度Apollo对ROS的优化【详细干货】
自从百度All in人工智能之后,无人驾驶汽车平台Apollo就被推上了风口浪尖,甚至还登上了2018春晚的舞台。在这个吸睛无数的Apollo平台背后,就隐藏着ROS的身影。
Apollo平台基于ROS开发,但是对通信机制部分进行了众多改变,有兴趣的小伙伴可以看Apollo改良之后的ROS:
https://github.com/ApolloAuto/apollo-platform
总结而言,百度对ROS的优化有以下三点:(咋看上去,这些优化有点像ROS 2.0干的那些事儿)
1. 去中心化,也就是干掉ROS Master
,这部分使用了DDS
技术;
DDS
虽然提供的也是发布/订阅
模型的通信机制,但商用版本可以达到军工标准,国际上有几家大公司也在推进DDS
在ROS 2.0
中的应用。
2. 使用共享内存
的方法,优化大数据传输的瓶颈;
共享内存也是ROS2.0
中时间敏感型数据通信的方法,吞吐量和传输速度肯定可以得到很大程度的优化,同时占用的CPU
资源也比较少。
3. 使用Protobuf
优化数据格式的兼容性,取代了ROS
中的Message
。
Protobuf
是google
开源的一种结构化数据存储格式,百度拿它取代了ROS
中的Message
,可以向后兼容数据协议的扩展。
无人驾驶汽车的稳定性是一个性命攸关的问题,百度敢对ROS进行大刀阔斧的优化,也正说明了ROS的行业认可度和强大生命力。