一、Apollo架构
先来看一张百度Apollo技术框架图:
三、开源软件架构
开源软件架构分为三层,分别为
1.RTOS:
RTOS(实时操作系统):可确保在给定的时间内完成特定的任务。我们看下图这个例子:
2.运行框架
运行框架是Apollo的操作系统,它是在ROS的基础上进行二次开发的版本。那什么是ROS呢,我们就来了解一下。
ROS(Robot Operating System)是机器人操作系统,它提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。ROS遵守BSD开源许可协议。
ROS在机器人行业有着悠久的历史,目前有三四千个基础库支持应用程序的快速开发,ROS根据功能将自治系统划分为多个模块,每个模块负责接收、处理和发布自己的消息,由于这些模块相互独立,只能通过运行时框架进行通信,因此调整任何单一模块都会很容易。这个其实很像微服务的概念,通过高内聚,低耦合的方式实现各个模块的稳定性。
为了使ROS能更好的和无人驾驶相结合,百度Apollo团队改进了共享内存的功能和性能、去中心化和数据兼容性。
(1)共享内存
共享内存降低了需要访问不同模块时的数据复制需求,对于一对多的传输方案,共享内存支持“一次写入 多次读取”的模式,例如我们只收到了一帧的点云,这些点云可以同时运行障碍物检测、定位和GUI工具,而需要点云数据的模块自行读取即可。这一点也非常像MQTT这种发布-订阅模式的协议,一方在一个主题内发送消息,需要该消息的角色订阅该主题即可。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!