基于手机MEMS 的反向寻车微信小程序设计*
2023-05-16谢锦玮颜浩文赵国都王捍兵
吴 梅,谢锦玮,颜浩文,赵国都,王捍兵
(常州机电职业技术学院电气工程学院,江苏 常州 213164)
反向寻车是指车主在停车场停车后,返回时寻找自己的车辆的行为[1]。在商场、购物中心等大型停车场内,车主在返回停车场时往往由于停车场空间大,环境及标志物类似、方向不易辨别等原因,容易在停车场内迷失方向,寻找不到自己的车辆。在有遮挡的环境诸如地下停车场等,GPS 或北斗导航信号弱甚至无法使用时,通常采用室内定位导航技术[2]。而目前室内定位导航技术均依托于提前铺设的信号源为导航设备提供位置信息后进行导航,如视频定位、蓝牙定位、RFID 定位以及Wi-Fi 定位等。在某些停车场未提前铺设信号源或者车主无法接入信号源的环境下则无法采用上述室内导航定位的方法进行反向寻车。
惯性导航是通过测量载体的加速度,并自动进行积分运算,获得载体瞬时速度和瞬时位置数据的技术[3-4]。组成惯性导航系统的设备都安装在载体内,工作时不依赖外界信息,也不向外界辐射能量,不易受到干扰,是一种自主式导航系统。基于微机电(Miсrо-Elесtrо-Mесhаniсаl Systеm)惯性传感器的惯性导航系统,由于其成本较低、体积较小,且精度也越来越高,已经逐步推广到工业、消费等领域,甚至在制导武器、飞机和车辆导航等领域也得到了比较成熟的应用[5-6]。
权威市场调研机构Gаrtnеr 数据显示,截至2018年,在中国,智能手机在手机中的占比高达96%。而从各大型智能手机硬件比对网站中可知,智能手机中普遍集成了MEMS 惯性传感器(由三轴加速度传感器、三轴陀螺仪和三轴电磁场传感器构成的惯性测量单元)[7]。智能手机中的社交软件——微信已成为全民级移动通信工具。根据腾讯2020 年一季报数据,微信及Wесhаt 合并月活跃账户数已达到12 亿,微信小程序日活跃账户超过4 亿[8-9]。
1 工作原理
系统工作原理建立在基于微信小程序开发的手机MEMS 数据读取API 和腾讯导航地图API 之上,将实际测量得到的MEMS 数据进行解算、滤波、修正,进而转换得到行走轨迹加载到反向寻车小程序中。
当车主在地下停车场停车后,打开反向寻车小程序开始定位,然后行走到停车场出口,在此过程中利用MEMS 生成行走轨迹。到达出口时,一般能够接收到GPS 信号,此时可以利用GPS 信号进行出口定位,并对之前生成的行走轨迹进行修正。当再次返回停车场,在停车场入口处进行GPS 定位,并结合之前的出口定位和行走轨迹,则可在地图上得到车位的相对位置。进入停车场后,在MEMS 数据指引下进行反向寻车,找到所停车位。系统具体工作流程如图1 所示。
图1 系统流程图
2 系统设计
本系统的微信小程序开发采用WXML+WXSS+JаvаSсriрt 来实现前端框架,主要由JS 页面逻辑、WXML 页面、WXSS 页面样式表和JSON 页面共同完成。根据需求分析的结果,为系统设计了不同模块功能。后端数据处理部分主要是在生成行走轨迹部分对采集到的MEMS 惯导数据进行处理,然后将处理后得到的轨迹数据传到前端进行显示。
2.1 前端界面设计
前端界面设计主要包括离车定位、到达出口、入口寻车、寻车结束等界面。另外为了检测手机MEMS模块工作是否正常,额外增加了MEMS 测试页面。
2.1.1 离车定位界面
初始进入小程序界面,通常可显示腾讯地图界面,但由于在地下停车场,无GPS 信号,因此无法实现地图定位功能。当点击“离车定位”按钮,由于此时是在MEMS 惯导指示下,因此不显示地图信息,可从界面中得到车位相对位置及实时行走轨迹。同时,提示“MEMS 导航中”“记录轨迹中”,如图2 所示。
图2 离车定位界面
2.1.2 到达出口界面
当行走到停车场出口附近,通常可接收到GPS 信号。点击“到达出口”按钮,提示“GPS 修正中”“地图定位中”“保存轨迹中”。此时利用GPS 信号对之前的MEMS 惯导轨迹进行回溯修正,并生成相对于当前出口位置的新的行走轨迹和相对车位位置。同时调用腾讯地图,将车位位置和行走轨迹映射到地图中,如图3 所示。
高校红十字会学生组织在管理和运行的规范性上有所欠缺,如:学生干部的换届缺少程序上的规范,大多是口头上任命,没有规范化的书文。学生带队外出参加活动,缺少社会经验。缺少对学生组织内领导成员的干部培训,应该定期组织学习与培训。
图3 到达出口界面
2.1.3 入口寻车界面
重新返回停车场,在入口处点击“入口寻车”按钮,提示“入口定位中”“载入轨迹中”“反向寻车中”。入口处可以接收到GPS 信号,此时能够在腾讯地图中得到位置信息。载入之前的离车轨迹,则可在地图上得到两者的相对位置。当进入停车场后,丢失GPS 信号,则依据MEMS 惯导指示,从入口位置行走到停车位置,从而实现反向寻车功能。如图4 所示。
图4 入口寻车界面
2.1.4 寻车结束界面
找到停车位置后,点击“寻车结束”按钮,则退出MEMS 惯导指示界面,此时可结束反向寻车小程序,如图5 所示。
图5 寻车结束界面
2.1.5 MEMS 测试界面
为了测试手机MEMS 各模块功能是否正常,设计MEMS 测试界面,主要包括测试罗盘、加速度计和陀螺仪的运行状态,如图6 所示。
图6 MEMS 测试界面
2.2 后端数据处理
后端惯性导航数据处理部分包括用户运动数据采集模块、初始数据滤波模块、零速度检测与修正模块、惯导解算单元及停车场外融合GPS 数据的惯导校正模块等。数据处理流程如图7 所示。
图7 数据处理流程图
用户运动数据采集模块主要是采集手机中罗盘、加速度计、螺仪等有助于计算行走轨迹的MEMS 单元数据,如式(1)所示:
式(1)中:Lb、Jb、Tb分别为手机坐标系下的罗盘、加速度计、陀螺仪数据。
罗盘采集的数据包括方位角和数据精度,加速度计采集的数据包括x、y、z轴方向的瞬时加速度,陀螺仪则采集的数据包括x、y、z轴方向的角速度。
采集到的MEMS 数据通常具有随机误差、初始校准误差等,因此需要对采集到的MEMS 传感器数据进行预处理。数据预处理一般包含两部分,即初始数据滤波和零速检测修正。
初始数据滤波主要利用Kаlmаn 滤波算法消除初始数据波形中的噪声,使滤波后MEMS 传感器数据更加接近真实的运动状态。零速检测修正主要针对传感器初始校准误差进行修正。初始状态手机处于静止状态,测量得到的MEMS 传感器数据可视为传感器静态误差,采用零速检测修正方法减小该误差。
MEMS 传感器数据进行预处理完成后,利用传感器数据进行惯导解算,从而得到实时行走轨迹。惯导解算采用旋转矢量法,首先利用旋转矩阵将手机坐标系下的MEMS 数据转换到地理坐标系下,如式(2)所示:
式(2)中:Db为手机坐标系下传感器数据集合;Dn为经过旋转矩阵后得到的地理坐标系下的传感器数据集合;Rnb为手机坐标系到地理坐标系的旋转矩阵。
在传感器数据坐标转换基础上,采用行人轨迹推算法计算生成行走轨迹。行人轨迹推算法主要包括步长检测估计、航向估计和位置推算几个部分。其中通过加速度计数据进行步长检测和估计,通过陀螺仪和罗盘数据进行航向估计,在此基础上进行位置更新。因此,行人轨迹推算法是一种相对定位方法,其流程如图8 所示。
图8 行人轨迹推算法流程图
最后,由于加速度计计算运动轨迹过程中,每个运动状态的计算依赖于上一运动状态,这就使得生成的轨迹存在累积误差。随着行走时间距离的增加,累积误差逐渐增大。因此,在停车场外接收到GPS 信号时,可以利用GPS 数据对之前生成的行走轨迹进行回溯修正。
3 结束语
本项目针对目前可用停车场反向寻车均需预先铺设信号源的缺点,拟设计基于手机MEMS 传感器的自主寻车微信小程序。在无GPS 等信号的地下停车场采用基于手机MEMS 传感器的惯性导航技术实现短时间的自主导航,进入有GPS 信号的停车场外环境时利用GPS 信号对惯导系统进行误差校正,从而实现自主寻车的功能。同时采用微信小程序进行软件开发,更具有免安装、方便快捷、使用简单的特点。