赞
踩
智能车摄像头组中最重要的就是图像处理了,这里面的图像处理包括很多方面,比如十字如何处理,弯道如何处理,起跑线,障碍等等问题,接下来我要讲的就是障碍处理方法。
首先我们先描述一下障碍的形状,在智能车竞赛中障碍是一个长方形,距离边界有5CM的距离,这样在图像上显示出来时候就是(图1)所显示的样子
在这里面我们可以看到中线有明显的偏移,右边界也有明显的跳变,那么这个跳变我要怎么去提取呢,我第一步用的就是中心线的方差,通过计算方差来判断是否能够进入障碍程序,当中线的方差满足障碍条件后进入障碍处理程序,但是往往一个判断是不够准确的,进入这一个条件后我去判断边界的连续性,就是通过边界的跳变去查找,程序上如何实现呢,最简单的就是这样一句话。
if(cha1>=2&&abs(cha3-cha1)<=2&&abs(cha2-cha3)<=2)
在这里面cha1,cha2,cha3的定义呢就是
- cha1=right_line[1][i-3]-right_line[1][i];
- cha2=right_line[1][i-3]-right_line[1][i+1];
- cha3=right_line[1][i-3]-right_line[1][i+2];
这里的定义就顾名思义了,就是判断连续点之间的差分,进而可以判断是否有跳变。判断完跳变之后呢还是不能达到100%的准确率。接下来在做的判断就是找到中间这个黑色的障碍,通常这个障碍所占的位置比较大,而且在中线与右边界的中间部分向上搜索一定会有黑色的障碍出现,那么这个时候就可以判断出来这个位置是障碍了,这段程序呢也很简单,就判断黑白就可以了。
当障碍处理完成后要怎么做呢,接下来就是控制的问题,在我这里控制就是将从障碍开始以后所有的中线都移向左边,这样就可以控制小车很轻松的避开障碍了。以上说的是障碍在赛道右侧的时候,如果在赛道左侧则同理就能得出。并且起跑线处理方法也类似。如果出现剐蹭现象只需改变一下舵机P值就可以得到很好地改善效果了。具体程序见评论中的链接,因为纯属自己编写的程序所以不是免费下载的。如果有其他需求大家可以联系我继续写一些图像处理方法。小车的效果可以在本人QQ空间中观看,有视频。 联系方式见评论。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。