基于多地磁传感器的车辆位置检测系统设计*
2019-03-05冯宇航
冯宇航, 王 建, 蔡 尧, 高 峰, 赵 菲
(北京航空航天大学 交通科学与工程学院,北京 100191)
0 引 言
地磁传感器对于地磁场的变化敏感且具有成本低的特点,目前主要应用于辅助全球定位系统(global positioning system,GPS)进行导航[1],停车场的车位检测[2,3]以及进行交通流量统计[4]等用途。其原理为当车辆在路面行驶时,车辆的铁磁物质切割地磁感线对地磁场进行扰动使地磁场发生变化,地磁传感器检测地磁场强度超过一定阈值即判定路面上方是否有车辆存在或行驶[5]。如今,地磁传感器在车辆方向的应用主要侧重于通过对传感器数值的变化进行定性分析,并未对地磁传感器的数值与车辆的关系进行定量化研究。
本文提出一种由多个三轴地磁传感器(HMC5883L)构成的检测车辆位置的系统,多个传感器呈点阵布置在路面下,通过分析地磁传感器采集的三轴数据,来检测车辆在路面的相对位置,也可以计算出车辆的行进方向和车辆的行进速度。另外,与使用单一传感器相比,本文中系统采用多个地磁传感器可以提高测量精度、降低误差。本文系统所检测出的车辆位置信息提供给驾驶员可以实现车道偏离检测预警与碰撞预警功能,与雷达等车载辅助驾驶设备相比,本文系统具有低成本优势。
1 总体设计方案
总体设计方案如图1所示。车辆状态检测系统主要由地磁感应强度信号采集模块(以下简称信号采集模块)和数据处理模块组成。信号采集模块布置在路面下呈点阵分布,平行于车辆前进方向布置间距为2.5 m(节点1和节点2的距离),垂直车辆前进方向间距为1.75 m(节点1和节点4的距离)。信号采集模块的功能为采集地磁感应强度,滤波后将数据发送给数据处理模块;数据处理模块(本系统采用个人电脑(PC)端布置于路侧,主要功能为接收各个信号采集模块的地磁感应强度信息并对数据进行处理、计算得出车辆的实时位置信息。
图1 整体方案设计
2 硬件电路设计
信号采集模块包括地磁传感器、微处理器、存储器、电源模块以及控制器局域网络(controller area network,CAN)总线驱动芯片。地磁传感器HMC5883L模块通过I2C总线协议收集附近地磁感应强度变化信息,然后经过微控制器单元(micro controller unit,MCU)滤波后经过CAN总线发送至数据处理模块,其中存储器用于存储像该信号采集模块的CAN总线的ID等重要信息防止掉电丢失数据。信号采集模块的硬件电路结构如图2所示。
图2 信号采集模块硬件电路结构
与一般的通信总线比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。本文中系统采用TJA1042高速CAN收发器芯片在CAN协议控制器和物理双线式CAN总线之间提供接口。CAN总线通信的硬件电路如图3所示。
图3 CAN总线通信硬件电路
当车辆在路面经过时,车辆由于铁磁特性将切割地磁感线扰动地磁场使其强度数值发生变化。地磁传感器HMC5883L测量地磁场强度信息并通过内部集成电路(inter integrated circuit,I2C)总线协议将地磁场强度信息发送给信号采集模块的微处理器,微处理器接收地磁场强度信息后进行滤波[6],随后通过CAN总线(波特率500 kbps)将地磁场强度信息传递至挂载在同一CAN总线的数据处理模块。检测系统信息传递流程如图4。
图4 检测系统信息传递流程
3 系统软件设计
3.1 软件总体设计
整个系统的软件设计分为信号采集模块和数据处理模块(PC端),二者通过CAN总线协议进行通信。当信号采集模块初始化后,信号采集模块会以75 Hz的频率周期性采集地磁传感器信号,并在滤波后通过CAN总线发送给PC端,PC端通过通用串行总线(universal serial bus,USB)转CAN的CAN数据采集器采集各个信号采集模块的数据并处理数据获得车辆位置信息。软件系统框图如图5所示。
图5 软件系统结构
3.2 信号采集模块软件设计
每个信号采集模块的参数都可以通过数据处理模块通过CAN总线数据帧传输的命令帧进行更改。
每个信号采集模块都有唯一的CAN ID来区分对方。 如图1所示,节点1具有名为0x701的CAN ID,而节点3具有名称为0x703的CAN ID。 首次加入CAN总线时,信号采集模块将分配一个CAN ID,并将ID存储到其闪存中。 但当分配一个CAN ID时,如果其再次收到来自PC的CAN ID改变帧,则该ID将不会被改变。
为了提高检测的准确性,每个传输到CAN总线的信号采集模块的帧都应该是同时的。 因此,所有的信号采集模块的时钟在加入CAN总线后都会在特定的时间点通过时间校准帧进行校准。 信号采集模块的软件流程如图6。
图6 信号采集模块软件设计流程
3.3 数据处理模块(PC端)软件设计
软件在QT Creator开发平台上开发,开发环境为Windows,开发语言为C++。 该软件的功能为:1)通过CAN总线获取每个信号采集模块的数据;2)将命令帧发送到信号采集模块;3)显示来自信号采集模块的原始数据;4)实时显示车辆位置坐标信息。
软件的操作界面如图7所示,软件通过CAN总线接收信号采集模块的数据且可以向信号采集模块发送命令帧,软件还有显示原始数据、实时显示车辆位置坐标信息功能。
图7 PC端软件界面
4 系统实验与结果分析
车辆的位置由x坐标(垂直于车辆的正向)和y坐标(平行于车辆的正向)组成。 北京交通大学综合实验现场试验的车型是奇瑞威麟V5。
4.1 垂直位置
文献[3]通过实验测定车辆与地磁传感器之间的距离对地磁传感器的强度的影响并拟合出变化关系。然而,本文信号采集模块布置在不同的位置,每个地磁传感器的强度在没有车辆通过时通常也是不同的,所以该方法不完全适用于本文情况。 通过改进,本文在不同的x距离(车辆与地磁传感器之间的与车辆前进方向的垂直距离)上测量地磁差值(当车辆通过时地磁传感器强度减去没有车辆经过时地磁传感器强度的值) 从0.2~1.25 m不等。 上述2个变量之间的关系如图8所示。
图8 x距离与地磁差值变化的曲线
G为车辆通过时的地磁传感器强度减去没有车辆通过时的地磁传感器强度的值,mG,x距离为车辆与地磁传感器之间的垂直于车辆前方的距离。 图8中,当距离为1 m时,x距离每10 cm变化一次,数值会发生显着变化。
x坐标可以推导如下
式中xL为车辆左边节点的x坐标,GL为x值,xR和GR为右侧的对应参数。
4.2 平行位置
当车辆在实验道路上行驶时,依次经过3#,6#,9#,12#节点。车辆通过6#模块扰动的地磁传感器强度的波形应该与图9所示的3#模块的扰动波形相似。
图9 车辆经过系统时3#与6#节点地磁传感器数值变化
5 结 论
本文设计了一种能够通过多个地磁传感器检测车辆在道路上的位置的系统。通过实验对实际数据的测量和函数拟合确定车辆垂直前进方向的距离与地磁传感器差值的关系,确定车辆x坐标,再由时间延迟特性确定车辆y轴坐标,两个坐标的平均偏差是10 cm。 与雷达相比,该系统具有不受前方车辆干扰的优点,可望在智能道路方向应用于无人驾驶车辆。