前言
目前大多数运动学解算教程采用运动学正解(通过轮子运动推算整体运动),但这种方法在舵轮系统中存在明显局限:
- 隐藏约束多:舵轮运动学涉及大量隐含的几何与动力学约束
- 公式复杂:从正解出发会导致推导过程冗长且难以通用化
因此,本文重点探讨运动学逆解(通过整体运动反推轮组理想状态),其优势在于:
1. 简化推导:避免正解中的复杂约束条件
2. 通用性强:推导结果适用于2个及以上舵轮的底盘设计
全文将简单的数学形式,给出可直接应用于实际控制的解算公式。
目录
什么是舵轮
舵轮(Steerable Wheel)是一种可独立控制转向和转速的驱动轮结构,常见于全向移动机器人平台。其核心特征包括:
- 双自由度驱动:每个舵轮具备:
- 转向自由度(控制轮子朝向)
- 驱动自由度(控制轮子转速)
- 全向运动能力:通过协调多个舵轮的转向角度和转速,可实现平面内的任意方向平移+旋转复合运动
典型结构组成
- 转向模块
- 低速大扭矩电机
- 驱动模块
- 高速大功率电机
下面是一个三舵轮底盘示意图
图示中的舵轮结构展示了典型的轮毂电机+关节电机集成设计,转向轴线与驱动轴线正交布置。
底盘整体运动的描述
平面运动假设
在三维空间中,我们可以用三个平移自由度 (x, y, z) 和三个旋转自由度 (roll, pitch, yaw) 来描述刚体的运动。但对于典型的舵轮底盘(如AGV、移动机器人等),我们通常可以做出以下简化假设: - 平面运动假设:底盘在平坦地面上运动,z轴高度不变,roll和pitch角度为零 - 刚性底盘假设:底盘作为一个刚体运动,不会发生形变 - 无滑动约束:轮子与地面接触点无相对滑动(即满足纯滚动条件),这一约束建立了底盘整体运动(3自由度)与各轮组运动状态(如转向角、转速等,通常9自由度以上)之间的运动学耦合关系,是运动学逆解可行的关键条件。
整体运动状态描述
在平面运动假设下,底盘的整体运动状态可以用以下三个参数描述:
$$
\begin{bmatrix}
\upsilon_x
\ \upsilon_y
\ \omega
\end{bmatrix}^T
$$
- $\upsilon_x$ :底盘在x方向的线速度
- $\upsilon_y$ :底盘在y方向的线速度
- $\omega$ :底盘绕z轴的角速度(自转)
这里我们视作底盘运动为 $\upsilon_x \upsilon_y$ 构成的平动速度 $\vec{\upsilon}$ 和自转速度 $\omega$ 的叠加,那么轮组的速度也是这两部分的运动矢量相加
底盘平动速度的轮组分解
根据平面运动假设中的刚性底盘特性,底盘平动速度在轮组处的分解遵循以下原理:
- 刚性传递:由于底盘为刚体,底盘中心点的平动速度 $\vec{v} = [v_x, v_y]^T$ 将完整传递到每个轮组接触点
- 速度一致性:在无滑动约束下,轮组接触点的平动速度分量必须与底盘平动速度保持一致
数学表达为:
$$ \vec{v}_{wheel} = \vec{v} = \begin{bmatrix} v_x \ v_y \end{bmatrix}^T $$
其中: - $\vec{v}_{wheel}$ 表示轮组接触点的平面速度矢量 - 该关系与轮组位置无关,是刚性底盘运动的必然结果
注:此处的平动速度分量尚未考虑底盘旋转 $\omega$ 带来的影响,完整速度将在后续章节给出。
底盘旋转运动的轮组速度分析
任意旋转中心的运动学描述
在刚体运动学中,旋转运动导致的轮组速度计算不需要限定旋转中心为底盘几何中心。设: - $\vec{r}_i$ 为轮组 $i$ 相对于任意选定的旋转中心 $O$ 的位置矢量 - $\omega$ 为底盘绕 $O$ 点的旋转角速度(右手定则)
则轮组 $i$ 的线速度 $\vec{v}_{i,\omega}$ 由以下叉积关系确定:
$$ \vec{v}_{i,\omega} = \omega \hat{k} \times \vec{r}_i $$
其中 $\hat{k}$ 为垂直于运动平面的单位矢量。
具体计算形式
展开为分量形式:
$$ \vec{v}_{i,\omega} = \begin{bmatrix} -\omega y_i \ \omega x_i \end{bmatrix} $$
式中 $(x_i,y_i)$ 为轮组 $i$ 在旋转中心 $O$ 坐标系下的坐标。
特性说明
- 旋转中心无关性:选择不同旋转中心时, $\vec{r}_i$ 会变化,但最终合成的轮组绝对速度保持不变
- 几何意义:速度大小 $|\vec{v}_{i,\omega}| = \omega |\vec{r}_i|$ ,方向垂直于 $\vec{r}_i$
- 与平动速度的叠加:需与底盘平动速度矢量相加得到轮组总速度
注:实际应用中通常选择几何中心为旋转中心以简化计算,但理论分析可采用任意参考点。
轮组总速度合成
速度叠加原理(底盘坐标系)
在底盘坐标系中,轮组最终运动速度是底盘平动速度与旋转速度的矢量叠加:
$\vec{v}_{i,total}^{body} = \vec{v}_{trans}^{body} + \vec{v}_{i,rot}^{body}$
其中:
- $\vec{v}_{trans}^{body} = \begin{bmatrix} v_x \\ v_y \end{bmatrix}$ 为底盘平动速度(底盘坐标系)
- $\vec{v}_{i,rot}^{body} = \begin{bmatrix} -\omega y_i \\ \omega x_i \end{bmatrix}$ 为旋转引起的速度分量
- $(x_i, y_i)$ 是轮组在底盘坐标系中的位置
完整表达式:
$\vec{v}_{i,total}^{body} = \begin{bmatrix}
v_x - \omega y_i \\
v_y + \omega x_i
\end{bmatrix}$
| 符号 | 物理意义 | 单位 | 参考系 |
|---|---|---|---|
| $v_x$ | 底盘沿x轴的平移速度 | m/s | 底盘坐标系 |
| $v_y$ | 底盘沿y轴的平移速度 | m/s | 底盘坐标系 |
| $\omega$ | 底盘绕z轴的自转角速度 | rad/s | 底盘坐标系 |
| $x_i$ | 第i个轮组在底盘x轴的安装位置 | m | 底盘旋转中心坐标系 |
| $y_i$ | 第i个轮组在底盘y轴的安装位置 | m | 底盘旋转中心坐标系 |
注意上面的公式是基于底盘坐标系的计算
全局坐标系转换
通过旋转矩阵 $R(\theta)$ 将速度转换到全局坐标系:
$R(\theta) = \begin{bmatrix}
\cos\theta & -\sin\theta \\
\sin\theta & \cos\theta
\end{bmatrix}$
全局坐标系下的总速度:
$\vec{v}_{i,total}^{global} = R(\theta) \cdot \vec{v}_{i,total}^{body} = \begin{bmatrix}
(v_x - \omega y_i)\cos\theta - (v_y + \omega x_i)\sin\theta \\
(v_x - \omega y_i)\sin\theta + (v_y + \omega x_i)\cos\theta
\end{bmatrix}$
| 符号 | 物理意义 | 单位 | 参考系 |
|---|---|---|---|
| $v_x$ | 底盘沿x轴的平移速度 | m/s | 底盘坐标系 |
| $v_y$ | 底盘沿y轴的平移速度 | m/s | 底盘坐标系 |
| $\omega$ | 底盘自转角速度 | rad/s | 底盘坐标系 |
| $(x_i,y_i)$ | 第i个轮组在底盘坐标系中的坐标 | m | 底盘坐标系 |
| $\theta$ | 底盘相对于全局坐标系的偏航角 | rad | 全局坐标系 |
运动学正解推导
基本原理
基于平面运动假设,我们可以通过轮组运动状态反推底盘整体运动。对于具有 $n$ 个舵轮的底盘系统,运动学正解的核心思想是:
将各轮组的速度矢量分解为底盘平动和旋转的叠加
数学推导
1. 建立速度方程
对于每个轮组 $i$,其速度可表示为:
$\vec{v}_i = \vec{v} + \omega \times \vec{r}_i$
展开为分量形式:
$\underbrace{\begin{bmatrix} v_{i,x} \\ v_{i,y} \end{bmatrix}}_{\text{轮组总速度}} = \underbrace{\begin{bmatrix} v_x \\ v_y \end{bmatrix}}_{\text{平动分量}} + \underbrace{\begin{bmatrix} -\omega y_i \\ +\omega x_i \end{bmatrix}}_{\text{旋转分量}}$
2.平动和旋转分别求解
- 平动分量:所有轮组速度的算术平均值
$\vec{v} = \frac{1}{n}\sum_{i=1}^n (\vec{v}_i-\vec{v}_{\omega i})$
- 旋转分量:通过轮组位置与速度的叉积关系确定
$\omega = \frac{\sum_{i=1}^n (\vec{r}_i \times \vec{v}_i)}{\sum_{i=1}^n |\vec{r}_i|^2}$
实现要点
- 权重分配:可根据轮组可靠性分配不同权重
- 异常处理:检测并排除故障轮组的数据
应用示例
对于四轮对称布局的底盘: 1. 当所有轮组同向等速时, $\omega=0$ 2. 当对角轮组速度相反时, $\vec{v}=0$ ,产生纯旋转 3. 任意速度组合均可解算出唯一的底盘运动状态
注:此方法同样适用于轮组数量≥2的任何布局,是运动学逆解的完备对偶形式。
物理意义解读
- 平动分量:所有轮组共享相同的平动速度分量
- 旋转分量:
- 与轮组位置 $(x_i,y_i)$ 线性相关,参考系原点为旋转中心
- 在底盘两侧产生对称的速度分布
- 距离旋转中心越远的轮组,旋转速度分量越大
应用说明
该合成速度用于: 1. 计算轮组驱动转速 2. 确定转向角度 3. 验证运动学约束条件
重要性质:当 $\omega=0$ 时,系统退化为纯平移运动;当 $v_x=v_y=0$ 时,系统为纯旋转运动。
舵轮零点方向策略分析
在舵轮控制系统中,当轮组速度为零时,其转向角度存在多种定义策略。以下是常见的零点方向偏好方案及其工程考量: | 策略类型 | 转向角度计算式 | 适用场景 | | ------------ | ----------------------------- | ------------ | | 历史方向保持 | $\theta = \theta_{prev}$ | 频繁启停 | | 固定基准方向 | $\theta = 0$ | 系统初始化 | | 自转优化方向 | $\theta = \tan^{-1}(y_i/x_i)$ | 快速旋转响应 |
1. 历史方向保持
- 策略:维持最后一次有效运动时的方向
- 优点:
- 运动连续性更好
- 减少机械抖动
- 适用场景:
- 频繁启停的间歇性运动
- 对机械损耗敏感的应用
2. 固定基准方向(如正前方)
- 策略:统一回归预设基准方向(通常为底盘坐标系x轴)
- 优点:
- 状态确定性高
- 便于系统初始化
- 适用场景:
- 需要明确初始姿态的场合
3. 自转优化方向
- 策略:指向瞬时旋转中心切线方向
- 优点:
- 准备随时响应旋转指令
- 减少转向机构响应延迟
- 适用场景:
- 高动态旋转应用
- 需要快速转向响应的场合
4. 动态策略调整
- 策略:
python if 预测将平移运动: 保持历史方向 elif 预测将旋转运动: 指向ICR切线方向 else: 回归基准方向 - 优点:综合性能最优
- 挑战:需要运动预测算法支持