基于CCD摄像头智能车分段PID控制算法设计

2011-03-23 20:13:32来源: 电子设计工程
  自动寻迹智能车涉及到当前高技术领域内的许多先进技术,其中最主要的是传感技术、路径规划和运动控制。本课题是以飞思卡尔智能车竞赛为背景,以单片机作为核心控制单元,以摄像头作为路径识别传感器,以直流电机作为小车的驱动装置,以舵机控制小车转向。车模竞赛的赛道是一个具有特定几何尺寸约束、摩擦系数及光学特性的KT板,其中心贴有对可见光及不可见光均有较强吸收特性的黑色条带作为引导线,宽度为2.5 cm。在行驶过程中,系统通过摄像头获取前方赛道的图像数据,同时通过测速传感器实时获取智能车的速度,采用路径搜索算法进行寻线判断和速度分析,然后作控制决策,控制转向舵机和直流驱动电机工作。智能车通过实时对自身运动速度及方向等进行调整来“沿”赛道快速行驶。本文主要介绍摄像头通过提取赛道黑线信息交予单片机处理,通过单片机输出控制信号控制舵机转向来控制车模的转向,从而很好的自动循迹。

  1 总体软硬件结构及思路

  此智能车辆定位系统用摄像头拍摄车辆前方的赛道,通过MC9S12XS128采样视频信号,获得图像数据。然后用合适的算法,如跟踪边缘检测算法,分析图像数据,提取目标指引线。然后,系统根据目标指引线的位置信息,对舵机和电机施以合适的控制。本智能车运动系统的结构图如图1所示。

智能车运动系统的结构图

  因为系统是一个有机的整体,所以需配合好系统的摄像头、控制单片机、电机(包括直流伺服电动机、光电编码器)、舵机和辅助电路(电源板、电机驱动板)等各个部分。舵机是实时控制车模的转向,是比赛快速性和稳定性的关键,舵机控制有很多的控制算法,如:PID经典控制算法、模糊算法、人工智能算法等。

  2 系统程序总体控制流程

  系统的基本软件流程是:首先,对各功能模块和控制参数进行初始化;然后,通过图像采集模块获取前方赛道的图像数据,同时通过速度传感器模块获取赛车的速度。采用PID对舵机进行反馈控制。另外根据检测到的速度,结合速度控制策略,对赛车速度不断进行适当调整,使赛车在符合比赛规则的前提下,沿赛道快速行驶。系统的基本软件结构流程图,如图2所示。

基本软件结构流程图

  系统的软件要求控制的准确性、稳定性。采样提取黑线是控制输入量的基础,要求采样的精确稳定。输入量给舵机以后又要求舵机输出的快速相应性、稳定性和准确性。经过多次实验及近一个学期的调车经验,选用了并改进了经典的PID控制器对车模的舵机进行控制调节。

  3 图像识别

  用CCD摄像头采集车模前方一定距离内的黑线,从中提取相关量,用来控制舵机的转向,实现智能车的自动循迹。由于单片机数据处理能力和速度有限,不能在短短的20 ms时间内处理整场图像。本系统设置摄像头前瞻为1.2 m。在不影响道路检测精度需要的前提下,本系统采用隔行采集来压缩图像数据,即相隔不同的有效行采集一行数据(近处相隔的少,远处相隔的多),一共可采集 44行数据。此外为了进一步提高A/D转换的速度,本系统还适当地将XS12的CPU超频运行并且设置A/D转换器的精度为8位,这样每行能采样到67个点,形成了一个面阵,而黑线在其中占据了某些点位。由于我们一行采集67个点,故中间值为33。图像是智能车的底层,图像的采集正确与否在以后的控制中尤为重要,故一定要确保采集回来的黑线的真实有效性,并且要增加滤波算法,比如在有效前瞻很小的时候,本来只要判断出黑线的转向即可,给舵机以极限转角可以让车急转弯。但是有效行很少的时候,如果不用特殊的滤波方法,只要有一行的黑线提错,就可能让小车转错,至于转出界。

  4 分段PID控制

  4.1 图像信息提取量

  从采集回来的图像中提取控制量来控制舵机的转向,实现智能车的自动循迹。本系统采用黑线偏移量even_diff和黑线某段斜率 D_diff-erent对舵机进行控制,可称为PD控制器。由于车模是个随动系统,在摄像头1.2 m前瞻内覆盖的黑线不一定有设置的44行,特别是前方的弯特别急的时候,在摄像头前瞻视角范围内覆盖的黑线会特别少,比如13行或13行以下。根据这个特点,可设置一个有效前瞻量valid_line作为对前方的弯的平缓程度的反应。

  把每一行的黑线位置值与中间值作差,得到该行的偏移量,中间值33位赛道的中心位置点,偏移量表示在车模的视角下黑线处于赛道中的位置值。把每一行的偏移量相加之和除以摄像头前瞻范围内的提取出的黑线行数,得到黑线相对于车模中心的整体偏移量even_diff,用有效行内的远处某些行与近处某些行(如前半场与后半场)偏移量之差得到有效行内的黑线斜率D_differen。

  这样,从一场的黑线位置数据中,系统提取了有效行valid_line、even_diff、D_different 3个量来对舵机进行控制。在实际情况中,D_different可以很灵活,因为前方黑线的斜率可以取不同段得到,可以根据实际要求得到不同段的斜率值,如速度快时可以适当的取距车较远处的黑线斜率,以实现超前控制。

  在智能车调试参数的时候,对这3个量的理解很是重要,具体来说,valid_line表征车模的有效前瞻,即看得有多远,对于智能车在道路上行驶,看得远说明黑线都在前方,看不远说明智能车前方的黑线已经偏左或者偏右,而这个量的大小正好可以表征弯的平缓与急切。另外,看得远则摄像头采集的黑线多,系统信息量大,那么怎么处理这些大量的信息为我们所用就变得很关键,如看得1.2 m都能看见,说明小车必然在长直道上,不然也是小S弯,稍作处理就可以过滤掉小S弯了,让小车像都是在直道上跑;看得很近说明弯已经很急,这时候,只要能够判断出弯往那边拐就可以给舵机一个极值急拐。even_diff表征在某一个特定视野下,小车与黑线偏离的程度,这个量可以让智能车在某个特定视野下决定给舵机多大的转角。D_different则在有效前瞻远的时候尤为关键,因为它可以预判前方的弯,从而超前的转弯。

  

[1] [2]

关键字:智能车  自动循迹  图像识别  分段PID  舵机控制

编辑:鲁迪 引用地址:http://www.eeworld.com.cn/qcdz/2011/0323/article_3465.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
智能车
自动循迹
图像识别
分段PID
舵机控制

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved