星火第一讲-使用Apollo 学习自动驾驶

引言
如何学习自动驾驶?
自动驾驶是集车辆、计算机、电子电气、人工智能、通信等多学科应用为一体的的复杂系统。针对自身专业背景结合自动驾驶发展进行学习;
自动驾驶是通过智能系统来驾驶汽车从而取代了驾驶员,因此学习自动驾驶需要理解人类驾驶员驾驶汽车的过程。

01自动驾驶的需求

自动驾驶与人工驾驶
人工驾驶流程:短期记忆;长期记忆;动机;开车经验决策;控制;执行;

#mermaid-svg-cIzgA18tOCBK0Pzd {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-cIzgA18tOCBK0Pzd .error-icon{fill:#552222;}#mermaid-svg-cIzgA18tOCBK0Pzd .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-cIzgA18tOCBK0Pzd .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-cIzgA18tOCBK0Pzd .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-cIzgA18tOCBK0Pzd .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-cIzgA18tOCBK0Pzd .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-cIzgA18tOCBK0Pzd .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-cIzgA18tOCBK0Pzd .marker{fill:#333333;stroke:#333333;}#mermaid-svg-cIzgA18tOCBK0Pzd .marker.cross{stroke:#333333;}#mermaid-svg-cIzgA18tOCBK0Pzd svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-cIzgA18tOCBK0Pzd .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-cIzgA18tOCBK0Pzd .cluster-label text{fill:#333;}#mermaid-svg-cIzgA18tOCBK0Pzd .cluster-label span{color:#333;}#mermaid-svg-cIzgA18tOCBK0Pzd .label text,#mermaid-svg-cIzgA18tOCBK0Pzd span{fill:#333;color:#333;}#mermaid-svg-cIzgA18tOCBK0Pzd .node rect,#mermaid-svg-cIzgA18tOCBK0Pzd .node circle,#mermaid-svg-cIzgA18tOCBK0Pzd .node ellipse,#mermaid-svg-cIzgA18tOCBK0Pzd .node polygon,#mermaid-svg-cIzgA18tOCBK0Pzd .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-cIzgA18tOCBK0Pzd .node .label{text-align:center;}#mermaid-svg-cIzgA18tOCBK0Pzd .node.clickable{cursor:pointer;}#mermaid-svg-cIzgA18tOCBK0Pzd .arrowheadPath{fill:#333333;}#mermaid-svg-cIzgA18tOCBK0Pzd .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-cIzgA18tOCBK0Pzd .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-cIzgA18tOCBK0Pzd .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-cIzgA18tOCBK0Pzd .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-cIzgA18tOCBK0Pzd .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-cIzgA18tOCBK0Pzd .cluster text{fill:#333;}#mermaid-svg-cIzgA18tOCBK0Pzd .cluster span{color:#333;}#mermaid-svg-cIzgA18tOCBK0Pzd div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-cIzgA18tOCBK0Pzd :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

短期记忆
长期记忆
动机
开车经验决策
控制
执行

自动驾驶流程:
Perception; Localization;HDMap;Routing;Planning;Control;By Wire;

#mermaid-svg-YMX7yzZTAnfB50xg {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-YMX7yzZTAnfB50xg .error-icon{fill:#552222;}#mermaid-svg-YMX7yzZTAnfB50xg .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-YMX7yzZTAnfB50xg .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-YMX7yzZTAnfB50xg .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-YMX7yzZTAnfB50xg .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-YMX7yzZTAnfB50xg .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-YMX7yzZTAnfB50xg .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-YMX7yzZTAnfB50xg .marker{fill:#333333;stroke:#333333;}#mermaid-svg-YMX7yzZTAnfB50xg .marker.cross{stroke:#333333;}#mermaid-svg-YMX7yzZTAnfB50xg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-YMX7yzZTAnfB50xg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-YMX7yzZTAnfB50xg .cluster-label text{fill:#333;}#mermaid-svg-YMX7yzZTAnfB50xg .cluster-label span{color:#333;}#mermaid-svg-YMX7yzZTAnfB50xg .label text,#mermaid-svg-YMX7yzZTAnfB50xg span{fill:#333;color:#333;}#mermaid-svg-YMX7yzZTAnfB50xg .node rect,#mermaid-svg-YMX7yzZTAnfB50xg .node circle,#mermaid-svg-YMX7yzZTAnfB50xg .node ellipse,#mermaid-svg-YMX7yzZTAnfB50xg .node polygon,#mermaid-svg-YMX7yzZTAnfB50xg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-YMX7yzZTAnfB50xg .node .label{text-align:center;}#mermaid-svg-YMX7yzZTAnfB50xg .node.clickable{cursor:pointer;}#mermaid-svg-YMX7yzZTAnfB50xg .arrowheadPath{fill:#333333;}#mermaid-svg-YMX7yzZTAnfB50xg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-YMX7yzZTAnfB50xg .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-YMX7yzZTAnfB50xg .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-YMX7yzZTAnfB50xg .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-YMX7yzZTAnfB50xg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-YMX7yzZTAnfB50xg .cluster text{fill:#333;}#mermaid-svg-YMX7yzZTAnfB50xg .cluster span{color:#333;}#mermaid-svg-YMX7yzZTAnfB50xg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-YMX7yzZTAnfB50xg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

Perception
HDMap
Routing
Planning
Control
By Wire

由此可见,自动驾驶本质上是模拟人类驾驶员进行驾驶操作的过程,将人类驾驶员进行驾驶操作进行模块化解耦,众多开发者根据需求来针对性的研究其中某一个模块。

02Apollo开源平台介绍

apollo平台的独特之处



如何使用apollo进行学习





在这里插入图片描述



2.1.1 车辆认证平台
提供了开放的符合Apollo要求的线控车辆的接口的标准,同时发布了经过Apollo认证的线控车辆以及对应线控车辆代码

2.1.2 硬件开发平台
提供相关的硬件,包括:车载计算单元、摄像头、激光雷达等

2.1.3 开源软件平台
Apollo的核心部分,开源部分主要是在这个部分。

基于 Ubuntu 18.04 LTS版本。Apollo 3.5 以前使用ROS,之后使用Cyber RT,并且已经在商业化项目(Robotaxi)得到应用
自动驾驶应用模块:地图、定位、感知、预测、规划、控制等
2.1.4 云端服务平台
运营相关的云服务和研发相关的云服务

2.2 丰富的自动驾驶算法
2.2.1 多视角感知
视觉信号灯识别
视觉车道线检测
视觉障碍物识别
激光点云障碍物识别
多传感器融合障碍物识别
车路协同感知融合
2.2.2 基于场景的规划
公共道路规划器
Lattice 规划器
Navi 规划器
RTK 规划器
基于模型的规划器
基于模型的开放空间规划器
2.2.3 精准的控制
PID 控制器
LQR 控制器
MPC 控制器
MRAC 双循环控制器
2.2.4 多融合定位
RTK 定位
多软干起融合(MSF)定位
2.3 Cyber RT 实时通信框架
2.3.1 Cyber RT 功能:
将自动驾驶的各个算法模块,组织起来、处理数据的能力,同时需要保证数据梳理过程的实时性和可靠性

2.3.2 Cyber RT 优点:
易于部署、忽略底层调度和通信机制、提供很好的实时性和可靠性;
通过可视化诊断工具加速自动驾驶开发
专注于自动驾驶的组件模块,简化自动驾驶搭建时间
2.4 硬件开发/车辆认证平台
2.5 Apollo 工具链
Apollo 工具链通过云端的方式来解决数据运用效率的问题,通过与仿真结合去降低实车测试成本,可以极大的提升研发效率

  1. 如何使用Apollo开始学习
    3.1 上机学习
    3.1.1 实施框架——Cyber RT
    掌握 Cyber RT 开发工具
    使用 Cyber RT API 进行 Apollo 开发
    如何通过 Apollo 学习自动驾驶通信

通信学习:

分布式系统开发模式:三种通信模式(talk-listen、service-client、共享内存通信)等
系统开发调试
掌握Cyber开发工具:

Cyber Visualizer:可视化
Cyber monitor:消息展示
Cyber recorder
3.1.2 决策与规划——Dreamview/Dreamland
了解 Apollo 决策规划流程和算法;{源码与文档的学习}
使用 Dreamview 进行控制在环的规划调试;{Dreamland Scenario Editor / Dreamview Simulation}
基于 Apollo 开发新的规划场景和算法;{规划扩展文档的学习}
使用 Dreamland 进行控制在环的规划仿真评测;{Dreamland的学习}
3.1.3 感知——Dreamview/Visualizer
了解传感器特性
了解 Apollo 感知流程及算法
使用 Dreamview/Perception Visualizer 进行开发调试
扩展部署新的感知模型
扩展训练新的感知模型并验证
3.2 上车学习
3.2.1 线控协议——车辆适配工具链
了解 Apollo 线控标准
开发符合 Apollo 要求的线控车辆与 DBC
在 Apollo 中开发与车辆通信的 CANBus 驱动
使用 teleop 开环验证车辆
3.2.2 集成——Fuel云服务/D-KIT
学习传感器布置与链接
了解车辆标定与传感器标定
了解循迹原理
通过循迹实现控制与线控实车闭环验证
3.2.3 测试与调车——Dreamview/D-KIT
了解车辆安全操作
了解基础测试流程和实车数据录制
了解实车控制调参
了解实车定位调试
3.2.4 Apollo D-KIT 开发套件
开源开放的Apollo平台——降低软件门槛
底盘与感知一体式套件——降低硬件门槛
车+云研发模式——降低工程门槛
丰富学研方案与应用——赋能人才培养
4. Apollo自动驾驶课程概述
每周六、周日以直播的形式进行课程学习。

https://blog.csdn.net/本文参考

学习笔记:星火第一讲-使用Apollo 学习自动驾驶相关推荐

  1. Apollo星火计划学习笔记——第一讲 使用Apollo学习自动驾驶

    引言 如何学习自动驾驶? 自动驾驶是集车辆.计算机.电子电气.人工智能.通信等多学科应用为一体的的复杂系统.针对自身专业背景结合自动驾驶发展进行学习: 自动驾驶是通过智能系统来驾驶汽车从而取代了驾驶员 ...

  2. 视觉SLAM十四讲学习笔记-第四讲---第五讲学习笔记总结---李群和李代数、相机

    第四讲---第五讲学习笔记如下: 视觉SLAM十四讲学习笔记-第四讲-李群与李代数基础和定义.指数和对数映射_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第四讲-李代数求导与扰动模 ...

  3. Apollo星火计划学习笔记——第四讲Part2 Apollo定位模块详解与实践

    引言 内容概要,学习目标 了解自动驾驶定位的作用 熟悉常见的自动驾驶定位方法 掌握整个Apollo定位模块框架 独立开发定位模块 1. 定位的作用 1.1 定位及其相关知识点 定位: 获取当前的地理位 ...

  4. 斯坦福大学CS520知识图谱系列课程学习笔记:第一讲什么是知识图谱

    随着知识图谱在人工智能各个领域的广泛使用,知识图谱受到越来越多AI研究人员的关注和学习,已经成为人工智能迈向认知系统的关键技术之一.之前,斯坦福大学的面向计算机视觉的CS231n和面向自然语言处理的C ...

  5. Apollo星火计划学习笔记第四讲1——Apollo高精地图模块

    Apollo学习笔记 零.目录 一.高精地图的作用 1.1 相对于传统地图 二.高精地图介绍 2.1 高精地图构成 2.2 高精地图制作 2.2.1 地图采集 2.2.2 地图制作 2.2.3 地图标 ...

  6. Apollo星火计划学习笔记——第四讲(Apollo自动驾驶高精地图)

    文章目录 前言 1. 高精度地图的作用 1.1 高精度地图与传统地图的区别 1.2 为什么要使用高精度地图? 1.3 高精度地图面临的挑战和问题 2. 高精度地图的介绍 2.1 如何制作高精度地图 2 ...

  7. 王佩丰excel2010基础教程学习笔记(第一讲到第五讲)

    全部重排:打开两个或以上excel表格时,通过全部重排可以全部呈现在屏幕上.如将三个excel表格垂直并排. 选择视图中的全部重排. 再选择垂直并排. 冻结窗格:此选项可以冻结首行首列,或者冻结选中单 ...

  8. 斯坦福大学CS520知识图谱系列课程学习笔记:第二讲如何构建知识图谱

    上一讲我们学习了知识图谱的一些基本概念: 斯坦福大学CS520知识图谱系列课程学习笔记:第一讲什么是知识图谱 本节课程关于如何构建知识图谱,因为知识图谱的构建是整个知识图谱领域的一个非常核心且基础的工 ...

  9. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-三角测量和实践

     专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第 ...

最新文章

  1. modified: xxx(modified content, untracked content)
  2. 孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法
  3. 深度探索C++ 对象模型(2)-类的对象的内存大小_2
  4. 正确地使用投影仪和移动硬盘
  5. 格式化输出,运算符,编码,字符串(索引,切片,大小写转换等等)
  6. 分组查询最晚一条数据(ORACLE)
  7. spawn-fcgi 启动python 程序失败
  8. 小前端眼里的大前端:GMTC 2018 参会小结
  9. python lasso回归分析_解析python实现Lasso回归
  10. chinapub matlab,MATLAB 5手册
  11. 如何使用Xposed+JustTrustMe来突破SSL Pinning
  12. C语言经典问题(收藏)
  13. java培训课程有哪些
  14. Win10安装WSL-Ubuntu18.04
  15. html/css简单描述
  16. 使用Arcgis画等值线图
  17. 有时候来不及去菜场,我就会给多头绒泡菌叫外卖,它真的很喜欢吃平菇 | 曳尾菌 一席第719位讲者...
  18. C语言实现QQ聊天室小项目 [完整源码]
  19. python 文件批量转换格式_使用python批量化音乐文件格式转换的实例
  20. lodop处理样式及打印html节点、url地址、pdf

热门文章

  1. 利用3000fps把人脸面部抠出来(一)
  2. Nginx 单IP绑定多域名配置 顶级域名重定向到www域名
  3. java课设的总结和体会,JAVA设计培训心得体会【两篇】
  4. 多实践、少扯淡,生死看淡,不服就干
  5. python实时检测键盘输入函数
  6. 将电脑输入法关闭只留我们经常用的输入法
  7. 零基础python爬虫基础之王者荣耀图片下载(超级简单)
  8. linux sort排序及取前几条数据
  9. Javascript 中 atob/btoa
  10. Kettle Carte集群关闭问题