如果你已经能写 C++,但一看到「决策规划」「场景建模」这类词就不知道从哪下手;或者你刷过自动驾驶的科普视频,真让你打开编辑器写一段路径规划却卡在第一行——这门课就是补这个缺口的。它不是科普,也不是算法理论课,而是一份用 C++ 把一辆无人小车跑起来的工程练习。

先确认你是不是它的目标读者

这门课默认你已经过了语法关:类、继承、虚函数、指针和引用、STL 容器用得顺手,能自己拆头文件和源文件、能看懂编译报错。如果你还在纠结 vector 和数组的区别,先别进来,否则你会把时间花在查语法而不是理解项目结构上。

反过来,如果你符合下面任意一条,投入时间是划算的:

  • 做过后端或客户端,想转到车载/机器人方向,但简历上没有任何和「车」相关的项目;
  • 在校做过控制或路径规划的课程作业,用的是 MATLAB 或 Python,想知道同样的逻辑用 C++ 落到工程里长什么样;
  • 已经在做嵌入式或仿真相关工作,需要理清「场景—决策—规划」这条链路是怎么用代码串起来的。

它真正训练的能力,是把场景写成代码

自动驾驶的入门难点不在于某个算法多难,而在于你得先学会把「一段直路」「前方有障碍物要绕行」「侧方停车」这种自然语言描述,翻译成程序里的数据结构和对世界的抽象。这门课的训练重点就在这里:围绕若干典型行车场景,去定义路面、定义场景、定义车辆该做的判断。

你会接触到一种很常见的工程写法——把公共部分抽成一个基类,每个具体场景作为派生实现。直行、绕障、泊车这些场景各自独立成文件,看起来零散,实际上是刻意的:让你体会「同一套决策框架下,不同场景只替换差异部分」的组织方式。这种分层思路,比背下某个具体算法更耐用,换到别的项目里照样能用。

配套练习怎么用才不白做

资料里的代码建议按这个顺序消化,不要一上来就通读:

  • 先只编译、只跑通一个最简单的场景,确认环境、依赖、构建流程没问题——很多人的时间其实浪费在这一步。
  • 再挑一个你最有把握的场景,把它的判断逻辑用自己的话注释一遍,然后试着改一个参数(比如障碍物的位置或安全距离),观察输出变化。
  • 最后合上代码,自己新建一个场景文件,从零写一遍:继承基类、填必要接口、处理边界情况。写不出来再回看,这一步的收获最大。

如果只是把代码跑通、看懂,那和看视频没什么区别;能自己补出一个新场景,才说明这套抽象你真的掌握了。

看完你应该能回答这几个问题

  • 一辆无人小车在程序里是怎么被表示的?它的位置、朝向、速度存在哪、谁在更新?
  • 「环境」和「场景」在代码上是什么关系?为什么要把它们拆开?
  • 从感知给来的信息,到车做出转向或刹车的决定,中间有哪几层?每层负责什么、不负责什么?
  • 决策和规划为什么要分开写?如果把两者揉在一起,会遇到什么麻烦?
  • 新增一个行驶场景,最少需要写哪些东西?哪些是可以复用的?

这些问题如果你现在答不上来,但看完课程后能用自己的话讲清楚,那这门课对你就值了。答不上也没关系,说明你正好缺这一块——缺什么补什么,别假装什么都会。

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++开发者
  • 自动驾驶爱好者
  • 人工智能从业者

学习收获

掌握C++编程
理解无人驾驶原理
完成无人小车项目

祝您学习愉快!

学有所成,前程似锦!