最近看到很多论坛都有四轴的版块,于是也想捣鼓。苦于玩大四轴,成本太高,于是将目光投向了小四轴。
打烊了块PCB,SMT32F103CBT6+MPU6050,没有加电子罗盘。PS:画板之前没对具体的姿态算法和电机控制算法了解过,我的想法是,我只需要机子前进,后退,左右倾斜,至于偏航,按照板子的体坐标来定左右偏航,于是觉得也不需要电子罗盘。
板子上周星期五到,然后焊板。星期六花了一天时间对四元数,欧拉角,互补滤波,卡尔曼滤波,进行了解,结果基本上是边看边忘。看完后,只晓得有那么个东东,对于理论之上的理解甚之又少。于是乎,我发现之前把问题想得有点简单化了,星期天看到论坛上关于MPU6050的DMP运动库,发现这个对我来说稍微捷径些。于是参照***上的一些帖子,把DMP移植到了板子上,姿态角出来了,还算稳定。
接下来该是根据姿态角,控制四路电机的PWM值了。了解到,基本上都是用PID控制,看了《圆点小博士》的四轴开源代码,都加了电子罗盘,没有用DMP库,电机控制也是采用PID,没怎么理解他们的写法。
由于我的没有电子罗盘,所以yaw偏航在上电后是一直从0开始增长到一个值后稳定下来,每次稳定的值也不一样。我想知道,这种情况下,怎样根据pitch和roll来用PID来控制电机勒?
菜鸟一只,望各位前辈批评,指正,帮助,慷慨解答一下我的疑问,非常感谢!谢谢.....
|