摄像头组 华东理工Suprise队技术报告摄像头.docx

上传人:b****5 文档编号:29093359 上传时间:2023-07-20 格式:DOCX 页数:58 大小:1.02MB
下载 相关 举报
摄像头组 华东理工Suprise队技术报告摄像头.docx_第1页
第1页 / 共58页
摄像头组 华东理工Suprise队技术报告摄像头.docx_第2页
第2页 / 共58页
摄像头组 华东理工Suprise队技术报告摄像头.docx_第3页
第3页 / 共58页
摄像头组 华东理工Suprise队技术报告摄像头.docx_第4页
第4页 / 共58页
摄像头组 华东理工Suprise队技术报告摄像头.docx_第5页
第5页 / 共58页
点击查看更多>>
下载资源
资源描述

摄像头组 华东理工Suprise队技术报告摄像头.docx

《摄像头组 华东理工Suprise队技术报告摄像头.docx》由会员分享,可在线阅读,更多相关《摄像头组 华东理工Suprise队技术报告摄像头.docx(58页珍藏版)》请在冰豆网上搜索。

摄像头组 华东理工Suprise队技术报告摄像头.docx

摄像头组华东理工Suprise队技术报告摄像头

第七届全国大学生“飞思卡尔”杯

智能汽车邀请赛

技术报告

学校:

华东理工大学

队伍名称:

Suprise

参赛队员:

张泽瀚徐林赵钟

 

带队教师:

凌志浩杜红彬

 

论文使用授权的说明

本人完全了解第七届全国大学生“飞思卡尔”杯智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:

参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。

参赛队员签名:

带队教师签名:

日期:

 

摘要

本智能车以飞思卡尔公司的16位单片机MC9S12XS128B为核心控制器,利用CMOS视频传感器采集路况信息,配合传感器、电机、舵机、电池等组成的驱动电路进行信息处理,以达到路径识别的目的,控制模型车高速稳定地在跑道上行驶。

硬件电路部分主要采用BTS构成的H桥电路驱动直流电动机和舵机。

所选电压稳压芯片29302和LM2940,可使在7.2-8.3伏电池供电的条件下为系统的各功能模块提供稳定、可靠的工作电源,为智能车的稳定工作提供了有力的保证。

测速部分采用正交编码器和分频电路完成对速度的测量和反馈。

软件系统部分主要包括以下与路径识别系统相关模块的算法:

(1)CMOS视频传感器采集数据的处理模块算法;

(2)速度反馈以及用PID算法实现对即时速度的调节模块;(3)舵机调节模块算法;(4)基于上述三个模块的路径识别算法和起始线识别算法;(5)相应的调试函数。

本系统利用开发工具CodeWarrior进行编程开发,用BDM进行程序下载,利用串口传输的数据进行在线调试。

这些工具的使用,使得软件的设计编程和调试工作得到了保证。

通过一系列的调试,本系统基本实现了路径识别的功能,在实际的测试中,小车也比较好的完成循线行驶的任务。

 

关键字:

智能车,路径识别,PID,CMOS视频传感器,PWM

第一章引言

随着现代科技的飞速发展,人们对智能化的要求已越来越高,而智能化在汽车相关产业上的应用最典型的例子就是汽车电子行业,汽车的电子化程度则被看作是衡量现代汽车水平的重要标志。

同时,汽车生产商推出越来越智能的汽车,来满足各种各样的市场需求。

第七届“飞思卡尔”杯全国大学生智能汽车邀请赛就是在这个背景下举行的。

大赛组委会为各支参赛队伍提供智能车车模、MC9S12XS128开发板、可充电镉镍电池组和舵机。

参赛队伍需要学习并应用嵌入式软件开发工具Codewarrior进行在线开发和调试。

这个大赛的综合性很强,涵盖了控制、模式识别、传感、电子、电气、计算机和机械等多个学科交叉的科技创意性比赛[1]。

参赛队员需要在了解上述多学科知识的基础上,利用Codewarrior软件编程控制智能车对路径信息进行采集和处理,识别当前路径状况,进而控制舵机转相应的角度,驱动电机以合适的速度在跑道上行进。

本队制作的智能车以16位单片机MC9S12XS128B为控制系统核心,利用CMOS视频传感器采集路径信息,经过系统处理,识别当前路径情况,做出判断决策,从而给出相应的PWM信号,通过BTS构成的H桥电路驱动直流电机以合适的速度行驶,同时,控制舵机转出相应的角度。

本文先从总体上介绍了智能车的设计思想和方案论证,然后分别从机械、硬件、软件等方面的设计进行论述,重点介绍了芯片的选择和路径识别的方法,接着描述了智能车的制作及调试过程,其中包含本队在制作和调试过程中遇到的问题及其解决方法。

第二章总体方案概要说明

2.1设计思想

智能车主要由三个方面组成:

检测系统,控制决策系统,动力系统。

其中检测系统主要有两个选择:

红外反射式红外传感器和CMOS视频传感器。

控制决策系统采用大赛组委会提供的16位单片机MC9S12XS128作为主控芯片,动力系统主要控制舵机的转角和直流电机的转速。

整体的流程为,检测系统采集路径信息,经过控制决策系统分析和判断,由动力系统控制直流电机给出合适的转速,同时控制舵机给出合适的转角,从而控制智能车稳定、快速地行驶。

2.2传感器的选择

路径采集的传感器主要有两种:

红外反射式红外传感器和CMOS视频传感器。

根据上届比赛的经验,CMOS视频传感器比红外反射式红外传感器具有更好的前瞻性,利用这段前瞻的距离,有利于小车提前判断下一步的行驶路线和速度。

因此,本队的智能车决定以CMOS视频传感器为采集路径的基础传感器。

结合CMOS视频传感器,有两种方案可以选择。

方案一:

基于CMOS传感器的路径识别。

电荷藕合器件图像传感器CMOS(ChargeCoupledDevice),是使用一种高感光度的半导体材料制成,能把光线转变成电荷,再通过模数转换器芯片转换成数字信号。

CMOS由许多感光单位组成,通常以百万像素为单位。

当CMOS表面受到光线照射时,每个感光单位会将电荷反映在组件上,所有的感光单位所产生的信号加在一起,就构成了一幅完整的画面。

基于CMOS传感器的路径检测方法具有探测距离远的优势,能够尽可能早的感知前方的路径信息进行预判断,再现路径的真实信息。

而且,普通的CMOS传感器图像分辨率都在300线以上,它的分辨率远远大于光电管阵列的方法。

通过镜头,CMOS传感器可以将车模前方很远的道路图像映射到CMOS器件中,从而得到车模前方很大范围内的道路信息。

基于图像的道路参数识别,不仅可以识别道路的中心位置,同时还可以得到道路的方向、曲率等信息。

基于CMOS传感器,通过图像处理的方式得到路径信息,可以有效进行车模运动控制,提高车模的路径跟踪精度和运行速度。

但是,使用CMOS传感器的瓶颈是传感器具有20ms的固有延时,尽管它能体现出了模型车系统的前瞻性优势,但是20ms的固有延时会影响到小车对路面信息的精确控制。

方案二:

基于CMOS传感器和光电传感器的相互配合控制。

CMOS传感器具有探测距离远的优势,能够尽可能早的感知前方的路径信息,与光电传感器阵列配合使用,具有远近结合的优势,且具有较高的稳定性和可靠性。

但是本次大赛所要求的控制核心单片机MC9S12XS128,总线时钟最高25M,无法实现高级的图像算法和控制算法,且硬件电路复杂。

综合以上考虑,系统选择方案一,单纯地使用CMOS传感器来实现小车路径信息的检测。

第三章机械部分设计

3.1CMOS传感器的安装

CMOS传感器的安装分由以下几个部分组成:

传感器安装高度、传感器俯仰角,以及传感器的架设。

CMOS传感器的视野范围与该传感器的安装高度有关,在相同的俯仰角情况下镜头安装高度增大,传感器的视野范围也随之增大,小车的预瞄距离也会相应的增加。

从扩大视场角方面考虑,安装时可以适当增加镜头的安装高度。

但是,随着镜头的升高,图像会变得越模糊,特别是两边的引导黑线,可能会因此而漏掉图像信息。

所以,传感器也不能安装得太高。

传感器的俯仰角是镜头中心光轴与道路水平面的夹角,俯仰角越大,则采集到的路面信息距小车越接近,俯仰角越小,则传感器采集到的信息距离小车越远。

但是,当传感器采集到的路面信息距离模型车太近时,不能体现使用CMOS传感器的前瞻性;当传感器采集的路面信息距离模型车太远时,采集到的图像显得很模糊,而且很容易采集到场地外的干扰信息,同时可能由于采集到的信息太靠前,使模型车提前量太多而撞上引导线旁边的立柱。

图3.1为CMOS传感器的安装示意图。

图3.1CMOS传感器的安装

3.2CMOS传感器支架结构

CMOS传感器架设在模型车舵机后面正中央处,架在舵机后面而没架在保险杠上,可以在一定程度上防止因模型车冲出场地后对镜头的碰撞。

支架使用的是全铝合金的金属支架,使用螺丝固定在模型车的底板上。

这样,CMOS传感器和车模始终保持同步的运动方式,从而,智能车可以获得同步稳定的路径信息。

下图为CMOS传感器支架的安装实物图。

图3.2CMOS传感器支架的安装

3.3测速模块的安装

测速传感器使用的集成编码器对模型车进行测速,固定在模型车的后转轴附近,小车的速度以脉冲个数的形式通过编码器发送给主板,单片机根据速度反馈来调整电机速度的控制量,测速模块安装见图3.3。

图3.3测速模块安装

3.4舵机的安装

舵机通过一对连杆分别连接两前轮内侧固定点,通过两连杆在舵机转动力带动下的横向运动来控制两车轮的转向,我们采用最近流行的等臂立式舵机安装方法,提高了舵机响应速度,使舵机更加灵活。

具体安装示意图如下:

图3.4舵机安装示意图

3.5前轮倾角的调整

我们在调试中发现:

由于前轮轴和车轮之间的间隙较大,对车高速转向时的重心影响较大,会引起高速转向时车的转向不足。

而且这里又是规则中严禁改动的部分,所以为了尽可能降低转向舵机负载,我们对前轮的安装角度,即前轮定位进行了调整。

前轮定位的作用是保障汽车直线行驶的稳定性、转向轻便和减少轮胎的磨损。

前轮是转向轮,它的安装位置由主销内倾、主销后倾、前轮外倾和前轮前束等4个因素决定,反映了转向轮、主销和前轴等三者在车架上的位置关系。

主销内倾是指主销装在前轴略向内倾斜的角度,它的作用是使前轮自动回正。

内倾角度越大时前轮自动回正的作用就越强烈,但转向时也越费力,轮胎磨损增大;反之,内倾角度越小时前轮自动回正的作用就越弱。

我们没有对此参数进行调整。

主销后倾(Caster)是指主销装在前轴,上端略向后倾斜的角度。

它使车辆转弯时产生的离心力所形成的力矩方向与车轮偏转方向相反,迫使车轮偏转后自动恢复到原来的中间位置上。

由此,主销后倾角越大,车速越高,前轮稳定性也愈好。

主销内倾和主销后倾都有使汽车转向自动回正,保持直线行驶的功能。

不同之处是主销内倾的回正与车速无关,主销后倾的回正与车速有关,因此高速时后倾的回正作用大,低速时内倾的回正作用大。

由于智能车比赛赛道逐渐向复杂型,多弯的赛道发展,所以我们更多的要求提升赛车弯道性能,故此处我们采用前1后3的安装方式。

安装如下图:

图3.5主销后倾安装示意图

前轮外倾角(Camber)对赛车的转弯性能有直接影响,它的作用是提高前轮的转向安全性和转向操纵的轻便性。

前轮外倾角俗称“外八字”,如果车轮垂直地面一旦满载就易产生变形,可能引起车轮上部向内倾侧,导致车轮联接件损坏。

此处可根据实际情况,调整5°左右的外倾角。

所谓前束(Toe-out)是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。

前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。

前轮在滚动时,其惯性力会自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。

此处一般调整为0°前束。

在实际调试中,我们发现适当增大内倾角的确可以增大转弯时车轮和地面的接触面积,从而增大车轮和地面的摩擦程度,使车转向更灵活,减小因摩擦不够而引起的转向不足的情况。

3.6底盘高度和重心的调整

底盘适当降低,在可以过坡道的情况下,尽量降低底盘,从整体上降低车的重心,使车在转弯时可以更加稳定、快速。

此外智能车的电池占据了很大一部分重量,我们将电池后移将近2cm,将重心靠后增大了后轮抓地力。

3.7齿轮传动机构及后轮差速的调整

车模后轮采用玩具电机驱动,由邀请赛主办方提供。

齿轮传动机构对车模的驱动能力有很大的影响。

齿轮传动部分安装不恰当,会增大电机驱动后轮的负载;齿轮配合间隙过松则容易打坏齿轮,过紧则会增加传动阻力。

所以我们在电机安装过程中尽量使得传动齿轮轴保持平行,传动部分轻松、流畅,不存在卡壳或迟滞现象。

差速机构的作用是在车模转弯的时候,降低后轮与地面之间的滑动;并且还可以保证在轮胎抱死的情况下不会损害到电机。

差速器的调整中要注意滚珠轮盘间的间隙,过松过紧都会使差速器性能降低,转弯时阻力小的车轮会打滑,从而影响车模的过弯性能。

第四章系统硬件设计

硬件系统是整个智能车能够良好稳定运行的基础,选择不同的硬件,对系统的功能实现的影响是不同的。

尽管很多芯片都能实现同样的功能,但是,对于不同的系统而言,芯片不同,实现的效果就不一样。

有的芯片转换效率不够高,有的芯片散热效果不够好,或者某些芯片的输出不够稳定等等。

这些问题都需要结合自己所设计的系统,选择最佳的电器元件。

下面将本车的硬件系统分为不同的模块分别介绍如下。

4.1系统硬件总体结构

首先,对硬件系统结构进行全面的了解,图4.1列出硬件系统的总体结构图。

 

图4.1系统硬件总体框图

由上图可知,系统由一片MC9S12XS128作为主控制器,由电池经稳压后提供电,CMOS传感器和编码器由LM2940提供电源,电池直接驱动BTS7960,29302输出+6V电压供给舵机,CMOS传感器采集到数据后,直接传送给MCU。

上面只是从整体上介绍系统硬件总体结构,为了更详尽的了解系统各部分的功能和工作原理,下面将分别对各个模块进行分析。

4.2电源管理模块设计

电源模块为系统其他各个模块提供所需的电源。

设计中,除了需要考虑电压范围和电流容量等基本参数之外,还要在电源转换效率、降低噪声、防止干扰和电路简单等方案进行优化。

可靠的电源方案是整个硬件电路稳定可靠运行的基础。

全部硬件电路的电源由7.2V,2A/h的可充电镍镉电池提供。

由于电路中的不同电路模块所需要的工作电流容量各不相同,因此电源模块应该包含多个稳压电路,将充电电池电压转换成各个模块所需要的电压。

5V电压,给单片机、信号调理电路以及部分接口电路提供电源,电压要求稳定、噪声小,电流容量大于500mA。

6V电压,为舵机提供工作电压。

实际工作时,舵机所需要的工作电流一般在几十毫安左右,电压无需十分稳定。

7.2V电压。

这部分直接取自电池两端电压,主要为后轮电机驱动模块提供电源。

5.0V电压。

如果采用CMOS/CMOS图像传感器来进行道路检测,只需要5V工作电源。

编码器也采用这个电源作为工作电压,为了保证电压稳压效果好另用一稳压芯片保证芯片和摄像头电压稳定,见图4.2。

图4.2LM2940(5V)工作原理图

4.3直流电机驱动电路

用两片BTS7960构成的H桥芯片作为电机的驱动电路,通过4和8输出的PWM信号来控制电机。

如图4.4所示。

 

图4.4H桥工作原理图

为了更快的减速,我们考虑了利用电机的倒转进行减速的过程,也就是:

直流电机的反转刹车。

当智能车需要刹车的时候,可以适当的进行倒转,来达到快速减速的过程。

4.4转速测量电路

为了使得模型车能够平稳地沿着赛道运行,除了控制前轮转向外,还需要控制小车的车速,使模型车在急转弯时速度不至于过快而冲出赛道,同时也使小车在直线段时以较快的速度行驶。

所以要时刻把握当前小车的速度,并根据小车所处的位置来实时调整小车的速度。

通过速度检测,可以消除或降低电池电压、电机传动摩擦力、道路摩擦力等的影响,使得小车在赛道上运行得更精确。

图4.5测速

 

第五章软件设计

为了体现程序的系统性和连贯性,本设计把程序分成各个模块进行分别处理,而各模块也有相应的数据接口,方便其他模块调用,这样,系统条理显得清晰。

这些模块的设计与实现将在下面进行详细阐述。

5.1系统软件总体结构

该系统的软件结构主要分为:

系统初始化模块、对CMOS采集数据的处理模块、速度控制和反馈处理模块、路径识别模块(对电机和舵机的控制)等,再有为了便于系统的调试,本系统设计了相关的调试函数,主要包括串口和定时模块。

图5.1是本系统的总体结构图。

图5.1系统软件总体结构框图

由上图可知,本程序运行的开始,须进行对系统的初始化。

通过初始化的设置,系统才能按照预先的想法运行;接着,CMOS传感器采集数据,经过转换和相应处理,得出当前路径信息;同时,电机测速模块测得模型车当前的运行速度,反馈给系统;最后,路径识别系统综合利用当前路径信息和当前速度值作出相应的处理,控制电机和舵机以合适的方式运行。

5.2初始化模块

下面只介绍部分重要的初始化函数。

5.2.1时钟初始化

单片机的晶振是16MHz,MC9S12XS128在时钟初始化后可以通过锁相环将系统时钟系统时钟提高到80MHz,这里就用到了一些寄存器中的某些位,倍频公式如下:

公式1

其中,OSCCLK_VALUE——系统的外部晶振;

REFDV_VALUE——系统时钟分频系数,在初始化中,它的值为3;

SYNR_VALUE——倍频系数,它的值为3。

而SYNR=SYNR_VALUE,REFDV=REFDV_VALUE,SYNR、REFDV就是寄存器中的对应位。

5.2.2串口初始化

可以看到,不论8位、16位还是32位单片机的最小系统都是通过异步串行口与人沟通的。

使用串行通信接口SCI(SerialCommunicationInterface)通信是计算机与人对话最传统、最基本的方法,异步通信接口也成为通用异步接受器/发送器UART(UniversalAsynchronousReceiver/Tansmitter)。

为了便于调试,本系统利用串口通信接口SCI实现数据的传输。

串口部分程序主要是初始化各寄存器,其中包括设置波特率、数据格式、接受发送功能使能、设置接受模式等。

串口初始化函数:

SCI_Init(ucharBUS_CLK,unsignedlongBR),它有两个输入变量,其中BUS_CLK是系统的时钟频率,BR为波特率。

通过此函数可直接设置串口的时钟频率、波特率[5]。

5.2.3PWM初始化

PWM(PulseWidthModulation)即脉宽调制,脉宽调制波是一种可用程序来控制波形占空比、周期、相位的波形。

它在电动机驱动、D/A变换等场合有着广泛的应用[6]。

PWM模块特点:

8个带周期占空比可程控的PWM独立通道

4个可程控选择的时钟源

每个PWM通道有专用的计数器

PWM每个通道脉冲极性可以选择

每个PWM通道可使能/禁止

周期和占空比双缓冲

每个通道有中心对齐和边缘对齐方式

分辨率:

8位(8通道),16位(4通道)

带中断功能的紧急切断

PWM在本系统中主要用于驱动两个伺服电机,一个是电机,另一个是舵机,而控制这两个电机的PWM信号是经过路径识别和系统决策后给出的,这样就能实现小车的循线跑。

图5.2是PWM初始化程序流程图。

图5.2PWM初始化程序流程图

5.3路径识别原理及实现

5.3.1路径信息采集处理方法

智能车通过CMOS视频传感器的行中断和场中断,把采集到的路径信息传送给MC9S12XS128。

这样,这一场的数据就变成了一个292*365的二维矩阵,其中的每个数字代表着一场图像中对应位置点的象素灰度值。

但是,单片机处理这么多的数据会十分消耗资源,而且单片机的内存也不可能给这个存放图像数据的二维矩阵分配太多的存储空间。

所以,为了节省单片机的资源和减少处理时间,就必须对每场的图像做一些处理,本队采取的方法是,选择实际需要的行分辨率和列分辨率;把一场图像按照的10cm分辨率分成40行;根据最远行看到黑线的点数不小于2点的标准,一行取100个点。

这样,该场图像的数据就变成了一个100*40二维矩阵。

图5.3就是一条直线的原始图像。

图5.3直线赛道原始图像

接着,就要对CMOS视频传感器采集的视频数据进行路径判断处理,这时,需要确定视频阈值的大小。

如果象素点灰度值小于该阈值,则确定该点为黑点,否则,确定其为白点。

这样,就可以在一场数据中分辨出象素点是黑色还是白色。

处理后的结果如图5.4所示。

为了调试方便,把灰度值小于阈值的点对应的灰度值都置为0。

图5.4处理后的直线赛道图像数据图

由图5.4知,黑点的灰度随着所在行的距离变远而变高,同时黑白点的灰度差值的绝对值也随着所在行的距离变远而变小。

这说明图像在近处较之远处更黑白分明,因此本队采用最远处行的阈值作为整场图像的阈值。

这样近处黑点灰度本来就小于远处,也就必然在阈值以下;同时由于近处黑白分明,白点的灰度很高会阈值。

因此采用最远处行的阈值作为整场图像的阈值理论上是可行的,经实践检验也确实有效,只需根据经验确定阈值即可。

考虑到不同的光强会对阈值有影响,换了一个比赛场地之后原先的阈值有可能失效。

本队采用自适应阈值算法作为拨码开关的一个选项,用作阈值的备用方案。

本算法旨在适应整个赛场光照环境的变化,对于赛道局部的亮斑无能为力,而正规比赛场地基本上没有这种亮斑,使得本算法有一定的实用价值。

下面介绍一下本队的自适应阈值算法。

先放好智能车,使导航线大致处于CMOS视频传感器视野的中心线上,取最远行中心的若干点进行分析(中心的点在导航线附近,是可靠的灰度信息),由双峰法得到阈值。

在确定某点是黑(白)点之后,就可以确定每行黑线中心位置和黑白变化次数。

下面介绍一下具体的实现方法。

通过实践测试观察,摄像头采集的数据中,近处的数据一直是比较准确的,因此,处理的顺序是从近向远。

每行有100个象素点,所以把这100个点分别标号,记为0~99。

按照从右向左的顺序,每一点与阈值作比较,记下第一个点是黑(白)点。

接下来只在有黑白变化处作相应处理。

在白到黑处,此黑点标号减上次黑到白的边界的差即白线长度,白线长度小于事先标定的干扰长度则认为前段是白点干扰,大于干扰长度则认为前段是白线。

若是白线,则黑白变化次数自增,记下此边界。

若是白点干扰,则各参数复原为被干扰前的状态。

在黑到白处,作类似处理。

一行处理完后,如果黑白变化次数为2,且白到黑的边界小于黑到白的边界则认为本行是可靠的赛道信息。

设白到黑边界的序号为A,黑到白边界的序号为B,将序号(B-A)/2,就可以得到该行黑点的中心位置坐标C,(B-A)即为该行的黑点个数,记为D。

以上就是本场第一个有效行的数据,记本行为istart,为了提高系统处理的速度,降低系统资源的消耗,以后各行数据的处理方式与第一行有所区别。

在处理后面的行时,可以根据上一行得出的导航线的右边界来确定下一行扫描的范围。

例如,如果上一行的导航线的右边界A进坐标转换成是实际坐标Av,把Av-10cm和Av-10cm的坐标分别转化为对应的点的标号,并分别记为jstart,jend。

那么下一行就从jstart扫描到jend。

这样,就可以大大减少待处理的数据,从而降低了数据处理的时间,加快了系统处理数据的速度。

每次发现白到黑时将本点标号转化为实际坐标后减去前一行的右边界取绝对值,在一行中取这个绝对值的最小值。

即离上一行导航线最近的黑线为本行的导航线,这是考虑的赛道的导航线是连续的,这样就使抗干扰能力增强了,即使扫描到起始线和十字交叉干扰,也能正确算出导航线中心位置。

经过上述图像处理后,可以获得两个主要的参数:

每行黑点的中心位置坐标和每行的黑白变化次数。

依据这两个参数,可以判断当前的路径信息。

当发现一行的变化次数为0的时候,则说明本行没有看到导航线,本行的上一行为该场图像最后一个有效行,记为iend。

5.3.2舵机转向控制算法

经过上面的图像处理方法,得到本场第一个有效行为istart,最后一个有效行iend。

为了使智能车的路径更优化,需要把赛道分类。

针对不同赛道选用不同的走线策略。

由(istart,cent[istart])和(iend,cent[iend])两点确定一直线y=a*i+b记为L。

当有效行大于3行时,从istart+1开始到iend-1结束进行逐行处理。

每行计算cent[i]-a*i+b。

如果扫描中发现有的行导航线在L左侧,有的在L右侧,因为只有S弯才会看到此现象,所以此时赛道为S弯,再根据bulb(bulb为一场中最大的cent[i]-a*i+b)的大小可确定是大S弯还是小S弯。

如不是S弯,再根据iend的大小来判断。

iend大说明看到的图像长,那转弯处必定较远,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1