付阳,张晓刚,许凯龙,蔡薇

(大连科技学院 交通与电气工程学院,辽宁大连,116052)

0 引言

随着我国汽车工业不断发展,汽车智能化的程度越来越高,并已经成为未来发展的重要趋势。随着城市人口不断增多,车辆数目也随之增加,导致泊车环境日趋复杂,停车特别是对于新手来说日益困难。而自动泊车技术则发挥了重要作用,并推动我国汽车向着智能化方向不断迈进[1]。在该项目中,以STM32 单片机为核心对小车进行研究,设计出通过自动循迹、速度控制以及传感器测距等实现自动泊车功能的小车。该系统通过超声波模块来精准测量其左右车辆的距离,通过图像传感器功能来感应车库线与小车的位置,并利用STM32 单片机实现小车的驱动控制,从而完成小车入库、出库的操作。最后利用CoppeliSim Edu 仿真软件通过LUA语言编程进行仿真实现。

1 系统整体方案设计

系统设计主要包括单片机主控模块、红外避障模块、超声波模块、电机驱动模块等。采用 STM32 单片机作为主控芯片进行控制,运行速度快,且支持各种主流操作系统。显示屏使用 IPS 屏幕,响应速度快,且其在抖动时可以很好地保证画面清晰度。电机利用三极管特性,选择使用三极管复合的直流电机驱动,可以更好地接收 PWM 的信号控制。具体方案如图 1 所示。

图1 系统整体方案框图

2 系统硬件电路设计

2.1 总体电路设计

系统设计采取STM32 单片机为主控核心芯片,总体电路构成包括主控部分、红外避障模块、超声波模块、速度传感器、蓝牙或WiFi 通讯模块、图像处理模块、电机驱动模块以及电源模块等构成。其硬件核心电路图,如图2 所示。

图2 系统硬件核心电路图

2.2 超声波模块电路设计

超声模块采用HC-SR04 传感器,包括超声波发射器、接收器与控制电路,其测距可提供2~400cm 的非接触式距离感测功能,测距精度可高达3mm[2]。在本设计中通过使用该超声波传感器对小车自动泊车进行精细调整,实现在侧方位和倒车入库的泊车过程中更完美的泊车路径规划。具体超声波模块如图3 所示。

图3 超声波模块

2.3 舵机转向电路设计

本系统所采用的舵机工作电压为3.0~7.0V,工作电流为200mA。由于舵机的控制需要20ms 的周期信号[3],且转动角度随高电平占空比的变化而变化,即需要使用单片机中的定时器中断来控制。而当超声波测距时又需要关闭系统中断,以提高测量精度。具体电路如图4 所示。

图4 舵机转向电路

2.4 电机驱动模块电路设计

电机驱动采用TB6612 模块实现,采用四个电机作为前进主动力。通过调整其中端口占空比,实现PWM 调速,从而实现小车加速、减速、退行和转弯等。电机驱动模块电路如图5 所示。

图5 电机驱动模块电路

2.5 选择蓝牙或无线WiFi 模块电路设计

WiFi 模块内部集成MCU,能实现单片机之间串口通信,其工作体积小,稳定性强,温度范围大,在使用时只需将TXD 与RXD 端口与单片机的串行接收、发送端口相接即可,电源部分选择接3.3V 作为VCC,使能端口EN 接3.3V 高电平[4]。具体电路如图6 所示。

图6 选择蓝牙或无线WiFi 模块电路

2.6 单片机主控模块

小车采用 STM32 单片机作为主控模块,拥有主流的 Cortex 内核,也拥有全面丰富的计数文档和丰富的软件包作为支持,其具有高性能、低成本以及低功耗的特点。芯片型号种类多,覆盖面广。

3 系统软件设计

本项目中主要是利用CoppeliSim Edu 仿真软件进行仿真,并利用LUA 语言编程模拟实现,通过使用Lua 函数或界面可视化来操作电机运动,从而实现轨迹规划,正逆运动解算。该软件能提供Matlab、C++、Python等多样的编程接口,方便调用API 接口,支持跨平台运行,比如matlab、visual等,所以很适合在该项目中验证算法逻辑的可行性。

3.1 侧方停车程序算法流程图

根据停车的不同场景,本设计通过对收集的环境信息进行不同的处理,并根据收集到的信息特点作出不同的控制电信号,实现小车的侧方泊车运行控制。具体算法逻辑如图7所示。

图7 侧方停车算法流程图

3.2 倒车入库算法流程图

现实中停车场都有较为规范的停车线规划,库内车辆摆放较为整齐,测试环境也更为简单。倒车设计通过循迹模块和障碍物探测,综合确定停车空间,进而规划停车入库路径。

具体算法流程图如图8 所示。

图8 倒车入库算法流程图

3.3 提高路径规划的设计

本系统主要采用可视图法来提高整体的路径规划。通过把小车看成一个点,在二维平面内通过组合连接库位点、小车和障碍物的各个顶点,保证小车和障碍物、库位点和障碍物以及各障碍物每个顶点之间的连线,均不能穿越其障碍物,如此可以将直线看作是可视的,即形成可视图。可视图法通过在环境模型中提取有用障碍物的信息,并在此基础上建立障碍物与子路径相对位置的辅助顶点,生成可视边的最短组合作为最优或较优路径。经仿真验证,该方法对解决无顶点障碍物全局路径规划问题具有较高的可行性和有效性,相较于固定四边形包络障碍物的可视图法具有更优的效果[5]。通过构造的可视图,可知任意两直线的顶点都是可见的,所以从起点沿着这些直线到达目标点的所有路径都是运动物体的无碰路径。此外,姚智龙等人的改进Bi-RRT*算法[6]也能够满足避障要求和运动学约束,而且规划时间和路径质量也具有优越性。

4 系统测试结果与分析

基于智能汽车无人驾驶需求,设计具有自动泊车功能的电动车并实现虚拟仿真,可在图9、图10 所示的场地上,分别独立完成“倒车入库/出库”或“侧方入库/出库”的单向操作,也可连续完成这两项入库/出库的操作,并将测试结果记录于表1、表2、表3 中。

图9 侧方位停车测试泊车场地示意与仿真图

图10 倒车入库测试泊车场地示意与仿真图

4.1 单向倒车入库/出库测试

如图 10 所示,摆放在“发车区 1”内的电动车,在一键启动后,电动小车开始以“右侧垂直泊车方式”自动倒车进入图中“库 2 ”内居中位置停车(详见图10库区abcd,此时库 1、库 3 内均停有车辆),倒车入库时间越短越好。电动车在库内停车到位 5s 后,沿车头方向右转出库。测试数据如表1 所示。

表1 单向倒车入库/出库测试数据

4.2 单向侧方入库/出库测试

如图 9 所示,一键启动摆放在“发车区 2”内的电动车,电动车以“右侧平行泊车方式”自动泊入库 5 内居中位置停车(详见图9 库区 abcd,此时库 4、库 6 内均停有车辆),侧方入库时间越短越好。电动车在库内停车到位 5s后,沿车头方向出库。测试数据如表2 所示。

表2 单向侧方入库/出库测试数据

4.3 连续倒车与侧方入库/出库测试

该测试场地如图11 所示,此刻泊车场地中的库1、3、4、6 内均居中停有车辆。电动车自图11 中“发车区1”内一键启动泊车,按4.1、4.2 要求,连续完成自动道岔及侧方入库/出库,测试数据如表3 所示。

图11 续倒车与侧方入库/出库测试场地示意与仿真图

表3 连续倒车与侧方入库/出库测试数据

本系统分别对三次情况各进行三次测试,得出小车在单向倒车、侧方入库以及连续倒车与侧方入库时间均为15s 左右,在单向倒车、侧方出库以及连续倒车与侧方出库时间均为25s 左右。通过测试我们可以得出该系统的各模块电路均能正常工作,小车的入库/出库时间以及数据记录准确。

5 结束语

目前我国汽车数量逐年增加,车辆停放空间也在不断缩小,将车辆安全地泊入车位变得更加困难。本系统正是基于这样的现实问题而设计的,目的就是解决车辆在较狭窄空间内的泊车困难问题,通过设计自动泊车系统从而解决此问题[7]。本项目设计是基于单片机的智能小车自动泊车系统的设计与实现,其主控芯片采用的是STM32 单片机,利用CoppeliSim Edu 仿真,能够完成自动循迹、速度控制以及传感器测距,通过对系统控制结构、控制原理、路径规划方案以及软件硬件的设计研究与介绍,较好实现了不同场景下小车在侧方位以及倒车的情况下能够实现自动入库出库的基本功能。该项目为发展智能小车的自动泊车技术提出了可行性的方案,对未来小车智能泊车的发展提供了思路参考。下一步仍需在路线规划以及跟踪方面不断优化完善,强化技术创新,提升自动化水平,促进汽车产业的智能化发展。