文章目录

  • 简介
  • 单个麦轮受力分析
  • 单个麦轮速度分析
  • 正运动学
  • 逆运动学
  • Ref:

简介

移动机器人的运动学模型决定了如何将车轮速度映射到机器人的本体速度,而动力学模型则决定着如何将车轮扭矩映射到机器人的加速度

运动学建模中的两个重要问题:

  1. 车轮必须以什么速度行驶,才能达到给定的期望底盘速度 q˙\dot{q}q˙​?
  2. 考虑到各个车轮行驶速度的极限,底盘速度的极限是多少?

首先熟悉一下麦轮的移动方式。如上图所示,为麦轮常见的三种移动方式(向前,平行,斜向上)。

单个麦轮受力分析

首先说明一点,下图为麦轮与地面接触平面的截图,而俯视图中棍子方向刚好相差 90 度。如下图与地面接触时棍子为斜向左上,那么俯视图中看到的则是棍子方向斜向右上。

当麦轮前向转动时,棍子被动与地面接触,而棍子与地面接触可理想化视为点接触,该接触点在“碰到”地面瞬间会受到其运动方向相反的作用力(和普通轮胎分析相似),接触点的“运动方向”为正向后,所以摩擦力方向为正向前 FdF_dFd​。

将摩擦力 FdF_dFd​ 沿着垂直和平行于棍子轴线方向进行力分解,由于棍子是被动轮,因此会受到垂直于轮毂轴线的分力 FvF_vFv​ 作用而发生被动转动,也说明分力 FvF_vFv​ 是滚动摩擦力,对棍子的磨损较大。而平行于轮毂轴线的分力 FpF_pFp​ 也会迫使棍子运动,只不过是主动运动(棍子被轴线两侧轮毂机械限位),所以分力 FpF_pFp​ 是静摩擦。

总结下来,地面作用于棍子的摩擦力分解为滚动摩擦力和静摩擦力,滚动摩擦力促使辊子转动,属于无效运动:静摩擦力促使辊子相对地面运动(类似于普通橡胶轮胎运动情况),而银子被轮教“卡住”因而带动整个麦轮沿着辊子轴线运动。

进一步总结:电机输入轮毂的扭矩,一部分被棍子自转“浪费掉”,另一部分形成静摩擦驱动麦轮整体运动。单个麦轮实际的(受力)运动方向为棍子轴向方向,因此改变棍子轴线与轮毂轴线的夹角,就可以改变麦轮实际的(受力)运动方向。不过常见的麦轮,棍子与轮毂轴线的夹角均为 45 度。

单个麦轮速度分析

接下来分析棍子外侧与地面接触点的线速度 VωV_\omegaVω​ 和平行于棍子轴线的速度 VpV_pVp​ 之间的关系。

需要理解的一个问题是:平行于棍子轴线的速度 VpV_pVp​ 是怎么产生的?

由于麦轮是由电机驱动,假如麦轮悬空未与地面接触(棍子未绕棍子轴线转动),则棍子外侧速度方向与麦轮平行,其大小为
Vω=ω⋅rV_\omega = \omega \cdot rVω​=ω⋅r

其中,ω\omegaω 表示电机转动角速度,rrr 表示麦轮有效半径。

但是当麦轮与地面接触后,情况则会发生变化:摩擦力会使棍子绕轴线转动,电机扭矩提供的主动力则会产生分解,而有效转换的静摩擦力是分力 FpF_pFp​,也就是分力 FpF_pFp​ 是促使麦轮平台有效运动的力,对应速度分解也是一个道理。可以理解为加入只有一个麦轮在地面运动,当电机以速度 VωV_\omegaVω​ 转动,那么麦轮将自动适应以某一速度 VpV_pVp​ 绕自身轴线被动旋转,所以平行于棍子轴线的分速度 VpV_pVp​ 与电机转速的关系可表示为
Vp=Vω⋅cos⁡(45°)=ω⋅r⋅cos⁡(45°)V_p = V_\omega \cdot \cos(45\degree) = \omega \cdot r \cdot \cos(45\degree)Vp​=Vω​⋅cos(45°)=ω⋅r⋅cos(45°)

其中,45°45\degree45° 表示棍子轴线与轮毂轴线的夹角,可见改变该夹角便可改变上式的比例关系。

正运动学

针对麦轮建立机体坐标系 body coordinate SbS_bSb​。

正运动学模型(forward kinematic model)将得到一系列公式,让我们可以通过四个轮子的速度,计算出底盘的运动状态。

结合上述单个麦轮的分析可知,麦轮以 Vω1V_{\omega1}Vω1​ 的线速度进行旋转时,产生有效的分速度 Vp1V_{p1}Vp1​ 方向为平行于棍子方向(上图左图)。分速度 Vp1V_{p1}Vp1​ 针对坐标系 SbS_bSb​ 进行正交分解(上图右图),可以分别产生在 XXX 轴和 YYY 轴的分速度 Vp1xV_{p1x}Vp1x​ 和 Vp1yV_{p1y}Vp1y​。其他三个轮子也会产生同样的分解。

首先针对 YYY 轴,我们不难得到
VYb=Vp1y+Vp2y+Vp3y+Vp4yV_{Yb} = V_{p1y} + V_{p2y} + V_{p3y} + V_{p4y}VYb​=Vp1y​+Vp2y​+Vp3y​+Vp4y​

再考虑 XXX 轴,我们可以得到
VXb=Vp1x−Vp2x+Vp3x−Vp4xV_{Xb} = V_{p1x} - V_{p2x} + V_{p3x} - V_{p4x}VXb​=Vp1x​−Vp2x​+Vp3x​−Vp4x​

关于 XXX 和 YYY 轴方向比较好理解,难得是麦轮移动对车身旋转方向 ωb\omega_bωb​ 的影响。接下来我们重点分析旋转。

如上图所示,这里做了简化,假设车身机械中心到麦轮机械中心的距离为 a+ba+ba+b,麦轮在连线的垂线方向的线速度为 ω⋅r\omega \cdot rω⋅r(即蓝线方向与车身与麦轮连线垂直),那么我们就有
ωb⋅(a+b)=ω⋅r\omega_b \cdot (a+b) = \omega \cdot rωb​⋅(a+b)=ω⋅r

而其他三个轮子同样具有此种关系,同时每个轮子对车身的影响具有可加性。因此我们可以得到
ωb⋅(a+b)=−ω1⋅r−ω2⋅r+ω3⋅r+ω4⋅r\omega_b \cdot (a+b) = -\omega_1 \cdot r - \omega_2 \cdot r + \omega_3 \cdot r + \omega_4 \cdot rωb​⋅(a+b)=−ω1​⋅r−ω2​⋅r+ω3​⋅r+ω4​⋅r

综上所述,假设四个轮子的角速度大小分别为 ωM1,ωM2,ωM3,ωM4\omega_{M1}, \omega_{M2}, \omega_{M3}, \omega_{M4}ωM1​,ωM2​,ωM3​,ωM4​,轮子半径相等为 rrr,那么有各个轮子的线速度为 vM1=ωM1∗rv_{M1} = \omega_{M1}*rvM1​=ωM1​∗r。

[vM1vM2vM3vM4]=[ωM1⋅rωM2⋅rωM3⋅rωM4⋅r]\left[\begin{matrix} v_{M1} \\ v_{M2} \\ v_{M3} \\ v_{M4} \\ \end{matrix}\right] = \left[\begin{matrix} \omega_{M1} \cdot r \\ \omega_{M2} \cdot r \\ \omega_{M3} \cdot r \\ \omega_{M4} \cdot r \\ \end{matrix}\right] ⎣⎢⎢⎡​vM1​vM2​vM3​vM4​​⎦⎥⎥⎤​=⎣⎢⎢⎡​ωM1​⋅rωM2​⋅rωM3​⋅rωM4​⋅r​⎦⎥⎥⎤​

整理后,有如下正运动学模型(这是简化后的):

[ωbzvbxvby]=[−1(a+b)−1(a+b)1(a+b)1(a+b)1−11−11111][ωM1⋅rωM2⋅rωM3⋅rωM4⋅r]\left[\begin{matrix} \omega_{bz} \\ v_{bx} \\ v_{by} \\ \end{matrix}\right] = \left[\begin{matrix} -\frac{1}{(a+b)} & -\frac{1}{(a+b)} & \frac{1}{(a+b)} & \frac{1}{(a+b)} \\ 1 & -1 & 1 & -1 \\ 1 & 1 & 1 & 1 \\ \end{matrix}\right] \left[\begin{matrix} \omega_{M1} \cdot r \\ \omega_{M2} \cdot r \\ \omega_{M3} \cdot r \\ \omega_{M4} \cdot r \\ \end{matrix}\right] ⎣⎡​ωbz​vbx​vby​​⎦⎤​=⎣⎡​−(a+b)1​11​−(a+b)1​−11​(a+b)1​11​(a+b)1​−11​⎦⎤​⎣⎢⎢⎡​ωM1​⋅rωM2​⋅rωM3​⋅rωM4​⋅r​⎦⎥⎥⎤​

逆运动学

逆运动学模型(inverse kinematic model)得到的公式则是可以根据底盘的运动状态解算出四个轮子的速度。

直接通过矩阵计算即可得到。

由 4 个麦克纳姆轮组成的移动机器人的逆运动学模型为
[ωM1⋅rωM2⋅rωM3⋅rωM4⋅r]=[−a−b11−a−b−11a+b11a+b−11][ωbzvbxvby]\left[\begin{matrix} \omega_{M1} \cdot r \\ \omega_{M2} \cdot r \\ \omega_{M3} \cdot r \\ \omega_{M4} \cdot r \\ \end{matrix}\right]= \left[\begin{matrix} -a-b & 1 & 1 \\ -a-b & -1 & 1 \\ a+b & 1 & 1 \\ a+b & -1 & 1 \\ \end{matrix}\right] \left[\begin{matrix} \omega_{bz} \\ v_{bx} \\ v_{by} \\ \end{matrix}\right]⎣⎢⎢⎡​ωM1​⋅rωM2​⋅rωM3​⋅rωM4​⋅r​⎦⎥⎥⎤​=⎣⎢⎢⎡​−a−b−a−ba+ba+b​1−11−1​1111​⎦⎥⎥⎤​⎣⎡​ωbz​vbx​vby​​⎦⎤​

其中 ωMi,i=1,2,3,4\omega_{Mi}, i = 1,2,3,4ωMi​,i=1,2,3,4 为轮子的驱动角速度,rrr 为轮子半径。

附一下自己在推导时所制作的示意图

自己设计的麦轮小车

Ref:

  1. 技术分享 | 浅谈麦克纳姆轮的运动方式
  2. 浅谈麦克纳姆轮全向移动平台之——运动学
  3. 麦克纳姆轮(Mecanum Wheel)运动学分析
  4. 麦克纳姆轮运动特性分析(图片版)

【UGV】从单个麦轮受力到麦轮小车运动学分析相关推荐

  1. 【控制】麦克纳姆轮 Mecanum 小车模型分析

    文章目录 简介 单个麦轮受力分析 单个麦轮速度分析 正运动学 逆运动学 附 Ref: 简介 移动机器人的运动学模型决定了如何将车轮速度映射到机器人的本体速度,而动力学模型则决定着如何将车轮扭矩映射到机 ...

  2. 四轮 控制算法 麦轮_基于麦克纳姆轮的全向移动自主机器人

    龙源期刊网 http://www.qikan.com.cn 基于麦克纳姆轮的全向移动自主机器人 作者:莫然 张进 高淑芝 来源:<山东工业技术> 2017 年第 08 期 摘 要:设计了一 ...

  3. 四轮 控制算法 麦轮_AGV-麦克纳姆轮小车控制总结

    首先,这篇文章是看了各位大神的博客,然后自己把自己的思路总结记录下来,其中有很多图片以及公式,是拷贝自这些大神的博客,在此表示感谢!!! 麦克纳姆轮介绍 首先,上个图,麦克纳姆轮和普通的轮子是不同的, ...

  4. 麦克纳姆轮(万向轮)驱动和玩法

    麦克纳姆轮(万向轮)驱动和玩法 麦克纳姆轮介绍 麦克纳姆轮运动分析及方向确定 麦克纳姆轮安装组合及运动分析 分析错误例子[AAAA] 正确的麦轮分布应该是[ABBA] 麦克纳姆轮的安装位置 安装方法 ...

  5. 【麦克纳姆轮(万向轮)驱动原理及安装方法】

    转载自:https://blog.csdn.net/qq_40374812/article/details/117337556 麦克纳姆轮(万向轮)驱动和玩法 麦克纳姆轮介绍 麦克纳姆轮运动分析及方向 ...

  6. 麦克纳姆小车运动学建模翻译

    基于麦克纳姆轮的移动平台运动学和动力学建模 作者:Nkgatho Tlale Mark de Villiers 摘要: 全方位移动平台具有从任意布局状态迅速的任意方向进行移动的能力,因此,对于建立全向 ...

  7. MEMS硅麦和ECM驻极体麦

    硅麦的一致性比驻极体MIC好一些.硅麦需要供电,驻极体麦需要偏置电路. MIC的评价指标: 1.灵敏度 一般是1kHZ,声压 1Pa测试条件下测的.一般为负数dB.高灵敏度话筒用于微小声音拾音非常有用 ...

  8. [麦肯锡三部曲] 麦肯锡三部曲(1) - 麦肯锡方法读书笔记

    朋友推荐读读麦肯锡方法对了解咨询方法,有利于提升自己的"发现问题","分析问题"和"解决问题"的方法及能力. 咨询也是一直我比较期望的技能, ...

  9. 全麦吐司和普通吐司的区别_“全麦面包”是“全麦”吗?一字之差区别大,专家建议标明全麦含量...

    据江苏公共·新闻频道<新闻360>报道:平时买面包,大家可能更喜欢"全麦面包",总觉着全麦更健康一些.但什么才是真正的"全麦"?很多市民并不了解.记 ...

最新文章

  1. linux下find命令用法
  2. 【python初识】文件存储与异常
  3. numpy 笔记:finfo
  4. 【收藏】ABAP Bom按层展开的几种实现方法
  5. 随机数的扩展--等概率随机函数的实现
  6. BFC与边距重叠详解
  7. 10怎么读_孩子学习浑浑噩噩,做事拖拖拉拉,老是做不完作业,家长怎么办?...
  8. SpringMVC json/xml自动转换
  9. python中sticky_Python stickymeta包_程序模块 - PyPI - Python中文网
  10. java openssl rsa_Java中使用OpenSSL生成的RSA公私钥进行数据加解密
  11. vue 取数组第一个值_vue里如何取出数组中的数组(的某一个元素)
  12. 题目 1609: 黑色星期五
  13. [cocos2dx开发技巧4]工具CocosBuilder的使用--复杂动画
  14. PHP 的__call()
  15. 解决MacOS12.6自带的屏幕录制闪退的问题
  16. Sublime3 设置Python快捷键
  17. 【创业复盘】关键假设三板斧
  18. 【Matlab编程】新手入门的第一天
  19. 【热门框架】Maven依赖传递,可选依赖以及排除依赖指的是什么?有什么意义?
  20. jira与Jenkins集成

热门文章

  1. (转载)The shortest, fastest, and easiest way to compare two tables in SQL Server: UNION
  2. 关于TextBox控件字体颜色绑定
  3. 1080 两个数的平方和(数学)
  4. 五大经常使用算法 之 动态规划法
  5. 【Python之路】第五篇--Python基础之杂货铺
  6. 【代码笔记】iOS-评分,支持我们
  7. WPF资源的基本概念
  8. 图解LanHelper 使用
  9. wse2.0实现webservice安全(转)
  10. Java8新特性-接口中的静态方法与默认方法