|
楼主 |
发表于 2016-2-5 17:52:35
|
显示全部楼层
: i1 S, l5 o1 K9 E3 p; v; d程序的主要思路是用反射光强度的差来赋给移动转向的幅度,我这里是用的反射光强度减去40,,我这边测量出来的黑线和白线的反射光强度分别是8的58,平常我的习惯是取两个数的平均值,也就是33,之所以用40是为了让车辆在快速行驶中突然遇到垂直黑线(直角转弯)的时候,能够更大幅度的进行拐弯,防止车辆还没来得及拐弯就冲过黑线。我的反射光强度减去40的值乘以了一个S和2,其中的S是一个辅助转向的变量。% q0 O4 w' [# w, j; s
% u, X% W' g0 G3 S# m+ ~我把寻线的图按照反射光强度分成了两个区域,反射光强度14-53以内是快速小幅度寻线区(A区),以外是低速大幅度寻线区(B区)6 V+ c7 F/ |# i% {# E4 e3 D% w
当光感处于A区的时候,S设为0.8,转向幅度就是(当前反射光强度-40)*0.8*2,这是一个比较稳定的幅度,另外X开始增加,速度为每循环一次增加0.1,这样缓慢加速是为了小车在突然进入A区的时候,不会因为瞬间的速度过快而再次冲入B区,造成车辆一直大幅度摇摆。. P l6 r; u$ h( M8 x
当光感处于B区的时候,S以每循环一次就增加0.1的速度递增,使车辆的转向幅度迅速增大,但是增大速度过快的话会造成车辆在本该高速寻线的时候如果扫到B区,会以很大的幅度进行回转,造成车辆大幅度摇摆。X会从当前速度开始递减,直到X=30,其实这个递减的必要性不是特别大,直接将X写成30也没问题。程序差不多就这么个情况啦。& Q3 k m4 { C/ T4 q% H
|
|