段彦卉,韩紫婷,沈天宇,李再涵
基于K60的光电追逐系统的设计与实现
段彦卉1,韩紫婷1,沈天宇2,李再涵3
(1.东南大学自动化学院,江苏 南京 211189;2.东南大学信息科学与工程,江苏 南京 211189; 3.东南大学电子科学与工程学院,江苏 南京 211189)
文章以恩智浦32位微控制处理器MK60FX512VLQ15为核心控制器,设计并实现了一套完整的光电追逐车系统,模型车能够以稳定快速地完成赛道,且双车之间可通过通讯完成超车任务。具体阐述了系统中模型车机械结构的调整、硬件电路的设计和软件算法的设计,并且自主设计了模型车的电路板,同时给出了对于赛道图像信息的多种处理算法。经过多次的调试证明了该系统的合理性和可行性。
智能车;光电追逐;图像处理;PID算法
全国大学生智能汽车竞赛是以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。本论文所述模型车参与了第十二届“恩智浦”智能车竞赛光电追逐组,并取得了全国第四的好成绩。文章以恩智浦C型车模为模型,从车模的机械结构调整、硬件电路设计到软件算法的设计对系统的设计方案就行了全面阐述,并经过多次的试验调试,车模运行稳定迅速,完成了比赛任务。该篇论文对于机器视觉、机器人等方向的研究具有一定参考意义。
该系统由四部分组成:路径识别系统、控制决策系统、动力系统、通讯系统。其中路径识别系统采用OV7620 CMOS传感器,用于检测采集赛道图像信息;控制决策系统采用恩智浦 32 位微控制处理器MK60FX512VLQ15;动力系统在硬件驱动电路的支持下,结合单片机的控制对于电机的转速和舵机的转角进行控制,实现小车的运动;通讯系统采用超声波、蓝牙模块,实现光电追逐任务的完成,使两辆车完成通讯和距离控制的目标。整体流程为:K60通过对于路径识别系统所输出的赛道信息进行分析处理,同时通过正交解码获取速度信号,来控制电机和舵机进行相应动作,从而实现车体的转向控制和速度控制。同时,该系统运用蓝牙模块实现两辆车之间的通讯,完成超车目标。
如图1为系统总体设计框图。
图1 系统总体设计框图
为使智能汽车更好地发挥它的潜能,使其直线行驶稳定,转向轻便,转向后能自动回正,并减少轮胎和转向系零件的磨损等,需要对智能车的机械结构进行调整。模型车的整体结构如图2所示:
图2 模型车整体结构图
对于模型车的硬件结构的调整过程叙述如下。
主销后倾角是指在纵向平面内主销轴线与地面垂直线之间的夹角,会在车辆转弯时产生与车轮偏转方向相反的回正力矩,使车轮自动恢复到原来的位置,保持车模直线行驶的稳定性。后倾角越大,车速越高,车轮偏转后自动回正能力越强。但回正力矩过大,将会引起前轮回正过猛,加速前轮摆振,并导致转向沉重。
模型车通过增减黄色垫片的数量来改变主销后倾角:为增大时高速时前轮的回正力矩,我们调整垫片为前0后4,后倾角为4°~6°。
主销内倾角是指在横向断面内主销轴线与地面垂直线之间的夹角,有使车轮自动回正、转向时减小转向轮上阻力矩的作用。由于过大的内倾角会增加转向阻力,加快轮胎磨损,所以在调整时可以近似调整为0°~3°左右。模型车中通过调整前桥的螺杆的长度来改变主销内倾角。
像内八字样前端小后端大的称为前束。模型车的前轮前束可以通过调整伺服电机带动的左右横拉杆实现。主销在垂直方向的位置确定后,改变左右横拉杆的长度即可以改变前轮前束的大小。左杆短,可调范围10.8~18.1mm;右杆长,可调范围为 29.2~37.6mm。根据实践经验,我们发现,较为适当的前轮前束可以很好地控制车模的速度,刹车性能更好。
另外,我们还选择了合适的舵机、摄像头、超声波模块的安装高度与安装方式,电路板的固定方式,底盘高度等,均取得了良好的效果。同时,为了防止轮胎和轮辋错位而引起的驱动力损失的情况,我们在实际调试过程中对轮胎多次使用软化剂。
系统硬件电路的设计主要分为两个部分:电源管理模块、电机驱动电路模块,图3为硬件电路系统框图。
图3 硬件系统框图
图4 电源管理模块电路图
电源模块主要包括5V与3.3V稳压模块,其中电池电压直接对电机进行驱动,5V主要提供给摄像头、编码器模块,3.3V负责对核心板、 LCD 屏进行供电。经过测试,5V/3.3V 系统需要的总电流约为 200-300mA,故我们使用低成本、外围电路简单、占用 PCB 空间较少的 AMS1117作为5V以及3.3V电源芯片。该芯片最大输入电压为20V,具有1%的精度,工作温度-40℃至125℃,内含限流、过热保护。如图4为电源管理模块电路图。
在电机驱动模块,我们采用IR2104 型半桥驱动芯片驱动高端和低端两个N型IR7843 MOS管,组成完整的直流电机H桥式驱动电路。其中,IR7843有极低的导通电阻,且栅极驱动电路可以提高 MOSFET 的开关速度。12V的电压由开关稳压器LM2731提供。电机驱动模块根据K60输出的 PWM 信号,从而实现对直流电机的转速的控制。
如图5为电机驱动模块和升压模块的电路图。
图5 电机驱动模块电路图
图6 升压模块电路图
图7 系统软件流程图
本车使用 K60作为控制芯片,采用C语言编程实现各模块功能的控制。同时,采用摄像头时序(16.67ms),作为转向和速度的控制周期。整个软件设计部分主要分为两部分:赛道图像的采集与处理以及速度和转向的控制。另外,为便于调试,我们利用LCD 显示屏对模型车的参数及时进行调整,以适应不同光线条件和不同赛道类型。如图7所示为软件系统流程图。
OV7620数字摄像头采集到的图像容易受光线、噪点等环境因素的影响,再加上摄像头自身的特性,远处的图像会出现严重失真的情况。因此需要通过软件排除干扰点,来获取正确的赛道边线。
我们通过 sccb 写摄像头寄存器,将 OV7620 的图像输出格式改为 qvga,连续输出模式,然后对行信号及像素信号进行硬件分频,通过 DMA 采集图像。另外,我们分奇偶场采集图像,避免了图像采集与图像处理之间可能的冲突,利用行中断的间隔来处理图像并进行速度和转向的控制。
4.2.1提取赛道边线
为快速扫描整张图像以便提取黑色边界线,我们采用窗口搜索算法,在赛道中间设置一个窗口,使用了双重指针向两边推进,检测窗口内是否有黑白或白黑跳变。一般情况下,以上一行的右边线作为该行左边线的扫描起点,右边线相同。
4.2.2边线的修补与校正
由于赛道中不可避免的出现诸多干扰因素,再加上摄像头角度的问题,提取到的边线可能是不连续甚至错误的,因此需要进行一定的校正和修补。我们针对下述情况进行了软件修正:前后行边线偏差过大,两端连续边线间距过大,孤立的点,左线末端在右线始端的右边。所得到的效果良好,模型车能够较好地适应多种赛道类型和光线条件。
4.2.3赛道中线的提取
赛道中线由左右引导线的平均值进行确定。当只存在一条引导线时,根据既定的赛道宽度对已有引导线处理可得到中线。另外,对于计算得到的中线丢线、误差较大的情况我们进行了补线与校正的处理。
4.2.4赛道类型判断
弯道角度不同,相应中线的斜率亦不同。采用最小二乘法进行直线拟合,斜率的大小便反映了弯度的大小,根据斜率的范围判断赛道类型进而控制舵机打角,使小车的转向更加灵活。
对于赛道上的特殊元素,如十字、环岛、障碍,我们进行了特殊处理,并选择在特殊元素处完成超车任务。考虑智能车视野的范围和图像的准确性,我们把十字下方的两个直角作为进十字的标志,再加上空白区等一系列限制条件可以很快正确识别出十字。我们所采取的超车方式为在前车进、出十字时前车左停或右停等待后车。具体超车方式如图8所示。而环岛识别与十字类似,都是利用边线斜率的变化,前车在环岛中等待后车出圆环后再启动,得到了良好的效果。
图8 十字超车方式
对于舵机,由于舵机本身的响应时间略慢,可看做是一个积分系统。智能车要求舵机反应足够快,因此我们采用位置式 PD 控制。公式(1)所示:
SV=SC+P*e_0+D*e_0 –e_1 (1)
式中,SV为舵机此时PWM值,SC为舵机中值PWM值,P、D分别为PID控制中的比例项和微分项系数,数值由试凑法确定,e_0为本次中线与中心位置偏差,e_1为上次的偏差。
同样,为了实现速度的PID控制,我们对于电机采用PI控制,以减小电机当前值与设定值的静态误差。公式如(2)所示:
MV+=P1*(se_10- se_11)+I1* se_11 (2)
式中,MV为电机PWM值,P1、I1分别为PID控制中的比例项和积分项系数,se_10为左轮本次 PWM 与轮速之差,se_11为左轮上次 PWM 与轮速之差。相对应地,右轮的PID控制方法同公式(2)。
特别说明地是,在模型车转弯时,由于左右轮转弯半径不同,左右轮速度存在差异。所以,我们将舵机在不同转角时的PWM值与左右轮速度进行关系拟合,所得到的效果良好。
经过对于代码框架的不断完善、图像处理函数的不段断优化和参数的多次调试。模型车的速度可以达到2.6m/s,且在十字、环岛、起跑线、障碍处中可以完成超车任务,且系统稳定性和鲁棒性均良好。
通过对于系统的测试可以得到,我们所设计的整套光电追逐系统中,每辆模型车能够在赛道上稳定且快速地运行,并且双车间能够完成超车任务。这表明我们硬件电路稳定可靠,软件算法设计优良且参数选择合适。
本文介绍了基于K60设计的光电追逐系统的实现,具体讲述了系统的机械结构的调整、硬件电路设计方案和软件算法的设计,经过多次调试,每辆车能够在赛道上稳定快速地运行,且双车间能够通过通讯完成超车任务。在整个系统设计与调试过程中,小组成员均收益良多。论文对于智能车竞赛的发展、机器视觉、机器人等领域均有一定的参考意义。
[1] 卓晴等,学做智能车:挑战“飞思卡尔”杯[M],北京:北京航空航天大学出版社,2007.
[2] 田玉平,自动控制原理[M],北京:科学出版社,2006.
[3] 林勇杰,林辉,赖胜奎, 基于K60设计的四轮车摄像头智能循迹系统[J],中国战略新兴产业,2018(5):011-012.
[4] 涂市委,薛诺诺,方海洋,基于 K60 的光电直立智能车控制系统设计[J],汽车实用技术,2018(4):32-33.
The Design and Implementation of Photoelectric Chasing Smartcar System Based on K60
Duan Yanhui1, Han Ziting1, Shen Tianyu2, Li Zaihan3
(1.School of Automation, Southeast University, Jiangsu Nanjing 211189; 2. School of Information Science and Engineering, Southeast University, Jiangsu Nanjing 211189; 3. School of Electronic Science and Engineering, Southeast University, Jiangsu Nanjing 211189)
This article uses NXP 32-bit micro-controller MK60FX512VLQ15 as the core controller, designs and implements the photoelectric chasing smartcar system, the model car can complete the track steadily and quickly, and the two cars can complete the overtaking task through communication. This article elaborates the adjustment of the mechanical structure of the model car, the design of the hardware circuit and the design of the software algorithm, and independently designs the circuit board of the model car. At the same time, a variety of processing algorithms for the track image information are given. After several times of debugging, the rationality and feasibility of the system have been proved.
Smartcar; Photoelectric Chasing Smartcar System; Image processing; PID
A
1671-7988(2018)16-114-04
U462
A
1671-7988(2018)16-114-04
CLC NO.: U462
段彦卉,就读于东南大学自动化学院。
10.16638/j.cnki.1671-7988.2018.16.041