Apollo:目录分析, test ok

news2024/9/8 2:06:46
  • 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
├── 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1959024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年【制冷与空调设备运行操作】考试题及制冷与空调设备运行操作新版试题

题库来源:安全生产模拟考试一点通公众号小程序 制冷与空调设备运行操作考试题根据新制冷与空调设备运行操作考试大纲要求,安全生产模拟考试一点通将制冷与空调设备运行操作模拟考试试题进行汇编,组成一套制冷与空调设备运行操作全真模拟考试…

python绘制图像无法显示汉字、数字

解决的问题:python绘制图像无法正确显示汉字、数字,图中汉字数字以方块形式显示。 直接先上代码: # 确保图表中的汉字可以显示 plt.rcParams["font.sans-serif"] ["SimHei"] plt.rcParams["axes.unicode_minus…

25.惰性队列

介绍 消费者由于各种原因而致使长时间不能消费消息造成堆积。比如有一百万条消息发送到mq中,消费者这时宕机了不能消费消息,造成了消息堆积。惰性队列就有必要了。 正常情况下,消息保存在内存中。消费者从内存中读取消息消费,速…

【设计模式】代理模式详解

1.简介 代理模式是常用的Java设计模式,该模式的特点是代理类与委托类共享相同的接口。代理类主要负责预处理消息、过滤消息、将消息转发给委托类,并在事后处理消息等。代理类与委托类之间通常存在关联关系,一个代理类对象与一个委托类对象关…

TPM管理咨询公司在项目实施过程中提供哪些培训和支持?

在竞争激烈的市场环境中,企业项目的成功实施不仅是技术的较量,更是管理智慧的体现。而TPM管理咨询公司,作为提升企业运营效率与竞争力的专业伙伴,深知在项目推进的每一步中,专业的培训与强大的支持体系对于确保项目顺利…

shell脚本编写、一键安装nginx、条件语句、 检测网段脚本、 打印九九乘法表、

1.shell脚本 1.编写及运行脚本 [root13git ~]# vim hello.sh [root13git ~]# bash hello.sh [root13git ~]# sh hello.sh [root13git ~]# source hello.sh //在当前进程执行 [root13git ~]# chmod x hello.sh [root13git ~]# ./hello.sh 2.一键安装nginx [root13g…

小红书笔记评论采集全攻略:三种高效方法教你批量导出

摘要: 本文将深入探讨如何利用Python高效采集小红书平台上的笔记评论,通过三种实战策略,手把手教你实现批量数据导出。无论是市场分析、竞品监测还是用户反馈收集,这些技巧都将为你解锁新效率。 一、引言:小红书数据…

芋道源码/yudao-cloud二次开发日记(商品sku数据归类为规格属性)

商品的每一条规格和属性在数据库里都是单一的一条数据,从数据库里查出来后,该怎么归类为对应的规格和属性值?如下图: 在商城模块,商品的单规格、多规格、单属性、多属性功能可以说是非常完整,如下图&#x…

Github2024-07-29 开源项目周报Top15

根据Github Trendings的统计,本周(2024-07-29统计)共有15个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目2Java项目2HTML项目2C项目2TypeScript项目2JavaScript项目2非开发语言项目1Vue项目1Go项目1Dart项目1C++项目1Rust项目1Jupyter Note…

项目计划书编制方案(DOC)

项目开发计划包括项目描述、项目组织、成本预算、人力资源估算、设备资源计划、沟通计划、采购计划、风险计划、项目过程定义及项目的进度安排和里程碑、质量计划、数据管理计划、度量和分析计划、监控计划和培训计划等。 软件资料清单列表部分文档: 工作安排任务书…

Temporal(时效)模式01

Andy Carlson, Sharon Estepp, Martin Fowler 著,透明 译 抽象 在面向对象设计中,我们不断使用“对象”(object)这个词。对象不仅仅用来表现真实世界中存在的物件,它们也被用来表现那些曾经存在但已经消失了的物件&…

关于Docker Engine AuthZ 插件授权绕过漏洞 (CVE-2024-41110)

一、漏洞概述 漏洞名称:Docker Engine AuthZ 插件授权绕过漏洞 (CVE-2024-41110) 漏洞等级:高危 漏洞描述:DockerEngine是Docker的核心组件,是一 个开源的容器引擎,负责构建、运行和管理容器…

又一新AI搜索工具,OpenAI 推出新的搜索方式 SearchGPT

系列文章目录 每天推荐AI工具系列文章回顾: 选择 haiyi海艺图像生成、LoRA、模型的使用和训练网站 tusiart吐司艺术图像生成、LoRA 模型的使用和训练网站 解锁AI创造力的无限可能:探索Vivago.ai的革命性功能 文章目录 系列文章目录前言一、SearchGPT…

html+css+js前端作业和平精英6个页面页面带js

htmlcssjs前端作业和平精英6个页面页面带js 下载地址 https://download.csdn.net/download/qq_42431718/89595600 目录1 目录2 项目视频 htmlcssjs前端作业和平精英6个页面带js 页面1 页面2 页面3 页面4 页面5 页面6

锐捷RCNA | RGOS日常管理操作和Windows常用命令

RGOS操作系统最主要的三大特性是模块化、安全性、开放性。 RGOS平台登陆方式 平台概述 RGOS全称“锐捷通用操作系统”,即网络设备的操作系统 基于RGOS开发的软件版本目前为11.x,又被称为11.x平台优势 模块化设计,方便运维管理故障隔离&…

[ARC105E] Keep Graph Disconnected题解

题目 考虑加任意一条边时都会输的图的状态:图被分成两个强联通分量,每一个强联通分量都是一个完全图。 也就是说,假设一开始节点 1 1 1 和节点 n n n 不联通,那么还可以加 n ( n − 1 ) 2 − m − c n t 1 ( n − c n t 1 ) \…

78.SAP ME - SAP ME和SAP NetWeaver log files的位置

目录 1.defaultTrace files 内容 文件位置 2.dev_server files 内容 文件位置 3.dev_icm files 内容 文件位置 4.responses.trc files 内容 文件位置 1.defaultTrace files You should always check this log first when any system issue is reported 内容 包含…

经典文献阅读之--GraphAD(端到端自动驾驶的交互场景图)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务,并且需要GPU资源,可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时&…

什么是项目计划?项目计划如何制定?

做不好项目计划的项目管理,注定会失败! 项目计划是帮助管理人员有效实现目标的非常重要的一环,在开始任何项目之前,制定一份详细的计划作为所有参与者的指导性文件非常重要。那么什么是项目计划?项目计划又该如何制定…

springboot集成thymeleaf实战

引言 笔者最近接到一个打印标签的需求,由于之前没有做过类似的功能,所以这也是一次学习探索的机会了,打印的效果图如下: 这个最终的打印是放在58mm*58mm的小标签纸上,条形码就是下面的35165165qweqweqe序列号生成的&…