2. 数学基础
连续曲率轨迹生成的核心,是把一条空间路径从“几何形状”提升为“可微、可积、可约束”的数学对象。只有先建立参数曲线、曲率、挠率、Frenet标架、弧长参数化与连续性阶数这套语言,后续的舒适性优化、速度规划和执行器约束才有统一的度量基础。本节不追求纯数学推导的完备性,而是围绕工程实现中最常用的概念与判断方法展开。
一、参数曲线:从几何路径到可计算对象
一条空间曲线通常写成参数形式 C(u) = (x(u), y(u), z(u)),其中 u 是参数,不一定等于弧长。工程中常见的参数曲线包括多项式曲线、B样条、NURBS、贝塞尔曲线和回旋曲线等。参数化的意义在于:它把“路径”变成可求导、可采样、可优化的函数,从而支持速度、加速度、曲率等派生量的计算。
需要特别区分两个概念:几何路径是曲线在空间中的形状,与参数化方式无关;参数化则决定沿路径运动的快慢分布。同一条几何路径,用不同参数化方式表达,其导数大小和数值稳定性可能差异很大。因此,轨迹生成通常先设计几何路径,再叠加时间或弧长参数化。
二、曲率与挠率:描述弯曲与扭转
曲率 κ 描述曲线偏离直线的程度,挠率 τ 描述曲线偏离平面的程度。对参数曲线 C(u),有:
κ = |C'(u) × C''(u)| / |C'(u)|^3
τ = (C'(u) × C''(u)) · C'''(u) / |C'(u) × C''(u)|^2
在车辆、机器人或飞行器轨迹中,曲率直接关联横向加速度与转向角需求。若以速度 v 沿路径运动,则横向加速度约为 a_lat = κ v²。这意味着:曲率越大,同样速度下乘客感受到的侧向力越强,舒适性越差。挠率则更多出现在三维轨迹中,例如空间机械臂末端路径或无人机爬升转弯,它影响姿态变化的平滑程度。
三、Frenet标架:沿曲线的局部坐标系
Frenet标架由切向量 T、法向量 N、副法向量 B 组成,三者两两正交,构成沿曲线移动的局部坐标系。其定义为:
T = C'(u) / |C'(u)|
N = (T)' / |(T)'|
B = T × N
Frenet标架的价值在于把全局坐标中的复杂运动分解为“前进、侧向、垂向”三个方向。轨迹跟踪控制、横向误差计算、姿态规划都依赖这个局部坐标系。例如,在路径跟踪中,横向误差通常定义为实际位置到参考路径在 N 方向上的投影;在舒适性评估中,N 方向的加速度就是乘客感受到的侧向加速度。
但Frenet标架在直线段或曲率为零处会出现法向量不唯一的问题,工程中常用平行传输标架或固定参考标架替代,以提高数值稳定性。
四、弧长参数化与连续性阶数
弧长参数化是指用弧长 s 作为参数,使 |C'(s)| = 1。它的好处是:参数增量直接对应实际路径长度,速度规划与几何形状解耦。若用一般参数 u,则弧长与参数的关系为:
s(u) = ∫ |C'(u)| du
ds/du = |C'(u)|
连续性阶数描述曲线在拼接点处的光滑程度。常见定义如下:
| 连续性 | 含义 | 工程影响 |
|---|---|---|
| G0 / C0 | 位置连续 | 路径无断点,但可能出现尖角 |
| G1 / C1 | 切线方向连续 | 速度方向连续,转向仍有突变 |
| G2 / C2 | 曲率连续 | 横向加速度连续,舒适性显著提升 |
| G3 / C3 | 曲率变化率连续 | 加加速度连续,适合高动态场景 |
需要区分 C连续 与 G连续:C连续要求参数导数连续,G连续只要求几何连续。工程中更关注G2,因为曲率连续直接决定横向加速度是否平滑。若只做到G1,曲率在拼接点可能跳变,乘客会感到明显“顿挫”。
五、案例:回旋曲线拼接中的曲率连续性
假设一段直线与一段圆弧之间需要过渡。若直接拼接,直线段曲率为0,圆弧段曲率为 1/R,在拼接点曲率发生阶跃,横向加速度突变。工程上常用回旋曲线作为过渡段,其曲率随弧长线性变化:
κ(s) = k0 + (k1 - k0) * s / L
这样,直线到圆弧的过渡满足G2连续,横向加速度连续变化。若进一步要求加加速度连续,则需要使用曲率变化率连续的高阶曲线,例如五次多项式或G3样条。实际项目中,常以“曲率连续 + 曲率变化率有界”作为舒适性优化的基本约束。
六、常见误区与复盘
- 误区一:把参数连续当成几何连续。 C1并不自动意味着G1,参数化方式可能掩盖几何尖角。
- 误区二:只关注位置连续。 G0路径虽然无断点,但曲率跳变会让乘客感到明显冲击。
- 误区三:忽略弧长参数化。 非弧长参数下,速度规划与几何形状耦合,容易导致加速度约束失效。
- 误区四:在直线段直接使用Frenet标架。 曲率为零时法向量不唯一,应改用平行传输标架或固定参考系。
复盘时可用一个简单检查清单:路径是否G2连续?曲率是否沿弧长有界?Frenet标架是否在退化点稳定?弧长参数化是否用于速度规划?这四个问题能覆盖大部分轨迹生成中的数学基础缺陷。