翁 哲,苏思伟,陈群元,翁宇涵,唐小煜
(华南师范大学 a.物理与电信工程学院;b.心理学院,广东 广州 510006)
在互联网技术、人工智能技术迅猛发展的背景下,智能化、自动化的要求在各行业中都显得越发重要,无论是农林业、工业控制、高校科研和日常生活中,以机器视觉为代表的人工智能系统都有重要的应用. 在实验教育领域中,各高校积极开展与人工智能和自动化控制相关的教学项目和科研项目. 而自动化控制的智能车导航及相关项目作为其中的一大板块,自然受到各高校的重视[1]. 由国家教育部委托各高校举办的大学生智能汽车竞赛是一项探索性高的工程实践活动. 本文探究了智能车运行过程中稳定性的可改善因素,并以追寻信标的智能车为例提出了相关的改进型处理方式.
为了保证智能车在运行过程中安全有效,较强的鲁棒性是智能车系统的基本需求,这也是相关智能车竞赛的考察重点. 然而智能车在实际运行过程中,常常有各种不可控因素出现. 在理论算法的可行性基础上,如何使用策略优化智能车系统的稳定性便显得尤为重要. 这显然也是相关竞赛中影响成绩高低的关键因素.
以全国大学生智能汽车竞赛中信标组为例,竞赛内容包括:在比赛场地中布置若干信标灯(图1),智能车在运行过程中自动完成寻找信标、驶进信标、熄灭信标等操作. 为完成基本比赛要求,智能车通常通过摄像头采集图像,利用电机与舵机驱动行驶,运用单片机算法控制运行. 为保证运行的稳定性,在运行过程中需要满足图像识别稳定性、姿态控制稳定性、突发处理稳定性等3方面的要求.
(a)信标系统组成
(b)单个信标图示图1 信标赛制系统
通常的智能车CMOS摄像头采集的有效图像经过二值化处理,如图2(a)所示. 然而CMOS摄像头在运行过程中常常因为受到强光照射干扰、外界亮度突变等不可控因素等导致图像丢帧和图像质量损坏,如图2(b)所示,从而影响智能车判断. 为了消除这些不可控因素,可在硬件光路和软件图像滤波2方面对摄像头及其图像进行处理,去除噪点,还原有效的图像,以供运行策略算法识别和判断.
(a)真实信标图像
(b)受干扰信标图像图2 常见的信标图像
在光路上,信标光线由红外光(峰值波长为850 nm)、红光(波长为620~625 nm)和超声波(频率为40 kHz)组成[2]. 实际运行过程中可以在CMOS摄像头上安装滤光片,只让红外光(波长为800~1 600 nm)通过;同时添加遮光板,减少上方阳光直射或反光的影响,提高图像质量. 摄像头光路处理如图3所示.
在软件处理上,由于摄像头角度及广度、透镜焦距等参量已确定,实际上信标大小在图像上有固定范围. 信标距离智能车越远,接收的光强越小,表现为信标在图像上越小. 在80×60 pixel的图像上,信标的宽度d、信标质心在图像中y轴示数、信标真实距离的对应关系测量值l如表1所示. 通过信标宽度与信标图像位置的函数关系表,结合实际运行效果调整,进行图像滤波,可以去除噪声,从而定位出正确的信标位置.
图3 摄像头的光路处理
y/pixeld/pixell/cmy/pixeld/pixell/cm5251035917010223040721015175045426020158050333025131105514103011140
对于智能车的稳定性运行要求,智能车的姿态控制是很重要的环节. 在智能车运行过程中,目标参量与实际效果通常不是线性,会受到摩擦力、车轮扭力矩、回程误差等影响. 为此引入了PID算法. 姿态控制分为对智能车转弯角度的稳定控制以及对运行速度的稳定控制,对于不同的变量控制,需要引入不同的PID算法.
智能车在运行过程中常利用舵机进行转弯,角度增量的变化范围小,变化幅度小,可采用增量式的PID控制算法[3]:
Δu(k)=KpΔe(k)+Kie(k)+
KD[Δe(k)-Δe(k-1)],
Δe(k)=e(k)-e(k-1),
u(k)=Δu(k)+u(k-1).
角度控制中第k次改变的增量Δu(k)是设定量与实际量的误差e(k)的函数,大小幅度由系数Kp,Ki和KD控制,具体值在实验中测得. 在智能车控制中通常由图像处理计算得到e(k),意义是信标位置与视野中线的差值. 通过增量式PID算法驱动舵机摆角使智能车视野中线朝向信标,起到追寻信标的作用.
对于智能车运行速度的控制,由于在实际运行过程中智能车速度的变换范围比较大,而且在执行刹车、变速等操作过程中速度变化幅度很大而且次数频繁,可以添加前馈控制保证粗调. 同时利用微分现行的PID算法闭环控制减少设定值变化带来的振荡. 综上所述可以采用前馈-微分先行式PID算法[4-5]:
Δu(k)=KvΔx(k)+KpΔe(k)+Kie(k)+
KD[Δe(k)-Δe(k-1)]-KaΔy(k),
Δx(k)=x(k)-x(k-1),
Δy(k)=y(k)-y(k-1),
Δe(k)=e(k)-e(k-1),
u(k)=Δu(k)+u(k-1).
式中,Δy(k)表示实际速度的微分,由安装在电机上的编码器返回值得到;Δx(k)表示设定值的微分和幅度,分别由系数Ka和Kv控制. 加入了前馈和微分先行控制使电机的速度更加稳定,抗干扰性更强.
稳定性运行要求智能车在路径规划中自动规避风险,诸如绕开障碍、防止突发制动、防止倾倒等操作. 应对突发事件的处理能力需要多种传感器配合,同时也要结合硬件资源,尽量选择数据量少且处理方式简单的传感器. 保证不影响智能车软件处理速度从而降低智能车整体的运行速度. 综合考虑后,采用线性CCD摄像头、红外对管、轻触开关、防倒保护开关多种传感器检测突发事件,利用舵机摆臂、电机倒转等操作规避突发事件.
对于障碍物如不亮的信标、墙壁等,利用线性CCD摄像头配合红外对管检测[6],在占用硬件资源较少的情况下完成对静止障碍物的检测,舵机或电机作出响应可规避障碍,如图4所示.
对于突然出现在视野中的障碍使智能车突然被制动的问题,可以采用置于前方的轻触开关持续检测,如图5(b)所示. 同时结合CMOS摄像头等其他传感,也可以列出其他突发制动情况,如红外对管长期被遮蔽[图5(a)],编码器返回的速度值长期过小[图5(c)]等情况,迅速作出倒车处理,保证运行的稳定性.
(a)追寻信标途中遇到障碍
(b)熄灭信标后遇到障碍图4 障碍的规避
(a)红外对管被阻 (b)触发轻触开关
(c)编码器读数过小图5 被动制动的规避
采用防倒保护开关持续检测,若智能车在运行过程中发生倾倒,传感识别后可以利用舵机摆臂支撑,将智能车回正,避免发生翻车的现象,如图6所示.
图6 倾倒状态的规避
在普通场地中利用智能车的CMOS摄像头采集图像,使用光路、软件改进处理的方案得到的图像以及对噪声干扰的图像的判断结果如图7所示,只有红色部分为算法识别的信标位置.
(a)获取稳定图像
(b)干扰图像的软件处理图7 稳定识别信标
如图7(a)所示,使用了光路改进后CMOS摄像头获得的图像正确率在99.3%以上. 这说明基本能够消除外界干扰光对判断的稳定性影响. 如图7(b)所示,对受干扰的图像处理结果也更加稳定,而且无误判,能够满足图像识别稳定性所需要的要求.
分别利用无姿态控制算法改进的方案(蓝色曲线)和引进PID的控制算法方案(红色曲线)操控智能车,将速度值稳定在210(210为编码器的返回参量,250代表电机转速达到100%),并且对智能车行驶状态进行制动干扰,利用串口返回真实的速度值,如图8所示.
结果显示,在智能车启动后,PID的控制算法方案稳定在速度210上的时间仅需0.3 s,相对无PID控制算法的方案所需的2.3 s有较大优势. 受到干扰后恢复时间在0.5 s以内. 而无PID算法的方案下恢复稳定速度至少需要2.0 s. 这说明引入PID的控制算法方案保证了姿态控制稳定性.
图8 电机速度值
利用带有障碍的赛道,如图9所示,测试智能车对不同障碍的传感检测,同时制造情景使智能车强制制动或者翻倒,测试智能车对各种突发情景的响应.
图9 测试地图
由多次实验测试结果得知,无突发处理的智能车对测试地图的完成时间在30.5 s以上,同时由于无法应对强制制动和翻倒等其他情况,导致更多的实验无法完成. 利用本文提出的突发处理控制智能车完成测试地图的时间为15.7 s左右,同时也能够规避其他突发情况,维持了突发处理稳定性.
以追寻信标的智能车为例,说明了智能车在运行过程中图像识别稳定性、姿态控制稳定性和突发处理稳定性的重要性. 通过对CMOS及图像的光路、软件处理,引入PID及其改进算法,结合多传感规避的一系列策略完善了智能车,保证了智能车控制的稳定性.