超声波的特性是这样的,当模块被东西突然遮住的时候(1cm之内或者更小),那么测量值就会发生突变,非常之大,那么这对控制来说是毁灭性的。所以你的超声波要安装到飞行器的正下方,而且要避免跟电池放在一起。容易干扰。此外,需要做阈值处理,如果测量值突变,则舍弃测量结果。
方法/步骤
1
理论上讲超声波放在飞行器的正下面的中心是最好的,这样测出来的距离更加精确。如果飞行器俯仰角不为0,从数学上讲要进行补偿,但是实际上你们可以算一下角度变化10以内的时候对这个距离造成的距离影响很小。所以并不需要PPT里面所讲的这种几何补偿,而且在STM32中三角函数的计算量非常大,就算是换成快速三角函数,造成的计算误差,远远大于实际测量误差,补偿反而得不偿失。而且超声波也没有明显的偏移。PPT的作者可能并没有实际实现过。超声波也不需要装在正下方,装在支架的两边可以。因为正下方可是要放摄像头的。
2
超声波有的采用串口协议,我个人觉得串口协议的蛮好用,下面是程序截图,语句1意思是测出的数据是两个字节得到的,第一个字节左移八位,加上第二个字节。两者距离,单位是mm,笔者实测,超声波模块的精度很高。测量得到原始的ultra_distance,需要处理,不然得到的数据是上下抖动的。
3
所以下面这个不是很明显,还是可以看出跳动。通常有3种滤波算法:1.均值滤波2.低通滤波3.kalman滤波
4
笔者实测,第二三中效果差不多,且低通滤波更加易于实现,第一种的效果很差,那么我们来看一下低通滤波。
5
这个是最具工程性的,而且编程难度实际上很大。降落来讲,首先低于一个阈值就必须关闭电机,不然四周会在地面跳跃,不稳定;再就是从高处下落,更好地办法是开环的,慢慢的较低油门,就可以慢慢掉下来。比控制高度的方法效果更高;
注意事项
注意安全
上一篇:多轴加工-朝向直线介绍
下一篇:x轴y轴z轴代表的方向是什么