1、大连理工大学天鹰队智能汽车邀请赛技术报告第一章 引言 41.1 智能车制作情况 41.2 技术报告内容安排说明 5第二章 机械部分 52.1 车模系统改装 52.1.1 前轮主销后倾角 52.1.2前轮主销内倾角 62.1.3前轮前束 62.1.4 底盘离地间隙 72.1.5 舵机安置 72.1.6 后轮距及差速器的调整 82.2 摄像头的选择与安装 82.2.1 摄像头的选择 82.2.2 摄像头的固定 92.3 测速模块选择与安装 102.3.1方案一:测速发电机 102.3.2方案二:霍尔效应器件 102.3.3方案三:光电码盘 10第三章 电路设计部分 113.1 单片机系统板设计 1
2、13.2 电机驱动电路设计 123.3 串口模块 133.4拨档开关 143.5液晶显示模块 15第四章 软件部分 164.1主函数控制流程 164.2数据采集和处理 164.2.1视频图像的采集 164.2.2视频图像的处理 164.3速度信息的采集和处理 174.3.1速度的测量 174.3.2电机的PID控制和参数选择 174.4 决策算法 194.4.1神经网络 204.4.2 控制策略 31第五章 开发工具及制作调试过程 355.1 开发工具 355.2 制作调试过程 36第六章 结论 376.1 模型车的主要技术参数说明 376.2 总结 37参考文献 38附录 39第一章 引言1
3、.1 智能车制作情况在智能车制作的过程中,本小组成员先后学习了控制、传感技术、汽车电子、电气、计算机、机械等多个学科的相关知识,在实践中巩固了所学知识,增强了实践动手能力。本组智能车系统按照功能划分为:电源模块、单片机模块、数字摄像头路径识别模块、直流电机驱动模块、转向伺服模块、速度测量模块等。除摄像头路径识别模块和测速模块以外,我们将剩余模块集中于一块主电路板,将主电路板安置尽量靠近底盘,以降低重心,使小车在运行过程中更加稳定。电机驱动部分我们采用4片大功率MOS管IRF3205组成的H桥电路,以增强对电机的驱动能力。我们别出心裁地采用了一种新的舵机安装方式,使舵机左右臂长相等,使舵机转角灵
4、敏准确。同时我们选择了数字摄像头OV6620模块用作路径识别,解决了AD转换的难题,而且图像精确度大幅度提高基于以上可靠的硬件设计,我们开发了一套比较完备的控制算法,包括电机PID控制算法,路径识别控制算法等,从而使整个小车运行比较加快速稳定。1.2 技术报告内容安排说明此技术文档的正文部分大致分为三个部分:机械部分,电路硬件部分和软件部分。机械部分包括我们对智能车机械结构在大赛允许范围内所做的改装;电路设计部分包括各个模块的电路设计方案以及相关电路;软件部分包括摄像头数据处理、寻迹、和调速等控制策略的说明。第二章 机械部分2.1 车模系统改装2.1.1 前轮主销后倾角主销在汽车的纵向平面内与
5、竖直线有一个夹角,称为“主销后倾角”。由于主销后倾角的存在,使车轮偏转后产生一个回位力矩,纠正车轮的偏转。通过增减上横臂轴上的黄色垫片的数量可以改变主销后倾角大小。通常后倾角值应设定在13度。但我们为了使模型车转向灵活,将主销后倾角设为0度。横臂轴上每侧黄色垫片数量为二。 图2.12.1.2前轮主销内倾角主销在横向平面内与竖直线的夹角称为“主销内倾角”。如图2.2中角。 图2.2 主销内倾角也有使车轮自动回正的作用。当前轮在外力作用下发生偏转时,车轮连同整个汽车的前部被抬起一定高度;当外力消失后,车轮在重力作用下恢复到原来中间位置。主销内倾角不宜过大,否则在转向过程中轮胎与地面间将产生较大的滑
6、动。通常主销内倾角不大于8度。通过改变横臂螺杆的长度来改变主销内倾角,调整范围08度之间为宜。利用试验法确定即可。 本组将主销内倾角调节为60 左右。减小了赛道面作用于前轮的阻力矩,使舵机转向更加轻便,同时车轮自动回正的速度加快。2.1.3前轮前束 汽车两前轮的中心面不平行,两轮后边缘的距离与前边缘的距离之差称为“前轮前束”。图2.3前轮前束可以减小由前轮外倾角带来的不利影响。一般前束值为012mm。前端小后端大的称为“前束”,而后端小前端大的称为“负前束”。改变左右横拉杆的长度即可改变前轮前束的大小。前轮前束要与前轮外倾角相匹配。 2.1.4 底盘离地间隙我们采取摄像头采集路面信息的策略,摄
7、像头安装位置比较高,所以导致整车的重心偏高,在高速过弯时则向心力比较大,同时由于惯性则车很容易向一侧翻倒。为了避免这类事情的发生,不仅需要减轻摄像头架的重量,也要尽量降低小车底盘的高度。我们把车的后轮底盘放低,从而降低整车的重心,防止车翻倒。但由于此次比赛中有坡度在15度之内的坡道,车底盘过低很容易在上坡下坡过程中出现碰触赛道的情况,因此车前部的底盘高度不变。以下是车前后部分底盘高度调整方法: (1)底盘前半部分离地间隙调整:模型车提供的垫片有1mm和2mm两种规格,离地间隙调整范围为912mm。我们未加垫片,从而使小车前部离地间隙为12mm。(2)底盘后半部分离地间隙调整:通过变换卡圈调整底
8、盘后半部离地间隙。小车配件中只有标号为1、2、3的三种规格的卡圈。为了降低小车整体重心,我们采用了标号为3的卡圈,使间隙最小。2.1.5 舵机安置图2.4组委会提供的舵机为S3010,舵机的响应速度对小车是一个很重要的因素,为了加快舵机的响应速度,我们做了以下三个方面的改进。第一,由于舵机响应速度与供电电压有直接的关系,电压越高响应速度越快,但是比赛规则中禁止用DC-DC升压电路给电机供电,因此我们直接用电池电压即7.2V直接给舵机供电,既不违背比赛规则有最大限度的提高了舵机响应速度;第二,将舵机偏前放置,从而增加了舵机到连杆之间的摆杆长度,这样与以前的长度相比让前轮转过同样的角度舵机只需转过
9、比以前更小的角度,虽然舵机本身的动作的速度没有变,但对于转向来说则比以前更快了。第三,舵机水平放置,使舵机位于两轮的中心线上,小车前部相对于舵机左右对称,从而左右横拉杆长度相同,舵机左右转向时受力比较均匀,左右两轮转角相同,使转弯更加稳定可靠。通过以上这些改造,舵机的响应速度提高许多,稳定性增强,为快速灵巧的转向提供了硬件的保证。2.1.6 后轮距及差速器的调整由于小车速度较高,在大角度转弯时容易翻倒,为了增加小车的抗翻能力,可用组委会提供的配件把后轮改为大轮距。在拐弯时由于弯道内侧轮比外侧轮的拐弯半径小,则内侧轮比外侧轮的速度小,这就使两轮胎有一定的速度差,称为差速。而赛车的差速机构安装在后
10、轮轴上的,所以只可以调整后轮的差速。经多次调试观察发现差速对赛车转弯有很大的影响。如果差速过紧,即两轮胎的速度很接近时,转弯的时候内侧轮很容易打滑,从而产生侧滑,使赛车滑出赛道。当差速过松时,会使直道的时候两轮打滑,大大的减小了赛车的驱动能力。所以差速调整要适当,才会使直道驱动能力强,弯道转弯灵巧。我们调试差速的方式是把赛车放在赛道上捏住一个轮胎不动让另一个轮胎能在赛道上半滑动时为准。2.2 摄像头的选择与安装2.2.1 摄像头的选择(1)方案一:采用模拟350线SS2000B黑白摄像头。 黑白摄像头价格便宜,销售量大,比较容易购买,性能比较稳定。MC9S12DG256对摄像头输出的视频信号进
11、行采集时,必须将信号中的行同步信号和场同步信号分离出来,作为中断,用MC9S12DG256内置 AD模块采集视频信号。因此需要增加类似于LM1881组成的视频分离模块,且MC9S12DG256内置AD最高采集频率为2MHz,计算可知,在最高采集频率,8位AD只能采集到300以上个像素中的10个,横向上的分辨率十分低,不能满足识别路径的要求。(2)方案二:采用数字CMOS摄像头OV6620。OV6620是OmniVision公司生产的一款CMOS彩色数字摄像头,支持彩色与黑白两种模式。其像素为101376,远远满足赛道识别要求。支持CIF/QCIF模式。内置两个8位的高速AD转换器,输出8位或者
12、16位的数字图像信息,支持YCrCb4:2:2,GRB4:2:2数据输出模式。图像的行场同步信号分开,由两个引脚单独输出。接口Y0Y7输出图像的灰度值,色度值由接口UV0UV7输出。数据采集处理相对比较容易,但其价格偏高。综上,由于OV6620内置AD,很好的解决了MC9S12DG256内置AD采集速度偏低的问题,而且行场同步信号与图像灰度值分开输出,不仅省去了视频分离模块,也使图像处理变得更加简单,从而增加了图像采集的精度,这点对于起始线识别尤为重要。基于以上原因我们最终选择了CMOS数字摄像头OV6620。 2.2.2 摄像头的固定摄像头的固定直接影响整车的重心,对赛车的影响很大。摄像头位
13、置越高,则前瞻性越好,看到的赛道信息越丰富,有利于赛车的预判和加减速,但对支架的刚性要求越高,采用常规材料如铝合金,往往使支架所占面积较大,从而整车的重心偏高。在高速转弯时,很容易发生翻车等极恶劣的情况。因此摄像头高度与赛车的稳定性是一对矛盾,为了解决这个矛盾我们采用特殊材料碳纤维杆。碳纤维杆非常细,质量很小,而且其刚度很高,足够固定的要求。为了充分发挥碳纤 图2.5维杆的优点,我们用同样具有刚度高重量轻的有机玻璃加工了杆架底座。三根碳纤维杆成三角形固定在赛车地盘上,具有很高的稳定性,赛车高速行驶过程中摄像头抖动很小,数据准确,减小了误判的可能性。见图2.5。 2.3 测速模块选择与安装2.3
14、.1方案一:测速发电机此种方法检测速度准确,但测速电机体积过大且价格昂贵,其安装也不易,所以我们最先放弃了这种方法。2.3.2方案二:霍尔效应器件霍尔器件内部由三片霍尔金属板组成,当外部磁铁正对金属板时,由于霍尔效应,金属板横向导通,产生横向电压。因此可以在车轮上安装磁片,而将霍尔集成片安装在固定轴上,通过对脉冲的计数即可进行车速测量。此方案所构成电路体积小。但小车的车轮较小,磁片安装比较困难,容易产生相互干扰,使测速精度降低,影响速度闭环控制的稳定性。2.3.3方案三:光电码盘光电耦合管的发射端发射的红外光,通过激光雕刻码盘的间隙到达接收端。当电机带动码盘转动时,接收端便以一定的频率接收到红
15、外光线,经过整形电路输出频率与电机转速成正比的方波。由单片机进行数数测频,即可得到电机转速。由于激光雕刻码盘精度很高,所以该方法测速非常准确。图2.6基于光电码盘的优点,本小组最终采用了方案三。为了充分利用空间,安装稳定可靠,我们采用硬质铝板将光电码盘固定于赛车的最后端。如图2.6第三章 电路设计部分3.1 单片机系统板设计我们发现组委会提供的MC9S12DG128B最小系板有很多部分对赛车没用太大作用,冗余部分使整块电路板过重,因此为了让赛车更加紧凑,电路板尽可能简洁,我们重新画了最小系统板。图3.1 主控制板原理图由于本组控制算法比较复杂,代码所占容量较大,为了提高单片机Flash的容量,
16、我们用MC9S12DG256代替MC9S12DG128,同样是飞思卡尔半导体公司16位的处理器,并没有违背比赛的规则。成形的电路板紧贴底盘,使小车的重心比用原来DG128最小系统板时要低很多,这样小车在行驶的过程中就更加得稳定。3.2 电机驱动电路设计组委会提供的后轮驱动电机型号为RS-380,工作在7.2V电压下,空载电流为0.5A,转速为16200r/min,启动电流高达3A。通用的MC33886集成桥式驱动电路在测试中发热偏大,需要加装散热片,不利于小车的稳定。因此本组采用了4片大功率MOS管IRF3205组成的全桥式电机驱动电路,如图3.2。IRF3205的工作温度为-55+175,在
17、温度为100时最大工作电流达80A,最大导通电阻8m,最大导通时间104ns。由此可见,IRF3205工作电流大,导通时间短,可以使小车加减速更加灵敏,而且在不加任何散热元件的情况下,温度仍接近于室温。驱动电路如图3.2。图3.3 电机驱动原理图 桥式驱动电路的控制电路由ST微电子公司的TD340组成,大大简化了调速控制系统的硬件电路,而且具有单片机接口,可以很方便地与MC9S12DG256相连。3.3 串口模块在赛车调试过程中,摄像头采集到的图像对程序的编写和修改有极其重要的作用,因此为了实时查看赛车采集到的图像,就需要把图像数据通过最简单串行接口传送到上位机实时显示。我们为动态得到智能车上
18、的数据,选择了无线数传模块来传递。能达到很好控制和检测效果。其中无线数传模块为ZT-TR43C。其特点为有:高抗干扰能力和低误码率、传输性能优良、有大的数据缓冲区 、低功耗、高可靠性、体积小、重量轻等特点。模块如图3.4所示。对应智能车电路的接口电路如图3.5所示。图3.4 PC机与单片机的通信接口图3.5 PC机与单片机的通信接口3.4拨档开关随赛道的难易程度、摩擦系数、弯道的大小等因素的不同,赛车的最优车速不同,而且正式比赛用的赛道只有在当天才能公布,所以为了尽可能的应对赛道改变带来的影响,就需要增设调速模块。 车速设定一般采用两种方式:现场输入设定式,预先设定现场选择式。第一种方式十分灵
19、活,可以针对现场情况设定最佳参数,但是比赛时准备时间短,而现场输入较麻烦,耗时较长,时间把握不好极易导致比赛失败。第二种方法没有第一种灵活,预先将可能情况设定好,现场选定与预先设定最接近的的方案。这种方法较第一种安全,但是如果预测不准,也不能发挥赛车的最佳性能。我们选用第二种方案,采用8位两挡开关(可以更直观的达到不同参数或模式的调制)来实现上述功能,电路原理图如图3.6:图3.6 拨档开关电路图3.5液晶显示模块为了在比赛现场不能用电脑的情况下也能实时查看程序的某些重要参数,我们有增设了NOKIA 6110液晶显示模块。NOKIA5110是一款飞利蒲公司生产的图形液晶,可以显示84*48点,
20、能显示3行中文,每行7个汉字(使用新的显示方法,可以显示4行中文)。使用PCD8544驱动芯片。串口速率达到4Mbit/S。第四章 软件部分4.1主函数控制流程主函数在初始化后,检测拨码开关值。并根据拨码开关选择不同的控制模式。小车的控制主要在主循环中完成。循环进行数据采集,舵机、电机控制,起跑线判断等操作,控制流程如图.1所示。4.2数据采集和处理4.2.1视频图像的采集为适应今年识别起跑线的要求,摄像头的分辨率提高对起跑线识别有很大的促进作用。对我们选用的OV6620数字摄像头数据进行选择性提取。为及时提取视频信号,我们选用了PE1作为视频信号的行信号的输入端口,PH0作为视频信号的场信号
21、的输入端口。最终得到Image64107的数组来保存当前的图像信息。并通过发散检测算法和单向检测算法得到较为稳定和准确的一组储存道路路径的数组stack64。4.2.2视频图像的处理滤噪算法是将发散检测算法和单向检测结合起来处理原始图像的。1.发散检测算法和单向检测算法都用于提取每行的有效信息。发散检测算法以某一参考点为中心向两侧的允许范围内扫描。最后将两种方向上的扫描结果比较,根据两种方向上的起始点的关系和平均位置关系选取有效的信息作为赛道信息进行计算。该算法能单独准确地处理绝大多数赛道情况。2.单向检测算法可以根据发散检测的一些数据得到单侧扫描的方向,这里主要由于处理“十字”型道路。对防止
22、数据偏向一侧很有效果。单侧检测算法是以赛道一侧的允许极限为起点向另一侧扫描,到发现与赛道相仿信息时,先判断。当该信息为有效值时,更新赛道数据,结束该次扫描算法。当该信息偏离允许值时,则舍弃,继续沿该方向扫描有效数据,直至到另一侧的有效信息允许极限。这样在前些行可以用发散检测,得到赛道大体走势,如根据信息可能出现“十字”型道路时,则该用单侧检测算法进行数据处理。4.3速度信息的采集和处理4.3.1速度的测量我们选用的光电编码传感器作为我们小车的速度检测模块,该模块传递给单片机的是脉冲,该脉冲和速度成正比,故可以通过检测在一段时间内该脉冲的数量来检测小车速度。其输出波形为如图4.2所示。其中:A、
23、B两相相差90度,可通过比较A相在前还是B相在前,以判别编码器的正转与反转。 图4.24.3.2电机的PID控制和参数选择 PID控制原理:在模拟控制系统中,控制器最常用的控制规律是PID控制。常规PID控制系统原理框图如图4.3所示。系统由模拟PID控制器和被控对象组成。 图4.3PID控制器是一种线性控制器,它根据给定值和实际值的构成的偏差:公式1将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PD控制器。其控制规律为:公式2由于积分项的存在,防止数据溢出,我们选择了增量式PID控制算法。公式3PID参数的选择:采样周期受各种因素的影响,有些是相互
24、矛盾的,必须视具体情况和主要的要求作出折中的选择。在直线电机的单片机控制系统中,PID调节控制过程是在定时中断状态下完成的。因此,采样周期T的大小必须保证中断服务程序的正常运行。在不影响中断程序运行的情况下,可取采样周期T=0.1 为电机系统的纯滞后时间)。当中断程序的运行时间Tz大于0.1时则取T=Tz。因此,采样周期可按下式确定:公式4初始确定数字PID控制参数时,在用上述方法确定的采样周期T的条件下从直线电机的数字PID调节控制回路中,去掉数字控制器的微分控制作用和积分控制作用,只采用比例调节环节来确定系统的振荡周期Tz和临界比例系数Ks。由单片机系统自动控制比例系数Kp,并逐渐增大Kp
25、,直到电机系统发生持续的等幅振荡,然后由单片机系统自动记录电机系统发生等幅振荡时的临界比例度s和相应的临界振荡周期Ts。公式5 式中K s等幅振荡时的临界比例系数。公式6根据所测得的临界比例度s和临界振荡周期Ts,便可初始确定数字PID的控制参数为: Kp=0.6s Ti=0.5Ts Td=0.125Ts采样周期T定位:公式7另外,为提高电机的相应速度,我们同时采用了Bang Bang控制理论来提高相应时间。电机控制流程图为: 图4.44.4 决策算法赛车电机转速,舵机转角与很多因素有关,如赛车的视距、车身与黑线相对位置、赛道弯度、赛道类型等,因此相应的转速与转角就与许多变量有关,而且并不成线
26、性关系,通常的处理方法是使转速,转角与变量近似线性。由于赛道复杂多变,这种方法具有很大的局限性,因此为了让小车适应任何复杂的赛道,我们采用了人工神经网络的控制算法作为小车参数确定的一个辅助手段,同时我们充分依靠高分辨率的视频信息反应当前赛道的情况,并根据不同的赛道来选择不同的控制策略和算法。理论证明三层的神经网络可以解决任何非线性的问题,所以我们对复杂的赛道信息采用了神经网络来解决,为了增强小车的适应能力,在后来我们研究了遗传算法。4.4.1神经网络4.4.1.1神经网络模型 我们介绍一下神经网络模型,一个人工神经元细胞如图1。图4.5.人工神经元细胞左边几个灰底圆中所标字母w代表浮点数,称为
27、权重(weight,或权值,权数)。进入人工神经细胞的每一个input(输入)都与一个权重w相联系,正是这些权重将决定神经网络的整体活跃性。权重可正可负, 如果权重为正,就会有激发(excitory)作用,权重为负,则会有抑制(inhibitory)作用。当输入信号进入神经细胞时,它们的值将与它们对应的权重相乘,作为图中大圆的输入。大圆的核是一个函数,叫激励函数(activation function),它把所有这些新的、经过权重调整后的输入全部加起来,形成单个的激励值(activation value)。激励值也是一浮点数,且同样可正可负。然后,再根据激励值来产生函数的输出也即神经细胞的输出
28、。如果激励值超过某个阀值(,就会产生一个值为1的信号输出;如果激励值小于阀值,则输出一个0。这是人工神经细胞激励函数的一种最简单的类型。一个人工神经细胞可以有任意n个输入,n代表总数。可以用下面的数学表达式来代表所有n个输入:X1, X2, X3, X4, X5, ., Xn。同样 n 个权重可表达为: W1, W2, W3, W4, W5 ., Wn。激励值就是所有输入与它们对应权重的之乘积之总和。神经网络的各个输入,以及为各个神经细胞的权重设置,都可以看作一个n维的向量。4.4.1.2神经网络的建立 为了创建一个人工神经网络,人工神经细胞也要以同样方式相互连接在一起。我们使用的是前馈网络(
29、feedforword network)图2。网络的每一层神经细胞的输出都向前馈送(feed)到了它们的下一层(在图中是画在它的上面的那一层),直到获得整个网络的输出为止。图4.6前馈网络4.4.1.3神经网络的训练神经网络的训练可以分为有监督学习和无监督学习,在我们的控制算法中我们应用的是有监督学习。我们以赛道黑线的坐标和黑线的曲率作为训练的数据,即训练集。调整权重可以采用许多不同的方法,我们采用的是反向传播(backpropagation,简称backprop或BP)方法。 如果网络只能输出一个或一个,是无法控制小车的速度和小车的转角的。因此我们采用一种方法把激励函数的输出由阶跃式改变成为
30、在之间连续变化的形式。我们使用的是一个被称为逻辑斯蒂S形函数(logistic sigmoid function),该函数所实现的功能,本质上说,就是把神经细胞原有的阶跃式输出曲线钝化为一光滑曲线,后者绕y轴0.5处点对称,如图4.7。若f(x)以原点为点对称,则有f(-x)=-f(x)。 图4.7. S形曲线。当神经细胞的激励值趋于正、负无穷时,S形函数分别趋于或。负的激励值对应的函数值都0.5。S形函数用数学表达式写出来则为:公式8e是数学常数,近似等于2.7183,a是神经细胞的激励值,它是函数的自变量,而p是一个用来控制曲线形状变化快慢或陡峭性的参数。p通常设定为1。当p赋以较大值时,
31、曲线就显得平坦,反之,就会使曲线变为陡峭。4.4.1.4选择输入信息我们选择的输入信息是:a.黑线的坐标 (等间距选择10个坐标,如果黑线坐标少于10个,我们将在后面处理)。b.黑线的曲率 (用选择的10个坐标处的曲率)。c.摄像头视野中黑线的长短,即line_jmp 。这样我们一共得到21个输入,因此输入层神经元的数目是22个(为什么是22个我们讲在下面说明),选择隐层神经元的数目是20个,由于需要得到的是小车的速度和转角,因此输出层神经元的数目是两个。所有权重值在-1和1之间。激励值是所有输入*权重的乘积的总和,而神经细胞的输出值取决于这个激励值是否超过某个阀值(t)。这可以用如下的方程来表示: w1x1 + w2x2 + w3x3 +.+ wnxn = t。上式是使网络输出为的条件。因为网络的所有权重需要不断演化,阀值的数据也能一起演化,那是非常重要的。要实现这一点不难。从上面的方程两边各减去t,得:w1x1 + w2x2 + w3x3 +.+ wnxn t = 0该方程可以再换用一种形式:w1x1 + w2x2
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1