基础数学预备:向量微积分、曲线参数化、Frenet-Serret 坐标系简介

各位同学好,我是你们的老朋友。今天咱们要聊的这部分内容,说实话,是整门课程里最「劝退」但也最核心的一块。很多做路径规划的朋友,一看到数学公式就头疼,我当年也一样。

但后来我发现,搞不懂这些,你写出来的规划算法就像在迷雾里开车——能跑,但不知道什么时候会撞墙。所以,咱们今天就把这些基础数学工具,掰开了揉碎了讲清楚。

1. 向量微积分:路径规划的「语言」

先问大家一个问题:一条路径,怎么描述它的变化?

答案就是向量微积分。说白了,就是用导数来描述路径上每一点的变化趋势。

核心概念:

  • 位置向量 r(t):描述路径上某一点在时刻 t 的位置
  • 速度向量 v(t) = dr/dt:位置随时间的变化率
  • 加速度向量 a(t) = d²r/dt²:速度随时间的变化率

我在做自动驾驶项目时,遇到过一个问题:车辆在弯道中,速度向量和加速度向量之间的夹角,直接决定了车辆的稳定性。如果夹角太大,车辆就会侧滑。嗯,这里要注意,向量微积分不仅仅是数学工具,它直接对应着物理世界的真实约束。

2. 曲线参数化:把路径变成「可计算」的形式

你想想看,一条弯弯曲曲的道路,怎么用数学来描述?

曲线参数化就是干这个的。我们把路径上的每个点,用一个参数 t(通常是时间或弧长)来表示。

// 二维曲线参数化示例
// 参数 t 从 0 到 1
x(t) = a₀ + a₁t + a₂t² + a₃t³
y(t) = b₀ + b₁t + b₂t² + b₃t³

我个人习惯用弧长 s 作为参数,而不是时间 t。为什么?因为弧长参数化后,曲线的几何性质(曲率、挠率)与速度无关,计算起来更干净。

避坑指南: 我曾经用时间参数化做路径平滑,结果发现同样的路径,车速不同时曲率居然会变。后来改用弧长参数化,问题就解决了。记住:几何问题用几何参数,别混用。

3. Frenet-Serret 坐标系:路径规划的「本地视角」

这个坐标系,说白了就是给路径上的每一点,都建立一个「本地坐标系」。它由三个互相垂直的向量组成:

向量名称 符号 含义 我的理解
切向量 T 指向路径前进方向 就是车头朝向
法向量 N 指向曲线弯曲方向 转弯时指向弯心
副法向量 B 垂直于 T 和 N 构成的平面 三维路径才用得到

为什么这个坐标系这么重要?因为路径规划中的很多约束,都是在 Frenet 坐标系下表达的。比如:

  • 速度约束:沿切向量方向的速度不能超过限速
  • 曲率约束:法向量方向的加速度受限于轮胎抓地力
  • 横向偏移:车辆偏离参考线的距离,就是沿法向量方向的位移

注意: Frenet 坐标系在曲率为零(直线段)时,法向量方向会变得不确定。我在做高速路径规划时,就因为这个原因导致过几次「跳变」。解决方案是:在直线段使用上一时刻的法向量方向,或者做平滑过渡。

4. 知识体系总览

下面这张图,是我自己总结的本章知识体系。你可以把它当作一张「地图」,随时回来查阅。

基础数学预备知识体系 向量微积分 曲线参数化 Frenet-Serret坐标系 位置向量 速度向量 加速度向量 时间参数化 弧长参数化 多项式曲线 切向量 T 法向量 N 副法向量 B 速度约束与曲率约束联合优化 三个基础模块共同支撑路径规划中的核心优化问题

5. 实际应用中的思考

讲到这里,我想分享一个实际案例。有一次我在做园区无人车的路径规划,车辆需要经过一个 S 型弯道。如果用传统的笛卡尔坐标系,约束条件写起来非常复杂。但切换到 Frenet 坐标系后,问题就清晰了:

  1. 沿切向量方向:控制车速,确保不超过 5m/s
  2. 沿法向量方向:控制横向加速度,确保不超过 0.3g
  3. 曲率约束:路径曲率不能超过 0.1 m⁻¹(对应最小转弯半径 10m)

你看,三个约束条件,在 Frenet 坐标系下各司其职,互不干扰。这就是数学工具的力量。

个人建议: 刚开始学这些概念时,别急着看公式。先在纸上画一条曲线,标出切向量和法向量,感受一下它们的方向。我当年就是这么过来的,画了十几张纸后,突然就通了。

好了,今天的基础数学预备就讲到这里。这些工具就像工具箱里的扳手和螺丝刀,单独看没什么,但组合起来就能解决大问题。下一节,我们会把这些工具真正用起来,开始构建速度与曲率的联合优化模型。

可可精品资料库