百度Apollo 自动驾驶开源模块分析

文件目录简介

  • apollo根目录
    ├── .github/ISSUE_TEMPLATE目录 // 问题记录的文档
    ├── .vscode // 启动的一些参数配置
    ├── docker // docker有关的文件,如启动docker脚本,进入docker容器脚本
    ├── docs // 文档模块,有完整英文文档和部分中文文档
    ├── modules// apollo中各个模块的源代码,如感知,决策,规划等核心模块
    ├── scripts// 启动脚本,如启动hmi的脚本
    ├── third_party // 第三方的库
    └── tools // 编译相关配置文件
  • Apollo项目是用Bazel来做为代码编译工具,每个源码文件夹下都有一个 BUILD文件即bazel的编译配置文件。
  • modules目录下的子目录
    ├── calibration// 标定模块,现在已经实现自动标定的功能
    ├── canbus // can总线相关的模块
    ├── common // 公共源码模块如日志,工厂模式的实现,日志系统,监控模块,数学算法等
    ├── control // 幅度和度的相互转换
    ├── data // 数据的收集,存储和处理
    ├── dreamview // 可视化模块,查看规划的轨迹及实时的转向刹车油门信息
    ├── drivers // GNSS设备驱动,包括NovAtel, Applanix, u-blox, velodyne驱动
    ├── e2e // 端到端模块
    ├── elo // 利用高精地图的自定位模块
    ├── guardian // 监护进程,主要是为了安全
    ├── localization // 定位模块,输入GPS和IMU信息输出自车定位信息
    ├── map // 高精地图模块,输出结构化地图信息,如车道线,十字路口等
    ├── monitor // 监控模块,监控硬件状态,同时把状态发给hmi
    ├── perception // 感知模块,输入激光点云,高精地图,变换坐标
    ├── planning // 决策规划模块
    ├── prediction // 预测模块,输出感知的障碍物信息及自定位信息输出障碍物未来的轨迹
    ├── routing // 全局导航模块,输入包括地图信息各起点终点地址,输出一个全局的导航信息
    ├── third_party_perception // 车辆姿态模拟线程
    └── tools // 第三方的感知模块

Apollo项目的主要模块

  • 处理核心的感知,预测,规划控制三个模块之外,还有OTA,云端集群仿真, 自定位高精度地图,端到端的深度学习, 网页可视化,底层的驱动和ROS计算框架等等。

Apollo 框架的剖析1的更多相关文章

  1. Vulcan 基于Meteor的APollO框架 , grapesjs 用于可视化生成Html 页面

    Vulcan 基于Meteor的APollO框架 :http://vulcanjs.org/ grapesjs 用于可视化生成Html    http://grapesjs.com/

  2. ijkplayer框架深入剖析

    随着互联网技术的飞速发展,移动端播放视频的需求如日中天,由此也催生了一批开源/闭源的播放器,但是无论这个播放器功能是否强大.兼容性是否优秀,它的基本模块通常都是由以下部分组成:事务处理.数据的接收和解 ...

  3. twemproxy代码框架概述——剖析twemproxy代码前编

    本篇将去探索twemproxy源码的主干流程,想来对于想要开始啃这份优秀源码生肉的童鞋会有不小的帮助.这里我们首先要找到 twemproxy正确的打开方式--twemproxy的文件结构,接着介绍tw ...

  4. Apollo框架试玩

    2017年7月5日,百度举行了AI开发者大会,在会上发布了Apollo项目,并进行了演示,该项目在Github上已经能够被访问.出于一个程序员的好奇,昨天试玩了一把,确实不错. http://apol ...

  5. 第3章 MFC框架程序剖析

    参考: https://blog.csdn.net/u014162133/article/details/46573873 1. 2.MFC简介:MFC(Microsoft Foundation Cl ...

  6. MapReduce剖析笔记之一:从WordCount理解MapReduce的几个阶段

    WordCount是一个入门的MapReduce程序(从src\examples\org\apache\hadoop\examples粘贴过来的): package org.apache.hadoop ...

  7. MFC学习-第2,3课 MFC框架的运行机制

    转自:http://blog.163.com/zhigang0633@126/blog/static/38790491200822711526168/ 讲述MFC AppWizard的原理与MFC程序 ...

  8. 转:透析QTP自动化测试框架SAFFRON

    1.为什么要使用框架? 框架是一组自动化测试的规范.测试脚本的基础代码,以及测试思想.惯例的集合.可用于减少冗余代码.提高代码生产率.提高代码重用性和可维护性.例如QTestWare就是QTP自动化测 ...

  9. duilib基本框架

    最近我一个同学在项目中使用到了duilib框架,但是之前并没有接触过,他与我讨论这方面的内容,看着官方给出的精美的例子,我对这个库有了很大的兴趣,我自己也是初学这个东东,我在网上花了不少时间来找相关的 ...

随机推荐

  1. Terminal 快捷键帮助

    Terminal 快捷键帮助 Terminal 快捷键帮助 移动光标至行首 CTRL+A 第一次按时,移动光标至行首: 再次按时,回到原有位置 CTRL+X 移动光标至行尾 CTRL+E 光标向左移动 ...

  2. vue使用vue-awesome-swiper及一些问题

    vue-awesome-swiper是基于swiper的一个轮播图插件,使用非常方便. 首先安装下 npm install vue-awesome-swiper --save 然后在入口文件main. ...

  3. eventproxy 介绍这款好用的工具,前端事件式编程的思维

    前端事件式编程 <script src="eventproxy.js"></script> <script> // EventProxy此时是一 ...

  4. C#中转换函数Convert、Parse、TryParse、(int) 的区别

    Convert.Parse.TryParse.(int) 三个函数都是将值转换成整数,但是四者之间各有异同,开发人员可以根据情况选用最合适的.以下解释均经过高人验证,希望对大家有所帮助. 1 (int ...

  5. Sqlserver自动优化

     (1)select a.* from tb1 a left join tb2  b on a.id=b.id where a.name='1' (2)select * from (select a. ...

  6. 三十三、Linux 进程与信号——中断系统调用和函数可重入性

    33.1 中断系统调用 进程调用 “慢” 系统调用时,如果发生了信号,内核会重启系统调用. 慢系统调用 可能会永久阻塞的系统调用 从终端设备.管道或网络设备上的文件读取 向上述文件写入 某些设备上的文 ...

  7. 【python小练】0001

    第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? # coding ...

  8. Java SE之反射技术[Class,Field](一)

    一.什么是反射? 反射库(Reflection Library)提供了一个非常丰富且精心设计的工具集,以便编写能够动态操纵Java代码的程序.这项功能被大量地应用在JavaBeans中,它是Java组 ...

  9. webpack中resolve用法

    如果想在页面中使用 bootstrap 的样式,一般会在入口文件中引入 import 'bootstrap' 但是这样引入的 bootstrap 默认引入的是JS文件,所以页面的样式是不会生效的,下面 ...

  10. Eclipse 自动生成 Ant的Build.xml 配置文件

    Eclipse 自动生成 Ant的Build.xml 配置文件,生成的方法很隐蔽 选择你要生成Build.xml文件的项目,右键. Export-> General -> Ant Buil ...