APP下载

基于动态阈值的寻迹车控制算法的研究

2012-09-19李富强唐坚强于泽宽

电子设计工程 2012年1期
关键词:白线巡线绿地

李 涛,李富强,唐坚强,于泽宽

(中国矿业大学 徐海学院,江苏 徐州 221008)

设计与制作智能寻迹车是一种入门门槛低、发展空间大、涵盖知识广的活动。在机器人游中国的比赛中,由于场地复杂,对智能寻迹车的稳定性是个很高的挑战。能完成比赛的往往是少数,能取得高分的更是凤毛麟角,究其原因多是因为程序的鲁棒性不强,未能完全考虑比赛情况所致。笔者对智能寻迹车的控制算法做了很多创造性的改进,实践证明这些改进很好地改善智能寻迹车的稳定性,非常具有借鉴性。

1 动态阈值

传统的灰度传感器的使用多是预设一个阈值,以返回的灰度值与阈值的大小关系来确定检测到的是白还是灰。这种做法的好处是简单、高效,但对环境要求很高,几乎不能有附加光源干扰而且环境光线不同阈值也要人为调整。基于此许多人提出了种种由控制器自行调整阈值的算法即动态阈值的算法。然而这些算法有些过于局限有些则过于复杂,并不能很好的适用于智能小车。于是在准备“机器人游中国”项目过程中提出了3种适于智能小车的动态阈值算法,并且实践证明这些算法可以很好的适应比赛场地而且具有明显的抗干扰性。

1.1 具有记忆特性的动态阈值算法

在函数之前,为每一个传感器配套建立了3个变量,一个白线变量、1个绿地变量、1个阈值变量。

图1 系统流程图Fig.1 Flow chart of the system

本算法的过程为:先人工给一个起始的阈值,然后让机器人采集灰度值,当碰到绿地时存入绿地变量,碰到白线时存入白线变量。当绿地变量和白线变量都有值时开始自己运算阈值。在存入绿地变量之前与当前值比较,假如大于当前值则存入,小于则丢弃。这样绿地变量存入的灰度值永远都是过去识别到的绿地值中最高的。白线值采用相反的方式,保证白线变量存入的灰度值永远都是过去识别到的白线值中最低的。假设到任意时刻t为止,共识别到n个白线值、m个绿地值,则:

下一时刻的阈值为最终白线值与最终绿地值的平均值。随着小车在场地上的运动,这个算法统计到的白线值与绿地值越来越多,从中筛选出来的最值越来越接近这个场地的最值,得到的阈值就越来越可靠。

核心代码:

这个算法适用于本场地上的所有地点的绿地值均超不过任何一点的白线值的情况。

1.2 具有跟踪特性的动态阈值算法

在函数之前,为每一个传感器配套建立了两个变量,一个绿地变量、一个阈值变量。

本算法的过程为:先赋一个初始的阈值,在小车运行过程中不断更新绿地变量的值,并且根据本次绿地值与上次绿地值的差值调整阈值,形象地说就是水涨船高。

若AD转换速度过快,则可能发生这样的情况:从绿地到白线的过程中灰度值是渐变的而不是突变的,导致阈值被逐渐抬到了高于白线值的区域而无法识别白线。解决办法是:令阈值曲线的变化率明显小于绿地曲线。如图2所示,阈值曲线变化率=灰度曲线变化率/2,这样当绿地值在较小范围内波动的话阈值仍可以很好地跟踪,但在大范围波动的话绿地值曲线与阈值曲线就会有交点,在程序上反映为返回值大于阈值,即可识别绿地与白线。

图2 灰度值关于阈值的变化曲线Fig.2 Gray value of threshold change curves

这个算法适用于传感器在场地的任意地点绿地值变化不大的情况。

1.3 具有强抗干扰特性的动态阈值算法

这个算法适用于传感器数量较多的情况下,对传感器依赖程度低、适应性及抗干扰性极强。对灰度传感器的唯一要求是:负责巡线的灰度传感器是一样的,而且没有损坏。

本算法的过程为:在场地的任何一个地点,先考虑一组传感器有些踩到白线另一些踩在绿地上的情况:采集一组中的所有n个传感器的灰度值,取一个最高值暂认为是白线,取一个最低值暂认为是绿地。假如发现靠近最高值的数据与靠近最低值的数据之间有明显的分界区间,就认为靠近最高值的数据均为白线值,靠近最低值的数据均为绿地值。假如采集到的8个数据没有明显分界区,也就是说都差不多,就认为现在均为绿地值或均为白线值,如图3所示。

现考虑返回来的8个灰度值全部接近,即没有明显的分界区,则认为当前全部踩到白线或全部踩到绿地。对于如何辨别这两种情况,课题组针对游中国的场地设计了一种特殊的方式:遍观游中国的场地,没有可以让车子前后两侧的传感器同时全部踩到白线的地方,所以,假如车子一侧的传感器返回值全部接近,则此时判断另一侧的传感器,假如它踩到线则可以通过它分析出的白线值与绿地值来判断两侧的所有传感器的踩线情况,因为此时车前侧和后侧挨得很近,认为这两侧的光线环境是一样的。假如前后两侧的灰度值都互相接近,则认为此时两侧都踩在绿地上,因为不可能有所有的传感器全部踩在白线上的情况。

图3 不同传感器的灰度值Fig.3 Gray value of different sensors

假如这些传感器的白线值不非常靠近,但与绿地值的差值是差不多一样的可以对某些传感器返回的灰度值做一些预处理(如可以先把其中一个传感器读取的灰度值加200在做分析)。使之与其他传感器特性一致。如果某些传感器差值不一样但是白、绿的比值是差不多的可以乘以一个修正系数(如可以先把一个传感器读取的灰度值乘以2再分析)。总之就是保证在做分析之前用软件和硬件的方法保证所有的灰度值在踩到白线的值是靠近的,绿地值也是靠近的,这样才能进行准确的统计学上的分析。

2 转弯控制

在所有有关转弯的控制中,依靠时间去控制转弯的算法最为高效但也最不可靠,所以课题组在设计之初就采用了完全依靠传感器来确定转弯开始与终止的策略。但是在课题组所了解的算法中有些是因为可靠性高但是速度比较慢,有些则是速度较快但转弯后晃动明显,笔者取各家之所长自己编写了简洁高效、快速稳定的转弯算法:

核心代码:

这个算法的原理是先以很快的速度转弯,直到最左(右)端传感器检测到白线,再以很慢的速度转弯直到指定的传感器检测到白线。这样,当转弯结束时,电机停留在一个很小的转速上,晃动现象不明显,保证了之后的巡线可以快速地进入到稳定状态(可以看到上面的代码中转弯的前期是以70%的高速旋转,而后期则是25%的低速)。

3 停车控制

这个刹车的原理是调用刹车函数时先去掉电机两端电压一小段时间,使电机电枢电流下降,然后再读取刹车之前最后一个时刻的速度参数,再给一个相反的速度参数,这时电机还来不及反转但是电枢上会有一个很强的反向转矩,产生近似抱死的效果,然后很快松开以保护电机和驱动,考虑到此时车速已经降了下来所以接下来以1/2的速度继续反向给电压,很快电机就会开始反转,尽量在刚刚反转的时刻(此时速度为零)撤掉电压,电机就会停止,也就是车子停下来。实践证明这个算法的效果非常明显,刹车距离大大缩短,唯一的缺点就是刹车时点头现象比较明显。

核心代码:

4 出线自动找回技术

实践证明本算法虽然功能简单但效果非常明显,它使比赛的成功率有了质的改善。出线找回的基本原理是检测到前方没有线时自动退回,另外算法中还设计了一个开关变量back,当back写1的时候打开出线找回功能,当back写0时关闭这个功能。这样做主要是为了区别上桥与上天台时因为车头突然抬起而检测不到白线与因巡线出界而检测不到白线的情况。具体做法是当出界前最后一次检测到白线是在两端时认为这是巡线出界,当出界前最后检测到白线的传感器不是两端的时就认为这是车头突然抬起。

核心代码:

其中FlagFB为行驶方向标志位,num(char i)为查询指定传感器组的踩白线的传感器个数的函数。Seconds()为虚拟系统时钟查询函数。

另外,函数中关于time的改动是为了在调用延时巡线出界时,要把出界找回的时间从巡线时间里剔除而做的处理。这样便使出界找回的时间不算在正确巡线的时间里。

5 结束语

通过以上算法与控制策略上的改良,小车的运行稳定性有了明显提升,比赛完成率大大提高,且在高速与低速状态下都有不错的表现。重要的是算法上的改良为小车的调试工作带来了极大的方便,所要调整的参数大大减少,队员可以把更多的精力放在比赛策略和路线选择上,这对比赛是非常重要的。

[1]叶炜垚,王春香,杨明,等.虚拟障碍物的移动机器人路径规划方法[J].机器人,2011,33(3):273-278.

YE Wei-yao,WANG Chun-xiang,YANG Ming,et al.Virtual obstacles based path planning for mobile robots[J].Robot,2011,33(3):273-278.

[2]谭浩强.C语言程序设计[M].3版.北京:清华大学出版社,2005.

[3]顾斌.基于单片机的机器人视觉传感系统的硬件设计[J].现代农业科学,2008,15(5):53-59.

GU Bin.Based on SCM’s robot vision sensor system’s hardware design[J].Modern Agricultural Sciences,2008,15(5):53-59.

[4]陈应松,肖世德,王文玺,等.自主导航移动机器人视觉系统的一种标定方法[J].计算机工程与运用,2009,45(23):190-199.

CHEN Ying-song,XIAO Shi-de,WANG Wen-xi,et al.Method of robot vision system calibration on autonomous navigation[J].Computer Engineering and Applications,2009, 45(23):190-199.

[5]蔡涛,段善旭,李德华.视觉基础矩阵估计方法的性能比较与分析 [J].计算机科学,2009,36(12):243-289.

CAI Tao,DUAN Shan-xu,LI De-hua.Performance comparison and analysis of fundamental matrix estimating methods for computer vision applications[J].Computer Science,2009,36(12):243-289.

[6]Olivier D F,Steve M.Motion from point matches:Multiplicity of solutions[J].Intermational Journal of Computer Vision,1990(4):225-246.

[7]Luong Q T,Olivier D F.The fundamental matrix:theory,algorithms,and stability analysis[J].International Journal of Computer Vision,1996(17):43-75.

[8]Seiler A, Balendran V, Sivayoganathan K,et al.Reverse engineering from uni-directional CMM scan data[J].The International Journal of Advanced Manufacturing Technology,1996,11(4):276-284.

猜你喜欢

白线巡线绿地
春光美巡线忙
青丝与白线
出没风波里,踏浪去巡线
老城区绿地更新策略——以北京西城区绿地提升为例
在失败中奋进
白线
无人机在电力巡线中的应用模式研究
驻马店市绿地内草坪改造及养护管理
青丘白线线
走进绿地