Apollo:目录分析, test ok

  • apollo: Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。 - Gitee.com
  • https://github.com/ApolloAuto/apollo
    在这里插入图片描述

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多进程通信,为上层封装了底层数据传输的细节
  • 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.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
├── 

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

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

相关文章

Vscode报错:line too long (84 > 79 characters)

原因:不允许一行超过79个字母,但是该行代码超出该范围。 参考博客:解决Vs CodeFlake8 报错line too long (108 > 79 characters)Flake8(E501)_flake8 line too long-CSDN博客

Javascript前端面试基础(八)

window.onload和$(document).ready区别 window.onload()方法是必须等到页面内包括图片的所有元素加载完毕后才能执行$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕 window.onload 触发时机:window.onload 事件会在整个页面&#xf…

C++中的push_back

在C中&#xff0c;push_back 是 std::vector 类的一个成员函数&#xff0c;用于将元素添加到向量的末尾。它会将给定的元素复制或移动到向量的末尾&#xff0c;并自动调整向量的大小以容纳新的元素。 示例 #include <iostream> #include <vector>int main() {std…

微服务面试-分布式 注册中心 远程调用 保护

标红的原理还是不太熟悉 重新看 分布式事务 CAP理论 Consistency&#xff08;一致性&#xff09; Availability&#xff08;可用性&#xff09; Partition tolerance &#xff08;分区容错性&#xff09; BASE 理论 就是做取舍 cap三选二 AT模式脏写 TCC模式 注册中…

2024年7月29日(web nginx)

web 一、web基本概念和常识 Web:为用户提供的一种在互联网上浏览信息的服务,Web服务是动态的、可交互的、跨平台的和图形化的。 Web 服务为用户提供各种互联网服务,这些服务包括信息浏览服务,以及各种交互式服务,包括聊天、购物、学习等等内容。 Web 应用开发也经过了几代技术…

MySQL 执行计划详解

文章目录 一. 概念二. 语法三. 详解各字段1. id2. select_type3. table4. partitions5. type6. possible_keys与key7. key_len8. ref9. rows10. filtered11. Extra 一. 概念 有了慢查询后&#xff0c;需要对慢查询语句进行分析。一条查询语句经过MySQL查询优化器后&#xff0c…

最新 【Navicat Premium 17.0.8】简体中文版破解激活永久教程

官方下载地址&#xff1a; https://www.navicat.com.cn/download/navicat-premium 百度网盘补丁链接 链接: https://pan.baidu.com/s/11hu414Honi3Y9dPQ6-07JQ?pwd04mu 提取码: 04mu 未安装过的用户可直接跳过该步骤&#xff0c;如果已安装Navicat&#xff0c;记得先卸载干净…

mac电脑安装 docker镜像 btpanel/baota

PS&#xff1a;docker链接&#xff1a;https://hub.docker.com/r/btpanel/baota 1、将docker下载到本地&#xff0c;然后运行端口映射 docker run -d --restart unless-stopped --name baota -p 8888:8888 -p 22:22 -p 443:443 -p 80:80 -p 888:888 -v ~/website_data:/www/w…

阿里云主机 安装RabbitMQ

一、操作系统 用的是Alibaba Cloud Linux release 3 (Soaring Falcon)系统&#xff0c;可以通过命令&#xff1a;lsb_release -a 查看系统信息。 二、安装RabbitMQ RabbitMQ 是基于 Erlang 语言构建的&#xff0c;要安装RabbitMQ&#xff0c;需先安装Erlang环境。通过Erlang V…

【图解网络】学习记录

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 TCP/IP 网络模型有哪几层&#xff1f;键入网址到网页显示&#xff0c;期间发生了什么&#xff1f;Linux 系统是如何收发网络包的&#xff1f;NAPIHTTP 是什么&#…

Win10出现错误代码0x80004005 一键修复指南

对于 Windows 10 用户来说&#xff0c;错误代码 0x80004005 就是这样一种迷雾&#xff0c;它可能在不经意间出现&#xff0c;阻碍我们顺畅地使用电脑。这个错误通常与组件或元素的缺失有关&#xff0c;它可能源自注册表的错误、系统文件的损坏&#xff0c;或者是软件的不兼容。…

PyTorch 的 .pt 文件是什么?以及都能存储什么样的数据格式和复合数据格式?加载 train.pt 文件的一个代码示例

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、PyTorch 的 .pt 文件是什么&#xff1f; .pt 文件的基本概念&#xff1a; .pt 文件是 PyTorch 中特有的一种文件格式&#xff0c;用于保存和加载各类数据。.pt为 PyTorch 的缩写。此文件格式极其灵…

dotnet-starter-kit:一个Web API+Blazor多租户、模块化、简洁DDD架构!

推荐一个Web APIBlazor多租户、模块化、简洁DDD项目框架。 01 项目简介 dotnet-starter-kit是一个基于 .NET 8 的开源项目&#xff0c;架构构建基于 Clean Architecture 原则的解决方案。支持多租户、模块化&#xff0c;一个开箱即用的项目&#xff0c;方便我们快速开发项目。…

JavaScript(18)——事件类型,事件对象

事件类型 鼠标事件&#xff1a; click&#xff1a;鼠标点击 mouseenter&#xff1a;鼠标经过 mouseleave&#xff1a;鼠标离开 焦点事件&#xff1a; focus&#xff1a;获得焦点 blur&#xff1a;失去焦点 键盘事件&#xff1a; Keydown&#xff1a;键盘按下触发 Keyup&#…

学习java的设计模式

系列文章目录 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录一、一文讲完Java常用设计模式&#xff08;全23种&#xff09;二、其他1.其他 一、一文讲完Java常用设计模式&#xff08;全23种&#x…

GitEval — 预测你的 GitHub 个人资料的质量

使用机器学习来预测你是否擅长编码 可直接在橱窗里购买&#xff0c;或者到文末领取优惠后购买&#xff1a; 如果你曾经申请过技术职位&#xff0c;你可能已经向公司发送了你的 GitHub 个人资料链接。此个人资料中的信息可以很好地表明你的编码能力以及是否适合团队。所有这些信…

Spring事件机制

文章目录 一、Spring事件二、实现Spring事件1、自定义事件2、事件监听器2.1 实现ApplicationListener接口2.2 EventListener2.3 TransactionalEventListener 3、事件发布4、异步使用 三、EventBus1、事件模式2、EventBus三要素3、同步事件3.1 定义事件类3.2 定义事件监听3.3 测…

05 Redis key的设计规范

Redis key的设计规范 一、Redis key的设计规范 ​ Redis的Key设计是非常重要的&#xff0c;因为它决定了数据在Redis中的存储方式和访问模式。以下是一些关于Redis Key设计的规范&#xff1a; ​ 简洁性&#xff1a;Key的名称应该尽可能简洁&#xff0c;避免过长和复杂的名称…

Zookeeper客户端和服务端NIO网络通信源码剖析

文章目录 服务端的ServerCnxFactory到底是个什么东西?ServerCnxFactory 的作用ServerCnxFactory 的实现使用 ServerCnxFactory 的示例注意事项ServerCnxFactory是什么时候完成初始化的?初始化流程代码示例详细步骤1. 创建实例2. 配置3. 启动初始化时机总结服务端基于NIO的Ser…

[tomato]靶机复现漏洞详解!

靶机地址&#xff1a; https://download.vulnhub.com/tomato/Tomato.ova 靶机环境&#xff1a;Vmware 网络&#xff1a;NAT模式 信息收集&#xff1a; arp-scan -l 扫描靶机ip地址 扫描开放的端口信息 nmap -sS -sV -p- 192.168.77.135 发现开放端口21&#xff…