如果你已经能写 C++,但一看到「决策规划」「场景建模」这类词就不知道从哪下手;或者你刷过自动驾驶的科普视频,真让你打开编辑器写一段路径规划却卡在第一行——这门课就是补这个缺口的。它不是科普,也不是算法理论课,而是一份用 C++ 把一辆无人小车跑起来的工程练习。
先确认你是不是它的目标读者
这门课默认你已经过了语法关:类、继承、虚函数、指针和引用、STL 容器用得顺手,能自己拆头文件和源文件、能看懂编译报错。如果你还在纠结 vector 和数组的区别,先别进来,否则你会把时间花在查语法而不是理解项目结构上。
反过来,如果你符合下面任意一条,投入时间是划算的:
- 做过后端或客户端,想转到车载/机器人方向,但简历上没有任何和「车」相关的项目;
- 在校做过控制或路径规划的课程作业,用的是 MATLAB 或 Python,想知道同样的逻辑用 C++ 落到工程里长什么样;
- 已经在做嵌入式或仿真相关工作,需要理清「场景—决策—规划」这条链路是怎么用代码串起来的。
它真正训练的能力,是把场景写成代码
自动驾驶的入门难点不在于某个算法多难,而在于你得先学会把「一段直路」「前方有障碍物要绕行」「侧方停车」这种自然语言描述,翻译成程序里的数据结构和对世界的抽象。这门课的训练重点就在这里:围绕若干典型行车场景,去定义路面、定义场景、定义车辆该做的判断。
你会接触到一种很常见的工程写法——把公共部分抽成一个基类,每个具体场景作为派生实现。直行、绕障、泊车这些场景各自独立成文件,看起来零散,实际上是刻意的:让你体会「同一套决策框架下,不同场景只替换差异部分」的组织方式。这种分层思路,比背下某个具体算法更耐用,换到别的项目里照样能用。
配套练习怎么用才不白做
资料里的代码建议按这个顺序消化,不要一上来就通读:
- 先只编译、只跑通一个最简单的场景,确认环境、依赖、构建流程没问题——很多人的时间其实浪费在这一步。
- 再挑一个你最有把握的场景,把它的判断逻辑用自己的话注释一遍,然后试着改一个参数(比如障碍物的位置或安全距离),观察输出变化。
- 最后合上代码,自己新建一个场景文件,从零写一遍:继承基类、填必要接口、处理边界情况。写不出来再回看,这一步的收获最大。
如果只是把代码跑通、看懂,那和看视频没什么区别;能自己补出一个新场景,才说明这套抽象你真的掌握了。
看完你应该能回答这几个问题
- 一辆无人小车在程序里是怎么被表示的?它的位置、朝向、速度存在哪、谁在更新?
- 「环境」和「场景」在代码上是什么关系?为什么要把它们拆开?
- 从感知给来的信息,到车做出转向或刹车的决定,中间有哪几层?每层负责什么、不负责什么?
- 决策和规划为什么要分开写?如果把两者揉在一起,会遇到什么麻烦?
- 新增一个行驶场景,最少需要写哪些东西?哪些是可以复用的?
这些问题如果你现在答不上来,但看完课程后能用自己的话讲清楚,那这门课对你就值了。答不上也没关系,说明你正好缺这一块——缺什么补什么,别假装什么都会。
C++无人驾驶车辆项目实战教程
实战项目,掌握C++无人驾驶核心技能
编辑点评
深入C++编程,实战无人驾驶项目,掌握车辆建模、决策规划等关键技术。
⭐ 编辑推荐
本课程通过C++编程实战,深入讲解无人驾驶车辆项目,包括环境搭建、代码编写、场景设计等。
课程亮点
课程目录
📁 资料
📁 📁 无人小车项目代码
无人小车项目代码文档.zip [1.8 MB]
scene_park.h [1.2 KB]
road.cpp [1.8 KB]
scene_obs_pass.cpp [6.7 KB]
traffic.cpp [1.2 KB]
scene_park.cpp [6.7 KB]
planning_base.cpp [3.2 KB]
scene_straight.h [1.0 KB]
scene_base.cpp [6.6 KB]
car.h [2.8 KB]
road.h [1.4 KB]
main.h [545.0 B]
scene_drift.h [527.0 B]
planning_base.h [2.1 KB]
car.cpp [7.9 KB]
scene_base.h [2.2 KB]
scene_drift.cpp [3.1 KB]
main.cpp [2.2 KB]
traffic.h [1.0 KB]
scene_obs_pass.h [808.0 B]
scene_straight.cpp [5.5 KB]
资料文档.zip [1.8 MB]
C++无人小车项目:基础场景设计与代码编写.pdf [1.3 MB]
📁 视频
视频说明.zip [1.8 MB]
11.直行场景代码4:停障.mp4 [49.0 MB]
13.直行场景原理2:通过斑马线.mp4 [16.0 MB]
5.环境搭建与代码框架.mp4 [72.1 MB]
23.漂移场景代码:过弯和泊车.mp4 [80.9 MB]
12.直行场景代码5:停靠站点和跟车.mp4 [44.2 MB]
9.直行场景代码2:车辆.mp4 [57.7 MB]
14.直行场景代码6:通过斑马线.mp4 [91.4 MB]
2.《C++无人小车项目》课程最终前瞻.mp4 [17.3 MB]
6.车辆建模与运动的表达.mp4 [44.5 MB]
18.绕障场景代码2:转向和单移线.mp4 [53.3 MB]
4.绪论2:决策规划概述.mp4 [19.8 MB]
1.《C++无人小车项目》课程宣传片:学编程最快的方法.mp4 [2.6 MB]
17.绕障场景代码1:平面向量.mp4 [40.0 MB]
24.课程总结.mp4 [17.1 MB]
22.漂移场景原理:过弯和泊车.mp4 [38.3 MB]
8.直行场景代码1:点.mp4 [28.4 MB]
21.泊车场景代码:倒库和侧方位.mp4 [95.8 MB]
20.泊车场景原理:倒库和侧方位.mp4 [59.1 MB]
19.绕障场景代码3:场景的实现.mp4 [72.7 MB]
15.绕障场景原理1:转向和单移线.mp4 [60.7 MB]
16.绕障场景原理2:场景的实现.mp4 [24.2 MB]
7.直行场景原理1:停障 停靠站点 跟车.mp4 [39.8 MB]
10.直行场景代码3:道路与场景基类.mp4 [68.8 MB]
3.绪论1:课程概述.mp4 [26.5 MB]适合人群
- C++开发者
- 自动驾驶爱好者
- 人工智能从业者
学习收获
祝您学习愉快!
学有所成,前程似锦!






