孙桐,郑天昱,陈龙
(杭州电子科技大学电子信息学院,浙江杭州,310018)
智能小车是一个集环境感知、规划和决策于一体的多维度辅助驾驶集成系统,重点研究计算机与现代传感技术、信息融合技术、通信技术、人工智能技术和自动控制技术,是新技术与高新技术的典型结合[1]。智能小车可以用于在不利条件下进行无人检测和操作,这种控制技术可应用于像智能物流这样的物联网工业应用领域[2-4]。为了更深入的认识和了解智能化汽车,可通过设计与实现智能小车来进一步研究智能汽车的控制理念和方式[5-6]。传统的智能寻迹小车只能运行在简单的赛道上,对复杂的赛道元素缺乏处理能力,具有很大的局限性,且不能将舵机转向与电机速度控制有效结合,在寻迹路径上还有很大的提升空间。
为了解决这些问题,本文以全国大学生智能汽车竞赛为背景,设计并实现了基于K66单片机的智能寻迹小车系统,通过对数字图像的边缘扫描和特征检测等处理,能够实时识别复杂赛道,并对舵机转向与电机速度控制进行有效配合,完成路径优化,实现智能寻迹。
智能寻迹小车系统整体方案设计如图1所示,该系统通过处理摄像头模块采集的灰度图像,判断道路类型并控制舵机模块与电机模块。系统可通过OLED模块显示实时图像,TF卡模块存储行驶图像与数据,按键调试模块实现PID参数快速整定,从而辅助人工完善智能寻迹。系统的主控芯片使用恩智浦K66单片机,该单片机主频为180MHz,超频处理后可以达到220MHz,具有5个UART串口、4个FTM定时器等模块,充分满足智能寻迹小车的设计。
图1 智能寻迹小车系统整体方案框图
单片机外围电路设计如图2所示,包括单片机时钟与复位电路、JTAG下载电路、UART串口电路、OLED显示电路和按键调试电路。
图2 单片机外围电路
摄像头模块电路如图3所示,摄像头模块采用了MT9V032总钻风数字摄像头。该摄像头是一款基于MT9V032芯片设计的全局快门摄像头,优点是自动曝光、曝光时间随时可调、高动态性能等。
图3 摄像头模块电路
舵机模块电路如图4所示,舵机模块采用FUTABA3010,具有低成本、高扭矩的优点。该舵机在不同工作电压下,舵机的转矩与速度数据有略大差别,系统采用6V为舵机模块工作电压。
图4 舵机模块电路
电机驱动电路设计如图5所示,该电路采用IR2104和MOS管组合的H桥电路,可通过改变单片机对应电机模块引脚占空比输出,实现电机的变速控制。
图5 电机驱动电路
系统的软件设计由图像采集、图像处理、舵机转向控制、电机速度控制等四个部分组成。系统软件主流程图如图6所示,系统软件首先进行程序初始化,包括时钟初始化、定时器初始化等,对采集到的灰度图像提取道路信息并进行分析,完成转向与速度决策。若系统在智能寻迹过程中识别到车库,则寻迹小车会自动入库并停车。
图6 系统软件主流程框图
摄像头就好比智能车的“眼睛”,为微控制器提供当前道路信息,并可将获取的图像信息实时传输到微控制器进行处理[7]。为了更加符合真实汽车比例,系统的摄像头安装在车辆纵向平分线上,高度距地面10厘米。系统采用DMA方式采集图像,DMA采集速度快且不经过微处理器[8],使单片机能获得更多的有效数据。图像采集的原始灰度图像如图7所示,共186×70个像素,在视野广、前瞻长的前提下,图像采集速率能达到50fps,基本满足系统寻迹高速稳定的要求。
图7 原始灰度图像
3.2.1 二值化图像处理
原始灰度图像经过二值化处理后的图像如图8所示,二值化处理能降低图像的复杂度,使数据量减小,并凸显出目标道路轮廓。由于系统的摄像头高度较低,在实际行驶过程中道路光线不均匀,导致单一阈值的设定不能满足需求,故采用最大协方差阈值法计算二值化阈值,实现图像前景与背景的分离。
图8 二值化图像
3.2.2 图像边缘检测处理
二值化图像经过边缘检测后的图像如图9所示,系统边缘检测采用中心扫线与边缘扫线两种方式。中心扫线是指每行图像起始扫线从上一行图像的中线坐标开始,分别向左向右寻找黑白像素切换点坐标作为可能的赛道边界,拟合出赛道中心线。而边缘扫线是指,每行图像起始扫线从上一行左右边界线的坐标点开始,分别向左向右寻找本行的左右边界线的坐标。经过这两种图像边缘检测方法,可得到与实际道路中线拟合度较高的图像中线值。
图9 边缘检测图像
3.3.1 舵机整体控制思路
舵机通过一个由FTM灵活定时器模块输出的PWM波控制,经过各种参数对比之后,采用50Hz的PWM波能使舵机响应速度最快且工作时状态稳定。
在每个控制周期中,图像处理完成后,可根据不同的赛道类型和实际行驶速度综合分析后计算出最佳的舵机打角行,将此行的中线偏差值通过舵机PID公式计算得出最佳舵机打角值。
3.3.2 不同道路元素的舵机PID控制
PID控制器原理框图如图10所示,PID控制是传统控制中最具代表性的一种控制方式,应用也最为广泛[9]。在计算机控制系统中,使用数字PID控制器,控制规律如式(1)。
图10 PID控制器原理框图
式(1)中:k为采样序号;u(k)为第k次输出控制量;KP为比例系数;TI为积分系数;TD为微分系数;T为采样周期;e(k)为第k次偏差;e(k− 1 )为第k−1次偏差。
系统的舵机控制采用位置式PID,经过调试发现I项(积分项)不适用于舵机控制,便将舵机的PID控制简化为PD控制。
当寻迹小车行进到不同道路元素时,采取恒定的舵机PD参数会造成直道抖动和弯道转向不连贯的问题,因此可根据不同的道路类型选取不同的舵机PD参数值,做到直道跑的直,过弯流畅并同时在S型弯道实现路径优化。经过调试后发现,不同道路元素的舵机PD参数值选取有以下的规律:直道PD值小,弯道PD值大,S型弯道P值小D值略大。
3.4.1 电机转速整体控制思路
寻迹小车在直道设定较高的转速,在弯道设定稍慢的转速使小车能够流畅的跑完整个赛道,其中直道速度能决定小车的整体速度,合适的弯道速度能够提升小车的稳定性。由于直道入弯的过程是关键,系统采取了特殊的减速策略,即先根据小车当前速度给出相应减速需要的图像场数,当减速场数较高时设定速度可较低,当减速场数较少时设定速度可较高,并随着减速场数的减少设定速度可逐渐接近弯道速度,使小车能够流畅的进入弯道,避免出现“猛加猛减”的情况。
3.4.2 不同道路元素的电机PID控制
系统对电机模块采用了增量式PID控制,该控制算法如式(3)所示,由式(1)可推出式(2),式(1)减去式(2)可得式(3)。
经过调试发现,微分系数KD不适用于该电机转速控制,故系统使用了增量式PI来控制电机转速。
系统在直道行驶过程中,后轮两个电机可以设定相同的速度目标值,在弯道行驶过程中,后轮电机可通过主动差速来辅助小车转向。在调试中发现,可根据舵机打角值来控制电机的差速。把舵机转向角度分为若干个区间,在每个区间内,外侧电机给原弯道速度,转向的内侧电机在原弯道设定速度的基础上使用不同比例的差速,这一策略能使电机和舵机较好的协同工作,避免因为电机推动而导致小车过弯不流畅,进一步实现路径优化。
本系统使小车实现智能寻迹,通过对二值化图像的边缘检测处理,识别十字、环岛等复杂元素,并使舵机转向与电机后轮差速控制有效结合,在不同的复杂道路上,利用软件算法针对性的做出不同的行驶路径优化。在摄像头高度低的情况下,使用最大协方差阈值法计算二值化阈值,大幅降低路面反光引起图像噪声大的影响。系统具有很强的前瞻性,通过图像处理算法能够提前判断路面情况并做出转向与速度决策。经过大量赛道测试与检验,该系统具有较强的鲁棒性,能将高速性与稳定性较好的结合,在处理器算力和传感器数量有限的情况下,初步实现现代化智能汽车的自动驾驶功能。系统仍存在不足之处,由于芯片算力和传感器数量有限,不能对于车辆在真实道路的行驶有进一步的模拟。随着人工智能的发展以及芯片算力的提升,希望能将更高级的算法与智能寻迹小车融合,进一步拓展智能寻迹小车的发展。