DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 103|回复: 0
打印 上一主题 下一主题

基于面阵CCD的赛道参数检测方法

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:21:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  前言  本文提出一种使用面阵CCD并且能够有效利用S12单片机内部硬件资源的路径参数检测方法。普通CCD图像传感器的工作电压一般为12V,输出NTSC或者PAL制式的模拟视频信号。利用S12内部的AD转换器,配合从视频信号中分离出的同步信号,可直接将图像信号采集到单片机内部RAM中,然后通过软件对图像信息进行处理,得到路径各种参数。  技术难点与解决方法:  直接利用S12单片机中的AD采集视频图像,存在着采集速度、存储数据空间、处理速度、工作电压以及同步信号分离等方面的技术难点。下面就这些问题及其解决方法进行讨论。  采集速度  跑道都是由直线和圆弧组成,检测车模前方一段路线参数,只需要得到中心线上3"5个点的位置信息就可以估算出路径参数(位置、方向、曲率等)。这些点的位置,通过图像中若干行信息就可以检测出来(如图1所示)。因此,所需检测图像应该是水平分辨率高、垂直分辨率低。

图1 部分赛道形状,赛道中心线检测位置  将S12单片机采集的图像分辨率特点,与赛道检测对图像分辨率的要求进行对比,可以发现,在安装CCD摄像头的时候,只要将它旋转90度,输出的图像信息也相应旋转90度(如图2所示)。这样一来,S12中的AD转换器采集的图像信息,水平分辨率与垂直分辨率就会互换,原来水平分辨率低、垂直分辨率高的图像,就会变成水平分辨率高、垂直分辨率低的实际图像,正好满足道路参数检测的要求。

图2 赛道图像以及旋转90度后的赛道图像  此外,我们还可以通过让S12适当超频运行、降低AD转换器精度等方式,提高AD转换器的速度。  图像存储空间:  由于将图像水平旋转了90度,需要将图像数据进行存储,在整幅图像的基础上计算出路径水平信息。S12内部有8K字节的RAM空间。如果存储300*48分辨率图像则不够,但可以存储若干幅75*24的低分辨率图像数据。从低分辨率图像所得到的路径参数,其精度仍可以满足车模控制的需要。一般情况下,只需要两块图像存储空间即可,一块作为采集图像的存储空间,另外一块作为处理缓冲区。
                          
                       
                          
                                  图像信息处理速度:  如果采用75*24分辨率的图像,每隔4行采集一行图像信息,图像采集所占用的CPU时间不会超过1/4。因此,大部分的CPU工作时间可以用于图像处理以及运动控制。  由于采集到的图像由白色背景和黑色中心线组成,所以检测每一行路径中心线位置可以通过简单的阈值比较的方式计算出来。在此基础上,还可以通过参数拟合获取道路位置、方向以及曲率等参数。另外,通过适当的动态阈值的方法,可以提高算法的稳定性。核心算法如果处理相对简单,可通过适当的优化方法,在图像采集周期20毫秒内计算出结果,达到实时图像处理的要求。如果算法比较复杂,可以将核心算法采用汇编语言完成,以提高效率,配合CPU超频运行方法,保证算法需要时间小于20毫秒。  CCD器件工作电压:  CCD器件工作电压需要在12V左右。为此,需要在系统电路设计中,增加独立12V电源模块。或者也可以采用斩波升压的方式获得12V电压,具体电路后面给出。  视频同步信息分离:  为了采集图像信息,CPU需要根据行、场同步信号启动AD转换器,采集稳定的图像。由于视频信号的变化很快,所以需要另外设计同步分离电路。在本方案中,使用了LM1881视频同步分离集成块,获取视频同步信号,将此同步信号连到单片机的中断输入端口。  系统设计与实验结果  硬件设计  基于S12单片机采集视频图像电路系统框图如图3。

图3 单片机采集图像系统框图  其中包括有S12单片机最小系统、同步分离电路、5V稳压电路、12V斩波升压电路等。  其中S12单片机端口资源配置如下:  1) AD 输入端口PAD02 :输入视频模拟信号;  2) 外部中断口IRQ :输入视频行同步信号;  3) 数字IO口 PM1 :输入奇偶场信号;  4) PWM输出端口:PWM2 12V斩波升压控制信号;  部分系统电路图见图4、5。

图4 12V斩波升压电路

  图5 同步信号分离电路  图5中,只需要将行同步信号和奇偶场信号输入到单片机,视频信号不经过电容隔直直接输入到单片机的AD转换口。
                          
                       
                          
                                  软件设计  软件设计主要包括由图像采集模块,图像处理模块以及通讯模块。  其中图像采集模块的主要功能包括:  1)初始化模块  2)外部中断响应模块  3)AD 转换中断响应模块  图像处理模块主要完成采集图像中的黑色中心线参数的计算。实验中,我们采用了简单的动态阈值比较的方法,得到每一行的中心线的水平位置,然后通过参数拟合得到中心线在图像坐标系中的位置、方向以及曲率。  为了能够在PC上显示出单片机采集的图像信息,软件中还包括了串口通讯模块,通过软件将内存中的图像数据传输到微机进行显示。  实验结果:  下面是两幅S12单片机采集到并通过串口传送到微机显示的前方直线路径中心线的图像,它们的分辨率为72 * 24。实验证明通过简单的动态阈值比较的方式,即可以将每行中心线位置计算出来,整个处理时间约为8毫秒左右。  实验结果证明,上述CCD检测方法可以有效的获取路径图像信息,并计算出其中的参数。

图6 赛道中心线图像:垂直位置

图7 赛道中心线图像: 倾斜位置  结语  从实验结果中可以看出,通过合理放置CCD摄像头,并且充分利用S12单片机内部的硬件资源,可以获得满足路径参数检测需要的图形数据,进而可以通过图像处理算法,得到路径参数。  当然,利用CCD检测路径参数也存在一些缺点:比如占用RAM资源比较多、道路信息检测速率受到限制(CCD每秒产生50帧图像)、检测有延时(1/50秒)等。  另外,除了使用单一CCD摄像头检测路径参数之外,还可以采用光电管与CCD相结合的方式,发挥各自的优点。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-9-21 16:43 , 耗时 0.082740 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表