无人驾驶技术架构—百度Apollo介绍

今天我们以百度Apollo为例,讲讲无人驾驶的技术架构。通过本文的学习,希望大家可以初步建立起了对百度Apollo的架构的认知。

一、Apollo架构

先来看一张百度Apollo技术框架图:

无人驾驶技术架构—百度Apollo介绍

三、开源软件架构

开源软件架构分为三层,分别为

1.RTOS:

RTOS(实时操作系统):可确保在给定的时间内完成特定的任务。我们看下图这个例子:

无人驾驶技术架构—百度Apollo介绍

2.运行框架

运行框架是Apollo的操作系统,它是在ROS的基础上进行二次开发的版本。那什么是ROS呢,我们就来了解一下。

ROS(Robot Operating System)是机器人操作系统,它提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。ROS遵守BSD开源许可协议。

ROS在机器人行业有着悠久的历史,目前有三四千个基础库支持应用程序的快速开发,ROS根据功能将自治系统划分为多个模块,每个模块负责接收、处理和发布自己的消息,由于这些模块相互独立,只能通过运行时框架进行通信,因此调整任何单一模块都会很容易。这个其实很像微服务的概念,通过高内聚,低耦合的方式实现各个模块的稳定性。

为了使ROS能更好的和无人驾驶相结合,百度Apollo团队改进了共享内存的功能和性能、去中心化和数据兼容性。
(1)共享内存
共享内存降低了需要访问不同模块时的数据复制需求,对于一对多的传输方案,共享内存支持“一次写入 多次读取”的模式,例如我们只收到了一帧的点云,这些点云可以同时运行障碍物检测、定位和GUI工具,而需要点云数据的模块自行读取即可。这一点也非常像MQTT这种发布-订阅模式的协议,一方在一个主题内发送消息,需要该消息的角色订阅该主题即可。

无人驾驶技术架构—百度Apollo介绍
为了避免这种问题,Apollo将所有的节点放在一个公共域中,域中每一个节点都有关于这个域中其他节点的信息,如下图所示:
无人驾驶技术架构—百度Apollo介绍

来源:清平乐的技术专栏

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月5日
下一篇 2022年4月5日

相关推荐