大多数道路行车场景中的道路走势是笔直的,但弯曲道路仍不少见。道路的弯曲形态多种多样,难以找到统一的曲线类型描述弯曲道路。车辆不应与道路边缘线相撞,这一类碰撞躲避约束的有效建模依赖对于道路布局的精细描述。如何统一简洁地描述道路边缘走势对于轨迹规划问题的求解效率有着重要影响。
与非结构化泊车场景相比,结构化道路场景中存在指引线,车辆行驶轨迹不会大幅度偏离指引线,因此可以考虑以指引线的存在为契机简化规划任务的建模复杂度——构建Frenet坐标系可实现此理念。
在正式介绍 Frenet 坐标系之前,我们认为有必要先做一些基础铺垫。但凡构建一套坐标系即构建一套可用于有效表征空间中各点位置的数据格式。以最基本的笛卡尔坐标系为例,它将平面上每一点的位置向平面内两根相互正交的数轴投影,分别将投影到两条数轴的刻度记录下来,将其整合起来即构成每一点在笛卡尔坐标系中的位置描述,即坐标值。一套理想的坐标系应保证平面内每一点对应且仅对应唯一的坐标值,即坐标值与平面内实际的点位具有一一对应关系,这意味着我们可以放心地使用坐标值代指平面上的点而不会引发理解分歧。
那么,是否还有除笛卡尔坐标系之外的点位描述方式呢?答案是肯定的。假设某人将进村访问某户人家,在没有地图或导航工具辅助的前提下,不得不向他人问路,得到的答复是“沿村口大路向前走,直至遇到三棵大柳树时,右手边距路边十余步的那户人家便是”。在不使用笛卡尔坐标系的条件下,以上描述仍足以精确无误地将某人指引至既定目标点位,那条村中大路和三棵柳树在这里起到了至关重要的作用。 Frenet 坐标系与这种指路模式非常相似,以下将进行详细介绍。
Frenet 坐标系依赖条指引线构建起来,它可以描述平面上一定范围内的点位(稍后介绍其有效表征范围),将每一点用沿指引线延伸方向前行的“进展刻度”与游离于指引线的“编移刻度”表征,分别将两个刻度记录、整合即构成每一点在 Frenet 坐标系中的坐标值。如图下图F1所示,二维平面上每一点 P P P 在指引线上的投影点 M M M 能够反映 P P P 点沿着指引线的进展到度,而 M P MP MP 线段长度反映了 P P P 点游离于指引线的偏移刻度。在上述问路例子中,村中大路代表看指引线, P P P 点代表目的地, M M M 点代表路旁三棵柳树。 Frenet 坐标系早在数十年前已应用于车辆轨迹跟踪控制领域开环轨迹被视为指引线,车辆当前位置 P P P 的进展刻度与闹侈刻度分别用于衡量车辆的纵向、横偏差,据此计算横纵方向上的反馈跟踪控制量。 Weiling 等于2010年首次将 Frenet 坐标系引人结构化道路上的轨迹规划问题中。
在接下来的两小节中介绍笛卡尔坐标系与 Frenet 坐标系之间的转换法,其中第3章节介绍点的转换方法,第4章节介绍运动状态的转换方法 。最后,在第5章节将指出 Frenet 坐标系的局限性。
二维平面上的一个点在笛卡尔坐标系中表示为 ( x , y ) (x,y) (x,y),也可基于指引线在 Frenet 坐标系中表示为 ( s , l ) (s,l) (s,l)。本节将介绍如何在给定 ( x , y ) (x,y) (x,y)的条件下确定 ( s , l ) (s,l) (s,l),以及如何在给定 ( s , l ) (s,l) (s,l)的条件下确定 ( x , y ) (x,y) (x,y)。
首先介绍如何将笛卡尔坐标转化为 Frenet 坐标。已知笛卡尔坐标系下的一段长度为 L L L 的参数化指引线,将其记为
Γ [ x ( s ) , y ( s ) ] , s ε [ 0 , L ] , (1) \begin{aligned} &\Gamma [ x(s), y(s) ],s\varepsilon [0,L],\\\end{aligned}\tag{1} Γ[x(s),y(s)],sε[0,L],(1)
其中, s s s 为沿着指引线的里程。已知点 P P P 在笛卡尔坐标系中的坐标为 ( x e , y e ) (x_{e}, y_{e}) (xe,ye),为了确定 P P P 在 Frenet 坐标系中的坐标值,需要在曲线段 Γ \Gamma Γ 上寻找与 P P P 匹配的投影点 M = ( x ( s ∗ ) , y ( s ∗ ) ) M=(x(s^{\ast}),y(s^{\ast})) M=(x(s∗),y(s∗)) ,并使线段 P M PM PM 长度最短,即
a r g m i n [ D ( s ) ] s = s ∗ (2) \begin{aligned} &\underset{s=s^{\ast}}{arg \quad min[D(s)]}\\\end{aligned}\tag{2} s=s∗argmin[D(s)](2)
其中, D ( s ) D(s) D(s) 为线段 P M PM PM 长度:
D ( s ) = [ x ( s ) − x e ] 2 + [ y ( s ) − y e ] 2 (3) \begin{aligned} &D(s)=[x(s)-x_{e}]^{2}+[y(s)-y_{e}]^{2}\\\end{aligned}\tag{3} D(s)=[x(s)−xe]2+[y(s)−ye]2(3)
符合条件的 P P P 点能够使曲线在该点处的切线方向与 P M PM PM 方向垂直。如 P M PM PM 长度为 ∣ L ∗ ∣ |L^{\ast}| ∣L∗∣ , M M M点位于指引线里程 s = s ∗ s=s^{\ast} s=s∗ 处,则 P P P 在 Frenet 坐标系中的坐标值可确定为 ( s ∗ , l ∗ ) (s^{\ast},l^{\ast}) (s∗,l∗) 。不难发现,确定 M M M 点坐标的关键在于计算 s ∗ s^{\ast} s∗ ,这里提供了两种具体计算方案。
第一种方法称为二阶最小化方法,其核心思路是通过多点采样对 D ( s ) D(s) D(s) 进行二阶拟合,将拟合而成的二次函数 D ~ ( s ) \widetilde{D}(s) D (s) 为 D ( s ) D(s) D(s) 的估计,随后寻找使 D ~ ( s ) \widetilde{D}(s) D (s) 取最小值的闭合解。具体而言:
在工程实践中,通过历史数据提前缩小 s ∗ s^{\ast} s∗ 的可能取值范围,这种做法在曲线里程 L L L 较大时意义显著。假设限定 s ε [ s k , s k + 1 ] s\varepsilon [s_{k},s_{k+1}] sε[sk,sk+1],则可将 s ∗ s^{\ast} s∗ 的3个初始估计值设置为 s k s_{k} sk 、 s k + 1 s_{k+1} sk+1 以及 ( s k + s k + 1 ) / 2 (s_{k}+s_{k+1})/2 (sk+sk+1)/2 。若最终 s ∗ s^{\ast} s∗ 收敛至区间 [ s k , s k + 1 ] [s_{k}, s_{k+1}] [sk,sk+1] 之外,则判定选取的区间 [ s k , s k + 1 ] [s_{k}, s_{k+1}] [sk,sk+1] 无效,应在相邻区间中继续进行 s ∗ s^{\ast} s∗ 的迭代求解。
第二种方法称为牛顿法,其核心思想是以牛顿方法迭代求取使 D ′ ( s ) = 0 D^{'}(s)=0 D′(s)=0 成立的极值 s = s ∗ s=s^{\ast } s=s∗ 。具体地,在提供 s ∗ s^{\ast } s∗ 的某一初始值 s i n i t s_{init} sinit 后,进行以下迭代:
s ^ = s i n i t − D ′ ( s i n i t ) D ′ ′ ( s i n i t ) (6) \begin{aligned} &\widehat{s} = s_{init} - \frac{D'(s_{init})}{D''(s_{init})}\\\end{aligned}\tag{6} s =sinit−D′′(sinit)D′(sinit)(6)
随后使用 s ^ \widehat{s} s 对 s i n i t s_{init} sinit 赋值并继续重复计算上式,直至: s ^ \widehat{s} s 取值收敛时将收敛值记为 s ∗ s^{\ast } s∗ 。
根据求解出的 s ∗ s^{\ast } s∗,代入指引线参数方程,得到点 P = ( x e , y e ) P=(x_{e} ,y_{e}) P=(xe,ye) 的投影点(参考点)坐标 M = ( x ( s ∗ ) , y ( s ∗ ) ) M=(x(s^{\ast }) ,y(s^{\ast })) M=(x(s∗),y(s∗)) ,则 l ∗ l^{\ast } l∗ 的绝对值为:
∣ l ∗ ∣ = [ x e − x ( s ∗ ) ] 2 + [ y e − y ( s ∗ ) ] 2 (7) |l^{\ast }| = \sqrt{[x_{e}-x(s^{\ast })]^{2} + [y_{e}-y(s^{\ast })]^{2}}\tag{7} ∣l∗∣=[xe−x(s∗)]2+[ye−y(s∗)]2(7)
现在求 l ∗ l^{\ast } l∗ 的正负方向, P P P 位于指引线延伸方向左侧则取正号,反之取负(一般情况左正右负,看具体定义)。:
在笛卡尔坐标系下,如图F3,根据向量关系,已知向量 e → = O P → = [ x e y e ] 、 r → = O M → = [ x ( s ∗ ) y ( s ∗ ) ] \overrightarrow{e}=\overrightarrow{OP}=\begin{bmatrix} x_{e}\\ y_{e}\\ \end{bmatrix}、\overrightarrow{r}=\overrightarrow{OM}=\begin{bmatrix} x(s^{\ast })\\ y(s^{\ast })\\ \end{bmatrix} e=OP=[xeye]、r=OM=[x(s∗)y(s∗)] ,很容易得出:
e → = r → + ∣ l ∗ ∣ ⋅ N → r e → − r → = ∣ l ∗ ∣ ⋅ N → r [ x e − x ( s ∗ ) y e − y ( s ∗ ) ] = ∣ l ∗ ∣ ⋅ N → r N → r = 1 ∣ l ∗ ∣ ⋅ [ x e − x ( s ∗ ) y e − y ( s ∗ ) ] , M点处单位法向量 T → r = 1 ∣ l ∗ ∣ ⋅ [ y e − y ( s ∗ ) − ( x e − x ( s ∗ ) ) ] = [ c o s θ r s i n θ r ] , M点处单位切向量 N → r × T → r = ( y e − y ( s ∗ ) ) c o s θ r − ( x e − x ( s ∗ ) ) s i n θ r , 叉积在z方向的分量 (8) \begin{aligned}&\overrightarrow{e} = \overrightarrow{r} + |l^{\ast }| \cdot \overrightarrow{N}_{r}\\&\overrightarrow{e} - \overrightarrow{r} = |l^{\ast }| \cdot \overrightarrow{N}_{r}\\&\begin{bmatrix} x_{e}-x(s^{\ast })\\ y_{e}-y(s^{\ast })\\ \end{bmatrix} = |l^{\ast }| \cdot \overrightarrow{N}_{r}\\&\overrightarrow{N}_{r} = \frac{1}{|l^{\ast }|} \cdot \begin{bmatrix} x_{e}-x(s^{\ast })\\ y_{e}-y(s^{\ast })\\ \end{bmatrix} , \text{M点处单位法向量}\\&\overrightarrow{T}_{r} = \frac{1}{|l^{\ast }|} \cdot \begin{bmatrix} y_{e}-y(s^{\ast })\\ -(x_{e}-x(s^{\ast }))\\ \end{bmatrix} = \begin{bmatrix} cos\theta_{r}\\ sin\theta_{r}\\ \end{bmatrix}, \text{M点处单位切向量}\\&\overrightarrow{N}_{r} \times \overrightarrow{T}_{r} = (y_{e}-y(s^{\ast }))cos\theta_{r} - (x_{e}-x(s^{\ast }))sin\theta_{r} \ , \text{叉积在z方向的分量}\end{aligned}\tag{8} e=r+∣l∗∣⋅Nre−r=∣l∗∣⋅Nr[xe−x(s∗)ye−y(s∗)]=∣l∗∣⋅NrNr=∣l∗∣1⋅[xe−x(s∗)ye−y(s∗)],M点处单位法向量Tr=∣l∗∣1⋅[ye−y(s∗)−(xe−x(s∗))]=[cosθrsinθr],M点处单位切向量Nr×Tr=(ye−y(s∗))cosθr−(xe−x(s∗))sinθr ,叉积在z方向的分量(8)
l ∗ l^{\ast } l∗ 的正负号与z分量的符号相同,即:
l ∗ = s i g n [ ( y e − y ( s ∗ ) ) c o s θ r − ( x e − x ( s ∗ ) ) s i n θ r ] ⋅ [ x e − x ( s ∗ ) ] 2 + [ y e − y ( s ∗ ) ] 2 l ∗ = s t d : : c o p y s i g n ( [ x e − x ( s ∗ ) ] 2 + [ y e − y ( s ∗ ) ] 2 , [ ( y e − y ( s ∗ ) ) c o s θ r − ( x e − x ( s ∗ ) ) s i n θ r ] ) (9) \begin{aligned}&l^{\ast } = sign[(y_{e}-y(s^{\ast }))cos\theta_{r} - (x_{e}-x(s^{\ast }))sin\theta_{r}] \cdot \sqrt{[x_{e}-x(s^{\ast })]^{2} + [y_{e}-y(s^{\ast })]^{2}}\\&l^{\ast } = std::copysign(\sqrt{[x_{e}-x(s^{\ast })]^{2} + [y_{e}-y(s^{\ast })]^{2}}\quad, [(y_{e}-y(s^{\ast }))cos\theta_{r} - (x_{e}-x(s^{\ast }))sin\theta_{r}])\\\end{aligned}\tag{9} l∗=sign[(ye−y(s∗))cosθr−(xe−x(s∗))sinθr]⋅[xe−x(s∗)]2+[ye−y(s∗)]2l∗=std::copysign([xe−x(s∗)]2+[ye−y(s∗)]2,[(ye−y(s∗))cosθr−(xe−x(s∗))sinθr])(9)
将Frenet 坐标向笛卡尔坐标的转换则相对简单。
已知一段参数化指引线 Γ [ x ( s ) , y ( s ) ] \Gamma [ x(s), y(s) ] Γ[x(s),y(s)],以及点 P P P 在 Frenet 坐标系中的坐标 ( s ∗ , l ∗ ) (s^{\ast },l^{\ast }) (s∗,l∗) ,为确定 P P P 点在笛卡尔坐标系中的坐标值,首先需确定该点在指引线上的投影点 M = ( s ∗ , 0 ) M=(s^{\ast },0) M=(s∗,0) (Frenet坐标下) / M = ( x ( s ∗ ) , y ( s ∗ ) ) M=(x(s^{\ast }),y(s^{\ast })) M=(x(s∗),y(s∗)) (笛卡尔坐标下) 处的指引线切线方向 θ r \theta_{r} θr :
θ r = a r c t a n [ y ′ ( s ∗ ) x ′ ( s ∗ ) ] (10) \begin{aligned} &\theta_{r} = arctan[\frac{y'(s^{\ast })}{x'(s^{\ast })}]\\\end{aligned}\tag{10} θr=arctan[x′(s∗)y′(s∗)](10)
随后即可利用几何关系推导出 P P P 点在笛卡尔坐标系中的坐标值 ( x e , y e ) (x_{e} ,y_{e}) (xe,ye) :
( x e , y e ) ≡ [ x ( s ∗ ) + l ∗ ⋅ c o s ( θ r + π 2 ) , y ( s ∗ ) + l ∗ ⋅ s i n ( θ r + π 2 ) ] (11) \begin{aligned} &(x_{e},y_{e}) \equiv [ x(s^{\ast }) + l^{\ast } \cdot cos(\theta_{r} + \frac{\pi }{2}), y(s^{\ast }) + l^{\ast } \cdot sin(\theta_{r} + \frac{\pi }{2})]\\\end{aligned}\tag{11} (xe,ye)≡[x(s∗)+l∗⋅cos(θr+2π),y(s∗)+l∗⋅sin(θr+2π)](11)
前文将平面上一个点在笛卡尔/Frenet 坐标系之间转换。然而,给构化道路上的目标往往存在着运动趋势。例如,社会车辆在笛卡尔坐标系中的未来预测轨迹需要转换至Frenet坐标系中,或是Frenet坐标系中求解的轨迹转换至笛卡尔坐标系中。在对轨迹转换坐标系时倘若仅将轨迹上的一系列采样点按照前文的点位置介绍的方法进行转换,则轨迹原有的速度、加速度等运动状态信息很可能在转换过程中丢失。本小节将探讨如何转换运动状态。
图F3:面向轨迹的笛卡尔/Frenet坐标系运动状态转换模型
针对图所示的一般情况,我们将介绍轨迹上的某一点 P P P 的运动状态如何在两个坐标系中相互转换。假设图中存在某一原点 O O O(图中未画出),则向量 O P → \overrightarrow{OP} OP 体现了点 P P P 在笛卡尔坐标系下的位置。
P P P 点在笛卡尔坐标系下的运动状态:(e: Ego)
P P P 点在 Frenet 坐标系下的运动状态:
**Q:已知笛卡尔坐标系下 O P → 、 v e 、 a e 、 θ e 、 κ e \overrightarrow{OP}、v_{e}、a_{e}、\theta _{e}、\kappa _{e} OP、ve、ae、θe、κe 的条件下推导Frenet坐标系下的 s ˙ 、 s ¨ 、 l ˙ 、 l ¨ 、 l ′ 、 l ′ ′ \dot{s}、\ddot{s}、\dot{l}、\ddot{l}、l'、l'' s˙、s¨、l˙、l¨、l′、l′′ 。 **
在已知 O P → \overrightarrow{OP} OP 条件下,设 P P P 为 ( x e , y e ) (x_{e},y_{e}) (xe,ye) ,可利用3.1小节介绍的方法确定 ( s , l ) (s,l) (s,l) ,以及投影点 ( s , 0 ) (s,0) (s,0) 处指引线切线与水平线成角 θ r \theta_{r} θr ,以及该点在指引线上的曲率 κ r ( s ) = ∣ y ( s ) ′ ′ x ( s ) ′ − x ( s ) ′ ′ y ( s ) ) ′ ∣ { [ x ( s ) ′ ] 2 + [ y ( s ) ′ ] 2 } 3 / 2 \kappa_{r}(s)= \frac{ \left| y(s)''x(s)'-x(s)''y(s))' \right|}{\{[x(s)']^{2} + [y(s)']^{2}\}^{3/2}} κr(s)={[x(s)′]2+[y(s)′]2}3/2∣y(s)′′x(s)′−x(s)′′y(s))′∣ 。
向量相关公式 { O P → = [ x 0 y 0 ] , OP向量 ∣ O P → ∣ = x 0 2 + y 0 2 , OP向量的模 O P → ^ = [ x 0 x 0 2 + y 0 2 y 0 x 0 2 + y 0 2 ] , OP向量的单位向量(法向量同向) O P → ~ = [ y 0 x 0 2 + y 0 2 − x 0 x 0 2 + y 0 2 ] = [ c o s θ s i n θ ] , OP向量的单位切向量(与法向量垂直) ∣ O P → ∣ = O P → ⋅ O P → ^ (12) \text{向量相关公式}\left\{\begin{aligned} &\overrightarrow{OP} = \begin{bmatrix} x_{0}\\ y_{0}\\ \end{bmatrix}, \text{OP向量}\\&\left| \overrightarrow{OP} \right| = \sqrt{x_{0}^{2}+y_{0}^{2}}, \text{OP向量的模}\\&\widehat{\overrightarrow{OP}} = \begin{bmatrix} \frac{x_{0}}{\sqrt{x_{0}^{2}+y_{0}^{2}}}\\ \frac{y_{0}}{\sqrt{x_{0}^{2}+y_{0}^{2}}}\\ \end{bmatrix} , \text{OP向量的单位向量(法向量同向)}\\&\widetilde{\overrightarrow{OP}}=\begin{bmatrix} \frac{y_{0}}{\sqrt{x_{0}^{2}+y_{0}^{2}}}\\ -\frac{x_{0}}{\sqrt{x_{0}^{2}+y_{0}^{2}}}\\ \end{bmatrix} = \begin{bmatrix} cos\theta\\ sin\theta\\ \end{bmatrix}, \text{OP向量的单位切向量(与法向量垂直)}\\&\left| \overrightarrow{OP} \right| = \overrightarrow{OP} \cdot \widehat{\overrightarrow{OP}}\\\end{aligned}\right.\tag{12} 向量相关公式⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧OP=[x0y0],OP向量∣∣∣OP∣∣∣=x02+y02,OP向量的模OP =⎣⎡x02+y02x0x02+y02y0⎦⎤,OP向量的单位向量(法向量同向)OP =⎣⎡x02+y02y0−x02+y02x0⎦⎤=[cosθsinθ],OP向量的单位切向量(与法向量垂直)∣∣∣OP∣∣∣=OP⋅OP (12)
参数方程的曲线的曲率推导:
参考:曲率、曲率(对弧长)的导数以及曲率导数(对弧长)的导数的计算
参数方程确定的曲线的曲率表达式如何推导?
曲率及其一阶导 { Γ [ x ( t ) , y ( t ) ] , t ε [ 0 , L ] , 曲线的参数方程 κ = d θ d s , 曲率定义:角度对弧度的导数 d y d x = d y / d t d x / d t = y t ′ x t ′ = t a n θ , 这里的dt是对应的参数方程中的参数t d s 2 = ( d x ) 2 + ( d y ) 2 = ( x t ′ ⋅ d t ) 2 + ( y t ′ ⋅ d t ) 2 = [ ( x t ′ ) 2 + ( y t ′ ) 2 ] ⋅ ( d t ) 2 d s = ( x t ′ ) 2 + ( y t ′ ) 2 d t , 弧微分 c o s θ = x t ′ ( x t ′ ) 2 + ( y t ′ ) 2 s i n θ = y t ′ ( x t ′ ) 2 + ( y t ′ ) 2 s e c 2 θ = ( x t ′ ) 2 + ( y t ′ ) 2 ( x t ′ ) 2 y t ′ ′ x t ′ − x t ′ ′ y t ′ x t ′ 2 = d t a n θ d t κ = d θ d s = s e c 2 θ d θ s e c 2 θ d s = d t a n θ s e c 2 θ d s = ( d t a n θ / d t ) s e c 2 θ ( d s / d t ) = 1 s e c 2 ⋅ y t ′ ′ x t ′ − x t ′ ′ y t ′ x t ′ 2 ( x t ′ ) 2 + ( y t ′ ) 2 = ( x t ′ ) 2 ( x t ′ ) 2 + ( y t ′ ) 2 ⋅ y t ′ ′ x t ′ − x t ′ ′ y t ′ x t ′ 2 ( x t ′ ) 2 + ( y t ′ ) 2 = y t ′ ′ x t ′ − x t ′ ′ y t ′ [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 3 / 2 κ ′ = d κ d s = d κ d t d t d s = d ( y t ′ ′ x t ′ − x t ′ ′ y t ′ [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 3 / 2 ) d t d t d s = ( y t ′ ′ x t ′ − x t ′ ′ y t ′ ) ′ [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 3 / 2 − ( y t ′ ′ x t ′ − x t ′ ′ y t ′ ) ( [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 3 / 2 ) ′ [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 3 ⋅ 1 [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 1 / 2 = ( y t ′ ′ ′ x t ′ + y t ′ ′ x t ′ ′ − x t ′ ′ ′ y t ′ − x t ′ ′ y t ′ ′ ) [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 3 / 2 − ( y t ′ ′ x t ′ − x t ′ ′ y t ′ ) ( 3 2 [ [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 1 / 2 ] ( 2 x t ′ x t ′ ′ + 2 y t ′ y t ′ ′ ) ) [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 3 ⋅ 1 [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 1 / 2 = [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 1 / 2 { ( y t ′ ′ ′ x t ′ − x t ′ ′ ′ y t ′ ) [ ( x t ′ ) 2 + ( y t ′ ) 2 ] − 3 2 ( y t ′ ′ x t ′ − x t ′ ′ y t ′ ) ( 2 x t ′ x t ′ ′ + 2 y t ′ y t ′ ′ ) } [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 3 ⋅ 1 [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 1 / 2 = ( y t ′ ′ ′ x t ′ − x t ′ ′ ′ y t ′ ) [ ( x t ′ ) 2 + ( y t ′ ) 2 ] − 3 ( y t ′ ′ x t ′ − x t ′ ′ y t ′ ) ( x t ′ x t ′ ′ + y t ′ y t ′ ′ ) [ ( x t ′ ) 2 + ( y t ′ ) 2 ] 3 (13) \text{曲率及其一阶导}\left\{\begin{aligned} &\Gamma [ x(t), y(t) ],t\varepsilon [0,L],\text{曲线的参数方程}\\&\kappa =\frac{d\theta }{ds}, \text{曲率定义:角度对弧度的导数}\\&\frac{dy}{dx}=\frac{dy/dt}{dx/dt}=\frac{y_{t}'}{x_{t}'}=tan\theta,\text{这里的dt是对应的参数方程中的参数t}\\&ds^{2}=(dx)^{2}+(dy)^{2}= (x_{t}' \cdot dt)^{2}+(y_{t}' \cdot dt)^{2}=[(x_{t}')^{2}+(y_{t}')^{2}] \cdot (dt)^{2}\\&ds= \sqrt{(x_{t}')^{2} + (y_{t}')^{2}} \quad dt, \text{弧微分}\\&cos\theta= \frac{x_{t}'}{\sqrt{(x_{t}')^{2} + (y_{t}')^{2}}}\\&sin\theta= \frac{y_{t}'}{\sqrt{(x_{t}')^{2} + (y_{t}')^{2}}}\\&sec^{2}\theta= \frac{(x_{t}')^{2} + (y_{t}')^{2}}{(x_{t}')^{2}}\\&\frac{y_{t}''x_{t}'-x_{t}''y_{t}'}{x_{t}'^{2}} = \frac{d \ tan\theta} {dt}\\&\kappa =\frac{d\theta }{ds} =\frac{sec^{2}\theta \ d\theta }{sec^{2}\theta \ ds}= \frac{d \ tan\theta}{sec^{2}\theta \ ds}=\frac{(d \ tan\theta/ dt)}{sec^{2}\theta \ (ds/dt)}\\&=\frac{1}{sec^{2}} \cdot \frac{\frac{y_{t}''x_{t}'-x_{t}''y_{t}'}{x_{t}'^{2}}}{\sqrt{(x_{t}')^{2} + (y_{t}')^{2}}}\\&=\frac{(x_{t}')^{2}}{(x_{t}')^{2} + (y_{t}')^{2}} \cdot \frac{\frac{y_{t}''x_{t}'-x_{t}''y_{t}'}{x_{t}'^{2}}}{\sqrt{(x_{t}')^{2} + (y_{t}')^{2}}}\\&=\frac{y_{t}''x_{t}'-x_{t}''y_{t}'}{[(x_{t}')^{2} + (y_{t}')^{2}]^{3/2}}\\&\kappa'=\frac{d\kappa}{ds}=\frac{d\kappa}{dt}\frac{dt}{ds}\\&=\frac{d(\frac{y_{t}''x_{t}'-x_{t}''y_{t}'}{[(x_{t}')^{2} + (y_{t}')^{2}]^{3/2}})}{dt} \frac{dt}{ds}\\&=\frac{(y_{t}''x_{t}'-x_{t}''y_{t}')' \ [(x_{t}')^{2} + (y_{t}')^{2}]^{3/2} \quad-\quad (y_{t}''x_{t}'-x_{t}''y_{t}') \ ([(x_{t}')^{2} + (y_{t}')^{2}]^{3/2})' }{[(x_{t}')^{2} + (y_{t}')^{2}]^{3}} \cdot \frac{1}{[(x_{t}')^{2} + (y_{t}')^{2}]^{1/2}}\\&=\frac{(y_{t}'''x_{t}' + y_{t}''x_{t}'' - x_{t}'''y_{t}' - x_{t}''y_{t}'') \ [(x_{t}')^{2} + (y_{t}')^{2}]^{3/2} \quad-\quad (y_{t}''x_{t}'-x_{t}''y_{t}') \ (\frac{3}{2}[[(x_{t}')^{2} + (y_{t}')^{2}]^{1/2}] \ (2x_{t}'x_{t}''+2y_{t}'y_{t}'')) }{[(x_{t}')^{2} + (y_{t}')^{2}]^{3}} \cdot \frac{1}{[(x_{t}')^{2} + (y_{t}')^{2}]^{1/2}}\\&=\frac{ [(x_{t}')^{2} + (y_{t}')^{2}]^{1/2} \quad \{ (y_{t}'''x_{t}' - x_{t}'''y_{t}') [(x_{t}')^{2} + (y_{t}')^{2}] \quad-\quad \frac{3}{2} (y_{t}''x_{t}'-x_{t}''y_{t}') \ (2x_{t}'x_{t}''+2y_{t}'y_{t}'') \} }{[(x_{t}')^{2} + (y_{t}')^{2}]^{3}} \cdot \frac{1}{[(x_{t}')^{2} + (y_{t}')^{2}]^{1/2}}\\&=\frac{ (y_{t}'''x_{t}' - x_{t}'''y_{t}') [(x_{t}')^{2} + (y_{t}')^{2}] \quad-\quad 3(y_{t}''x_{t}'-x_{t}''y_{t}') \ (x_{t}'x_{t}''+y_{t}'y_{t}'') }{[(x_{t}')^{2} + (y_{t}')^{2}]^{3}} \\\end{aligned}\right.\tag{13} 曲率及其一阶导⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧Γ[x(t),y(t)],tε[0,L],曲线的参数方程κ=dsdθ,曲率定义:角度对弧度的导数dxdy=dx/dtdy/dt=xt′yt′=tanθ,这里的dt是对应的参数方程中的参数tds2=(dx)2+(dy)2=(xt′⋅dt)2+(yt′⋅dt)2=[(xt′)2+(yt′)2]⋅(dt)2ds=(xt′)2+(yt′)2dt,弧微分cosθ=(xt′)2+(yt′)2xt′sinθ=(xt′)2+(yt′)2yt′sec2θ=(xt′)2(xt′)2+(yt′)2xt′2yt′′xt′−xt′′yt′=dtd tanθκ=dsdθ=sec2θ dssec2θ dθ=sec2θ dsd tanθ=sec2θ (ds/dt)(d tanθ/dt)=sec21⋅(xt′)2+(yt′)2xt′2yt′′xt′−xt′′yt′=(xt′)2+(yt′)2(xt′)2⋅(xt′)2+(yt′)2xt′2yt′′xt′−xt′′yt′=[(xt′)2+(yt′)2]3/2yt′′xt′−xt′′yt′κ′=dsdκ=dtdκdsdt=dtd([(xt′)2+(yt′)2]3/2yt′′xt′−xt′′yt′)dsdt=[(xt′)2+(yt′)2]3(yt′′xt′−xt′′yt′)′ [(xt′)2+(yt′)2]3/2−(yt′′xt′−xt′′yt′) ([(xt′)2+(yt′)2]3/2)′⋅[(xt′)2+(yt′)2]1/21=[(xt′)2+(yt′)2]3(yt′′′xt′+yt′′xt′′−xt′′′yt′−xt′′yt′′) [(xt′)2+(yt′)2]3/2−(yt′′xt′−xt′′yt′) (23[[(xt′)2+(yt′)2]1/2] (2xt′xt′′+2yt′yt′′))⋅[(xt′)2+(yt′)2]1/21=[(xt′)2+(yt′)2]3[(xt′)2+(yt′)2]1/2{(yt′′′xt′−xt′′′yt′)[(xt′)2+(yt′)2]−23(yt′′xt′−xt′′yt′) (2xt′xt′′+2yt′yt′′)}⋅[(xt′)2+(yt′)2]1/21=[(xt′)2+(yt′)2]3(yt′′′xt′−xt′′′yt′)[(xt′)2+(yt′)2]−3(yt′′xt′−xt′′yt′) (xt′xt′′+yt′yt′′)(13)
根据图F3所示的几何关系可得:
l = M P → T ⋅ N r → = ( O P → − O M → ) T ⋅ N r → (14) \begin{aligned} &l=\overrightarrow{MP}^{T} \cdot \overrightarrow{N_{r}} = (\overrightarrow{OP} - \overrightarrow{OM})^{T} \cdot \overrightarrow{N_{r}}\\\end{aligned}\tag{14} l=MPT⋅Nr=(OP−OM)T⋅Nr(14)
其中 N r → \overrightarrow{N_{r}} Nr 为经过投影点 M M M 的单位法向量。为叙述简便,现约定了 e → = O P → 、 r → = O M → \overrightarrow{e}=\overrightarrow{OP}、\overrightarrow{r}=\overrightarrow{OM} e=OP、r=OM ,则上式改写为:
l = ( e → − r → ) T ⋅ N r → (15) \begin{aligned} &l= (\quad \overrightarrow{e} - \overrightarrow{r} \quad)^{T} \cdot \overrightarrow{N_{r}}\\\end{aligned}\tag{15} l=(e−r)T⋅Nr(15)
首先考虑如何确定 l ˙ \dot{l} l˙ 。将 l l l 对时间求导可得:(向量位移求导为速度)
l ˙ = ( e → ˙ − r → ˙ ) T ⋅ N r → + ( e → − r → ) T ⋅ N r → ˙ = v e T e → T N r → − s ˙ T r → T N r → + l N r → T N r → ˙ (16) \begin{aligned} \dot{l}&= (\dot{\overrightarrow{e}} - \dot{\overrightarrow{r}})^{T} \cdot \overrightarrow{N_{r}} + (\overrightarrow{e} - \overrightarrow{r})^{T} \cdot \dot{\overrightarrow{N_{r}}} \\&=v_{e}\overrightarrow{T_{e}}^{T}\overrightarrow{N_{r}} - \dot{s} \overrightarrow{T_{r}}^{T} \overrightarrow{N_{r}} +l \overrightarrow{N_{r}}^{T}\dot{\overrightarrow{N_{r}}}\end{aligned}\tag{16} l˙=(e˙−r˙)T⋅Nr+(e−r)T⋅Nr˙=veTeTNr−s˙TrTNr+lNrTNr˙(16)
其中, T e → \overrightarrow{T_{e}} Te 为 P P P 点处的单位切向量; T r → \overrightarrow{T_{r}} Tr 为 M M M 点处的单位切向量。由向量微积分学科中的Frenet-Serret公式可知:
d N r → d s = − κ r T r → (17) \frac{d\ \overrightarrow{N_{r}}} {ds} = - \kappa_{r} \overrightarrow{T_{r}} \tag{17} dsd Nr=−κrTr(17)
这意味着:
N r → ˙ = d N r → d s d s d t = − κ r T r → s ˙ (18) \dot{\overrightarrow{N_{r}}}=\frac{d\ \overrightarrow{N_{r}}\ ds}{ds\ dt} = - \kappa_{r} \overrightarrow{T_{r}} \dot{s} \tag{18} Nr˙=ds dtd Nr ds=−κrTrs˙(18)
将公式 (18) \text{(18)} (18) 代入公式 (16) \text{(16)} (16) ,并考虑 T r → T N r → = N r → T T r → = 0 \overrightarrow{T_{r}}^{T} \overrightarrow{N_{r}} = \overrightarrow{N_{r}}^{T}\overrightarrow{T_{r}}=0 TrTNr=NrTTr=0 ,则有:
l ˙ = v e T e → T N r → (19) \dot{l}=v_{e} \overrightarrow{T_{e}}^{T} \overrightarrow{N_{r}} \tag{19} l˙=veTeTNr(19)
其中, T e → T N r → \overrightarrow{T_{e}}^{T} \overrightarrow{N_{r}} TeTNr 为两个单位向量 T e → , N r → \overrightarrow{T_{e}}, \overrightarrow{N_{r}} Te,Nr 的夹角余弦值,即 c o s ( π / 2 − θ e + θ r ) cos(\pi / 2 - \theta_{e} + \theta_{r}) cos(π/2−θe+θr) ,将其代入公式 (19) \text{(19)} (19) 且令 Δ θ = θ e − θ r \Delta\theta=\theta_{e}-\theta_{r} Δθ=θe−θr 则有:
l ˙ = v e s i n ( θ e − θ r ) = v e s i n ( Δ θ ) (20) \dot{l}=v_{e}sin(\theta_{e} - \theta_{r}) = v_{e}sin(\Delta\theta) \tag{20} l˙=vesin(θe−θr)=vesin(Δθ)(20)
l ′ = d l d s = d l d t d t d s = v e s i n ( Δ θ ) s ˙ (21) l'= \frac{dl}{ds} = \frac{dl}{dt} \frac{dt}{ds} = \frac {v_{e}sin(\Delta\theta)}{\dot{s}} \tag{21} l′=dsdl=dtdldsdt=s˙vesin(Δθ)(21)
其中分母 s ˙ \dot{s} s˙ 暂时未确定。为了使推导能够进行下去、先聚焦于 (21) \text{(21)} (21) 中的 v e v_{e} ve 部分:
v e = e → ˙ T e → ˙ (22) v_{e} = \sqrt{ \dot{\overrightarrow{e}}^{T} \quad \dot{\overrightarrow{e}} } \tag{22} ve=e˙Te˙(22)
其中 e → ˙ \dot{\overrightarrow{e}} e˙ 部分有以下关系式:
e → ˙ = d e → d t = d ( r → + l N r → ) d t = r → ˙ + ( l ˙ N r → + l N r → ˙ ) = s ˙ T r → + l ˙ N r → − κ r T r → s ˙ l = s ˙ T r → ( 1 − κ r l ) + l ˙ N r → (23) \begin{aligned}\dot{\overrightarrow{e}} &= \frac{d \ \overrightarrow{e} }{dt} = \frac{d \ (\overrightarrow{r} + l \overrightarrow{N_{r}}) }{dt} = \dot{\overrightarrow{r}} \quad + \quad (\dot{l} \overrightarrow{N_{r}} + l \dot{\overrightarrow{N_{r}}} )\\&= \dot{s} \overrightarrow{T_{r}} \ + \ \dot{l} \overrightarrow{N_{r}} - \ \kappa_{r} \overrightarrow{T_{r}} \dot{s} l \\&= \dot{s} \overrightarrow{T_{r}} (1 - \kappa_{r} l ) + \dot{l} \overrightarrow{N_{r}}\\\end{aligned} \tag{23} e˙=dtd e=dtd (r+lNr)=r˙+(l˙Nr+lNr˙)=s˙Tr + l˙Nr− κr