原创文章,转载请注明: 转载自慢慢的回味
本文链接地址: Cartesian与Frenet坐标系转换公式推导
车在道路上行驶,以车的视角来看,车就如同在一条光滑的曲线上移动,且不时带有左右偏移。为了算法简单,我们选择了Frenet坐标系,它可以把直角坐标系下的复杂轨迹转换为只有S,L两个维度的简单曲线。
Frenet坐标系简介
如下图所示,3维空间中一条连续可微的曲线K,P为曲线K上的一个点,方格背景平面为曲线K在点P处的运动平面。
为曲线K在点P处的切向量,即质点再P处的运动方向;
为K在P处的法向量,垂直于质点运动方向
,
和
在同一运动平面;
为曲线K在P处的副法向量,且同时垂直于
和
,即垂直于运动平面。


Frenet的定义公式如下:
![Rendered by QuickLaTeX.com \[ \begin{Bmatrix} \frac{d\vec{T}}{ds}= & \kappa\vec{N} \\ \frac{d\vec{N}}{ds}= & -\kappa\vec{T}+\tau\vec{B} \\ \frac{d\vec{B}}{ds}= & -\tau\vec{N} \end{Bmatrix} \]](https://liuxiaofei.com.cn/blog/wp-content/ql-cache/quicklatex.com-d8c6e96d3b90832c0ffe3e7efc0091e6_l3.png)
其中,
表示某一方向向量对弧长s的导数,
为曲率为曲线相对于直线的弯曲程度,当为0时为直线,表述为曲线运动方向的变化关于弧长的导数(
),
为挠率是曲线不能形成在同一平面内运动曲线的度量值,挠率越趋于0,则曲线越趋近于在同一平面内运动。Apollo的运动在大地上,局部路面可看作一个平面,挠率可设定为0,而Frenet公式可简化为:
(1) ![Rendered by QuickLaTeX.com \[ \begin{Bmatrix} \frac{d\vec{T}}{ds}= & \kappa\vec{N} \\ \frac{d\vec{N}}{ds}= & -\kappa\vec{T} \end{Bmatrix} \right \]](https://liuxiaofei.com.cn/blog/wp-content/ql-cache/quicklatex.com-f2f0d87facdb2f33ec934e85316e6cca_l3.png)