飞思卡尔智能车(摄像头组)速度方案

上次小W讲了摄像头数据矫正方案,这次小W来谈一谈直道控制方案。欢迎各位看官批评指正。

下面小W做几个辅助用的点,如下图(图1)所示。其中橙色区域为小车的投影,然后把小车的最前端的最左边命名为车左,最右边命名为车右。这样方便以后的讲解。

图1

下一步我们在赛道上画上两条平行于直道边界的线,小W称之为高速通道(如图2)。

我们把尺子垂直直道边界,放在某个铅笔做的印记上,把黑的那端放在车右(如图2),这样我们就可以知道小车的车右对应摄像头采集的数据数组中的哪一列,记录下来。然后再把尺子黑端放在车左(如图3),记录数据。这样我们就可以知道小车的车左和车右对应我们所使用的数据中的哪一行中的哪一列了,即知道了小车的车左车右分别对应二维数组中的哪一个点。

然后持小车不动,移动尺子至下一个刻度,使尺子黑端最左边(因为刻度在右边...)与高速通道右边界重合,然后在记录下此时尺子黑端最左所对应的数组中的点。然后是高速通道左边界。直至记录完最远的点,前瞻对应的刻度。

图2 图3

通过上述步骤,我们就可以知道小车走直线车左和车右将会经过的点了。

然后重头戏来了,我们检测数据数组中高速通道边界所对应的点是否为黑色,如果40行(假设只用40行数据)中都是白色的,那么小车就可以以最快的速度行驶了,若第10行中高速通道有黑点,那么就要准备转弯了。通过最近黑点的行数可以确定到底需要多大的速度(记住是速度,而不是占空比,占空比是确定加速度)。至于如何转弯,由于小w退赛了,就没有去想了。

希望对大家有所帮助。

注:此法对摄像头的依赖性极强,一定要保证摄像头装同一品牌装同一位置。至于优化方法,就交给各位了。

经验分享 程序员 微信小程序 职场和发展