2020.4.27
陀螺仪问题解决
先做线(杜邦线),用2s锂电池单独给陀螺仪供电后问题解决
- 每次转一圈的数据比较稳定,每转1080°陀螺仪若干数据之间的差不超过20
再次标定
由于陀螺仪数据稳定,需要再次标定,标定后角度经验证比较准确:
- 每转三圈读取的角度值在1080°±3°之间浮动
角度标准不同后,还需要整体重新标定,结果图示如下:
验证正y轴:
- y方向行进约 1300 mm,x方向偏移量约为 0.7 mm
验证假x轴:
- x方向行进约 1400 mm,y方向偏移量约为 10 mm
验证正y轴转为假x轴后沿正y轴走:
- 这里最终x方向偏移量约 4 mm
根据上图走假x轴的x、y位移数据 acrtan(10.04 / 1373)= 0.4189653°
又推车转角为 89.5257507°
89.5257507° + 0.4189653° = 89.944716° ≈ 90°
在这里再次验证了之前的结论
重复性误差
- 在这里我推车测试了8条不同的路径(左下角到右上角),并且把每条路径最终的x、y坐标都列了出来,横线代表8个值的平均值,由于条件有限无法知道精确的实际值,所以把平均值当作实际值。
- 结果发现,在推车直线距离大概 1.5 m的情况下,小车在x、y方向都可能存在5mm内的偏移
旋转误差
- 这里每次旋转 3 - 4 圈后回到起始点,来观察小车的定位误差情况
- 顺逆时针都测试了,发现顺时针坐标整体偏移了 5 mm,然而逆时针坐标整体偏移了约 20 mm
为何会有偏移?
由上图可以发现转三圈的角度值都是1080°左右,说明陀螺仪提供的角度数据没有问题
旋转算法matlab程序实现是否有问题?
我把程序中 alpha 和 L 的值都设为 0,再次转3圈看结果:
结论是与旋转算法无关,测试结果照样有十几到二十多毫米的偏移
(这里发现路径图中由于是随动中心,会绕中心转圈,是对的,之前是车的中心,所以路径图比较奇怪)
直行算法matlab程序实现是否有问题?**(由于在家标定时旋转角度方向变了,我改了一部分matlab代码,所以怀疑是不是这个有问题)
- 我把之前 Adams 的仿真理想数据带入现在的matlab程序,并且在程序里再次分别验证走正y轴,假x轴:正y轴的x方向偏移 0 mm;正x轴的y方向偏移 1.2 mm 比较理想,证明程序无误
综上,那就意味之标定的系数(8个)还是不准,那就再小心的标定一次
再再次标定
这次标定不一样,电脑不用放在车上了,标定也用蓝牙传数据(这周第一次整体标定电脑还是放在车上的);并且,走一个方向多次重复取平均值。
这一次标定效果如下:
验证正y轴:
- y方向行进约 1400 mm,x方向偏移量约为 0.25 mm
验证假x轴:(这次两边测得正好是90°,没办法每次都测的不一样,这个车有一边有问题)
- x方向行进约 1400 mm,y方向偏移量约为 1.293 mm
验证正y轴转为假x轴后沿正y轴走:
- 这里最终x方向偏移量约 4 mm,和这周第一次标定的效果
再次看看旋转的误差大小
- 旋转三圈回到起始点,依然会有 10 - 20 mm的坐标偏移
结论
考虑到标定时的车身的振动,旋转时车身的振动,自身操作使随动轮前后小幅度摇摆造成回程差等等的条件受到限制。
这一套系统的精度目前看来就是上述的研究结果。