Skip to content

前言

目前大多数运动学解算教程采用运动学正解(通过轮子运动推算整体运动),但这种方法在舵轮系统中存在明显局限:

  • 隐藏约束多:舵轮运动学涉及大量隐含的几何与动力学约束
  • 公式复杂:从正解出发会导致推导过程冗长且难以通用化

因此,本文重点探讨运动学逆解(通过整体运动反推轮组理想状态),其优势在于:
1. 简化推导:避免正解中的复杂约束条件
2. 通用性强:推导结果适用于2个及以上舵轮的底盘设计

全文将简单的数学形式,给出可直接应用于实际控制的解算公式。

目录

什么是舵轮

舵轮(Steerable Wheel)是一种可独立控制转向和转速的驱动轮结构,常见于全向移动机器人平台。其核心特征包括:

  • 双自由度驱动:每个舵轮具备:
  • 转向自由度(控制轮子朝向)
  • 驱动自由度(控制轮子转速)
  • 全向运动能力:通过协调多个舵轮的转向角度和转速,可实现平面内的任意方向平移+旋转复合运动

典型结构组成

  1. 转向模块
  2. 低速大扭矩电机
  3. 驱动模块
  4. 高速大功率电机

    下面是一个三舵轮底盘示意图 image 图示中的舵轮结构展示了典型的轮毂电机+关节电机集成设计,转向轴线与驱动轴线正交布置。

底盘整体运动的描述

平面运动假设

在三维空间中,我们可以用三个平移自由度 (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轴的角速度(自转) image

这里我们视作底盘运动为 $\upsilon_x \upsilon_y$ 构成的平动速度 $\vec{\upsilon}$ 和自转速度 $\omega$ 的叠加,那么轮组的速度也是这两部分的运动矢量相加

底盘平动速度的轮组分解

根据平面运动假设中的刚性底盘特性,底盘平动速度在轮组处的分解遵循以下原理:

  1. 刚性传递:由于底盘为刚体,底盘中心点的平动速度 $\vec{v} = [v_x, v_y]^T$ 将完整传递到每个轮组接触点
  2. 速度一致性:在无滑动约束下,轮组接触点的平动速度分量必须与底盘平动速度保持一致

数学表达为:

$$ \vec{v}_{wheel} = \vec{v} = \begin{bmatrix} v_x \ v_y \end{bmatrix}^T $$

其中: - $\vec{v}_{wheel}$ 表示轮组接触点的平面速度矢量 - 该关系与轮组位置无关,是刚性底盘运动的必然结果

注:此处的平动速度分量尚未考虑底盘旋转 $\omega$ 带来的影响,完整速度将在后续章节给出。 image

底盘旋转运动的轮组速度分析

任意旋转中心的运动学描述

在刚体运动学中,旋转运动导致的轮组速度计算不需要限定旋转中心为底盘几何中心。设: - $\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}$ 为垂直于运动平面的单位矢量。

image

具体计算形式

展开为分量形式:

$$ \vec{v}_{i,\omega} = \begin{bmatrix} -\omega y_i \ \omega x_i \end{bmatrix} $$

式中 $(x_i,y_i)$ 为轮组 $i$ 在旋转中心 $O$ 坐标系下的坐标。

特性说明

  1. 旋转中心无关性:选择不同旋转中心时, $\vec{r}_i$ 会变化,但最终合成的轮组绝对速度保持不变
  2. 几何意义:速度大小 $|\vec{v}_{i,\omega}| = \omega |\vec{r}_i|$ ,方向垂直于 $\vec{r}_i$
  3. 与平动速度的叠加:需与底盘平动速度矢量相加得到轮组总速度

注:实际应用中通常选择几何中心为旋转中心以简化计算,但理论分析可采用任意参考点。 image

轮组总速度合成

速度叠加原理(底盘坐标系)

在底盘坐标系中,轮组最终运动速度是底盘平动速度与旋转速度的矢量叠加: image

$\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.平动和旋转分别求解

  1. 平动分量:所有轮组速度的算术平均值

$\vec{v} = \frac{1}{n}\sum_{i=1}^n (\vec{v}_i-\vec{v}_{\omega i})$

  1. 旋转分量:通过轮组位置与速度的叉积关系确定

$\omega = \frac{\sum_{i=1}^n (\vec{r}_i \times \vec{v}_i)}{\sum_{i=1}^n |\vec{r}_i|^2}$

实现要点

  1. 权重分配:可根据轮组可靠性分配不同权重
  2. 异常处理:检测并排除故障轮组的数据

应用示例

对于四轮对称布局的底盘: 1. 当所有轮组同向等速时, $\omega=0$ 2. 当对角轮组速度相反时, $\vec{v}=0$ ,产生纯旋转 3. 任意速度组合均可解算出唯一的底盘运动状态

注:此方法同样适用于轮组数量≥2的任何布局,是运动学逆解的完备对偶形式。

物理意义解读

  1. 平动分量:所有轮组共享相同的平动速度分量
  2. 旋转分量:
  3. 与轮组位置 $(x_i,y_i)$ 线性相关,参考系原点为旋转中心
  4. 在底盘两侧产生对称的速度分布
  5. 距离旋转中心越远的轮组,旋转速度分量越大

应用说明

该合成速度用于: 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: 回归基准方向
  • 优点:综合性能最优
  • 挑战:需要运动预测算法支持