Apollo概述
官方:https://apollo.auto/platform/perception_cn.html
github:https://github.com/ApolloAuto/apollo
学习中心:https://apollo.auto/devcenter/idpcourse_cn.html
Apollo是百度的自动驾驶开源框架,根据自动驾驶的功能划分为不同的模块
主要分为6部分:
●高精度地图 HD Maps、
●定位 Localization
●感知 Perception
●预测 Prediction
●规划 Planning
●控制 Control
1:高精度地图 HD Maps(High Definition Maps)
2:定位 Localization: 汽车定位自己位置厘米级精度自定位 可以确定车辆的全球和本地位置
3:感知 Perception:深度学习(CNN 分类 检测 分割)数据来源:摄像头 雷达 激光雷达
感知是将各类硬件传感器采集到的数据进行收集、处理,并生成实时的感知结果的过程:
●通过传感器来判断周边障碍物的距离、类型、形状等
●通过采集到的图片利用提前准备好的深度学习算法识别出画面中的语义信息(车牌、交通标志等)
4:预测 Prediction: 预测其他车辆或行人可能如何移动(RNN)
一般而言,预测模块的输入就是感知模块的输出,包括运动物体的位置、速度、朝向、物体分类(如车辆,行人,自行车)等信息。运动预测(Motion Planning)模块结合运动物体的属性信息、历史运行轨迹信息以及高精地图信息,给出运动物体在未来一段时间内的运动行为的预测。
5:规划 Planning: 将预测和路线相结合以生成车辆轨迹
6:控制 Control: 如何使用转向,油门,制动(刹车)来执行规划轨迹
Apollo各部分架构
●定位
○https://github.com/ApolloAuto/apollo/blob/master/modules/localization/README_cn.md
○一种是结合GPS和IMU信息的RTK(Real Time Kinematic实时运动)方法,另一种是融合GPS、IMU和激光雷达信息的多传感器融合方法。
●感知
○https://github.com/ApolloAuto/apollo/tree/master/modules/perception
●预测
○https://github.com/ApolloAuto/apollo/blob/master/modules/prediction/README_cn.md
○预测模块从感知模块接收障碍物,其基本感知信息包括位置、方向、速度、加速度,并生成不同概率的预测轨迹。
●路由
○https://github.com/ApolloAuto/apollo/blob/master/modules/routing/README_cn.md
○路由模块根据请求生成高级导航信息。
路由模块依赖于路由拓扑文件,通常称为Apollo中的routing_map.*。路由地图可以通过命令来生成。
●规划
○https://github.com/ApolloAuto/apollo/blob/master/modules/planning/README_cn.md
○
●控制
○https://github.com/ApolloAuto/apollo/blob/master/modules/control/README_cn.md
○本模块基于规划和当前的汽车状态,使用不同的控制算法来生成舒适的驾驶体验。控制模块可以在正常模式和导航模式下工作。
○输出:给底盘的控制指令(转向,节流,刹车)。
无人驾驶车运作方式(Apollo 平台的无人驾驶结构)
Apollo 无人驾驶平台是以高精地图和定位模块作为核心。其他的模块都是以这两个模块为基础。我们会在整个课程中看到这样的结构。
Apollo团队和架构
pollo 技术框架包含 :
●参考车辆平台
●参考硬件平台
●开源软件平台
●云服务平台
1. 参考车辆与硬件平台
https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_2_0_hardware_system_installation_guide_v1.md
[Apollo Hardware and System Installation Guide] ─ Provides the instructions to install the hardware components and the system software for the vehicle:
●Vehicle:
○Industrial PC (IPC)
○Global Positioning System (GPS):确定所处位置
○Inertial Measurement Unit (IMU): 惯性测量装置:测量车辆的运动和位置
○Controller Area Network (CAN) card 控制区域网络:车辆的内部通信网络
■发送加速,制动,转向信号
○GPS Antenna
○GPS Receiver
○Light Detection and Ranging System (LiDAR):360度点云数据
○Camera:捕获图像数据(计算机视觉处理)
○Radar:分辨率低,但是经济实惠,适用于各种天气,照明条件,特别擅长测量其他车辆的速度
●Software:
○Ubuntu Linux
○Apollo Linux Kernel
○NVIDIA GPU Driver
2. 开源软件栈
1实时操作系统(ROTS)
2运行时框架
3应用程序模块层
●实时操作系统(ROTS)
○Ubuntu+Apollo
●运行时框架
○操作环境 ROS定制版(改进三块:共享内存,去中心化 数据兼容性 )
ⅰ共享内存(一次写入,多次读取)
●
ⅱ去中心化(ROS Master)(解决单点故障问题)
●将所有节点放在一个公共域中
ⅲ数据兼容性 ROS Message
●使用protobuf的接口语言代替原生ROS消息
○在RTOS上运行的软件框架
●应用程序模块层
○各种模块:MAP引擎,定位,感知等等
○
3. 云服务
●不仅仅提供数据,也提供了很多应用程序
Cloud Services
●HD Map
●Simulation(仿真环境平台)
●Data Platform:http://apolloscape.auto/scene.html
●Security
●OTA(over-the-air) update:无线更新
●DuerOS: 智能语音系统
4. Apollo Github库
Technical Tutorials
以下为官方的教学课程,感兴趣的小伙伴上课学习吧~
Apollo开放平台9.0专项技术公开课链接
https://apollo.baidu.com/community/activity/16
《Apollo自动驾驶技术详解25讲》
https://apollo.baidu.com/community/online-course/77
《自动驾驶新人之旅》
https://apollo.baidu.com/community/online-course/11