
#百人创作先锋团#开源自动驾驶技术(3)-百度Apollo 原创
开源自动驾驶技术(3)-百度Apollo
推荐Apollo自动驾驶框架
推荐Apollo自动驾驶开源框架的原因主要有三方面
- 80%以上的代码开源,良好的社区开发者环境以及百度自身对此项目的不断推进让广大开发者对其充满了信心。
- 国产和自研高性能内核为自动驾驶而定制的核心中间件值得信赖。
- 大部分的代码具有注释以及社区开发者文章同时百度工程师和布道师经常开课进行教学,能够深入学习其思想。
Apollo版本迭代和最新版版本
百度Apollo框架诞生于2017年经过5年的迭代和不断升级目前已经达成稳定版6.0实车运行,测试版8.0于2022年11月Apollo Day发布。
Apollo自动驾驶框架目前从2017年至今迭代了8个版本目前官网直接提供的安装包包括 Apollo8.0和Apollo6.0 edu版本,以及为了教学而使用的apollo quick start版本。
Apollo作为自动驾驶框架系统首先在迭代过程中摆脱了传统机器人技术依赖ROS的情况,在3.0以后自研了Cyber_RT内核提供完整的强实时性自动驾驶系统。
Apollo架构初步解析
推荐参考这个仓库作出了大部分apollo源码和机制解析。
代码架构解析
cyber 消息中间件,替换ros作为消息层
docker 容器相关
docs 文档相关
modules 自动驾驶模块,主要的定位,预测,感知,规划都在这里
calibration 校准,主要用于传感器坐标的校准,用于感知模块做传感器融合
canbus 通讯总线,工业领域的标准总线
common
contrib
control 控制模块,根据planning生成的路径对车辆轨迹进行控制,
再底层就是发送命令到can总线,实现车辆的控制。
data 地图等生成好的数据放在这里
dreamview 仿真,能够对自动驾驶过程中的数据进行回放
drivers 雷达,lidar,GPS, canbus,camera等驱动
guardian 安全程控
localization 定位,获取汽车的当前位置
map 地图模块
monitor 监控模块,主要是监控汽车状态,并且记录,用于故障定位,健康检查等
perception 感知,获取汽车当前的环境,行人,车辆,红绿灯等,给planning模块规划线路
planning 规划,针对感知到的情况,对路径做规划,短期规划,只规划100-200M的距离,
生成好的路径给control模块
prediction 预测,属于感知模块,对运动物体的轨迹做预测
routing 路由模块,就是百度地图上查询2点之间的线路,生成的线路短期规划还是planning模块
third_party_perception 第三方感知模块
tools 工具,这里面的工具倒是很多,后面再详细介绍下
transform 车体传感器和电子坐标系类似ros tf2
v2x 顾名思义就vehicle-to-everything,其希望实现车辆与一切可能影响车辆的实体实现信息交互,
目的是减少事故发生,减缓交通拥堵,降低环境污染以及提供其他信息服务.
scripts 脚本
third_party 第三方库
tools 工具目录,自己写的有些脚本可以丢这里
系统架构对应关系及分析
上图展示的是Apollo7.0所提供的系统架构图
框架分为四个层级 云端服务层 开源软件层 硬件层 车辆/机器人底盘适配层,
百度自动驾驶的关键技术也提供给开发者使用。
以及高实时性的CyberRT中间件。
自动驾驶开放平台作为百度多元汽车机器人落地的重要支撑,本次升级发布的Apollo7.0实现了从代码到工具、从开源平台到工具化平台的里程碑式完整进化。在云端服务、开源软件、硬件开发、车辆认证四大开源平台基础上,Apollo 7.0提供了包括一站式实践云平台Apollo Studio、业内领先仿真服务、高效新模型在内的一系列升级,不仅代码全能力开放,更能提供自动驾驶全栈工具链,更易用、更领先、更高效的帮助开发者运用平台能力。
云端服务平台层面,Apollo 7.0将6.0版本中深受开发者欢迎的“数据流水线”服务正式升级为Apollo Studio,涵盖开发者从上机到上车实践的全流程云端工具链,为开发者提供一站式实践平台体验。
仿真平台层面,Apollo 7.0推出业界首个PnC强化学习模型训练与仿真评测平台,具有数据真实、功能强大、评测标准全面、架构可扩展等多重优势,有望为强化学习研究提供统一的验证标准。
开源软件平台层面,Apollo7.0对感知和预测算法模块升级,引入MaskPillars、SMOKE、Inter-TNT三个基于深度学习的模型,有效减少漏检、抖动等问题。
上手自动驾驶技术
大家上手自动驾驶基础至少需要有一定的硬件嵌入式基础,算法基础,以及python/C++开发经验,不要盲目开动可能会学的比较头秃,在前期上手玩耍或者入门阶段不如试试Apollo自动驾驶云端实验室。
自动驾驶云实验室
后续开发
实车上路并不是一件简单的事情,在前期的研究有90%的时间是在实验室完成的,而这90%中的70%以上是在电脑的仿真系统中完成的,以下是Apollo自动驾驶系统的可视化系统搭配LGSVL仿真作出的展示效果,在后面会有文章介绍这一部分的技术实现。
