《自动驾驶之心:面向自动驾驶的C++实战教程》是一门面向具备一定C++基础、希望深入自动驾驶开发领域的开发者设计的实战型课程。本教程由自动驾驶之心团队推出,结合了工业界真实项目经验,旨在让学员在掌握现代C++的同时,深入理解自动驾驶系统的核心模块开发方法。


🧠 课程定位

  • 目标人群:有一定编程经验的工程师,熟悉基础C++语法,希望从0到1构建自动驾驶相关功能的开发者。
  • 授课形式:录播视频 + 源码 + 项目实践
  • 使用工具:现代C++(C++11/14/17),Ubuntu/Linux环境,ROS(部分内容),CMake,开源自动驾驶项目组件(如Apollo、Autoware的子模块)

📚 课程内容概览

模块一:C++工程实战基础

  • C++项目结构设计与构建(CMake实践)
  • 面向工程的C++编程风格
  • C++常用库和工具链(GTest、Glog、spdlog、Boost等)
  • 单元测试与调试技巧

模块二:自动驾驶感知模块实战

  • 点云数据处理(基于PCL库)
  • 视觉感知入门(OpenCV + 多线程图像处理)
  • 目标检测框架结构(非AI路径)
  • 简易雷达模拟与融合预处理

模块三:路径规划与控制

  • A*算法实现与优化
  • 动态路径规划(Dijkstra、Hybrid A*等)
  • 控制器原理及实现(PID控制基础 + 实践)

模块四:多线程与异步编程

  • C++中的线程、锁、条件变量
  • 事件驱动模型设计
  • 实时系统中的多线程调度优化

模块五:融合实战项目 —— 自主泊车系统开发

  • 模块划分与接口设计
  • 感知 + 规划 + 控制集成
  • 数据流调试技巧
  • 项目部署与可视化

🧩 课程特色

  • 代码驱动讲解:每节课都配套可运行的项目源码,助你边学边练。
  • 从零构建自动驾驶小系统:逐步带你构建一个小型自动驾驶原型系统。
  • 工程化思维贯穿始终:帮助你理解实际研发中的架构设计与模块解耦。
  • 补充业界知识:课程穿插自动驾驶量产系统架构、测试流程、常见问题。

🛠 项目实践亮点

项目名称实现技术要点
点云目标检测器使用PCL完成聚类与目标框检测
A*路径规划器自定义栅格地图 + A*路径可视化
多线程图像处理利用线程池实现实时图像处理
简易泊车系统全模块整合:从感知到路径执行

📌 学完收获

  • 掌握自动驾驶核心模块(感知、规划、控制)在C++中的典型实现方式。
  • 能够独立构建基于C++的工程项目结构。
  • 理解多线程在自动驾驶系统中的作用及实现方法。
  • 熟悉使用Linux+CMake+GTest构建现代C++工程。
  • 为后续进入Apollo、Autoware、CARLA等平台打下坚实基础。

🎓 学习建议

  • 具备C++基础(如类、继承、指针、STL)
  • 熟悉Linux基础命令
  • 如有ROS基础更佳,但非必须
  • 每个模块配合源码动手实践,强化理解

课程截图:

课程目录:

自动驾驶之心-面向自动驾驶的C++实战教程
├──第1章 课程介绍
| ├──1.面向自动驾驶的C++实战_第1章.pdf 2.43M
| ├──2_1.1 自动驾驶为什么选择C++?不同编程语言比较.mp4 129.34M
| ├──3_1.2 如何有效学习C++?编程语言和自然语言比较.mp4 87.05M
| ├──4_1.3 面向群体和学后收获.mp4 13.97M
| └──5_1.4 讲解思路和课程大纲.mp4 46.95M
├──第2章 C++基础
| ├──代码
| ├──10_2.1.4 代码是如何从文本到可执行程序的?.mp4 64.78M
| ├──11_2.1.5 编译与链接工具介绍.mp4 64.22M
| ├──12_2.1.6 Cmake和Baze构建工具.mp4 79.71M
| ├──13_2.2.1 第一个C++ 程序.mp4 41.87M
| ├──14_2.2.2 语句.mp4 8.15M
| ├──15_2.2.3 基本输入输出流.mp4 50.62M
| ├──16_2.2.4 注释.mp4 32.08M
| ├──17_2.2.5 命名空间.mp4 85.70M
| ├──18_2.3.1 顺序结构.mp4 3.93M
| ├──19_2.3.2 循环结构.mp4 84.12M
| ├──20_2.3.3 分支结构.mp4 93.96M
| ├──21_2.3.4 无条件转移结构.mp4 16.87M
| ├──22_2.4.1 自动驾驶中的数据流动.mp4 31.50M
| ├──23_2.4.2 基础数据类型.mp4 157.04M
| ├──24_2.4.3 枚举类型.mp4 60.01M
| ├──25_2.4.4 字符串.mp4 73.40M
| ├──26_2.4.5 复合数据类型struct.mp4 33.55M
| ├──27_2.4.6 数据结构.mp4 12.07M
| ├──28_2.5.1 模块化.mp4 20.61M
| ├──29_2.5.2 函数.mp4 92.36M
| ├──30_2.5.3 文件组织.mp4 81.09M
| ├──31_2.6.1 堆和栈内存.mp4 43.74M
| ├──32_2.6.2 指针.mp4 38.01M
| ├──33_2.6.3 引用.mp4 26.49M
| ├──34_2.7 小结与作业.mp4 18.34M
| ├──6_面向自动驾驶的C++实战_第2章 PPT.pdf 5.11M
| ├──7_2.1.1 C++开发环境介绍.mp4 34.87M
| ├──8_2.1.2 C++中那些推荐的IDE.mp4 22.53M
| └──9_2.1.3 手动搭建C++开发环境.mp4 31.72M
├──第3章 深入面向对象编程
| ├──35_3.1.1 什么是面向对象编程.mp4 68.55M
| ├──36_3.1.2 编程范式.mp4 116.60M
| ├──37_3.1.3 面向对象编程的优势.mp4 20.36M
| ├──38_3.2.1 类和对象的关系.mp4 30.37M
| ├──39_3.2.2 实现第一个自动驾驶模块吧.mp4 44.15M
| ├──40_3.2.3 构造和析构.mp4 105.11M
| ├──41_3.2.4 复制和赋值.mp4 138.56M
| ├──42_3.2.5 this指针.mp4 57.10M
| ├──42_3.2.5 this指针_20250224_194223.mp4 57.10M
| ├──43_3.2.6 static类型.mp4 60.39M
| ├──44_3.3.1 封装.mp4 61.69M
| ├──45_3.3.2 继承.mp4 114.81M
| ├──46_3.3.3多态.mp4 75.84M
| ├──46_3.3.3多态_20250224_194253.mp4 75.84M
| ├──47_3.3.4C++类对象内存布局初探.mp4 138.23M
| ├──48_3.4.1泛型编程.mp4 40.43M
| ├──49_3.4.2C++模板.mp4 74.55M
| ├──50_3.4.3模板元编程.mp4 89.63M
| ├──51_3.5标准模板库STL.mp4 170.90M
| ├──52_3.6.1重载.mp4 39.03M
| ├──53_3.6.2异常处理.mp4 35.99M
| ├──54_3.6.3资源管理与智能指针.mp4 130.92M
| ├──55_3.7本章总结与感悟.mp4 66.15M
| ├──56_3.8本章作业.mp4 18.07M
| └──面向自动驾驶的C++实战_第3章PPT.pdf 4.35M
├──第4章 软件开发过程与实践
| ├──1-10_433C++单元测试工具Gtest(一).mp4 95.88M
| ├──1-11_433C++单元测试工具Gtest(二).mp4 152.06M
| ├──1-12_433C++单元测试工具Gtest(三).mp4 92.23M
| ├──1-13_434其它工具与实践.mp4 55.68M
| ├──1-14_441设计模式介绍.mp4 31.98M
| ├──1-15_442创建型设计模式.mp4 153.65M
| ├──1-16_443 结构型模式.mp4 243.42M
| ├──1-17_444 行为型模式.mp4 111.01M
| ├──1-18_445 设计模式小结.mp4 66.01M
| ├──1-18_445 设计模式小结_20250224_194447.mp4 66.01M
| ├──1-19_45 小结与作业.mp4 67.34M
| ├──1-1_411自动驾驶代码是怎么命名的?-背景.mp4 30.33M
| ├──1-2_412自动驾驶代码是怎么命名的?-命名规范.mp4 27.41M
| ├──1-3_413自动驾驶代码是怎么命名的?-面向工程开发的命名.mp4 75.68M
| ├──1-4_414自动驾驶代码是怎么命名的?-命名规范的自动化工具.mp4 35.80M
| ├──1-5_421代码版本管理与GIT.mp4 105.78M
| ├──1-6_422Git的基本使用——以实际任务为例.mp4 156.84M
| ├──1-7_423Git使用的最佳实践.mp4 83.74M
| ├──1-8_431软件测试.mp4 142.51M
| ├──1-9_432自动驾驶测试.mp4 99.98M
| └──面向自动驾驶的C++实战_第4章.pdf 4.15M
├──第5章 自动驾驶常用工具库
| ├──5.1 实践与领域知识.mp4 85.26M
| ├──5.2.1 Eigen库—简介.mp4 57.96M
| ├──5.2.2 Eigen的使用.mp4 408.50M
| ├──5.3.1 Apollo工具库——Log库.mp4 129.46M
| ├──5.3.2 Apollo基础工具库——Time库.mp4 133.75M
| ├──5.3.3 Apollo基础工具库——Math库.mp4 195.61M
| ├──5.3.4 Apollo基础工具库——其它Util库.mp4 89.45M
| ├──5.4.1 其他知名库——OpenCV.mp4 82.20M
| ├──5.4.2 其他知名库——PCL库.mp4 78.50M
| ├──5.4.3 其他知名库——Boost库.mp4 87.51M
| ├──5.5 小结与作业.mp4 127.86M
| └──面向自动驾驶的C++实战_第5章.pdf 1.91M
├──第6章 C++编程中的资源管理
| ├──6.1 计算机资源的使用.mp4 155.16M
| ├──6.2 文件管理:数据存储的钥匙.mp4 197.15M
| ├──6.3.1 内存管理-内存布局.mp4 95.97M
| ├──6.3.2 内存管理-内存使用常见问题.mp4 150.59M
| ├──6.3.2 内存管理-内存使用常见问题_20250224_194808.mp4 150.59M
| ├──6.3.3 内存管理-再探RAII.mp4 90.88M
| ├──6.3.4 内存管理-内存池.mp4 56.79M
| ├──6.3.5 多线程管理.mp4 228.10M
| ├──6.3.6 内存管理-移动语义和右值引用.mp4 204.82M
| ├──6.4 多线程管理:梳理错综复杂的世界.mp4 226.97M
| ├──6.5 网络管理:连接信息高速公路.mp4 142.02M
| ├──6.6 GPU管理:释放计算的潜能.mp4 159.16M
| ├──6.7 小结与作业.mp4 135.67M
| └──面向自动驾驶的C++实战_第6章.pdf 2.69M
├──第7章 智能驾驶C++项目实战
| ├──7.1 Baidu Apollo介绍.mp4 174.15M
| ├──7.2.1 Cyber RT简析-Cyber RT框架介绍.mp4 92.04M
| ├──7.2.2 Cyber RT简析-Component组件机制.mp4 140.86M
| ├──7.2.3 Cyber RT简析-Message消息传递机制.mp4 251.52M
| ├──7.2.4 Cyber RT简析-文件配置和代码简析.mp4 228.84M
| ├──7.2.5 Cyber RT简析-开发者工具.mp4 57.75M
| ├──7.3.1 环境搭建与工具使用-Docker简介.mp4 187.62M
| ├──7.3.2 环境搭建与工具使用-搭建Apollo环境.mp4 108.19M
| ├──7.4.1 代码调试运行和分析-本地运行.mp4 237.16M
| ├──7.4.2 代码调试运行和分析-云端仿真.mp4 96.46M
| ├──7.4.3 代码调试运行和分析-Routing.mp4 241.44M
| ├──7.4.4 代码调试运行和分析-Planning.mp4 149.64M
| ├──7.5 C++实现神经网络模型.mp4 358.18M
| ├──7.6 实战项目分享.mp4 219.70M
| ├──7.7 小结与作业.mp4 28.64M
| └──面向自动驾驶的C++实战_第7章.pdf 3.39M
├──第8八章 自动驾驶量产和功能安全
| ├──8.1.1 C++程序的性能问题-性能优化的必要性.mp4 94.48M
| ├──8.1.2 C++程序的性能问题-主要概念.mp4 84.63M
| ├──8.1.3 C++程序的性能问题-性能分析的必要性.mp4 98.05M
| ├──8.2.1&2&3 C++性能分析的方法与工具.mp4 186.72M
| ├──8.2.4 C++性能分析的方法与工具-系统级性能分析.mp4 168.29M
| ├──8.2.5 C++性能分析的方法与工具-Profiler剖析工具.mp4 215.06M
| ├──8.2.6&7&8 C++性能分析的方法与工具.mp4 157.19M
| ├──8.3.1&2 C++性能优化的方式:精益求精.mp4 169.85M
| ├──8.3.1&2 C++性能优化的方式:精益求精_20250224_195258.mp4 169.85M
| ├──8.3.3&4 C++性能优化的方式:精益求精.mp4 189.74M
| ├──8.3.5&6&7&8 C++性能优化的方式:精益求精.mp4 241.81M
| ├──8.3.9 C++性能优化的方式-常见的优化原则和套路.mp4 146.51M
| ├──8.4.1 代码规范与检查工具-为什么需要代码规范?.mp4 128.65M
| ├──8.4.2 代码规范与检查工具-代码规范.mp4 134.54M
| ├──8.4.3 代码规范与检查工具-MISRA规范.mp4 147.60M
| ├──8.4.4 代码规范与检查工具-静态分析工具.mp4 47.97M
| ├──8.5.1 智驾C++的差异点.mp4 58.99M
| ├──8.5.2 功能安全和ISO26262.mp4 127.13M
| ├──8.6 小结与作业.mp4 13.85M
| └──面向自动驾驶的C++实战_第8章.pdf 3.84M
└──第9章 工作心得
| ├──9.1 课程总结.mp4 100.42M
| ├──9.2 关于面试.mp4 113.75M
| └──9.3 感悟分享.mp4 95.56M

声明:本站所发布的一切视频课程仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站所有课程来自网络,版权争议与本站无关。如有侵权请联系联系客服QQ:1960026872或登录本站账号进入个人中心提交工单留言反馈,我们将第一时间处理!