查看原文
其他

开发者说丨Apollo学习进阶指南

王方浩 Apollo开发者社区 2022-07-29


今天分享给大家的,是Apollo社区开发者——王方浩根据自己学习Apollo的经验而收集整理的学习目录。目录由初阶到高阶逐步递进,为其他学习Apollo的开发者提供了一个很好的参考。


这位开发者之所以创建这个项目,是因为看到不少网络上的资料和个人博客之后,感叹一些大神仅仅依靠自学就能够做到如此优秀,因此敦促自己完成了这份优秀的笔记。


笔记的完成也要感谢@百度Apollo项目 @3Blue1Brown @台大李宏毅 @iMorpheusAI @阿Paul哥。



  以下,ENJOY  



由于国内目前访问github太慢,网上有通过设置host来加快访问github的攻略,为了方便大家下载代码,现在把代码同步托管到码云上。主线代码可能随时都在更新,因此我会定期同步代码,如果需要稳定版本最好下载tag版本"v5.5.0"。


码云地址: apollo:

https://gitee.com/daohu527/apollo


  • Apollo简介:

    https://github.com/daohu527/Dig-into-Apollo/blob/master/introduction

    • 简介

      https://github.com/daohu527/Dig-into-Apollo/blob/master/introduction#introduction

    • 目录结构

      https://github.com/daohu527/Dig-into-Apollo/blob/master/introduction#content

    • 编译

      https://github.com/daohu527/Dig-into-Apollo/blob/master/introduction#compile

  • Map

    https://github.com/daohu527/Dig-into-Apollo/blob/master/map

    • 采集

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#collect

    • 加工

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#process

    • 转换

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#transform

    • 地图信息头

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#header

    • 人行横道

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#crosswalk

    • 路口

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#junction

    • 车道

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#lane

    • 停止信号

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#stop_sign

    • 交通信号标志

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#signal

    • 让行

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#yield

    • 重叠区域

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#overlap

    • 禁止停车

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#cleararea

    • 道路信息

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#road

    • 停车区域

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#parking

    • 行人道路

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#sidewalk

    • Map模块简介

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#introduction

    • Map目录结构

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#content

    • 地图数据结构

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#map_data_struct

    • OpenDriver地图解析

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#parse

    • 高精度地图API

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#api

    • 如何制作高精度地图

      https://github.com/daohu527/Dig-into-Apollo/blob/master/map#how

    • Reference

      https://github.com/daohu527/Dig-into-Apollo#reference

  • Localization

    https://github.com/daohu527/Dig-into-Apollo/blob/master/localization

    • Localization模块简介

      https://github.com/daohu527/Dig-into-Apollo/blob/master/localization#introduction

    • 代码目录

      https://github.com/daohu527/Dig-into-Apollo/blob/master/localization#content

    • RTK定位流程

      https://github.com/daohu527/Dig-into-Apollo/blob/master/localization#rtk

    • Reference

      https://github.com/daohu527/Dig-into-Apollo/blob/master/localizationreference

  • Perception

    https://github.com/daohu527/Dig-into-Apollo/blob/master/perception

    • Caffe2环境准备

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/caffe2#env

    • 安装显卡驱动

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/caffe2#drivers

    • 安装CUDA

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/caffe2#cuda

    • 安装CUDNN

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/caffe2#cudnn

    • 安装Caffe2

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/caffe2#caffe2

    • 参考

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/caffe2#reference

    • 选择CUDA版本

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/caffe2#cuda_version

    • 安装CUDA

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/caffe2#cuda_install

    • 设置环境变量

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/caffe2#cuda_env

    • 检验安装

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/caffe2#cuda_check

    • 什么是CNN?

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/cnn#what_is_cnn

    • CNN的原理

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/cnn#cnn_principle

    • 如何构建CNN

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/cnn#how_to

    • 基本概念

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/cnn#base_concept

    • 引用

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/cnn#reference

    • 卷积层(Convolutional Layer)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/cnn#convolutional

    • 池化层(Max Pooling Layer)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/cnn#max_pool

    • 全连接层(Fully Connected Layer)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/cnn#fully_connect

    • CNN

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/cnn

    • Caffe2

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception/caffe2

    • Perception

      https://github.com/daohu527/Dig-into-Apollo/blob/master/perception

  • Prediction

    https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction

    • 初始化(Init)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#message_init

    • 消息处理

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#onperception

    • 初始化(Init())

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#preciction_init

    • 回调执行(Proc)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#preciction_proc

    • ContainerSubmoduleProcess

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#preciction_submodule

    • PredictionEndToEndProc

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#preciction_endtoend

    • 介绍

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#introduction

    • 目录结构

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#directory

    • 预测模块(PredictionComponent类)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#preciction_component

    • 消息处理(MessageProcess)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#message_process

    • 容器(Container)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#container

    • 场景(Scenario)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#scenario

    • 评估者(Evaluator)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#evaluator

    • 预测器(Predictor)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#predictor

    • Reference

      https://github.com/daohu527/Dig-into-Apollo/blob/master/prediction#reference

  • Routing

    https://github.com/daohu527/Dig-into-Apollo/blob/master/routing

    • 创建Routing地图

      https://github.com/daohu527/Dig-into-Apollo/blob/master/routing#create_routing_map

    • Routing主流程

      https://github.com/daohu527/Dig-into-Apollo/blob/master/routing#routing_main

    • Demo

      https://github.com/daohu527/Dig-into-Apollo/blob/master/routing#demo

    • 地图

      https://github.com/daohu527/Dig-into-Apollo/blob/master/routing#map

    • 最短距离

      https://github.com/daohu527/Dig-into-Apollo/blob/master/routing#shortest_path

    • Routing模块简介

      https://github.com/daohu527/Dig-into-Apollo/blob/master/routing#introduction

    • 基础知识

      https://github.com/daohu527/Dig-into-Apollo/blob/master/routing#base

    • Routing模块分析

      https://github.com/daohu527/Dig-into-Apollo/blob/master/routing#routing

    • 调试工具

      https://github.com/daohu527/Dig-into-Apollo/blob/master/routing#tools

    • 问题

      https://github.com/daohu527/Dig-into-Apollo/blob/master/routing#question

    • OSM数据查找

      https://github.com/daohu527/Dig-into-Apollo/blob/master/routing#osm_find

    • Reference

      https://github.com/daohu527/Dig-into-Apollo/blob/master/routing#reference

  • Planning

    https://github.com/daohu527/Dig-into-Apollo/blob/master/planning

    • DP & QP

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#dp_qp

    • 场景转换

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#scenario_update

    • 场景运行

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#scenario_process

    • Planner注册场景

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#planner_register

    • 运行场景

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#planner_plan

    • 初始化

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#onLanePlanning_init

    • 事件触发

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#onLanePlanning_trigger

    • 模块注册

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#planning_register

    • 模块初始化

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#planning_init

    • 模块运行

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#planning_proc

    • Planning输入输出

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#planning_io

    • Planning整个流程

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#planning_flow

    • Planning模块简介

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#introduction

    • Planning模块入口

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#planning_entry

    • OnLanePlanning

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#onLanePlanning

    • Planner

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#planner

    • Scenario

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#scenario

    • Task

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#task

    • Reference

      https://github.com/daohu527/Dig-into-Apollo/blob/master/planning#reference

  • Control

    https://github.com/daohu527/Dig-into-Apollo/blob/master/control

    • 校准表

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#calibration_table

    • PID参数调节

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#pid

    • 控制器注册

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#register

    • Pad消息

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#pad

    • Estop_标志位

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#estop

    • Control模块简介

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#introduction

    • Control模块主流程

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#main

    • 控制器

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#controller

    • LonController控制器

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#lon_controller

    • LatController控制器

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#lat_controller

    • MPCController控制器

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#mpc_controller

    • StanleyLatController控制器

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#stanleylat_controller

    • Reference

      https://github.com/daohu527/Dig-into-Apollo/blob/master/control#reference

  • Canbus

    https://github.com/daohu527/Dig-into-Apollo/blob/master/canbus

    • 消息管理器(MessageManager)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/canbus#message_manager

    • 消息接收(CanReceiver)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/canbus#can_receiver

    • 消息发送(CanSender)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/canbus#can_sender

    • Canbus客户端(CanClient)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/canbus#can_client

    • 车辆工厂模式(VehicleFactory)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/canbus#vehicle_factory

    • 车辆控制器(LincolnController)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/canbus#lincoln_controller

    • Canbus模块介绍

      https://github.com/daohu527/Dig-into-Apollo/blob/master/canbus#introduction

    • Canbus模块主流程

      https://github.com/daohu527/Dig-into-Apollo/blob/master/canbus#main

    • Canbus(驱动程序)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/canbus#canbus_driver

    • Reference

      https://github.com/daohu527/Dig-into-Apollo/blob/master/canbus#reference

  • Simulation

    https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation

    • NPC

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#npc

    • 天气

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#weather

    • 红绿灯

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#traffic_light

    • 地图模型制作

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#model_build

    • 高精度地图制作

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#hdmap_build

    • 桥接器

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#adapter

    • 制作地图

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#make_map

    • 测试场景

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#test_case

    • 功能多样化

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#features

    • 仿真软件

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#simulator

    • 工作方式

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#simulator_work

    • 工作原理

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#simulator_principle

    • 为什么需要仿真

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#why_simulation

    • 如何仿真

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#how_simulation

    • 如何使用

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#how_to

    • 如何构建自动驾驶仿真系统?

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#how_build

    • 地图

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#simulation_map

    • 真实场景地图生成

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#map_generate

    • 虚拟场景地图生成

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#virtual_map_build

    • https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#car

    • 行为

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#behavior

    • API

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#api

    • 部署

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#deploy

    • 总结

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#summary

    • 参考

      https://github.com/daohu527/Dig-into-Apollo/blob/master/simulation#reference

  • Cyber

    https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber

    • 云平台

      https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber#cloud

    • 随意的假设

      https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber#hypothesis

    • 多节点

      https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber#multinode

    • 通信方式

      https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber#communication

    • 资源调度

      https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber#schedule

    • 软件复用

      https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber#reuse

    • 快速测试

      https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber#test

    • How do you design cyber?

      https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber#how

    • 需求分析

      https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber#requirements

    • 系统设计

      https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber#design

    • 其他

      https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber#other

    • Reference

      https://github.com/daohu527/Dig-into-Apollo/blob/master/cyber#reference

  • Performance

    https://github.com/daohu527/Dig-into-Apollo/blob/master/performance

    • Perf安装

      https://github.com/daohu527/Dig-into-Apollo/blob/master/performance#perf

    • 火焰图

      https://github.com/daohu527/Dig-into-Apollo/blob/master/performance#flame_graph

    • 线程调度

      https://github.com/daohu527/Dig-into-Apollo/blob/master/performance#schedule

    • Cgroups

      https://github.com/daohu527/Dig-into-Apollo/blob/master/performance#cgroups

    • CPU亲和性

      https://github.com/daohu527/Dig-into-Apollo/blob/master/performance#cpu

    • 中断绑定

      https://github.com/daohu527/Dig-into-Apollo/blob/master/performance#interrupt

    • Linux性能优化

      https://github.com/daohu527/Dig-into-Apollo/blob/master/performance#linux

    • Reference

      https://github.com/daohu527/Dig-into-Apollo/blob/master/performance#reference

  • Transform

    https://github.com/daohu527/Dig-into-Apollo/blob/master/transform

    • 缓存接口

      https://github.com/daohu527/Dig-into-Apollo/blob/master/transform#buffer_interface

    • 缓存实现

      https://github.com/daohu527/Dig-into-Apollo/blob/master/transform#buffer_class

    • Transform模块简介

      https://github.com/daohu527/Dig-into-Apollo/blob/master/transform#introduction

    • Transform(静态变换)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/transform#static_transform

    • Transform_broadcaster(广播)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/transform#no_static_transform

    • Buffer(接收缓存)

      https://github.com/daohu527/Dig-into-Apollo/blob/master/transform#buffer

    • 总结

      https://github.com/daohu527/Dig-into-Apollo/blob/master/transform#summary

    • Reference

      https://github.com/daohu527/Dig-into-Apollo/blob/master/transform#reference

  • Drivers

    https://github.com/daohu527/Dig-into-Apollo/blob/master/drivers

  • Dreamview

    https://github.com/daohu527/Dig-into-Apollo/blob/master/dreamview

  • Toolbox

    https://github.com/daohu527/Dig-into-Apollo/blob/master/toolbox


各个模块的介绍都在对应的子目录中,主流程放在readme.md中,一些细节的函数和疑问放在todo.md中,需要了解主流程直接看readme.md,如果要深挖整个代码可以参考todo.md



  • 2020/1/10之前完成

    • Prediction模块的流程分析

  • 2020/3/10之前完成

    • Cyber的系统调度流程,和消息收发流程

    • Perception模块的流程分析

  • 次要任务

    • Routing模块可视化工具介绍

    • Planning模块各个控制器的具体实现


*apollo:

https://github.com/ApolloAuto/apollo

*awesome-self-driving-car:

https://github.com/daohu527/awesome-self-driving-car


更多话题讨论、技术交流可以扫描下方二维码添加『Apollo小哥哥』为好友,进开发者交流群。






* 以上内容为开发者原创,不代表百度官方言论。

已获开发者授权,原文地址请戳阅读原文。






您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存