apollo
| 目录名称 |
目录作用 |
| cyber |
消息中间件,替换ros作为消息层 |
| docker |
docker有关的文件,如启动docker脚本,进入docker容器脚本 |
| docs |
文档模块,有完整英文文档和部分中文文档 |
| modules |
自动驾驶模块,主要的定位,预测,感知,规划都在这里 |
| scripts |
脚本 |
| third_party |
第三方库 |
| tools |
编译相关配置文件 |
| .github/ISSUE_TEMPLATE目录 |
记录的文档 |
| .vscode |
的一些参数配置 |
- Apollo项目是用Bazel来做为代码编译工具,相当于java中的maven.
- 每个源码文件夹下都有一个 BUILD文件即bazel的编译配置文件。
apollo/cyber
官方文档: apollo/docs/cyber
| 目录名称 |
目录作用 |
| base/ |
高性能线程安全基础库 主要有原子哈希表、原子读写锁、有界队列、并发对象池、对象池、可重入读写锁、信号、线程池、线程安全队列、无界队列、等待策略等Apollo内部使用的基础设施。------这些接口的封装使得开发者能够轻松处理并发环境下的数据使用、同步问题,提高代码的健壮性 |
| blocker/ |
消息管道容器,和data模块有一定的近似,面向开发者的接口 |
| class_loader/ |
类加载器,用于加载组件的库文件。Apollo中存在多个Component,这些组件将会以库文件的方式编译生成 |
| common |
公共的test、proto转*文件、其他工具 |
| component |
组件基类、外部的modules需要继承该component |
| conf |
配置文件 |
| croutine |
协程类及协程工厂,是调度单元 |
| data |
传感器数据的读取和写入 |
| doxy-docs |
一些文档 |
| event |
事件类 |
| example |
示例 |
| io |
epoll+io |
| logger |
日志器 |
| mainboard |
Apollo系统的启动入口 |
| message |
消息类 |
| node |
节点定义 |
| parameter |
参数及参数服务器 |
| proto |
proto文件夹 |
| python |
pythonAPI |
| record |
消息记录 |
| scheduler |
调度模块 |
| service |
|
| service_discovery |
|
| sysmo |
就是 system monitor |
| task |
任务 启动调度 |
| time |
时钟与rate |
| timer |
单例定时器 管理task |
| tools |
一大堆工具channel launch |
| transport |
多进程通信,为上层封装了底层数据传输的细节 |
apollo/ modules
| 目录名称 |
目录作用 |
| audio |
|
| bridge |
|
| calibration |
校准,主要用于传感器坐标的校准,用于感知模块做传感器融合。现在已经实现自动校准的功能 |
| canbus |
通讯总线,工业领域的标准总线 |
| canbus_vehicle |
|
| common |
公共源码模块如日志,工厂模式的实现,日志系统,监控模块,数学算法等 |
| contrib |
|
| control |
控制模块,根据planning生成的路径对车辆轨迹进行控制,再底层就是发送命令到can总线,实现车辆的控制。 |
| data |
地图等生成好的数据放在这里 |
| dreamview |
仿真,能够对自动驾驶过程中的数据进行回放 |
| drivers |
雷达,lidar,GPS, canbus,camera等驱动 |
| guardian |
监护进程,主要是为了安全 |
| localization |
定位,获取汽车的当前位置: 输入GPS和IMU信息输出自车定位信息 |
| map |
高精地图模块,输出结构化地图信息,如车道线,十字路口等 |
| monitor |
监控模块,主要是监控汽车状态,同时把状态发给hmi,并且记录,用于故障定位,健康检查等 |
| perception |
感知,获取汽车当前的环境,行人,车辆,红绿灯等,给planning模块规划线路 |
| planning |
规划,针对感知到的情况,对路径做规划,短期规划,只规划100-200M的距离, 生成好的路径给control模块 |
| prediction |
预测,属于感知模块,对运动物体的轨迹做预测 |
| routing |
导航线路,就是百度地图上查询2点之间的线路,生成的线路短期规划还是planning模块 |
| storytelling |
|
| task_manager |
|
| third_party_perception |
第三方感知模块 |
| tools |
|
| transform |
|
| v2x |
顾名思义就vehicle-to-everything,其希望实现车辆与一切可能影响车辆的实体实现信息交互, 目的是减少事故发生,减缓交通拥堵,降低环境污染以及提供其他信息服务. |
apollo/modules/guardian
| 目录名称 |
目录作用 |
| BUILD |
|
| conf |
|
| cyberfile.xml |
|
| dag |
|
| guardian.BUILD |
|
| guardian_component.cc |
|
| launch |
|
| proto |
|
apollo/modules/monitor
| 目录名称 |
目录作用 |
| BUILD |
|
| common |
|
| cyberfile.xml |
|
| dag |
|
| hardware |
|
| launch |
|
| monitor.BUILD |
|
| monitor.cc |
|
| README.md |
|
| software |
|
apollo/modules/routing
| 目录名称 |
目录作用 |
| BUILD |
|
| common |
|
| conf |
|
| core |
|
| cyberfile.xml |
|
| dag |
|
| graph |
|
| launch |
|
| proto |
|
| README_cn.md |
|
| README.md |
|
| routing.BUILD |
|
| routing.cc |
|
| routing_component.cc |
|
| routing.h |
|
| strategy |
|
| tools |
|
| topo_creator |
|
apollo/ modules / perception
| 目录名称 |
目录作用 |
| base |
基础类 |
| BUILD |
|
| camera |
相机相关 |
| common |
公共目录 |
| cyberfile.xml |
|
| data |
相机的内参和外参 |
| fusion |
传感器融合 |
| inference |
深度学习推理模块 |
| lib |
一些基础的库,包括线程、文件配置等 |
| lidar |
激光雷达相关 |
| map |
地图 |
| onboard |
各个子模块的入口 |
| perception.BUILD |
|
| Perception_README_3_5.md |
|
| pipeline |
|
| production |
感知模块入口 — 通过cyber启动子模块 |
| proto |
数据格式,protobuf |
| radar |
毫米波雷达 |
| README.md |
|
| README_paddle3D_CN.md |
|
| testdata |
几个模块的测试数据 |
| tool |
离线测试工具 |
16 director
apollo/modules / planning
| 目录名称 |
目录作用 |
| common |
轨迹合成,拼接。。。。。 |
| conf |
与模块启动相关的配置,模块配置 |
| constraint_checker |
约束检查和碰撞检查 |
| dag |
与模块启动相关的配置,默认建图文件是dag/planning.dag,内部实现模块节点间的通讯配置,构建DAG(有向无环图),dag中再设置了config中的相关配置文件 |
| data |
|
| images |
|
| integration_tests |
|
| lattice |
|
| launch |
与模块启动相关的配置:默认启动文件是launch/planning.launch,它是cyber系统的luanch命令启动相关配置,内部决定了模块间的通讯配置建图文件(*.dag) |
| learning_based |
|
| math |
曲线求解,优化等 |
| planning_component.cc |
组件入口 |
| planning_base.cc |
planning模块主体 |
| on_lane_planning.cc |
planning模块主体 |
| navi_planning.cc |
planning模块主体 |
| planner |
调度器和规划器 |
| scenarios |
场景管理 |
apollo/modules/planning/planner
| 目录名称 |
目录作用 |
| planner.h |
规划器的基类,里面定义了planning和PlannerWithReferenceLine两个虚类 |
| planner_dispatcher.cc |
规划分配器 |
| on_lane_planner_dispatcher.cc |
继承了PlannerDispatcher |
| navi_planner_dispatcher.cc |
继承了PlannerDispatcher |
| lattice |
|
| navi |
|
| public_road |
|
| rtk |
|
.
├── BUILD
├── lattice
├── navi
├── planner_dispatcher.h
├──
├── public_road
└──
apollo/ modules / map
| 目录名称 |
目录作用 |
| BUILD |
|
| cyberfile.xml |
|
| data |
生成好的地图 |
| hdmap |
高清地图模块,类似一个库,不像其他模块使用发布与订阅机制,它频繁被调用用来检索相关道路的结构信息 |
| map.BUILD |
|
| pnc_map |
给规划控制模块用的地图 |
| relative_map |
相对地图 |
| testdata |
/ 测试数据? |
| tools |
/ 工具 |
data