四舵轮底盘控制
四舵轮底盘就是由四个舵轮来控制底盘运动的,一般在进行速度分析时,会将底盘的整体运动映射到四个轮子的单独运动上去
一般来说是将直角坐标的速度和角速度分别映射到轮子上,进行累加得到最终的结果
直角坐标速度分析
直角坐标的速度分析相对来说比较简单,直接就是坐标平移,所以就是
其中 $v_{iyx}$ 就是机体的 $x$ 方向速度向轮子 $y$ 方向速度的映射
角速度分析
角速度分析实际上就是把机体转动的角速度通过轮子的运动来实现,也就是
再将其分解到直角坐标系中
其中 $v_{ixw}$ 就是机体角速度向轮子 $x$ 方向速度的映射
最终速度
最终两部分速度相加就是该轮子的速度
舵角
得到最终的直角坐标速度之后,还需要得到舵角速度和总速度,主要是因为舵轮的驱动轮只能有一条直线上的速度,而舵角可以来调整这个速度的方向
驱动轮速度
最小舵转角
在舵轮的舵角转动中,需要使得舵角转动按照转动最小的方向转动,以此来防止转动角度太大而导致车身偏斜
直接附上代码,这里就不再解释了
1 | float angleDiff = aimAngle - wheel->angleNow; // 转角(过程量) |
四全向轮底盘控制
四全向轮底盘控制是由四个全向轮控制的,只能控制轮子方向的速度而不能控制轮子垂直方向的速度,所以在分析时只考虑轮子方向的速度
同四舵轮底盘一致,将直角坐标的速度和角速度分别映射到轮子上,进行累加得到最终的结果
直角速度分析
如图,轮子的直角坐标系的速度就是底盘的直角坐标系速度,所以可以得到
其中 $v_{iyx}$ 就是机体的 $x$ 方向速度向轮子 $y$ 方向速度的映射
角速度分析
底盘的角速度映射到轮子的线速度可以得到
一般来说,这里算出来的角速度方向会与舵轮轮子前进方向一致,当然也有将底盘安装为长方形的底盘,这时就将这个速度 $v_{iw}$ 与实际轮子前进方向的夹角定为 $\theta_i$
最终速度
最终速度就是上述两个速度的和,并且需要映射到轮子前进方向上,所以
在垂直于轮子的方向上不考虑
麦克纳姆轮控制
首先先来说说麦克纳姆轮的特点:有辊子,并且辊子与轮子角度成 45 度角。而且对于自由的辊子来说,无法控制辊子转动方向的速度,所以只能控制沿着辊子方向的速度来控制轮子转动的速度了,所以也就是分析轮子时需要将速度映射到辊子方向上
直角坐标速度分析
如图,轮子的直角坐标系的速度就是底盘的直角坐标系速度,所以可以得到
其中 $v_{iyx}$ 就是机体的 $x$ 方向速度向轮子 $y$ 方向速度的映射
角速度分析
底盘的角速度映射到轮子的线速度可以得到
最终速度
将上述速度映射到辊子方向上,可以得到
最终辊子方向上的速度映射到轮子转动方向,也就是
最终得到的就是轮子需要转动的速度
注意
这个控制是根据笔者的想法推导出来的,并非是真实实验的结果,所以不一定正确,注意辨别
三舵轮底盘控制
三舵轮底盘的控制与四舵轮底盘的控制相似,只是角速度的控制会不一致
直角坐标速度分析
如图,轮子直角坐标速度与机体的直角坐标速度一致,也就是
角速度分析
机体转动的角速度需要映射为轮子转动的线速度,也就是
最终速度
将角速度映射到直角坐标上
驱动轮的速度
舵角解算
三全向轮底盘控制
三全向轮与四全向轮的解算也很相似,只需要把所有的速度映射到轮子转动的方向就可以了
直角坐标速度分析
如图,轮子直角坐标速度与机体的直角坐标速度一致,也就是
角速度分析
机体转动的角速度需要映射为轮子转动的线速度,也就是