网站首页  词典首页

请输入您要查询的论文:

 

标题 基于Android端的惯性导航算法研究
范文 徐鼎 +孟坤+李尚同



摘要: 为了在GPS定位系统无法定位的地方(如室内、地下通道、地铁站等处)进行定位跟踪,提出了一种基于Android智能手机的惯性导航算法,通过对安卓手机传感器数据的采集,实现行人轨迹跟踪,并实时显示在手机屏幕上。在传统惯性导航算法基础上,该算法利用人行走过程中的周期性运动特点,对传感器数据进行修正,精确度比传统惯性导航算法平均提高5%。该算法不受时间、地域限制,用户只需保持手机的正确姿态,正常行走即可获得较为精准的数据,满足了脱离GPS还能实现室内导航的需求。关键词: Android;惯性导航;传感器DOI: 10.11907/rjdk.162681 中图分类号: TP312 文献标识码: A
0引言 现有的手机导航系统大多依赖GPS系统,目前民用GPS系统精度已经达到5m左右。但是GPS系统使用条件要求较高,必须保证在空旷的地方才具有较高精度,在室内或地下等地方无用武之地。 为了在GPS无法应用的地方实现导航功能,本文提出一种基于Android智能手机传感器的惯性导航算法,实现在手机屏幕上实时跟踪运动轨迹的惯性导航系统。
1惯性导航 惯性导航系统(INS,Inertial Navigation System)也称作惯性参考系统,是一种不依赖于外部信息、也不向外部辐射能量(如无线电导航)的自主式导航系统。其工作环境不仅包括空中、地面,还可以在水下。惯性导航的基本原理是以牛顿力学定律为基础,通过测量载体在惯性参考系的加速度,将它对时间进行积分,变换到导航坐标系中,得到在导航坐标系中的速度、偏航角和位置等信息。 惯性导航系统属于推算导航方式,即从一已知点的位置根据连续测得的运动体航向角和速度推算出下一点位置[1]。惯性导航系统中的陀螺仪用来形成一个导航坐标系,使加速度计的测量轴稳定在坐标系中,并给出航向和姿态角;加速度计用来测量运动体的加速度,经过对时间的一次积分得到速度,速度再经过对时间的一次积分即可得到位移[2]。
2Android传感器 大多数Android设备中都内置有各类传感器,用来测量运动、方向和各种环境条件。这些传感器能够提供非常精确的原始数据,刻画手机的各种状态,用于监控设备的三维运动,或者设备周围的环境变化等等。 Android平台支持下列3类传感器:①位移传感器。沿3个轴线测量加速度和旋转,包含加速度传感器、重力传感器、陀螺仪传感器和矢量传感器;②环境传感器。测量各种环境参数,例如周围的空气温度、压力、光线和湿度,包含气压传感器、光线传感器和温度传感器;③位置传感器。测量设备的物理位置包含方向传感器和磁力传感器。 开发过程中,通过使用Android传感器提供的框架获取原始数据。传感器框架提供了一些类和接口,帮助开发者完成各种与传感器有关的任务。
3加速度传感器和方向传感器 本文提出的算法依赖于上述传感器中的加速度传感器和方向传感器实现。3.1加速度传感器 加速度传感器会返回X轴、Y轴和Z轴的加速度值,此处的三轴指传感器本身表示方向的坐标轴,而不是手机位置的空间直角坐标轴。在Android系统中,用图1所示的3条轴线来描述加速度方向。 当手机垂直放在桌面上时,X轴正向为沿着屏幕向右的方向,Y轴正向为沿着屏幕向上的方向,Z轴正向为与屏幕平面垂直向屏幕外的方向。 各轴的数值包含引力影响,单位是m/s2;将手机屏幕朝上平放在桌面上时,X轴默认为0,Y轴默认0,Z轴默认9.81;将手机屏幕朝下平放在桌面上时,X轴默认为0,Y轴默认0,Z轴默认为-9.81;将手机沿屏幕左侧的边为轴向左翻转时,X轴为正值;将手机沿屏幕右侧的边为轴向右翻转时,X轴为负值;将手机沿屏幕上侧的边为轴向上翻转时,Y轴为负值;将手机沿屏幕下侧的边为轴向下翻转时,Y轴为正值。
3.2方向传感器 安卓方向传感器是通过软件模拟的基于加速度传感器和地磁传感器的虛拟传感器。最底层数据来源仍是硬件传感器。方向传感器也有三条轴,返回的值为手机不同状态的角度值。 传感器本身三轴的数据含义说明:将手机平放在桌面上,带圈的一端视为手机上边,将手机视作一个平面矩形。以该矩形的中心为O点,手机纵向平行于侧边且过中点的直线为X轴,横向平行于上下边且过O点的直线为Y轴,垂直于手机屏幕且过O点的直线为Z轴,建立空间直角坐标系如图2所示(此处的三轴为空间直角坐标轴,而不是传感器自身的三轴)。
方向传感器中的X:规定坐标轴中的X正半轴为北。手机头部指向OF方向,此时X的值为0;如果手机头部指向OG方向,此时X值为90;指向OH方向,X值为180;指向OE,X值为270。 方向传感器中的Y:将手机沿着BC轴慢慢向上抬起,即以手机上边为轴翻转,直到AD落到BC右边并落在XOY平面上,这期间Y的值将在0~180之间变动;如果手机沿着AD轴慢慢翻转,直到BC落到AD左边并且落在XOY平面上,Y的值将在0~-180之间变动。 传感器中的Z:将手机沿AB轴向上翻转,直到CD落到AB右边并落在XOY平面上,Z值将在0~180之间变动;如果手机沿着CD轴翻转,直到AB跑到CD左边并且落在XOY平面上,Z值将在0~-180之间变动。
4Android端显示轨迹算法 Android智能手机自带的传感器为实现惯性导航提供了必要的硬件支持。根据惯性传感器收集的数据进行步态检测、动态步长估计以及航向确定,并在步态检测过程中采用多条件约束的波峰—波谷检测方法减少伪步态识别[3]。据此,本文提出在Android手机端实现惯性导航算法。该算法包含3个部分:运动距离确定算法、运动角度确定算法、屏幕显示轨迹算法。 在一次运动过程中,将该过程分割为多个相等的较小单位时间,分别得出每个单位时间内的运动距离和运动角度,并在每个单位时间结束时实时更新运动轨迹点,即可在屏幕上绘制出整个运动过程的轨迹。
4.1运动距离确定算法 假设手机持有者水平手持手机运动,手机上边头部方向与人面对方向一致。手机持有者运动前先输入步长值,然后开始运动。运动过程中,首先通过传感器获得传感器3个轴的加速度大小和方向。由于手机持有者每前进一步都会使得加速度传感器的Z轴数据出现一次波动,每次波动情况非常接近,从而在整个运动过程中可以获得一条运动的正弦曲线轨迹。然后对运动过程进行峰值检测,与上一次记录的加速度大小进行比较,得到加速度大小的变化量,从而判断目前加速度的方向,并和上一次记录的加速度方向进行比较,如果方向相反,则表示刚过峰值,此时执行计步逻辑开始计步,反之则舍弃数据。 在计步逻辑中,以一个峰值出现的周期为计步时间,在该时间内,将获取到的加速度变化量进行二次积分,得出该时间内的位移。如果数据十分精确,这段位移应当与持有者的步长相差无几,但实际情况下,手机加速度传感器的采样频率不高,加上人类动作复杂,造成加速度传感器的读数误差较大[4]。可在峰值检测时加上阈值频率判断,过滤干扰数据。另一方面,将计算出的位移与持有者步长进行比较,如果差距较大,则取初始输入的步长值为实际步长值,如果差距较小,则取两者的平均值为实际步长值。最后将获得的步数乘以实际步长值即可得出运动距离。
4.2运动方向确定算法 假设手机持有者在运动中水平手持手机,手机上边头部方向与人面对方向一致。手机持有者在转弯时,通过读取方向传感器的X值获得当前手机朝向。由于手机头部朝向与人面对方向一致,因此该值即为手机持有者的运动偏转角度。 转向过程中手机的侧面会不可避免地出现少许抬起,导致其它轴出现数据波动,因此应当舍弃这些波动数据。 4.3屏幕显示轨迹算法 通过以上两种办法分别获得运动过程中的距离与角度,同步调用安卓程序接口,在手机屏幕上绘制相关轨迹。 当手机持有者直线行走时,根据检测到的峰值,将每个峰值在屏幕上绘制一条线段,该线段的长度与初始行走时输入的步长形成一个固定比例,后续每次峰值出现,就按照该比例绘制一条线段,以每次峰值出现到下一次峰值出现为一个时间戳,重复绘制线段。 当手机持有者开始转向时,方向传感器便能读取到X轴有较大变化,当方向传感器的X轴稳定到一定程度不再出现较大变化时,转向结束,应当立即读取方向传感器的角度值,并在屏幕上根据方向传感器返回的角度立即朝新的方向绘制线段。运动结束时屏幕上即可显示运动轨迹。 将事先制作好的地图放在屏幕上作为背景图片,即可显示出地图轨迹。
5算法测试 为验证算法可行性,笔者根据该算法开发出了APP雏形,经过多次测试后,获得了相关数据。
5.1测试环境 测试环境地图如图3所示。其中橙色星标部分为运动起点。初始状态,手机持有者打开程序,保持手机平放在手掌中,面部朝向与手机头部朝向保持一致,输入步长为0.6m,从起点开始正常行走。
5.2测试结果 行走过程测试结束后,手机上绘制的路径如图4所示。 对测试过程进行数据取样,摘取其中一段直线路径的9组数据如表1所示。表1数据显示了程序计算的距离和实际距离,将实际距离与计算距离的差值绝对值认为是一组数据的误差,则10组数据的平均误差为0.18m。
6结语 基于Android手机传感器的惯性导航算法,利用Android手机的加速度传感器和方向传感器分别获取运动时的加速度和运动角度,通过加速度的变化规律推测步数,利用加速度变化量计算步长,并通过与预设步长比较进行步长修正,再根据角度变化判断运动转向,从而绘制出运动轨迹,算法切实可行,可精确到0.2m以内,足以满足室内导航需求。
参考文献: [1] 王凡.智能车辆中基于GPS和陀螺仪的导航与定位[D].北京:北京工业大学,2013.
[2]贾振兴.导弹飞行过程仿真软件设计[D].北京:北京邮电大学,2011.
[3]王旭凤.基于惯性导航的室内定位系统的研究[D].长春:吉林大学,2015.
[4]王郑合.基于智能手机的惯性导航轨迹生成算法[J].工矿自动化,2015,41(5):8790.
[5]苏亚光,吴亚峰,索依娜.Android平台下传感器技术开发计步器应用[J].电脑编程技巧与维护,2010(23):4046.
[6]段丙涛.基于惯性传感器的机器人运动轨迹研究及实现[D].成都:电子科技大学,2012.
[7]齐保振.基于运动传感的个人导航系统及算法研究[D].杭州:浙江大学,2013.
[8]尹博.基于GPS和加速度传感器的运动类智能终端应用软件的设計与实现[D].北京:北京邮电大学,2012.
[9]郝立果.基于加速度传感器的运动信息采集和应用研究[D].天津:天津大学,2010.
[10]邸文华.基于iPhone的人员行走惯性导航系统的设计与实现[D].天津:天津大学,2012.(责任编辑:杜能钢)
随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/11 6:47:05