|
楼主 |
发表于 2016-2-5 17:52:35
|
显示全部楼层
+ |5 R" S/ m- M' h8 G) C2 q程序的主要思路是用反射光强度的差来赋给移动转向的幅度,我这里是用的反射光强度减去40,,我这边测量出来的黑线和白线的反射光强度分别是8的58,平常我的习惯是取两个数的平均值,也就是33,之所以用40是为了让车辆在快速行驶中突然遇到垂直黑线(直角转弯)的时候,能够更大幅度的进行拐弯,防止车辆还没来得及拐弯就冲过黑线。我的反射光强度减去40的值乘以了一个S和2,其中的S是一个辅助转向的变量。
/ J# W. D1 |0 p* J1 B7 \$ V
* I+ s' c0 O) k; Z, a7 `我把寻线的图按照反射光强度分成了两个区域,反射光强度14-53以内是快速小幅度寻线区(A区),以外是低速大幅度寻线区(B区)
8 c" }, N/ r7 w6 y: ]当光感处于A区的时候,S设为0.8,转向幅度就是(当前反射光强度-40)*0.8*2,这是一个比较稳定的幅度,另外X开始增加,速度为每循环一次增加0.1,这样缓慢加速是为了小车在突然进入A区的时候,不会因为瞬间的速度过快而再次冲入B区,造成车辆一直大幅度摇摆。
5 m$ V8 K- Q/ Y# z当光感处于B区的时候,S以每循环一次就增加0.1的速度递增,使车辆的转向幅度迅速增大,但是增大速度过快的话会造成车辆在本该高速寻线的时候如果扫到B区,会以很大的幅度进行回转,造成车辆大幅度摇摆。X会从当前速度开始递减,直到X=30,其实这个递减的必要性不是特别大,直接将X写成30也没问题。程序差不多就这么个情况啦。
9 C! z' K# @6 b$ m$ L+ }, \ |
|