运动学基础
运动学(kinematics)是力学的一门分支,专门描述物体的运动,即物体在空间中的位置随时间的演进而作的改变,完全不考虑作用力或质量等等影响运动的因素。
1 刚体与刚体建模
1.1 刚体的定义
刚体是指形状和尺寸不发生变化的物体。更严格地说,刚体上任意两点之间的距离始终保持不变。
不能简单当作刚体的例子有:弹簧、绳子、在高速振动下形变不可忽略的部件等。
1.2 刚体近似
在运动学中,很多研究对象都可以近似看成刚体。这样做的好处是,我们可以用一个局部坐标系来代表整个物体,而不必单独描述物体上每一个点的运动。
如果一个物体可以看作刚体,那么只要记录:
- 一个参考点的位置
- 物体的姿态
就能够推导出物体上所有点的位置。这正是刚体建模高效的原因。
2 点、向量与坐标系
2.1 点与向量
**点(Point)**表示空间中的一个位置,强调“物体在哪里”。
例如:车前方 10 米、左侧 2 米处有一个目标。
点的位置依赖于原点,因此换坐标系时,点会受到平移的影响。
**向量(Vector)**表示一个方向和大小,强调“朝哪里”和“有多大”。
例如:车向前的速度是 5 m/s。
向量不依赖于原点,因此仅平移坐标系时,向量本身不变。
从点 $P$ 指向点 $Q$ 的向量记作 $\vec{PQ}=Q−P $。也就是说,向量总是用终点减起点。
在二维平面上:
- 点 $P = (3, 2)$ 表示一个位置
- 向量 $v = (3, 2)$ 表示“向右 3、向上 2”的位移或方向
虽然它们的数值形式相同,但物理含义不同。
2.2 坐标系的作用
“位置”和“方向”都必须相对于某个参考系来描述。如果没有统一的参考系,同一个物体可能会得到不同的描述结果。
常见坐标系包括:
-
世界坐标系(world)
- $x$ 轴朝东
- $y$ 轴朝北
-
车体坐标系(vehicle/body)
- 以车辆自身为参考
- $x$ 轴指向车头前方
- $y$ 轴指向车辆左侧
因此,同一个目标在不同坐标系下,其坐标数值通常不同。
2.3 坐标系差异的本质
一个二维坐标系至少包含:
- 原点
- $x$ 轴方向
- $y$ 轴方向
所以两个坐标系之间的差异,本质上来自:
- 原点不同:平移
- 轴方向不同:旋转
- 两者都不同:平移 + 旋转
后面所有的位姿变换,本质上都来自这三种差异。
3 平移变换
3.1 方向一致时的坐标变换
先考虑最简单的情况:两个坐标系方向一致,只是原点不同。
假设在世界坐标系 $w$ 中:
- 车的位置是 $(10, 5)$
- 车头方向和世界坐标系的 $x$ 轴一致
- 一个目标点在世界坐标系中的位置是 $(13, 7)$
现在要求这个目标在车体坐标系中的坐标。
由于两个坐标系方向一致,因此只需要做减法:
$P^v = P^w - T$
其中 $T = (10, 5)$ 是车在世界坐标系中的位置。
代入可得:
$P^v = (13, 7) - (10, 5) = (3, 2)$
这表示目标在车体系中:
- 前方 3
- 左侧 2
3.2 随时间变化的平移
如果车在世界坐标系中的位置随时间变化,可以记为:
$C(t) = (x(t), y(t))$
如果车没有转向,只是平移,那么车体坐标系始终与世界坐标系平行。
此时,一个在世界中固定不动的目标点 $P^w$,在车体坐标系中的表达为:
$P^v(t) = P^w - C(t)$
这条公式非常重要。它说明:
- 目标本身在世界中不动
- 但由于车在移动
- 所以目标在车体坐标系中的坐标会不断变化
4 旋转变换
4.1 旋转的本质
在只考虑平移时,默认车体坐标系和世界坐标系方向一致。但现实中车会转弯,一旦车发生转向,车体坐标系的轴方向就改变了。
例如:
- 世界坐标系中,$x$ 轴朝东,$y$ 轴朝北
- 车转了 $90^\circ$,此时车头朝北
这时,同一个目标点虽然相对车的实际位置关系没有改变,但它在车体系中的数值表达会发生变化。
旋转本质上改变的是:
- 坐标轴的方向
- 同一个向量在这些坐标轴下的分量
也就是说:物理向量本身没有变,变化的是它在某个坐标系中的表达方式。
4.2 二维旋转矩阵
在二维平面中,逆时针旋转 $\theta$ 的矩阵为:
如果一个向量原来是 $v$,旋转后的结果为:
$v’ = R(\theta)v$
一些常见例子如下:
- 若 $v = (1, 0)$,逆时针旋转 $90^\circ$,则 $v’ = (0, 1)$
- 若旋转 $180^\circ$,则 $v’ = (-1, 0)$
- 若旋转 $45^\circ$,则 $v’ = \left(\frac{\sqrt{2}}{2}, \frac{\sqrt{2}}{2}\right)$
以逆时针旋转 $90^\circ$ 为例:
因此:
4.3 主动旋转与被动旋转
这里有一个很容易混淆的点:旋转向量和变换坐标系中的表达并不是同一件事。
- 主动旋转:向量本身被旋转,例如 $v’ = R(\theta)v$
- 被动旋转:向量本身没有动,只是换了一个坐标系去表达它
因此,在坐标变换中,经常会看到角度符号相反的情况。例如:
- 把向量本身逆时针转 $\theta$,用 $R(\theta)$
- 把同一个量从世界系换到一个相对世界系转了 $\theta$ 的车体系中表达,通常要用 $R(-\theta)$
记忆时可以这样理解:
坐标系转了多少,把量变回这个坐标系表达时,就要反着转回来。
5 位姿的统一表示
5.1 位姿的含义
位姿可以拆成两部分:
- 位:位置(position)
- 姿:姿态或朝向(orientation)
在二维平面中,一个刚体的位姿通常用 3 个量表示:$(x, y, \theta)$
其中:
- $x, y$:参考点的位置
- $\theta$:朝向角
例如,一辆车在平面上的位姿写成 $(8, 3, 30^\circ)$,表示:
- 车原点在世界坐标系中的位置是 $(8, 3)$
- 车头相对世界坐标系 $x$ 轴逆时针转了 $30^\circ$
5.2 位姿确定后对任意点的表示
如果车的位姿已知,那么车体系中的任意一点 $p^v$ 都可以映射到世界坐标系:
这说明:一个刚体一旦位姿确定,刚体上所有点的位置也就都确定了。
5.3 平移与旋转的顺序关系
当平移和旋转组合在一起时,顺序通常不能交换。
这是因为变换结果取决于以下几个问题:
- 平移向量是在哪个坐标系里定义的
- 点是在哪个坐标系里表达的
- 旋转是从哪个坐标系变到哪个坐标系
所以在使用公式时,一定要先明确“这个量属于哪个坐标系”。
6 世界坐标系与车体坐标系的转换
6.1 世界坐标到车体坐标
若车在世界坐标系中的朝向为 $\theta$,要把世界坐标系中的点 $p^w$ 转成车体系中的表达,常用公式为:
$p^v = R(-\theta)(p^w - C^w)$
其中:
- $p^w$:点在世界坐标系中的坐标
- $C^w$:车原点在世界坐标系中的坐标
- $p^v$:点在车体坐标系中的坐标
- $\theta$:车体坐标系相对世界坐标系的朝向角
之所以使用 $-\theta$,是因为:
- 车体系相对世界系旋转了 $+\theta$
- 要把世界系中的量变到车体系中表达,就要反着转回来
- 所以使用 $R(-\theta)$
设:
- 车位置 $C = (8, 3)$
- 目标位置 $P = (11, 5)$
- 车朝向 $\theta = 90^\circ$
先计算相对位移:
再乘以 $R(-90^\circ)$:
于是:
这表示在车体系中,目标位于:
- 前方 2
- 右侧 3
因为车已经朝北,而目标在世界中相对车的位置是“东 3、北 2”,对于车来说就是“前 2、右 3”。
6.2 车体坐标到世界坐标
如果已经知道一个点在车体系中的坐标 $p^v$,想求它在世界坐标系中的坐标 $p^w$,就是做逆变换:
$p^w = C^w + R(\theta)p^v$
这条公式可以理解为两步:
- 先把车体系中的向量旋转到世界方向
- 再加上车在世界中的位置
7 多坐标系串联
7.1 常见的多个坐标系
在工程中,不同对象、不同模块通常都有自己的局部参考系,因此会自然出现多个坐标系。
常见例子有:
- 世界坐标系:表示全局位置、地图位置、绝对轨迹
- 车体坐标系:以车中心或某个车体参考点为原点,$x$ 轴朝前,$y$ 轴朝左
- 传感器坐标系:例如相机、雷达、灯体模组等,都有自己的安装坐标系
7.2 坐标变换链
假设某个目标点先在传感器坐标系中被测得,记为 $p^s$。
如果最终希望知道它在世界坐标系中的位置 $p^w$,通常需要分两步:
- 先从传感器系变到车体系
- 再从车体系变到世界系
这就是多坐标系串联。
7.3 两层位姿变换公式
若传感器相对车体系的安装位姿已知:
- 旋转:$R_{vs}$
- 平移:$t_{vs}$
则有:
$p^v = R_{vs}p^s + t_{vs}$
它表示:先把传感器坐标中的点转成车体系方向,再加上传感器原点在车体系中的位置。
同理,若车体系相对世界系的位姿已知:
- 旋转:$R_{wv}$
- 平移:$t_{wv}$
则有:
$p^w = R_{wv}p^v + t_{wv}$
把上式中的 $p^v$ 代入,可得:
这个式子很有代表性,它展示了多坐标系串联时旋转和平移的组合方式。
7.4 串联中的规律
在多坐标系串联中,有两个结论特别值得记住:
-
旋转可以连续叠加
- 例如总旋转为 $R_{wv}R_{vs}$
-
平移不能直接简单相加
- 例如不是 $t_{vs} + t_{wv}$
- 而是 $R_{wv}t_{vs} + t_{wv}$
原因在于:前一个坐标系中的平移向量,进入后一个坐标系之前,通常也需要先经过旋转。
8 位姿随时间变化的运动学描述
8.1 位姿作为时间函数
如果车在运动,那么它的位姿就不是固定值,而是时间的函数:
这表示:
- 车的位置会随时间变化
- 车的朝向也会随时间变化
8.2 线速度
如果位置是时间函数,那么对时间求导就得到速度:
$\dot{x}(t) = \frac{dx}{dt}$,$\dot{y}(t) = \frac{dy}{dt}$
于是,世界坐标系下的速度向量为:
它表示:
- 在世界 $x$ 方向上的速度分量
- 在世界 $y$ 方向上的速度分量
8.3 角速度
如果车的朝向是 $\theta(t)$,那么它对时间的变化率就是角速度:
$\omega = \dot{\theta}$
这个量表示:
- 车每秒转过多少弧度,单位通常是 rad/s
- 也可以换算成度每秒,单位是 deg/s
通常约定:
- $\omega > 0$:逆时针转
- $\omega < 0$:顺时针转
- $\omega = 0$:不转向,只做直线运动
9 车体坐标系中的速度
9.1 车体系速度的物理意义
从车辆自身的角度看,我们通常更关心:
- 车沿自己车头方向跑多快
- 车有没有横向滑动
- 车转得快不快
因此,车体系中的速度常写成:
其中:
- $v_x^v$:沿车头方向的速度
- $v_y^v$:沿车左方向的速度
9.2 速度在世界系与车体系之间的变换
速度是向量,因此它不受原点平移影响,只受方向变化影响。
所以:
- 车体系到世界系:$v^w = R(\theta)v^v$
- 世界系到车体系:$v^v = R(-\theta)v^w$
这和前面学过的坐标变换完全一致,只不过对象从“位置点”换成了“速度向量”。
10 二维车辆最基本的运动学模型
10.1 理想小车模型
对于理想的小车模型,通常假设:
这表示车只沿着车头方向前进,不发生横向滑动。
这是最经典、最常见的简化模型。
10.2 车体速度在世界系中的分解
把车体系中的速度 $v^v = \begin{bmatrix} v \ 0 \end{bmatrix}$ 变换到世界坐标系,就得到:
这两个式子非常重要。
它们的含义是:
- 车在自身坐标系下,是沿前方以速度 $v$ 前进
- 但在世界坐标系中,这个速度会分解到 $x$ 和 $y$ 两个方向上
10.3 最基本的二维运动方程
如果再加上角速度 $\omega$,那么二维平面上的车辆最基础运动学模型可以写成:
这个模型把位姿、速度和朝向变化统一串联起来。
如果给定:
- 初始位姿 $(x_0, y_0, \theta_0)$
- 控制输入 $v(t)$ 和 $\omega(t)$
那么就可以通过积分得到车辆轨迹。
10.4 转弯半径
假设 $v = 5$,$\omega = 0.2$,表示车持续向前运动,同时朝向不断变化。
如果 $v$ 和 $\omega$ 一直保持不变,那么车辆做匀速圆周运动,此时有一个非常常见的关系:
$R = \frac{v}{\omega}$
其中:
- $R$:转弯半径
- $v$:线速度
- $\omega$:角速度
这个公式说明:
- 速度越大,转弯半径越大
- 转得越快,转弯半径越小
11 主线总结
这部分内容可以用一条主线串起来理解:
- 先把研究对象看成刚体
- 再用点、向量、坐标系来描述它
- 坐标系之间的差异,本质上是平移和旋转
- 用位姿统一描述刚体的位置和朝向
- 用坐标变换处理世界系、车体系、传感器系之间的关系
- 当位姿开始随时间变化,就进入了运动学
- 进一步结合速度和角速度,就得到最基本的二维车辆运动学模型
这样从“静态描述”一路走到“动态运动”,整个知识链条就是连贯的。
11.1 核心记忆点
-
刚体建模的核心:一个参考点的位置 + 一个姿态,就能表示整个物体。
-
点和向量不同:点表示位置,向量表示方向和大小。
-
坐标系差异的本质:平移、旋转,或两者组合。
-
方向一致时的变换:直接做减法。
-
旋转改变的不是物理量本身,而是它的坐标表达。
-
位姿是位置和朝向的统一表示,二维中通常写成 $(x, y, \theta)$。
-
世界系到车体系:$p^v = R(-\theta)(p^w - C^w)$
-
车体系到世界系:$p^w = C^w + R(\theta)p^v$
-
多坐标系串联时:旋转可以连乘,平移要先考虑旋转后再叠加。
-
速度也是向量,所以只受旋转影响,不受平移影响。
-
最基础二维车辆模型:
-
匀速转弯半径:$R = \frac{v}{\omega}$