- apollo: Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。 - Gitee.com
- https://github.com/ApolloAuto/apollo
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 | 多进程通信,为上层封装了底层数据传输的细节 |
- cyberRT源码浅层解析
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
├──