里程计模型(3):麦克纳姆轮底盘

麦克纳姆轮底盘运动学模型

1.麦克纳姆轮

麦轮一般是四个一组使用,两个左旋轮,两个右旋轮。左旋轮和右旋轮呈手性对称。

麦克纳姆轮由两大部分组成:轮毂和辊子(roller)。

  • 轮毂:整个轮子的主体支架
  • 辊子:安装在轮毂上的鼓状物
  • 轮毂轴与辊子转轴呈 45° 角
    1

麦轮底盘能够实现前后进退、左右平移、原地自转等多种方向的运动。
在这里插入图片描述
麦轮有四种安装方式:X-正方形(X-square)、X-长方形(X-rectangle)、O-正方形(O-square)、O-长方形(O-rectangle)。

在这里插入图片描述

其中 X 和 O 表示的是与四个轮子地面接触的辊子所形成的图形;正方形与长方形指的是四个轮子与地面接触点所围成的形状。

  • X-正方形:轮子转动产生的力矩会经过同一个点,所以 yaw 轴无法主动旋转,也无法主动保持 yaw 轴的角度。一般几乎不会使用这种安装方式。
  • X-长方形:轮子转动可以产生 yaw 轴转动力矩,但转动力矩的力臂一般会比较短。这种安装方式也不多见。
  • O-正方形:四个轮子位于正方形的四个顶点,平移和旋转都没有任何问题。受限于机器人底盘的形状、尺寸等因素,这种安装方式虽然理想,但可遇而不可求。
  • O-长方形:轮子转动可以产生 yaw 轴转动力矩,而且转动力矩的力臂也比较长。是最常见的安装方式。

2.麦克纳姆轮底盘运动学模型

以O-长方形的安装方式为例,四个轮子的着地点形成一个矩形。

底盘中心运动分析

麦轮底盘的运动是刚体的运动,为全驱动模型。
在这里插入图片描述

  • 底盘中心线速度: v → \overrightarrow{v} v
  • 底盘中心角速度: ω → \overrightarrow{\omega} ω
  • 底盘中心指向轮子轴心向量: r r r

对底盘线速度进行分解,可以得到 v y 和 v x v_y和v_x vyvx

轮子轴心分析

取右上角轮子进行演示分析,如下图所示。

在这里插入图片描述

  • 底盘一号轮子轴心速度: v 1 → \overrightarrow{v_1} v1
  • 底盘一号轮子轴心沿垂直于 r → \overrightarrow{r} r 方向的速度分量: v r 1 → \overrightarrow{v_{r1}} vr1

已知底盘的运动为刚体运动,满足如下公式:
v 1 → = v → + ω → × r → \overrightarrow{v_1}=\overrightarrow{v}+\overrightarrow{\omega}\times\overrightarrow{r} v1 =v +ω ×r
则底盘一号轮子在 X X X轴和 Y Y Y轴方向上的分量如下,其中, r x 、 r y r_x、r_y rxry为向量 r → \overrightarrow{r} r 在在 X X X轴和 Y Y Y轴方向上的分量。
{ v 1 x → = v x → − ω ⋅ r y v 1 y → = v y → + ω ⋅ r x \begin{cases}\overrightarrow{v_{1x}}=\overrightarrow{v_x}-\omega\cdot r_y\\ \overrightarrow{v_{1y}}=\overrightarrow{v_y}+\omega\cdot r_x\\\end{cases} {v1x =vx ωryv1y =vy +ωrx
同理,可以算出其它三个轮子轴心的速度。

辊子分析

根据轮子轴心的速度,可以将其按照轮子接触地面的辊子方向(平行、垂直)进行分解。

在这里插入图片描述

  • 底盘一号轮子轴心的速度: v 1 → \overrightarrow{v_1} v1
  • 底盘一号轮子接触地面处辊子方向的单位矢量: u ^ \hat{u} u^

垂直辊子方向的速度分量 v 1 ⊥ → \overrightarrow{v_{1\bot}} v1 对轮子转速没有贡献,可以忽略不记。此处仅考虑平行于辊子方向的速度分量 v 1 ∥ → \overrightarrow{v_{1∥}} v1

对于单位向量 u ^ \hat{u} u^,由于辊子以 45 ° 45\degree 45°方式安装在轮毂上,故而可将其分解为: u ^ = − cos ⁡ 45 ° i ^ + cos ⁡ 45 ° j ^ \hat{u}=-\cos{45\degree}\hat{i}+\cos{45\degree}\hat{j} u^=cos45°i^+cos45°j^。其中 i ^ \hat{i} i^ j ^ \hat{j} j^表示 X X X轴方向和 Y Y Y轴方向上的单位向量。

已知一号轮子轴心速度的分解: v 1 → = v 1 x ⋅ i ^ + v 1 y ⋅ j ^ \overrightarrow{v_1}=v_{1x}\cdot\hat{i}+v_{1y}\cdot\hat{j} v1 =v1xi^+v1yj^,则:
v 1 ∥ → = v 1 → ⋅ u ^ = ( v 1 x ⋅ i ^ + v 1 y ⋅ j ^ ) ⋅ ( − cos ⁡ 45 ° i ^ + cos ⁡ 45 ° j ^ ) v 1 ∥ → = − 2 2 v x + 2 2 v y \overrightarrow{v_{1∥}} = \overrightarrow{v_1}\cdot\hat{u}=(v_{1x}\cdot\hat{i}+v_{1y}\cdot\hat{j})\cdot(-\cos{45\degree}\hat{i}+\cos{45\degree}\hat{j})\\ \overrightarrow{v_{1∥}} = -\frac{\sqrt{2}}{2}v_x+\frac{\sqrt{2}}{2}v_y v1 =v1 u^=(v1xi^+v1yj^)(cos45°i^+cos45°j^)v1 =22 vx+22 vy

轮子速度分析

对轮子,设平行于 Y Y Y轴正方向(车辆前进方向)的速度分量为 v ω → \overrightarrow{v_{\omega}} vω ,该速度与辊子夹角 45 ° 45\degree 45°

在这里插入图片描述
由辊子速度即可得到轮子的转速:
v ω 1 = v 1 ∥ → cos ⁡ 45 ° = − v x + v y v_{\omega1} =\frac{\overrightarrow{v_{1∥}}}{\cos{45\degree}}=-v_x + v_y vω1=cos45°v1 =vx+vy

整合分析

将上述步骤分别对四个轮子进行,设 r → \overrightarrow{r} r X X X轴和 Y Y Y轴分量分别为 a 、 b a、b ab

在这里插入图片描述
O-长方形麦克纳姆轮底盘的运动学模型如下所示:
[ v ω 1 v ω 2 v ω 3 v ω 4 ] = [ − 1 1 a + b 1 1 − ( a + b ) − 1 1 − ( a + b ) 1 1 ( a + b ) ] [ v x v y ω ] \begin{bmatrix}v_{\omega1}\\v_{\omega2}\\v_{\omega3}\\v_{\omega4}\end{bmatrix}= \begin{bmatrix} -1 & 1 & a+b\\ 1 & 1 & -(a+b)\\ -1 & 1 & -(a+b)\\ 1 & 1 & (a+b) \end{bmatrix} \begin{bmatrix}v_{x}\\v_{y}\\\omega\end{bmatrix} vω1vω2vω3vω4=11111111a+b(a+b)(a+b)(a+b)vxvyω

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
麦轮Arduino程序是用于控制麦轮机器人的程序。麦轮机器人是指使用麦轮作为机器人的驱动器件,可以在水平方向上独立运动的机器人,常用于机器人竞赛、物流等领域。 麦轮Arduino程序主要包括运动控制、传感器数据获取和处理等功能。其中,运动控制是最关键的部分,它通过控制麦轮的速度和转向角度来实现机器人的运动。一般使用PWM信号来控制麦轮的速度,通过改变PWM信号的占空比来改变麦轮的转速。转向角度可以通过控制麦轮的转向电机来实现,一般使用一个舵机来控制转向角度。 传感器数据获取和处理是麦轮机器人实现自主运动的重要部分。常用的传感器包括超声波传感器、红外传感器、陀螺仪等。这些传感器可以获取周围环境的数据,通过处理这些数据,可以实现机器人的避障、自动导航等功能。 麦轮机器人的控制程序需要用到Arduino开发板,选择合适的开发板可以根据具体的需求和预算进行选择。一般使用Arduino UNO或Arduino Nano等较为常见的开发板即可。 编写麦轮Arduino程序需要具备一定的编程知识和基础,熟悉Arduino开发环境和C/C++编程语言。可以使用Arduino IDE等开发工具进行编写和调试程序。 总的来说,麦轮Arduino程序是一种控制麦轮机器人的程序,通过控制麦轮的速度和转向角度,以及获取和处理传感器数据,实现机器人的运动控制和自主功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值