【控制】麦克纳姆轮 Mecanum 小车模型分析
文章目录
- 简介
- 单个麦轮受力分析
- 单个麦轮速度分析
- 正运动学
- 逆运动学
- 附
- Ref:
简介
移动机器人的运动学模型决定了如何将车轮速度映射到机器人的本体速度,而动力学模型则决定着如何将车轮扭矩映射到机器人的加速度。
运动学建模中的两个重要问题:
- 车轮必须以什么速度行驶,才能达到给定的期望底盘速度 q˙\dot{q}q˙?
- 考虑到各个车轮行驶速度的极限,底盘速度的极限是多少?
首先熟悉一下麦轮的移动方式。如上图所示,为麦轮常见的三种移动方式(向前,平行,斜向上)。
单个麦轮受力分析
首先说明一点,下图为麦轮与地面接触平面的截图,而俯视图中棍子方向刚好相差 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] ⎣⎢⎢⎡vM1vM2vM3vM4⎦⎥⎥⎤=⎣⎢⎢⎡ω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] ⎣⎡ωbzvbxvby⎦⎤=⎣⎡−(a+b)111−(a+b)1−11(a+b)111(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+b1−11−11111⎦⎥⎥⎤⎣⎡ωbzvbxvby⎦⎤
其中 ωMi,i=1,2,3,4\omega_{Mi}, i = 1,2,3,4ωMi,i=1,2,3,4 为轮子的驱动角速度,rrr 为轮子半径。
附
附一下自己在推导时所制作的示意图
自己设计的麦轮小车
Ref:
- 技术分享 | 浅谈麦克纳姆轮的运动方式
- 浅谈麦克纳姆轮全向移动平台之——运动学
- 麦克纳姆轮(Mecanum Wheel)运动学分析
- 麦克纳姆轮运动特性分析(图片版)
【控制】麦克纳姆轮 Mecanum 小车模型分析相关推荐
- 麦克纳姆轮小车matlab仿真,学习使用Python控制麦克纳姆轮底盘
学习使用Python控制麦克纳姆轮底盘 这里小龟给大家分享如何使用Python控制麦克纳姆轮底盘的小龟小车. 首先小伙伴得参考小龟提供的改造手册进行先把小龟小车改造成麦克纳姆轮底盘,假如小伙伴在改造过 ...
- 基于arduino及PS2的麦克纳姆轮遥控小车
实物展示 1.选材用料 2.设计原理 2.代码展示 #include <PS2X_lib.h> #include<AFMotor.h> #define PS2_DAT 13 / ...
- arduino麦轮转弯程序_麦克纳姆轮智能小车接线方案
折腾了好几天,实在搞不定了,决定上来社区求助. 现在的硬件情况是这样的: - HM-GM37-3429霍尔传感器大载重电机,每个电机六条线,其中电机输入两个,霍尔编码器电源两个,编码器AB相两个 - ...
- 麦克纳姆轮全向移动机器人速度空间分析
关注同名微信公众号"混沌无形",有趣好文! 原文链接:https://mp.weixin.qq.com/s/GWhlXsuY6QYyoZydaSYpjQ(包含原文PDF百度云下载链 ...
- 树莓派小车,从基础上手到完整工程(二)——麦克纳姆轮
搭一个树莓派小车 树莓派小车 麦克纳姆轮 树莓派小车 麦克纳姆轮 po一张原理图,安装的时候注意轮子方向. 我把电机控制部分的代码大致封装了一下,后续可以自行添加其他功能. motor.py impo ...
- 麦克纳姆轮小车在gazebo中的实现
搞毕设看的是赵虚左老师的视频,在视频中赵老师只介绍了两轮差速小车和阿克曼底盘的小车的控制器插件,麦克纳姆轮的小车并没有介绍到,在这里给大家分享一下麦轮小车的简单实现. <robot name=& ...
- ROS麦克纳姆轮底盘制作(上)
目录 1.底盘硬件框图 2.麦克纳姆轮模型介绍 2.1 麦克纳姆轮下的运动学模型 2.2 正解运动学模型 2.3 逆解运动学模型 3 底盘软件框架 4 参考资料 在这一个专题中,我们将介绍如何搭建利用 ...
- 麦克纳姆轮运动原理_麦克纳姆轮介绍
先看个大号Mecanum轮的应用图 "第一部分:Mecanum轮是什么麦克纳姆轮最早是美国麦克纳姆公司为了在航母上移动物资的机器人而设计的全方位移动轮子,相对全向轮来说,麦轮可以通过其转速和 ...
- 麦克纳姆轮运动特性分析
关注同名微信公众号"混沌无形",有趣好文! 原文链接:https://mp.weixin.qq.com/s/sjb3O91auADKN7iDsut0jA(包含原文PDF百度云下载链 ...
最新文章
- 微信公众号token 验证
- Python-form表单标签
- 微信小程序打开PDF
- Windows 键盘操作快捷方式积累
- three.js script vertex和fragment在react中使用/纯js写法
- JavaScript游戏开发简介
- VBA 读写文本文件的几种方法
- 5.4shell编程3
- 翻车!微信翻译误翻闹笑话 腾讯官方回应:紧急修复中...
- 改变support中AlertDialog的样式
- 第四周课程总结实验报告二
- [转载] python中sort()与sorted()
- UVa 10003 Cutting Sticks(区间DP)
- 德鲁克对管理学的贡献
- A* 算法求解八数码问题
- 肯德尔相关性分析_肯德尔的Tau机器学习相关性
- iOS-图片可以自适应屏幕大小吗,应该会失真吧?
- Python爱心表白,快去发给你心仪的人叭~
- JNI_OnLoad 回调Java_Java本地接口(JNI)编程指南和规范(第八章)
- 考研复试计算机网络篇