麦克纳姆轮全向移动机器人运动模型规律分析

关注同名微信公众号“混沌无形”,阅读更多有趣好文!

原文链接https://mp.weixin.qq.com/s/GWhlXsuY6QYyoZydaSYpjQ(包含原文PDF百度云下载链接)

在对麦轮平台运动规律分析之前需要做两个基本假设:①麦轮平台运动过程中,轮子不会悬空而发生空转现象;②麦轮平台质量分布均匀,且质心位置在点CENTER处,以保证四个轮子在地面接触点受到的支撑力相同,确保四个等转速的轮子受到地面作用的摩擦力大小相同。 

基于上述假设条件,并按照一定规律联合控制四个轮子等速转动,便可实现。这是因为轮毂轴与辊子转轴夹角呈45度,如图 1.2(c)所示,沿辊子轴线的静摩擦力可沿着轮毂轴向和径向分解,进一步迁移至图 1.4分析,只有当轮毂轴与辊子转轴夹角呈45度时,才能保证左右和前后对称位置的(等速)麦轮在轮毂轴向及径向上的分力可以恰好相互抵消,进而形成合力而运动。 

要满足上述的分力能够相互抵消的条件是麦轮(或电机)转速大小相同,因为每个麦轮受到的地面支持力相同(基于假设①②),4个电机又匀速等速转动,意味着电机输出扭矩与地面作用于麦轮的摩擦力是平衡的,4个麦轮摩擦力在轮毂轴向和径向上分解的大小是相同的,而速度分解与力分解类似,所以4个麦轮沿轮毂轴向和径向的分速度大小是相同的。(详细分析见《麦克纳姆轮运动特性分析》)

表 2 1 运动模式及规律分析

模式左前轮左后轮右后轮右前轮
(a)++++
(b)----
(c)0+0+
(d)-+-+
(e)++--
(f)--++

备注:+表示轮子正转(前向滚动),-表示轮子反转(后向滚动),0表示轮子不转动;左前轮对应电机M1,左后轮对应电机M2,右后轮对应电机M3,右前轮对应电机M4,且四个电机的转速大小相同。

精彩的理论论证过程见原文链接(含全文下载链接)

由于网页排版效果一般,所以笔者按照期刊论文版式为小伙伴们整理了原文PDF,方便收藏和回味。

原文链接https://mp.weixin.qq.com/s/GWhlXsuY6QYyoZydaSYpjQ(包含原文PDF百度云下载链接)
CSDN下载链接:https://download.csdn.net/download/qq_19598969/19860792

如果喜欢的话,可以关注同名微信公众号“混沌无形”,阅读更多有趣好文!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
麦克纳姆轮全向移动可以通过控制每个轮子的转速来实现,以下是一个基本的代码示例: ```C++ #include <Arduino.h> // 麦克纳姆轮的速度和方向分量 float vx = 0.0; float vy = 0.0; float w = 0.0; // 麦克纳姆轮的转速分量 float v1 = 0.0; float v2 = 0.0; float v3 = 0.0; float v4 = 0.0; // 麦克纳姆轮的旋转矩阵 float m1[3][3] = { {-0.5, 0.5, 1.0}, {0.5, 0.5, -1.0}, {1.0, -1.0, 1.0} }; // 初始化 void setup() { // 初始化串口通信 Serial.begin(9600); } // 主循环 void loop() { // 读取速度和旋转信息 vx = 1.0; // 前进速度为1 vy = 0.0; // 左右速度为0 w = 0.5; // 顺时针旋转速度为0.5 // 计算转速分量 v1 = m1[0][0] * vx + m1[0][1] * vy + m1[0][2] * w; v2 = m1[1][0] * vx + m1[1][1] * vy + m1[1][2] * w; v3 = m1[2][0] * vx + m1[2][1] * vy + m1[2][2] * w; v4 = 0.0; // 第四个轮子不需要转动 // 输出转速信息 Serial.print("v1: "); Serial.print(v1); Serial.print(", v2: "); Serial.print(v2); Serial.print(", v3: "); Serial.print(v3); Serial.print(", v4: "); Serial.println(v4); // 执行转速控制 // TODO // 等待一段时间 delay(100); } ``` 在上面的代码中,我们定义了一个三行三列的旋转矩阵 `m1`,用于计算麦克纳姆轮的转速分量。具体计算方式如下: ``` v1 = m1[0][0] * vx + m1[0][1] * vy + m1[0][2] * w v2 = m1[1][0] * vx + m1[1][1] * vy + m1[1][2] * w v3 = m1[2][0] * vx + m1[2][1] * vy + m1[2][2] * w ``` 其中,`vx` 和 `vy` 是前进和左右移动的速度分量,`w` 是旋转的速度分量。最后,我们可以通过控制每个轮子的转速来实现麦克纳姆轮全向移动。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

混沌无形

谢谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值