许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Apollo自动驾驶目录结构分析

Apollo自动驾驶目录结构分析

阅读数 5
点赞 0
article_banner

apollo


目录名称目录作用
cyber消息中间件,替换ros作为消息层
dockerdocker有关的文件,如启动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示例
ioepoll+io
logger日志器
mainboardApollo系统的启动入口
message消息类
node节点定义
parameter参数及参数服务器
protoproto文件夹
pythonpythonAPI
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.ccplanning模块主体
on_lane_planning.ccplanning模块主体
navi_planning.ccplanning模块主体
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
相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空