




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、麦克纳姆轮浅谈什么是麦克纳姆轮在竞赛机器人和特殊工种机器人中,全向移动经常是一个必需的功能。全向移动意味着可以在平面内做出任意方向平移同时自转的动作。为了实现全向移动,一般机器人会使用全向轮(Omni Wheel)或麦克纳姆轮(Mecanum Wheel)这两种特殊轮子。 全向轮: 麦克纳姆轮全向轮与麦克纳姆轮的共同点在于他们都由两大部分组成:轮毂和辊子(roller)。轮毂是整个轮子的主体支架,辊子则是安装在轮毂上的鼓状物。全向轮的轮毂轴与辊子转轴相互垂直,而麦克纳姆轮的轮毂轴与辊子转轴呈 45° 角。理论上,这个夹角可以是任意值,根据不同的夹角可以制作出不同的轮子,但最常用的还是
2、这两种。全向轮与麦克纳姆轮(以下简称麦轮)在结构、力学特性、运动学特性上都有差异,其本质原因是轮毂轴与辊子转轴的角度不同。经过分析,二者的运动学和力学特性区别可以通过以下表格来体现。计算过程如下,供参考,学霸可点开大图验算:近年来,麦轮的应用逐渐增多,特别是在 Robocon、FRC 等机器人赛事上。这是因为麦克纳姆轮可以像传统轮子一样,安装在相互平行的轴上。而若想使用全向轮完成类似的功能,几个轮毂轴之间的角度就必须是 60°,90° 或 120° 等角度,这样的角度生产和制造起来比较麻烦。所以许多工业全向移动平台都是使用麦克纳姆轮而不是全向轮,比如这个国产的叉车
3、: 全向移动平台 麦克纳姆轮叉车 美科斯叉车另外一个原因,可能是麦轮的造型比全向轮要酷炫得多,看起来有一种不明觉厉的感觉的确,第一次看到麦轮运转起来,不少人都会惊叹。以下视频直观地说明了麦轮底盘在平移和旋转时的轮子旋转方向。麦轮的安装方法麦轮一般是四个一组使用,两个左旋轮,两个右旋轮。左旋轮和右旋轮呈手性对称,区别如下图。安装方式有多种,主要分为:X-正方形(X-square)、X-长方形(X-rectangle)、O-正方形(O-square)、O-长方形(O-rectangle)。其中 X 和 O 表示的是与四个轮子地面接触的辊子所形成的图形;正方形与长方形指的是四个轮子与地面接
4、触点所围成的形状。· X-正方形:轮子转动产生的力矩会经过同一个点,所以 yaw 轴无法主动旋转,也无法主动保持 yaw 轴的角度。一般几乎不会使用这种安装方式。· X-长方形:轮子转动可以产生 yaw 轴转动力矩,但转动力矩的力臂一般会比较短。这种安装方式也不多见。· O-正方形:四个轮子位于正方形的四个顶点,平移和旋转都没有任何问题。受限于机器人底盘的形状、尺寸等因素,这种安装方式虽然理想,但可遇而不可求。· O-长方形:轮子转动可以产生 yaw 轴转动力矩,而且转动力矩的力臂也比较长。是最常见的安装方式。麦轮底盘的正逆运动学模型以O-长方形的安装方
5、式为例,四个轮子的着地点形成一个矩形。正运动学模型(forward kinematic model)将得到一系列公式,让我们可以通过四个轮子的速度,计算出底盘的运动状态;而逆运动学模型(inverse kinematic model)得到的公式则是可以根据底盘的运动状态解算出四个轮子的速度。需要注意的是,底盘的运动可以用三个独立变量来描述:X轴平动、Y轴平动、yaw 轴自转;而四个麦轮的速度也是由四个独立的电机提供的。所以四个麦轮的合理速度是存在某种约束关系的,逆运动学可以得到唯一解,而正运动学中不符合这个约束关系的方程将无解。先试图构建逆运动学模型,由于麦轮底盘的数学模型比较复杂,我们在此分
6、四步进行:将底盘的运动分解为三个独立变量来描述;根据第一步的结果,计算出每个轮子轴心位置的速度;根据第二步的结果,计算出每个轮子与地面接触的辊子的速度;根据第三部的结果,计算出轮子的真实转速。一、底盘运动的分解我们知道,刚体在平面内的运动可以分解为三个独立分量:X轴平动、Y轴平动、yaw 轴自转。如下图所示,底盘的运动也可以分解为三个量: 表示 X 轴运动的速度,即左右方向,定义向右为正; 表示 Y 轴运动的速度,即前后方向,定义向前为正; 表示 yaw 轴自转的角速度,定义逆时针为正。以上三个量一般都视为四个轮子的几何中心(矩形的对角线交点)的速度。二、计算出轮
7、子轴心位置的速度定义: 为从几何中心指向轮子轴心的矢量; 为轮子轴心的运动速度矢量; 为轮子轴心沿垂直于 的方向(即切线方向)的速度分量;那么可以计算出:分别计算 X、Y 轴的分量为:同理可以算出其他三个轮子轴心的速度。三、计算辊子的速度根据轮子轴心的速度,可以分解出沿辊子方向的速度 和垂直于辊子方向的速度 。其中 是可以无视的(思考题:为什么垂直方向的速度可以无视?),而其中 是沿辊子方向的单位矢量。四、计算轮子的速度从辊子速度到轮子转速的计算比较简单:以上方程组就
8、是O-长方形麦轮底盘的逆运动学模型,而正运动学模型可以直接根据逆运动学模型中的三个方程解出来,此处不再赘述。另一种计算方式传统的推导过程虽然严谨,但还是比较繁琐的。这里介绍一种简单的逆运动学计算方式。我们知道,全向移动底盘是一个纯线性系统,而刚体运动又可以线性分解为三个分量。那么只需要计算出麦轮底盘在沿X轴平移、沿Y轴平移、绕几何中心自转时,四个轮子的速度,就可以通过简单的加法,计算出这三种简单运动所合成的平动+旋转运动时所需要的四个轮子的转速。而这三种简单运动时,四个轮子的速度可以通过简单的测试,或是推动底盘观察现象得出。当底盘沿着 X 轴平移时:当底盘沿着 Y 轴平移时:当底盘绕几何中心自
9、转时:将以上三个方程组相加,得到的恰好是根据传统方法计算出的结果。这种计算方式不仅适用于O-长方形的麦轮底盘,也适用于任何一种全向移动的机器人底盘。Makeblock 麦轮底盘的组装理论分析完成,可以开始尝试将其付诸实践了。第一步,组装矩形框架。第二步,组装电机模块。由于麦轮底盘的四个轮子速度有约束关系,必须精确地控制每个轮子的速度,否则将会导致辊子与地面发生滑动摩擦,不仅会让底盘运动异常,还会让麦轮的寿命减少。所以必须使用编码电机。第三步,将电机模块安装到框架上。第四步,将麦轮安装到框架上。第五步,安装电路板并接线。编码电机必须配上相应的驱动板才能正常工作。这里使用的 Makeblock 编
10、码电机驱动板,每一块板可以驱动两个电机。接线顺序在下文中会提及,也可以随意接上,在代码中定义好对应的顺序即可。第六步,装上电池。至此,一个能独立运行的麦轮底盘就完成了。控制程序根据麦轮的底盘的运动学模型,要完全控制它的运动,需要有三个控制量:X轴速度、Y轴速度、自转角速度。要产生这三个控制量,有很多种方法,本文将使用一个 USB 游戏手柄,左边的摇杆产生平移速度,右边的摇杆产生角速度。首先将一个 USB Host 模块连接到 Orion 主板的 3 口。然后插上一个无线 USB 游戏手柄。然后再添加其他细节,就大功告成啦!其他细节:#include <Wire.h&g
11、t;#include <SoftwareSerial.h>#include "MeOrion.h"MeUSBHost joypad(PORT_3);/手柄代码(红灯亮模式)/默认:128-127-128-127-15-0-0-128/左一:128-127-128-127-15-1-0-128/右一:128-127-128-127-15-2-0-128/左二:128-127-128-127-15-4-0-128/右二:128-127-128-127-15-8-0-128/三角:128-127-128-127-31-0-0-128 (0001 1111)/方形:12
12、8-127-128-127-143-0-0-128 (1000 1111)/叉号:128-127-128-127-79-0-0-128 (0100 1111)/圆圈:128-127-128-127-47-0-0-128 (0010 1111)/向上:128-127-128-127-0-0-0-128 (0000 0000)/向下:128-127-128-127-4-0-0-128 (0000 0100)/向左:128-127-128-127-6-0-0-128 (0000 0110)/向右:128-127-128-127-2-0-0-128 (0000 0010)/左上:128-127-128
13、-127-7-0-0-128 (0000 0111)/左下:128-127-128-127-5-0-0-128 (0000 0101)/右上:128-127-128-127-1-0-0-128 (0000 0001)/右下:128-127-128-127-3-0-0-128 (0000 0011)/选择:128-127-128-127-15-16-0-128/开始:128-127-128-127-15-32-0-128/摇杆:右X-右Y-左X-左Y-15-0-0-128MeEncoderMotor motor1(0x02, SLOT2);MeEncoderMotor motor2(0x02,
14、SLOT1);MeEncoderMotor motor3(0x0A, SLOT2);MeEncoderMotor motor4(0x0A, SLOT1);/ 底盘:a = 130mm, b = 120mmfloat linearSpeed = 100;float angularSpeed = 100;float maxLinearSpeed = 200;float maxAngularSpeed = 200;float minLinearSpeed = 30;float minAngularSpeed = 30;void setup() / 要上电才能工作,不能只是插上 USB 线来调试。mo
15、tor1.begin();motor2.begin();motor3.begin();motor4.begin();Serial.begin(57600);joypad.init(USB1_0);void loop() Serial.println("loop:");/setEachMotorSpeed(100, 50, 50, 100);if(!joypad.device_online) / 若一直输出离线状态,重新拔插 USB Host 的 RJ25 线试一下。 Serial.println("Device offline."); joypad.pr
16、obeDevice(); delay(1000); else int len = joypad.host_recv(); parseJoystick(joypad.RECV_BUFFER); delay(5); /delay(500);void setEachMotorSpeed(float speed1, float speed2, float speed3, float speed4)motor1.runSpeed(speed1);motor2.runSpeed(-speed2);motor3.runSpeed(-speed3);motor4.runSpeed(-speed4);void
17、parseJoystick(unsigned char *buf) /Analytic function, print 8 bytes from USB Host / 输出手柄的数据,调试用 / int i = 0; / for(i = 0; i < 7; i+) / / Serial.print(bufi); /It won't work if you connect to the Makeblock Orion. / Serial.print('-'); / / Serial.println(buf7); / delay(10); / 速度增减 switch
18、(buf5) case 1: linearSpeed += 5; if (linearSpeed > maxLinearSpeed) linearSpeed = maxLinearSpeed; break; case 2: angularSpeed += 5; if (angularSpeed > maxAngularSpeed) angularSpeed = maxAngularSpeed; break; case 4: linearSpeed -= 5; if (linearSpeed < minLinearSpeed) linearSpeed = minLinearSp
19、eed; break; case 8: angularSpeed -= 5; if (angularSpeed < minAngularSpeed) angularSpeed = minAngularSpeed; break; default: break; if (128 != buf0) | (127 != buf1) | (128 != buf2) | (127 != buf3) / 处理摇杆 float x = (float)(buf2) - 127) / 128; float y = (127 - (float)(buf3) / 128; float a = (127 - (f
20、loat)(buf0) / 128; mecanumRun(x * linearSpeed, y * linearSpeed, a * angularSpeed); else switch (buf4) case 0: mecanumRun(0, linearSpeed, 0); break; case 4: mecanumRun(0, -linearSpeed, 0); break; case 6: mecanumRun(-linearSpeed, 0, 0); break; case 2: mecanumRun(linearSpeed, 0, 0); break; case 7: mecanumRun(-linearSpeed/2, linearSpeed/2, 0); break; case 5: mecanumRun(-linearSpeed/2, -linearSpeed/2, 0); break; case 1: mecanumRun(linearSpeed/2, linearSpeed/2, 0); break;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一盔一带交通安全教育讲话稿
- 年产200吨高端医药原料药生产项目建议书(模板)
- 老旧供水系统改进工程可行性研究报告(参考模板)
- 大专幼儿文学儿歌课件
- 重庆市乌江新高考协作体2024届高三上学期期中考政治含解析
- 贵州体育职业学院《单片机原理与设计》2023-2024学年第二学期期末试卷
- 浙江特殊教育职业学院《光接入技术与数字通信课程实训》2023-2024学年第二学期期末试卷
- 苏州城市学院《口腔影像诊断学》2023-2024学年第二学期期末试卷
- 山西青年职业学院《先进制造与特种加工》2023-2024学年第二学期期末试卷
- 石嘴山工贸职业技术学院《水质工程学Ⅰ(水厂)》2023-2024学年第二学期期末试卷
- 河道管理条例试题及答案
- 2025届广东省佛山市高三下学期教学质量检测(二)物理试题及答案
- 2025年四川省成都市成华区中考二诊英语试题(原卷版+解析版)
- 2025第十三届贵州人才博览会遵义市事业单位人才引进47人笔试备考试题及答案解析
- 2025年湖北省高考数学调研试卷(4月份)(含答案)
- 2025-2030中国玫瑰精油行业市场深度调研及发展趋势与投资前景研究报告
- 工会劳动保护监督检查员培训大纲
- 全面解析2024年农艺师试题及答案
- 课题申报书:学习成果认证制度与运行机制研究
- 2025山东能源集团中级人才库选拔易考易错模拟试题(共500题)试卷后附参考答案
- 行政事业单位内部控制信息系统建设实施方案
评论
0/150
提交评论