APP下载

基于平行泊车路径规划的智能泊车系统设计

2023-07-06张安莉袁安中陈奎锋张秦阳

计算机测量与控制 2023年6期
关键词:泊车计费车位

张安莉,王 娟,袁安中,陈奎锋,张秦阳

(1.西安交通大学 城市学院,西安 710018;2.机器人与智能制造陕西省高校工程研究中心,西安 710018)

0 引言

汽车智能化技术的飞速发展,使得智能泊车系统成为一项炙手可热的研究热点,受到国内外高科技企业、科研机构以及相关工作人员的广泛关注。自动泊车系统属于智能驾驶技术的重要领域,在智能驾驶的最后一公里中承担着重要作用[1]。智能泊车路径规划是实现智能车辆自动泊车的一项关键技术[2-4]。随着泊车系统自动化程度不断提高,对实现狭小空间和复杂环境中平行智能泊车要求也越来越高[5-7]。如何在狭窄道路中快速准确地进行平行车位泊车,解决平行泊车困难、后车等待时间过长等问题,成为人们生活出行中所要面临的一个实际问题。

本文针对以上问题,建立车辆运动学模型和转向轨迹模型,对平行泊车路径进行,设计基于平行泊车路径规划的智能泊车系统。系统先进行自动泊车,泊车到位后,开始计费直至离开车位。

系统由平行泊车子系统和计费子系统组成。平行泊车子系统采用STM32F103RCT6单片机作为主控系统,电机驱动模块RZ7889D 驱动直流电机,转向舵机采用MG996,超声波测距传感器HC-SR04用于测量车身与障碍物物理距离并结合LM393实现红外避障[8-9],基于模糊控制算法实现快速精准泊车。泊车到位后,计费子系统开始计时,进行停车场泊车计费,基于LabVIEW 搭建智能泊车系统,实时显示泊车车位、数量、时长和费用,并具有历史数据查询和车辆数据波形显示功能。

本文首先根据平行泊车路径分析,利用Matlab搭建平行泊车路径仿真模型;其次,基于模糊控制器搭建智能小车实体进行算法物理仿真测试。系统设计方法实现起来简单、方便,有利于智能汽车的优化设计,更容易满足人们对智能泊车系统质量、安全和性能的要求。

1 系统工作原理

自动泊车系统基于多传感器感知及信息融合技术[10-13],其工作原理如图1所示。车辆的外侧周围均安装超声波和红外传感器。超声波传感器用于探测车位的纵横向距离,红外传感器用于避开车身周围的障碍物。在泊车路径寻找过程中,首先,车位感知系统将超声波传感器和红外传感器的数据进行实时融合,获取车位周围的空间几何参数,并将其导入路径规划模型中。然后,在车位空间几何参数与车辆参数匹配的情况下,根据模糊控制算法将泊车路径规划模型的几何参数进行计算匹配,进而给出最优路径规划方案。最后,车辆根据路径规划方案,进行自动泊车和计费。

图1 系统工作原理图

2 系统硬件设计

系统硬件设计结构如图2所示。

图2 系统结构框图

系统下位机以STM32 系列的单片机STM32F103RCT6作为主控MCU,通过一块2200mAH 的电池来供电。超声波测距模块和红外避障模块采集车辆空间信息。蓝牙模块进行无线通讯,使用特殊IO 口接收超声波模块和红外模块输出的信号,单片机接收由超声波模块和红外模块发送回来的信息,对外界情形进行分析,对泊车路径进行自动规划,通过对电机驱动模块发送控制指令,控制电机和舵机的实时运动,保证小车的正常工作[14]。整个泊车过程中,LCD 实时显示小车工作模式和泊车时长。系统上位机采用LabVIEW 设计前面板,对泊车对位的车辆进行计时和停车计费。具有历史数据查询、波形显示、泊车数量和计费功能。

2.1 主控板

系统采用STM32F103RCT6单片机作为主控芯片。该芯片是一款基于Cortex-M3内核的低功耗32位ARM 处理器,主频最高达到72MHz,程序存储器容量是256kB,内含大量定时器、ADC、SPI、IIC 等多种外设功能,方便增添外部模块。单片机最小系统采用2 200mAH 电池供电,同时选择SPX5205M5芯片作为稳压芯片。

2.2 最小系统电源电路

电源电路设计的好坏直接影响到最小系统板是否可以正常工作。由于STM32F103RCT 的正常工作电压范围在3.3~5V 之间,因此选择SPX5205M5 芯片作为稳压芯片。电源电路如图3所示。

图3 电源电路

2.3 电机驱动电路

选择RZ7889D驱动功率为7 W、额定电压为12V、额定电流为540mA 的直流电机。RZ7889D是一款DC双向的电机驱动芯片,适用于自动阀门电机驱动、电磁门锁的驱动等,可以通过两个逻辑输入端来控制电机的前进、后退以及制动。该芯片具有极微小的待机电流,抗干扰能力良好,输出内阻低的特性,同时,它还具有内置二极管,能释放感性负载的反向冲击电流。

RZ7889D电机完成正转、反转和变速的功能,需要电机驱动电路来进行控制。电机驱动电路如图4所示。

图4 电机驱动电路

2.4 转向舵机

采用MG996作为系统转向舵机,该舵机工作电流为0.1A、精度为0.24°、转动角度为180°可调。为了实现舵机的正转和反转,把信号线与单片机直连。舵机的控制需要一个周期为20ms的PWM 波,舵机旋转的角度和高电平部分的持续时间相关。

2.5 传感模块

2.5.1 超声波测距模块

超声波测距的原理就是在超声波发射装置发射超声波,然后超声波在空气中传播,超声波碰到障碍物后会立即返回,最后再用接收装置接收超声波,根据接收器接收到的超声波时的时间差T以及超声波再介质中传播的速度S,可得计算出模块距离物体的距离D,即:

选择HC-SR04超声波控制模块,控制模块可产生2~400cm 的非接触式陌生感应,精度可达2mm。本设计将触发和回波端口信号都设置为高电平,将至少10μs的上拉电阻单脉冲推入触发后,控制模块将推送8个40Hz的差分信号,根据回波信号上下沿读取计时器的时间并计算距离。

在应用中,将触发和回波端口号都设置为高电平,首先将至少10μs的上拉电阻单脉冲推入触发,再控制模块将8个40Hz差分信号向外推,然后回波等待抓住上升的边缘。除了捕获上升沿外,还应在MCU 设计内部启动定时器,开始计算时间。当再次捕获到回波的下降沿时,就是读取计时器的时间。这是空气中超声波的操作时间T,然后根据式(1)计算距离,即可得出模块与障碍物之间的距离。

2.5.2 红外避障模块

选择LM393红外避障模块实现车辆红外避障。LM393红外避障模块由一对红外传感器组成,分别为发送管和接收管。发送管即发送红外传感器,遇到前方障碍物时,红外传感器的反射面回到原位并被接收管接受,显示屏指示灯将闪烁,数据信号输出喷嘴将输出高电平数据信号,可根据电位计旋钮调整检查间隔。一般合理间隔为2~30cm。本系统的间隔为25cm。

3 平行泊车路径规划建模

系统基于车辆运动学模型和转向轨迹模型的建立[15-16],并采用模糊控制器进行路径规划[17-19]。

3.1 车辆平行泊车过程中运动学模型的建立

自动泊车的车辆在正常情况下,车速较低,约5km/h,为低速运动状态。低速运动状态下转动车轮时车轮不会侧向拖动,因此不产生侧向力作用,此时,假定系统软件允许车轮转动,且不容易产生阻力。

车辆平行泊车建立其运动学模型如图5所示。设(xf,yf)为前轮轴中心点坐标,(xr,yr)为后轮轴中心点坐标,(xrL,yrL)为左后轮坐标,(xrR,yrR)为右后轮的二维坐标,v为前轮胎车轮之间中心点速度,l为车辆轴间距,ω为后车轮的轴距,φ为前轮车轴中心点的转向角,即前车车轮和车身的夹角,θ为车辆中心轴的夹角,即车身与x轴的夹角。

图5 车辆运动学模型示意图

如图1所示,可假定为移动皮带轮的状态,因此后轮在垂直方位角的运动轨迹为0,其方程式表示为:

前后轴的中心位置坐标关系为:

左后轮和右后轮的运动轨道方程如式(3)、式(4)所示:

当车辆在低速档运行时,车辆的轨迹可以视为标准圆。即,车辆运动轨迹可以看作是匀速运行的圆弧。

3.2 小车转向轨迹分析

车辆的运动轨迹可看作为由几段圆弧叠加而成的路径。车轮之间满足阿克曼关系,在转向过程中,所有车轮均围绕着同一瞬时中心作圆周运动。假设前轮胎的精确定位角度为零,汽车驾驶过程中没有侧向力,所有轮子都转向中心线并越过中心点O。令汽车两侧主销的中心线与路面交点之间的距离为B,汽车的轴距为L,则,前内轮转向角β与前外轮转角α之间应满足阿克曼转向特性公式:

转向角和转向半径如图6所示。

图6 转向角和转向半径示意图

如图6所示,汽车后轮胎的路径通过旋转中心O到后轮距离M、后轮胎内侧半径Rr1和后轮胎外侧半径Rr2确定。可得关系式:

根据上式,可计算泊车时后车轮的轨迹线,但前轮外侧转角α无法直接测得。

汽车的方向盘转角θ可通过传感器直接测得,而方向盘转角θ与前轮外侧转角α的对应关系为:

通过实验,在一定的方向盘转角θ下测得前轮外侧转向角α,从而获得它们之间的传动比K。这样就可以在任意的方向盘转角θ下计算出外侧车轮的转向角度,从而确定转弯半径。

3.3 平行泊车路径规划

车辆侧方平行停车包括3个步骤。第一步,车辆沿着停车位平行行驶,到达转角运行初始点;第二步,控制车辆转角并开始负转角行进,到达转角转换点;第三步,控制车辆转角,进行正转角行进,到达泊车点,结束泊车。

假设平行泊车空间已知,小车上某一点的状态变量为(x,y,γ)。平行泊车过程即车辆的初始状态(x0,y0,γ0)运动到目的状态(xd,yd,γd)的路径规划。假设车身位置为(xd,yd),小车最终的偏向角为γd,如何确定初始状态(x0,y0,γ0)成为平行泊车之关键问题,也是本文重点研究的内容。

由上可知,平行泊车路径由两个半径相等的相切圆形成“S”形弯道行进路径,以车辆后轴中心位置点代表整个车辆的运动轨迹点,获取该点坐标位置,根据小车几何尺寸和当前的转向角γ即可计算出小车每个轨迹点的坐标,为泊车过程的车体提供实时位置信息,保证泊车系统运行安全可靠性。

平行泊车路径如图7所示。假设车辆的初始位置在S0(x0,y0,γ0)处,目标位置在Sd(xd,yd,γd)处,根据实际泊车过程,车辆首先以点O1为圆心,以小车的最小转弯半径Rmin为半径做转向运动。到达点C处后,此时车身的偏向角为α。然后车辆向反方向转角,以点O2为圆心,同样以车辆的最小转向半径Rmin为半径做转向运动,直至泊入车位内。车辆从起始点S0到目标点Sd的运动过程中,延x、y轴上的位移dx、dy可表示为:

图7 平行泊车路径示意图

将车辆最小转向半径Rmin、传感器测得车辆与泊车位的距离dx代入到式9中,即可得到汽车的起点和终点距离dy,进而求得平行自动泊车系统的车辆初始位置(x0,y0,γ0)。

3.4 模糊控制器设计

泊车系统软件的总体目标是找到最优控制的相对路径,以便可以将车辆令人满意地停放在停车位中。系统测量和控制误差的不可避免性会导致不可避免的控制错误,因此选择模糊控制来帮助完成车辆的自动平行泊车。

依据图5所示的平行泊车路径示意图,将整个平行泊车的路径分为两条曲线来进行分阶段分析,即,将泊车过程分程两个阶段来实现自动泊车的功能:第一阶段由S0位置到点C位置的过程;第二个阶段由点C位置到目标位置D点位置的过程。

第一阶段:首先要对输入变量进行预处理,车辆从起始位置S0行驶到切点位置C点。根据传感器测量得到的数据计算出车辆在当前位置的行驶距离为Li,当前偏向角为α,实时行驶距离为Si。对传感器测量得到的输入变量Li进行预处理,处理结果映射到有限的区域。设处理结果为Di,目标位置C的行驶距离为Lc,则预处理函数为:

可得,此阶段Di取值范围为[0,1],α的取值范围为[45,90]。

经过预处理后,第一阶段模糊控制器的输入变量为传感器测量结果经过与处理过后的Di,其论域为[0,1],车身偏向角α的论域为[45,90],输出变量为方向的转角θ的论域为[-540,0]。

第二阶段:同样,首先进行预处理,得到此阶段Di的取值范围为[0,1],α的取值范围为[45,90]。经过预处理后,第二阶段模糊控制器的输入变量为传感器测量结果,经过预处理过后的Di,其论域为[0,1],车身偏向角α的论域为[45,90],输出变量为方向的转角θ,其论域为[0,540]。

模糊控制规则如表1所示。

表1 模糊控制规则

其中:B为大,S为小,斜线表示不存在。α的B表示车辆已经行驶了一定距离,而S表示车辆启动时转弯角度相对较大;Di的B表示车辆已经走了一段较长的距离,S表示刚开始启动行驶不久的时候;θ的B表示车辆在启动时正在从大角度转弯,S表示车辆即将完成时正开始减小弯道的倾斜度,并且提前准备停车。

当α和Di都是大时,这种情况表明车辆已经快完成自动泊车动作到达目的地;当α大和Di小时,此时车辆开始运动没多久,因此要继续进行大角度转弯行驶;当α小和Di大时,这种情况是不存在的;当α和Di都是小时,属于刚开始运动不久的情况,所以还要继续加大转向角。

4 系统软件设计

4.1 系统主程序流程设计

系统主程序流程如图8所示。小车通过蓝牙模块接收停车场发来的指令,判断是否执行自动泊车。当接收到允许停车的指令后,小车开始进行自动泊车,通过IO 口来收集超声波测距模块、红外避障模块的数据,实时判断小车的运动状态和行动轨迹,直至到达停车位,完成泊车。

图8 系统主程序流程图

4.2 LabVIEW 计费子程序流程设计

LabVIEW 子程序流程如图9所示。Labview 先进行初始化,然后等待小车靠近的信号。当小车到达停车场入口的时候,停车场发送许可指令,小车上的单片机接收到停车场发送的指令后进入自动泊车状态,此时停车场的提示灯亮起,LabVIEW 然后开始进行计时并显示在屏幕上。之后当小车停车结束行驶出库时,停车场的提示灯关闭,然后停止计时并显示停车费用。

图9 LabVIEW 子程序流程图

4.3 传感器模块子程序流程设计

4.3.1 超声波测距模块子程序流程

超声波测距模块子程序流程如图10所示。

图10 超声波测距子程序流程图

当超声控制模块启用时,首先将单片机的定时器1复位,并根据所选的IO 端口将10μs上拉电阻的差分信号推入超声控制模块。同时单片机检查超声波传感器的应答针,当检测到该引脚的上拉电阻,定时器1工作。进而计算与障碍物之间的距离,并向主函数发送距离数值。

4.3.2 红外避障子程序流程

红外避障模块子程序流程如图11所示。红外线避障模块启用时,先初始化系统,然后收集红外避障模块发射端口电平信息,把返回的信息反馈给单片机,单片机根据返回信息判断小车位置状态。

图11 红外避障模块子程序流程图

4.4 舵机模块子程序流程设计

舵机模块子程序流程如图12所示。

图12 舵机模块子程序流程图

舵机模块子程序分前轮转向控制子程序和后轮转向控制子程序。前轮控制指令即控制舵机的指令,先单片机定时器初始化,然后设置连接舵机信号线的IO 引脚,之后根据算法要求提供所需要的高电平脉冲信号,通过循环送出的脉冲信号完成舵机的控制。后轮控制指令,是当小车接收到停车场发出的指令后,开始准备自动泊车动作,先初始化定时器,然后定时器的输出引脚和电机驱动信号口相连,向电机驱动电路输出PWM 波,通过不断循环向电机驱动输出PWM 波,为小车提供持续的动力。

4.5 智能泊车系统前面板设计

基于LabVIEW 设计智能泊车系统面板,分为操作人员面板和泊车计费面板,如图13所示。

图13 智能泊车系统面板

操作人员面板如图13(a)所示。根据功能划分为6个模块:串口设置及操作按键模块、指示灯模块、费率设置模块、车位数据显示模块、历史数据记录模块和波形显示模块。泊车计费面板如图13(b)所示。根据功能划分为3个模块:费率显示模块、泊车计费模块和车位数据显示模块。

4.5.1 操作人员面板

1)串口设置及操作按键模块:串口设置对串口名称和波特率进行设置,用于系统通讯模式和采样频率的选择,串口设置为COM1,波特率设置为0~115 200可调。操作按键包括“打开串口”“存储数据” “开始采集”和 “停止采集”共4个操作按键。

2)指示灯模块:指示灯模块包括工作指示灯、停车信号接收灯以及停车入库灯,分别用于显示系统的正常运行、有进入停车区的车辆以及车辆顺利进入泊车场。

3)费率设置模块:费率设置模块对泊车区日间夜间费率进行设置,用于展示给司机不同时段泊车的费率,按下“手动设置按键”时,操作人员可根据自身需要对泊车费率进行更改。

4)车位数据显示模块:本文所检测车位数量为16个,车位数据显示模块对现有的16个车位进行实时监测,通过上位机实时显示其车位的相关数据,可以反应16个车位的具体泊车数据以及泊车区中已被占用的车位数量。

5)历史数据记录模块:历史数据记录模块以实时数据记录的方式实现所检测参数的记录与储存,数据以表格形式记录包括时间、泊车时长、车位、泊车计费共四项内容,通过滑动条控件来查看所选日期的历史监控数据,实现历史数据查询功能。

6)波形显示模块:波形显示模块用来提供完整的数据变化曲线,可以直观地观察数据的变化情况。波形显示模块显示当天不同时段泊车区中泊车的车辆数,其中,横轴为一天中24个小时,纵轴为泊车的车辆数。

4.5.2 泊车计费面板

1)费率显示模块:费率显示模块显示操作人员面板中所设置的费率,分别将日间费率和夜间费率展现给泊车司机。

2)泊车计费模块:泊车计费模块波阔泊车时长和泊车计费,当泊车司机离开泊车区后,利用此模块将泊车时长和泊车计费展现给出泊车司机。

3)车位数据显示模块:与操作人员面板中的此模块功能相同,用于将泊车区的泊车信息展现给泊车司机,以供泊车司机选择。

5 系统测试

5.1 仿真测试

5.1.1 自动泊车仿真测试

基于模糊控制器的路径规划算法对小车自动泊车进行仿真测试,测试结果如图14所示。首先,车辆沿着停车位平行行驶,到达转角运行初始位置S0,如图14(a)所示;第二步,控制车辆转角并开始负转角行进,到达转角转换点C,如图14(b)和(c)所示;第三步,控制车辆转角,进行正转角行进,到达泊车点D;最后,调整泊车位置,结束泊车,如图14(f)所示。测试结果表明,该算法能够实现小车的自动泊车功能。

图14 小车自动泊车仿真测试图

5.2 LabVIEW 上位机测试

完成硬件电路搭建、各模块程序调试后,打开上位机软件界面,将上位机与下位机进行蓝牙无线连接。选择创建的COM1端口,将相对应的端口接入上位机面板,串口显示所连接端口,完成无线连接。设置波特率为1 152 00,按下“开始采集”按键即可进行系统测试。

1)车位检测显示:运行系统,工作指示灯亮起,系统正常运作,此时泊车系统中有六个车位被占,在操作人员面板中,分别设置日间和夜间费率为4元/小时和3元每小时,由于此时没有结算停车信息,因此历史测量记录无相关信息;在泊车计费面板中显示当前所设置的费率并展示泊车区的相关信息。车位检测显示结果如图15所示。

图15 车位检测显示

2)泊车计费显示:运行系统,工作指示灯亮起,系统正常运作,此时泊车系统中有10个车位被占,在操作人员面板中,分别设置日间和夜间费率为4元/小时和3元每小时,13:53 时3 号车位的车离开,其泊车时长为2 h 40min,泊车计费为12 元。泊车计费显示结果如图16所示。

图16 泊车计费显示

5.3 微缩模型平行泊车实验测试

为了验证系统平行泊车的可靠性和时效性,在西安交通大学城市学院的一间实验室采用纸箱搭建微缩物理模型模拟停车位,测试小车车身长31cm,停车位长度为62cm。针对平行泊车场景,通过对装有超声波模块和红外避障模块的自动泊车系统的小车进行试验测试,并且根据小车运行自动泊车的过程进行计时。小车自动泊车运行状态如图17所示。

图17 小车自动泊车实验测试图

首先,小车开启自动泊车功能,在路径上寻找到合适的起始泊车位置,并在此准备进行泊车,如图17(a)所示。

接下来在小车自动泊车的过程中,先往停车位方向转动斜向进入停车位,此过程相当于从S0位置移动到C位置,结果如图17(b)所示。

之后,当小车到达C位置之后,小车方向往停车场反方向转动,继续进行倒车,当到达D位置后,自动泊车部分完成并在小车显示屏上显示停车时间。结果如图17(c)所示。

对小车随机进行多次泊车测试,观测泊车成功后小车的停车位置,并读取小车显示屏所记录的泊车时长。共进行10次测试,记录小车自动泊车的泊车时长和泊车成功后的停车位置。测试数据如表2所示。由表2统计结果可得,泊车位置大概率停在车位居中位置,泊车时间为34~46s,平均停车时长为41s。

表2 测试数据

通过Matlab进行停车时间插值拟合,采用线性拟合,其拟合函数如式(12)所示:

拟合曲线如图18所示。可见,自动泊车停车时长在拟合曲线附近随机分布。

图18 泊车时间拟合曲线

6 结束语

通过基于模糊控制的平行泊车路径规划方法,对平行泊车路径进行规划,设计智能泊车计费系统。在Matlab中搭建仿真模型,基于符合实际的模糊逻辑控制器,仿真平行泊车。仿真测试结果表明,平行泊车路径建模能够较为完整地描述平行泊车场景,平行泊车可以根据路径规划泊入车位,且整个泊车时间曲线较为平坦,证明提出的平行自动泊车的路径规划方法工程应用性能良好。微缩物理模型仿真小车实验结果表明,利用人们驾驶习惯和思维特点的模糊控制方法进行多传感器信息融合,汽车初始车身位置在一定范围内,且泊车车位大于等于2 倍车身长度时,均可实现较为稳定准确的平行泊车,此方法可以应用到不同场景的平行泊车中,智能泊车平均时长为41s,满足快速智能泊车设计需求。基于LabVIEW 的智能泊车系统能够实现对停车位的实时泊车数量、停车时间及收费金额进行显示,且对停车场历史数据进行存储,具有历史数据查询功能。系统集平行泊车功能和计费功能为一体,实现了泊车计费智能化,为当前自动驾驶领域研究在真实场景中的应用提供了参考价值。

猜你喜欢

泊车计费车位
基于插电式混动汽车的自动泊车控制策略
基于MATLAB的平行泊车路径规划
5G网络独立组网中融合计费方案的研究
基于CarSim的平行泊车仿真分析
基于云计算和微服务架构的高速公路计费系统
为了车位我选择了环保出行
生活中的分段计费
我自己找到一个
Arrive平台新增智能泊车推荐引擎 帮助找到最佳泊车地点
一个车位,只停一辆?