其他分享
首页 > 其他分享> > 麦克纳姆轮解算

麦克纳姆轮解算

作者:互联网

麦克纳姆轮简介

依靠各自机轮的方向和速度,这些力的最终合成在任何要求的方向上产生一个合力矢量从而保证了这个平台在最终的合力矢量的方向上能自由地移动,而不改变机轮自身的方向。在它的轮缘上斜向分布着许多小滚子,故轮子可以横向滑移。小滚子的母线很特殊,当轮子绕着固定的轮心轴转动时,各个小滚子的包络线为圆柱面,所以该轮能够连续地向前滚动。麦克纳姆轮结构紧凑,运动灵活,是很成功的一种全方位轮。有4个这种新型轮子进行组合,可以更灵活方便的实现全方位移动功能。——百度百科

参数设定

在接下来的讲解中,将会以红色标注底盘坐标系,以蓝色标注云台坐标系

r为麦轮轴心到小车底盘中心的距离,V0为麦轮在底盘坐标系下的合速度,V//为麦轮在与小胶轮平行方向的速度,wheel_speedx(x:1~4)为每个麦轮的线速度设定值。
注意:
与麦轮的小胶轮方向垂直的速度直接转化为小胶轮的上接触地面点的线速度,因此不用考虑

分解速度

先把小车整体速度分解到单个麦轮上。这里坐标系为底盘坐标系


再将麦轮单独分析,麦轮速度分解到小胶轮坐标系上,目的是筛选有用的速度,将胶轮上无用的速度过滤(即小胶轮的转速)。

最后将过滤掉无用速度的有效速度分解到底盘坐标系上,也可以说是麦轮转动的坐标系上,得到麦轮轮子圆周上的速度。

此时,单个轮子的分解已经全部搞定。
其余的轮子同理可得:

数据处理注意事项

对于角速度wwheel_speed的关系,不难发现,四个轮子都差了同一个固定的系数,因此实际书写代码时,会发现某些人源码并不关心该常系数,并常常将其置一。
解释该系数置一的原因:
最开始我的想法很简单,考虑到底盘整体设置了角度环PID,该常量被KP吸收,无需考虑。但是再次想想,发现其实方向错了,应当理解为你设定的角速度现在÷一个固定常数,也就是说无系数的w与有系数的w之间呈线性关系。
在只追求角速度转动快慢,而不需要一次性地、从理论上精确控制角速度值的时候是没有影响的,毕竟我们可以让车转动起来,通过类似陀螺仪的传感器输出当前的精确角速度,并不断调试出设定到rad/s之类的角速度,这才是可行的。相反,理论计算出来的值反而会因为机械加工、测量等误差而产生错误。
总之,在做算法时不妨直接将w前的系数设置为1,但是正负号不能改变!!!并且以后我会极其推荐这种做法的。

标签:胶轮,纳姆轮,角速度,轮子,速度,麦克,解算,坐标系,麦轮
来源: https://www.cnblogs.com/LOVE-LIXINTAO/p/15380604.html