STM32麦克纳姆轮底盘小车__手动模式

最近回校参加ROBOCON培训,上手之前钟意很久的麦轮小车。
主控芯片:STM32F4VGT6 , 电机:大疆 Robormaster2006 , 电调:大疆 C610。
我之前学了很多关于麦克纳姆轮的知识,一直很迷,目前才慢慢掌握。
这次我想说的主要的是程序部分。

1.麦克纳姆轮的运动原理

关于麦克纳姆轮的运动原理有些前辈已经写的很好了,我也不想重复多说,于是借花献佛。

附上链接:https://blog.csdn.net/u014453443/article/details/106670486?
有几点需要注意的是:
1.轮子的安装次序,比如左上角的轮子设序号为1,顺时针确定其他轮子的序号2,3,4,那么1,3号轮子是一样的,2,4号轮子是一样的,轮子的轮毂看起来像X 或者 是 O。
STM32麦克纳姆轮底盘小车__手动模式_第1张图片

2.轮子摩檫力的方向,轮子摩檫力的方向是沿着轮毂的方向,且于轮子的转向有关,知道了这个就可以控制底盘的前进后退,左右平移。
在我上面发的链接里,会很清楚的告诉大家麦克纳姆轮的运动原理。

2.麦克纳姆轮的运动学公式

关于麦克纳姆轮的运动学公式同样有很多的前辈已经写的很好。
附上链接:https://blog.csdn.net/banzhuan133/article/details/69229922
可能有些人文章看不懂,提供视频教程:https://www.bilibili.com/video/BV16T4y137j1。

通过四个步骤:
1.建立坐标系 : 在小车上建立X.Y轴,选定正方向。

2.计算平移速度: 将小车的移动速度V,角度θ 分解到X.Y轴上,得到轮子的平均速度
Vx = Vcosθ,Vy=Vsinθ。

3.计算辊子的速度: 通过轮子的平均速度我们可以将它分解出沿辊子方向的速度和垂直于辊子方向的速度,然而垂直于辊子方向的速度仅用于辊子本身的自转,平行于辊子的方向的速度可以做出如图的计算,得到辊子的速度。
STM32麦克纳姆轮底盘小车__手动模式_第2张图片

4.计算轮子的速度:再由辊子的速度计算得到轮子的速度。
STM32麦克纳姆轮底盘小车__手动模式_第3张图片

得到Vw = -Vy+Vx。 从而得到4个轮子的速度,如下图所示。

STM32麦克纳姆轮底盘小车__手动模式_第4张图片

3.麦克纳姆轮在程序上的应用。

手动遥控底盘分几个部分:电机,遥控器,主控程序。
1.电机:Robormaster2006电机+C610电调。
电机用CAN总线来控制,经PID计算发送电流来控制电机转速,转向,关于大疆电机的程序我会单独再写一篇出来。

2.遥控器,我用的是DEVO10,采用Futaba SBUS协议解析。
关于这部分同样也有前辈写了详细博客附上链接:https://blog.csdn.net/Brendon_Tan/article/details/89854751
有一点要注意的是,遥控的通道值CH[ ],从下到上是逐渐增加到,所以要手动将CH[ ]减去摇杆在中间位置的通道值使其通道值归零,目的是摇杆前推小车前进,摇杆后拉小车后退。

3.主控程序
先关闭程序中的PID,操作遥控器将通道值发送到之前推出来的底盘公式中计算出每个轮子的速度,在发送到PID计算,把PID.OUT发送到电流发送函数即可控制电机。
STM32麦克纳姆轮底盘小车__手动模式_第5张图片
关于这个底盘公式,我现在也存在些许的疑惑。上文若有错误,请指正。

你可能感兴趣的:(stm32)