相关地址
Apollo首页官方地址
Apollo开放平台
Apollo官方代码Github地址
Apollo官方安装指南
Apollo 目录架构
一级目录(/):
- docker:docker有关的文件,如启动docker脚本,进入docker容器脚本。
- docs:文档模块,有完整英文文档和部分中文文档 。
- modules:apollo中各个模块的源代码,如感知,决策,规划等核心模块。
- scripts:启动脚本,如启动hmi的脚本。
- third_party:第三方的库。
- tools:编译相关配置文件。
二级目录:
这里主要查看目录下的modules模块
/modules:
- common:公共源码模块如日志,工厂模式的实现,日志系统,监控模块,数学算法等。
- drivers:驱动,雷达,lidar,GPS, canbus,camera等驱动。
- calibration: 传感器标定文件及标定数椐检测脚本。
- control:控制模块,根据planning生成的路径对车辆轨迹进行控制,如转向刹车,控制等,再底层就是发送命令到can总线,实现车辆的控制。
- canbus: 接收控制指令,同时给控制模块control发送车身状态信息。
- planning:决策规划模块,decision模块合并在planning里了。针对感知到的情况,对路径做规划,短期规划,只规划100-200M的距离,生成好的路径给control模块。
- routing:全局导航模块,输入包括地图信息各起点终点地址,输出一个全局的导航信息。
- prediction:预测模块,属于perception模块,对运动物体的轨迹做预测。输入感知的障碍物信息及自定位信息,输出障碍物未来的轨迹。
- localization:定位模块,获取汽车的当前位置。
- map:高精地图模块,输出结构化地图信息,如车道线,十字路口等。
- perception:感知模块,获取汽车当前的环境,行人,车辆,红绿灯等,给planning模块规划线路。输入激光点云,高精地图,变换坐标,输出3D障碍物包括速度大小和方向。
- hmi:人机交互模块,http服务利用浏览器可查看及更改一些配置及启动某些节点。
- dreamview:可视化模块,查看规划的轨迹及实时的转向刹车油门信息。
- monitor:监控模块,监控硬件状态,同时把状态发给hmi
- tools:工具模块,包括一些可视化的工具,bag包录制及回放脚本
- e2e:端到端模块,Apollo1.5新增模块。
- elo:利用高精地图的自定位模块,Apollo1.5新增模块。
三级目录:
这里这要查看modules下的Percetion模块
/modules/Perception:
├── BUILD
├── Perception_README_3_5.md
├── README.md
├── base // 基础类
├── camera* // 相机相关,实现车道线识别,红绿灯检测,以及障碍物识别和追踪--- 子模块流程
├── common* // 公共目录
├── data // 相机的内参和外参
├── fusion* // 传感器融合,对传感器的感知结果做融合
├── inference* // 深度学习推理模块主要实现了caffe,TensorRT和paddlepaddle 3种模型部署
//训练好的深度模型在"modules\perception\production\data"中
├── lib // 一些基础的库,包括线程、时间等
├── lidar* // 激光雷达相关,实现障碍物识别和追踪(对点云做分割,分类,识别等) --- 子模块流程
├── map // 地图
├── model // 深度学习模型
├── onboard* // 各个子模块的入口 --- 子模块入口
├── production* // 感知模块入口(深度学习模型也存放在这里)
--- 通过cyber启动子模块
├── proto* // 数据格式,protobuf
├── radar* // 毫米波 --- 子模块流程
├── testdata // 上述几个模块的测试数据
└── tool // 离线测试工具