基于多传感器信息融合的智能泊车系统研究
2022-01-05韩永奇张芳芳王润墨苑全德皮玉珍
韩永奇,张芳芳,纪 鹏,寇 磊,马 浩,王润墨,苑全德,皮玉珍
1.齐鲁工业大学(山东省科学院) 电气工程与自动化学院,济南 250353 2.齐鲁工业大学(山东省科学院) 海洋仪器仪表研究所,青岛 266061 3.齐鲁工业大学(山东省科学院) 计算机科学与技术学院,济南 250353 4.长春工程学院 智能配电网测控与安全运行技术国家地方联合工程研究中心,长春 130012
随着科技的发展和大众购买力的不断提高,汽车已经走入千家万户。据统计,2020年中国机动车驾驶员数量达4.56亿,其中民用汽车驾驶人数占机动车驾驶员数量的91.67%。从机动车驾驶人性别看,2020年男性驾驶员人数达3.08亿,占67.57%;女性驾驶员人数达1.48亿,占32.43%。从机动车驾驶员年龄看,51至60岁的驾驶员人数达6 086万,占13.36%。同时,数据表明,2020年全国新领证驾驶人(驾龄不满1年)数量达2 231万人,占全国机动车驾驶人总数的4.90%。大量对方向感把握方向欠佳的新手驾驶员和高龄驾驶员由于在泊车过程中对陌生及复杂的周围环境的认知与判断不是很准确,对于车身与停车线的相对位置也是较难把控,因此泊车困难问题越发得到关注。
在计算机技术日益发展的环境下,越来越多的学者投身到自动泊车系统(APS)研究的行列中。国外早在1992年开始在部分概念车上搭载APS[1]。目前国外主要有两个研究方向,一个建立智能化的停车环境,通过手机以及智能停车场来辅助用户进行停车[2],另一个研究方向是通过获取在车身安装的摄像头,雷达等传感器的信息来辅助操控车辆进行泊车[3-4]。国内对APS系统的研究相对国外来说起步较晚,但也取得了一些成果。江浩斌等提出了一种高精度识别车位的方法[5]。2019年在百度AI开发者大会上,李彦宏演示了百度自主泊车解决方案的新进展。在国内主要研究方向为利用多传感器信息融合与路径规划来实现自动泊车[6-12]。
如今APS主要存在的问题是成本高,搭载对象大多为中高端车型,不易推广。同时APS传感器类型较少,对环境检测智能化较低[1]。本文提出的基于多传感器信息融合的智能泊车系统,实现成本低,易于推广,同时搭载多种类型传感器,对周围环境感知度较高。
1 智能泊车系统工作原理
首先由驾驶员将车行驶到停车位旁,随后驾驶员通过按键下达自动泊车指令。车辆在接到指令后,低速向前匀速行驶,通过超声波传感器与视觉传感器进行车位探测工作,当检测到可用车位时,通过屏幕询问驾驶员是否在此位置停车,若驾驶员选择否,车辆则放弃此车位。当驾驶员选择是,则车辆按照预先规划的路径进行泊车动作。系统结构原理如图1所示。
图1 系统结构原理图
进入车位之后,通过红外循迹传感器识别车身倾斜情况,根据倾斜程度进行调整,完成最终泊车。在整个泊车过程中,控制系统对人体红外传感器和红外避障传感器信息进行实时监测来准确的感知周围的环境。系统通过融合多个循迹传感器的数据,来对车身倾斜程度进行判断,系统根据融合信息完成泊车动作。泊车路径如图2所示。
2 基于卡尔曼滤波的多传感器融合
2.1 多传感器信息融合的车位识别
2.1.1 卡尔曼滤波
多传感器融合是将来自多个传感器的数据进行融合和互补。相对于单一传感器,多传感器融合能快速准确地对周围情况进行识别和判断,弥补了单一传感器的不足,增加了测量的准确性,增大了测量的容错性,提高了数据的可靠性。一般来说,多传感器融合分为信息层融合、特征层融合、决策层融合三个层次。通过将信息融合在一起,大大提高了容错率[11]。
卡尔曼滤波(Kalman filtering)是多传感器信息融合中对传感器数据预处理的一种理论方法,是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法[12~13]。对传感器数据进行卡尔曼滤波处理,增加数据的可靠性。
卡尔曼滤波过程的传感器信号模型由状态方程和观测方程组成。
状态方程:
xk=Axk-1+ωk-1,
(1)
观测方程:
zk=Hxk+vk。
(2)
式(1)和式(2)中,xk为k时刻的系统状态变量;A为状态矩阵;zk是k时刻的观测值;H为测量系统的参数;ωk-1是过程噪声,仿真实验中一般取期望为0,协方差为Q的白噪声;vk是观测噪声,一般是期望为0,协方差为R的白噪声。
(3)
(4)
测量更新部分方程为
(5)
(6)
(7)
超声波是频率超过20 kHz的声波,具有良好的束射特性,反射性强,方向性强,抗干扰能力强,传播距离远,所以采用超声波模块来进行车位的探测。
在本文中,应用卡尔曼滤波算法对超声波传感器的数据进行滤波。在短时间内由于超声波测得的距离跟前一刻的距离是一样的,所以A取值为1。因为超声波的测量值就是车体与障碍物的实际距离,不需要放大或缩小,所以H取1。代入数值后可得卡尔曼滤波方程如下:
预测更新部分
(8)
(9)
测量更新部分
(10)
(11)
(12)
根据式(8)-(12),将参数初始化,由于P为状态预估值的方差,所以在初始化时取一个非零常数;Q为过程噪声激励的协方差,依据滤波结果调试Q的大小;R为超声波传感器的测量噪声协方差,依据超声波传感器的测量误差对R进行初始化。初始化后将超声波传感器的信息代入式(8)-(12)迭代计算,来获取最优值。
2.1.2 超声波探测车位
在探测车位过程中,智能小车在匀速前进的同时,以一定周期不断向停车位置发送超声波。根据超声波发出与返回的时间差,可以计算出小车与右侧障碍物的距离,即可初步扫描出停车位,超声波探测车位原理如图3所示[14]。
图3 超声波探测车位原理图
建立数学模型如下:图3中L1为实验车的长度,L2为停车位的长度,L3为实验车的右边距障碍物的距离,V为实验车的移动速度。设L5为最小可停车长度。当满足L3>L4并且L1 (13) 当系统满足式(14)时,可以判断此车位可以泊车。 (14) 2.1.3 OPENMV(Open Machine Vision)视觉识别车位 由于仅使用超声波雷达探测车位时存在雷达张角,车位精准度不足。因此,本系统采用超声波传感器与视觉传感器数据相融合的方式来进行车位的精准定位。用视觉传感器来进行视觉识别,模拟人眼来获取信息,图像系统对信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。 超声波传感器与视觉传感器均固定在小车上,当小车在待停车区域匀速缓慢前进时,OPENMV摄像头会持续扫描小车行进方向右方区域,并在检测到一个合适的空车位时,与超声波传感器反馈数据进行融合和判断,如图4所示。 图4 多传感器信息融合识别车位 本文使用四元检测算法。首先进行图像预处理,修正镜头畸变,使用大津法(最大类间方差法)计算阈值,将图像用此阈值二值化,从而能凸显出目标的轮廓,以减少计算量。预处理完毕后,将图像做高斯模糊以及平滑噪声处理。接着,计算梯度的方向和幅值,并对梯度边缘进行聚类(使用并查集),采用线性回归拟合直线,寻找封闭直线组成的四边形,然后细化,检测矩形结束。在这个过程中,计算图像梯度类似Sobel边缘检测算法,不同之处在于计算的梯度包含了方向和幅值,选择大于阈值的像素点作为边缘点。 检测到矩形后,算法会继续判定这个矩形是否合法。检测到一个矩形在合适的位置,并且大小合适时,就视为在这一帧中找到了一个车位,如图5所示。若此候选车位在一个连续的时间出现时,便视为车位已找到。这个时间由车速、每秒的帧数等共同决定。 图5 视觉识别停车位 小车通过L298N电机驱动板使用脉冲宽度调制(PWM)信号来驱动四个直流电机转动。PWM是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,通过调节一个脉冲周期内有效电平在整个周期所占的比例,也就是占空比,就能调节IO口上电压的持续性变化,因此可以控制外设的功率进行持续性变化,也就能控制直流电机的转速快慢。 在实际应用中,首先初始化一个定时器用来调制PWM信号,之后设定预装载值(ARR)与比较值(CRRx)。定时器由0开始计时,当计时至ARR值时为一个周期,同时计数值不断与CRRx值进行比较,当计数值达到CRRx值时,使逻辑电平产生变化。通过不断改变CRRx的值来改变占空比的大小,以此来控制输入到电机的电压即控制了转速,图6为示例图。单片机将控制信号输送至L298N电机驱动板,并通过调节IN1-IN4四个引脚的高低电平关系来控制电机正反转。由此可以实现小车前进,后退,左右转弯等动作。 图6 PWM原理及示例图 小车的前方和后方均安装有红外传感器,主要为前后避障。当传感器检测到前方近距离处有障碍物时,红外传感器会给控制系统一个信号,控制系统经过对信息的处理和判断,进入中断反应,即让小车停止前进并且发出警告声。 小车的前后方均设有红外人体感应模块,与红外避障模块相比,人体感应模块感应范围大,在3 m之外即可感知人体存在,尽早尽可能避开移动的人,如奔跑的儿童、骑车的人等。人体红外感应模块在感知到周围有人活动时,会给控制系统一个信号,控制系统在信息处理和判断后做出中断反应,进行停车和发出警告声。 在小车后方底部平行安装有两个循迹模块,循迹模块主要利用红外反射原理,对地面上的停车线进行识别。在小车进入停车位后,为了防止小车的车身歪斜,需要车位修正处理。首先控制系统先对车身位置做出判断,再控制小车往后倒退,控制系统通过车尾后两传感器的信号时间差以及车辆运行的速度进行数据处理,规划调整的停车路径,随后控制系统控制车轮进行调整,最终完成停车,车位调整示意图如图7所示。 图7 车位调整原理图 根据小车的具体情况,本系统采用STM32F103RCT6单片机作为中央处理单元。芯体规格是32位,速度是72 MHz,程序存储器容量是256 KB,程序存储器类型是FLASH,RAM容量是48 KB。通过L298N电机驱动模块驱动四个直流电机转动来带动车轮转动,在车位检测方面配有一个超声波模块和一个视觉传感器模块,超声波模块型号为HC-SR04,该模块可提供2~400 cm的非接触式距离感测功能,测距精度可达高到3 mm。视觉传感器采用OPENMV,是一个开源,低成本,功能强大的机器视觉模块,该模块以STM32H7CPU为核心。同时通过有效检测范围为2~30 cm,检测距离可根据电位器进行调节的四个红外避障传感器模块和两个HC-SR501人体红外传感器模块来实时感知周围环境,通过TCRT5000红外循迹传感器模块来感知车身倾斜形体。图8为硬件原理图。 图8 硬件原理图 本系统采用STM32单片机为控制核心,使用keil软件进行编译。当系统收到用户下达的泊车命令后,通过单片机给电机驱动模块发送逻辑信号,通过PWM信号波控制直流减速电机的转动方向与速度,以此来控制小车的移动。系统采集各个传感器的信息来识别车位以及对周围环境进行识别。通过I/O口对超声波模块引脚的检测,同时结合视觉识别模块信息,对车位进行扫描判断。将所得的数据进行卡尔曼滤波,最终得出最优判断结果。当识别到车位后,系统控制小车执行泊车动作,小车进入车位后,根据车尾红外传感器信号来判断小车车身倾斜程度调整路径规划,之后小车按照规划路径进行泊车调整动作。程序工作流程如图9所示。 图9 程序工作流程图 根据以上系统硬件和软件的设计,以汽车模型代替真实的汽车,搭建自动泊车系统模型如图10所示。试验车与试验场地参数如表1所示。 图10 实验环境图 表1 试验车与试验场地参数 实验时,由于实验场地有三个车位,所以可能会出现有若干个空车位,没有空车位等多种情况,因此系统的车位判断子程序设定为根据车位的长度数据对车位进行判断。从表2可以看出,本系统对车位类型的判断十分准确。 表2 不同空车位识别情况 在识别判断车位后,不同的泊车环境会对泊车情况造成不同的影响。在对三个车位空余情况不相同时对泊车进行测试如图11所示。由表3可以看出,泊车情况相对较理想,但也存在个别情况,主要原因有车轮与地面摩擦系数不均匀,车轮转速不稳定。 图11 不同环境下泊车 表3 不同空车位停车情况 在实验时模拟真实泊车会出现障碍物的情况如图12所示,通过在泊车路径前后设置障碍物来测试系统对障碍的识别情况,由表4可以看出对障碍物识别准确度较高。 图12 不同环境下避障测试 表4 障碍物识别测试 本文以STM32单片机作为控制核心,利用信息融合技术,设计了一套智能泊车系统,大大减少了自动泊车的实现成本,该系统通过对多种类型的传感器数据的采集与融合,能够识别车位以及更加智能化的感知周围环境,实现了停车位识别,路径规划,自动泊车,障碍物识别和行人识别等功能。2.2 电机驱动
2.3 红外避障
2.4 人体红外感应
2.5 车身矫正
3 智能泊车系统设计
3.1 硬件设计
3.2 软件设计
4 智能泊车实验
4.1 车位识别及自动泊车测试
4.2 障碍物识别测试
5 结 论