【分享帖】麦轮正逆向运动学建模/再不懂就去打死线代老师
![Emptyy](https://hz-rm-bbs-web-prod.oss-cn-hangzhou.aliyuncs.com/avatar/pre/v1/000008833_avatar_big.jpg)
各位观众老爷好,宣传经理妹子琪琪说写点啥吧,写啥呢,想了想,让RM这场盛大狂欢一路跑起来的麦轮简直功不可没。
曾记得在队里不小心踩到地上一根导线,于是整条腿斜向前45°劈了个叉,那时候心想这不就是麦轮啊我去,所以麦轮到底是什么原理呢,程序上炒鸡简单的四个运动方程是怎么来的?百度的东西实在高深莫测不明觉厉,好在谷歌上看到了一篇过程详细逻辑严密的文章,寥寥几页却清晰明朗深入浅出可谓十分接地气,无论你属于机械、电控、视觉、宣传经理、项管还是扫地僧,稍微有点线代基础就能看懂,遂翻译过来跟大家分享一下,同时加了些补充说明(黑括号里的部分)方便理解。英语OK的朋友可以直接读原文(帖子底部有附件)。读完你完全可以按照同样的方法求解90°偏置的3麦轮小车的前后向运动学方程,而且是真真正正自己推导出来,对理解和控制全向小车还是很有帮助的。文章名叫Kinematic Analysis of Four-Wheel Mecanum Vehicle(4麦克纳姆轮载具的运动学分析),针对的正是常见的45°偏置的4麦轮组合,也是我们征战沙场的共同选择。原文没有来源出处,格式也甚是随性,唯一有的信息是Rev 05/31/10 ©Ehter (PDF文件名里有个编号100531)
好吧,让我们向这位叫以太的哥们致敬~也让我们向XJTU的宣传经理妹子琪琪致敬,毕竟她不提估计就没得写了...Orz
下面进入正题
后向(逆向)运动学方程:根据车身速度计算每个轮的转速。
前向(正向)运动学方程:给定每个轮的转速得到车身速度。
见下图,在俯视中定义坐标系,使原点到四个轮子的距离相等,X轴向前指,Y轴向左指。
用3x1矩阵 [Vx Vy ωv]’表示车身运动的速度矢量[V],其中ωv以逆时针方向为正。
麦轮从图中左上角起,按逆时针顺序依次编号1,2,3,4。
(Xn,Yn)为第n个轮相对原点的坐标。各麦轮轮毂与X轴平行安装,r为轮毂半径,θn为麦轮n的接地辊子轴线与X轴间的夹角,以逆时针方向偏转为正。【就是辊子的偏置安装角,大小为45°】
![](http://img.xiumi.us/xmi/ua/jOhZ/i/5af690acb9d6b9ff0a0d0822e811257f-sz_65233.png@1l_640w.png)
令[Ω]=[ω1,ω2,ω3,ω4]’【定义每个轮子使车向前走的转向为其ω的正方向】
求解逆向运动学就是要找到一个4x3矩阵[R]使其满足:[Ω]=(1/r)[R][V] 方程1
如此,给定车身速度[V]就可计算出各轮转速[Ω]。
假设车身为刚体,那么车体的速度分量Vx、Vy就可以平移到每个麦轮的中心。
此外,由于车身还有旋转速度ωv,所以在每个麦轮的中心还有另外一组速度分量:
Vxrn=-Yn·ωv
Vyrn= Xn·ωv 方程2
【这里原文没图,补一个清楚点,见下方手绘哈哈。
注意用来分析的麦轮n可任取一个,因为只要规定好X、Y轴及转动的正方向,公式里的符号就始终一致,图中取的是右上轮】
![](http://img.xiumi.us/xmi/ua/jOhZ/i/e0846d400c167a69562a41229c0f8ba6-sz_313260.png@1l_640w.png)
上述两组分量叠加后就得到了麦轮n的合速度矢量Vn(即麦轮n的实际速度矢量,方程中为Vxn、Vyn两个分量):
Vxn=Vx+Vxrn
Vyn=Vy+Vyrn 方程3
然后将方程2代入方程3得到: Vxn =Vx -Yn·ωv , Vyn =Vy +Xn·ωv
【到这我们求出了车身速度[V]对应到每个麦轮上的速度Vn,接下来只要找到轮转速ωn与Vn之间的关系就构建完毕了。下图为麦轮n在某一时刻的速度矢量关系。
看过下图后再唐僧一遍,Vn这个合速度矢量就是麦轮n当前的实际运动速度。可以看出它是由麦轮n的轮毂中心速度Aî=ωn·r和接地自由辊子的中心速度Bû合成而来的。
另外,考虑î、û两个单位向量的线性组合,刚好构成XOY平面内的整个向量空间(当然实际上速度不可能无穷大的哈,但方向一定是全向的),这也就是麦轮能全向运动的原因。注意Bû始终是跟辊子轴垂直的,因为辊子一定是沿垂直其转轴的方向滚动,这就像Aî始终跟电机轴(平行于Y轴)垂直一样。】
![](http://img.xiumi.us/xmi/ua/jOhZ/i/2e0e8e0336beb288e95f9580e234cbc7-sz_26020.png@1l_640w.png)
于是车身速度和麦轮转速之间就可以联系起来了:
ωn·r = Vxn + Vyn·tan(θn) 方程4
【自由辊子的中心速度B是随速度矢量Vn变化的,不需要求,重要的是找到A与Vn的线性关系】
将前面准备好的Vxn、Vyn代入方程4得到:
ωn·r =(Vx -Yn·ωv) + (Vy+ Xn·ωv)·tan(θn)
把r移到等号右边:
ωn =(1/r) { (Vx -Yn·ωv) + (Vy+ Xn·ωv)·tan(θn) }
再整理一下:
ωn =(1/r) { (Vx + Vy tanθn + ( Xn·tanθn-Yn)ωv) }
当当当当,如此第n个麦轮的转速ωn 跟 车身速度Vx、Vy、ωv之间就建立了线性关系。
于是就得到要求的4x3矩阵[R]:
1 tan(θ1) X1 tan(θ1) – Y1
1 tan(θ2) X2 tan(θ2) – Y1
1 tan(θ3) X3 tan(θ3) – Y1
1 tan(θ4) X4 tan(θ4) – Y1
根据第一页对θn的定义,可以得到θ1、θ3为 -45°,θ2、θ4为 +45°。代入得到:
![](http://img.xiumi.us/xmi/ua/jOhZ/i/8152163a0eebeb6a9b8260c8d2228c1c-sz_2119.png@1l_640w.png)
由于我们定义坐标系时原点到四个轮子的距离相等,即轮子是对称安装的,所以每个轮横、纵坐标的绝对值各自相等,令K=abs(Xn)+abs(Yn),根据每个轮坐标所在象限的符号,矩阵可化简为:
![](http://img.xiumi.us/xmi/ua/jOhZ/i/992d3d1f1af2db5c672b08d8ec79249f-sz_1191.png@1l_640w.png)
将[R]代入方程1:[Ω]=(1/r)[R][V],简单乘一下,就得到逆向运动学的线性方程组了。
【注意这里转速的单位是弧度/单位时间】
是不是熟悉的配方熟悉的味道,大家的车就是这么控制的吧~
求解正向运动学就是要找到一个3x4矩阵[R]使其满足:
[F][Ω](r)=[V]
这个问题通常无解,因为这个线性组合构成了一个超定方程(未知数大于方程数)。
它的物理意义是,如果给定四个轮子的转速,有可能引起轮子在地上摩擦(因各轮速度方向的冲突而打滑,比如前面两个轮子向后转,后面两个轮子向前转),这时车身是没有速度的。
不过,还是可以找到一个能通过最小二乘法来提供最优解的矩阵[F]。
首先从逆向运动学方程开始,
[Ω](r)=[R][V]
两边同时左乘[R]的转置得到:
[R]’[Ω] (r)=[R]’[R][V]
两边同时左乘[R]’[R]的逆得到:
( ([R]’[R])-1 ) [R]’ [Ω] (r) = ( ([R]’[R])-1) ( [R]’[R] ) [V]
右侧化简为[V]得到:
( ([R]’[R])-1 ) [R]’ [Ω] (r) = [V]
由此得到[F]:
[F]= ( ([R]’[R])-1 ) [R]’
使用逆向运动学中化简完的[R]矩阵,很容易求出[F]:
![](http://img.xiumi.us/xmi/ua/jOhZ/i/bd14f02041c5b226417931f1fdff5220-sz_3845.png@1l_640w.png)
【能读到这的各位肯定都会了,整个正向方程就不赘述了。简单举个典型运动的例子:
令轮毂半径r为1,只给1号轮和3号轮向前转动的速度+1,则[Ω]=[ 1 0 1 0 ]’
也就是各取1倍的[F]第一列和第三列相加,得到 [V]=[ 1/2 -1/2 0 ]’
由此可以看出,当只有左前轮和右后轮向前转时,车身往右前方行驶,前向速度1/2,右向速度1/2,自转速度为0,与我们实际控制结果吻合(当控制车向右前方行驶时,可以看到2、4号轮是不转的。)读者也可以自行代入其他转速进行观察和验证。】
【结尾声明】
本文欢迎转载,只要你觉得对别人有帮助。
主体内容翻译自谷歌搜索到的PDF文章 《Kinematic Analysis of Four-Wheel Mecanum Vehicle》
文章没有来源出处等信息,唯一标注是Rev 05/31/10 ©Ehter(PDF文件名里有个编号100531) ,请记得向Ether致敬~
请问这篇文章对你有用吗?