|
本帖最后由 xd62215135 于 2017-8-1 00:19 编辑
" Q- y( n1 y" h$ G6 l- S
* O+ y, I4 {4 j9 O- [发现每回都是快截止了才发,这回教上回的算法做了一些改进。5 Q- l" T1 _8 G
上回1.0版不太稳定,一般在±0.5左右。一直在做改进,也参考了大家的算法。4 w* O8 @5 O. q- ]) L& C
如果单用P一般在6CM左右,但陀螺仪始终为0,不得其解,后来又看几遍陀螺小子的算法,发现直接用陀螺角度不够精度,假设右偏0.4,角度实际显示为0,不会矫正。另外P只是矫正车头,但车在偏的过程中所偏离中心的距离不一定会有补偿,所以即使用P,车头是正的,但路线还是斜的(个人分析,不一定对),如果加大P,会在一定程度上进行补偿,所以这也是为什么震荡小误差大,震荡大,误差可能还会变小
3 _1 \1 [5 i6 e) h) Q- |: o后来参考陀螺小子改为用速率,加大精度,并计算偏离距离作为补偿量
' ]3 |1 Q# V, m
7 x9 l6 e+ H9 @$ E2 `
先是算了下平均速率,这个算是陀螺小子简化版吧,之后速率*时间计算出偏移角度,在用角度算出偏移距离,依旧只用了匀加速,减速懒得弄了。这回速度降到70了
匀加速
偏离
角度
0 x) i5 T; H, u8 B2 ]6 w4 p0 S' }% I& r& i5 f$ a) z+ C- k: P4 f+ Z
严格来讲这个版本依旧有毛病,有的时候前2米误差还在±1.5MM,之后会突然发生大角度旋转,也不知道为什么,还是功力不够呀。) _3 e6 R+ D$ S6 ^0 D$ B7 @- B1 `: s
题外话,弄这个是打算明年参加FLL做准备(如果参加的话)。但其实我从来认为车不走直线是什么大问题,只要每回偏的角度一定,那就是直线,加个补偿量就好了,只要稳定就足够了
9 d- b, ?* J4 ^! Lhttp://v.youku.com/v_show/id_XMjkzNjUzNTE0MA2 ^3 @/ Z. `1 p* U0 q6 p0 M
# @$ v9 ?1 V$ i+ D n9 [
|
|