基于九轴传感器的行人室内定位方法

2021-02-25 05:50朱加成东单锋
计算机工程与设计 2021年2期
关键词:波峰航向步长

秦 岭,张 振,朱加成,东单锋

(南京工业大学 计算机科学与技术学院,江苏 南京 211816)

0 引 言

随着GPS全球定位系统的发展以及智能便携终端(智能手机、平板电脑、智能硬件等)的普及,与室内相关的位置服务[1](LBS)越来越受到人们的关注。然而,在室内环境中,由于楼宇等建筑物的遮挡,导致GPS信号非常微弱,定位精度无法达到人们的要求。这激发了研究人员对室内定位技术精度的追求,提出了各种创新方法[2]。

现有的室内定位技术主要分为以下3种:基于短距离的无线通信定位[3]、基于Wi-Fi信号的无线定位方法[4]和基于惯性传感器的定位算法[5]。在室内定位这方面的研究上,金仁等[6]提出的聚类算法对数据进行分类,提高了室内定位精度;杨国赛等[7]提出的一种基于超宽带的室内定位算法,在非视线干扰时减少定位误差,提高精度;Ahmet Yazc等通过将Wi-Fi信号值和磁场传感器值阻隔起来,构建混合指纹图,然后利用不同的传感器测量值和分类算法,在不同的室内环境下,增强了室内定位系统性能[8];Belal Al-Qudsi等[9]提出一种多频段可扩展定位系统,通过扩展了参考节点和移动节点,来减少定位误差。

综上,目前室内定位技术普遍存在的缺点是成本较高或者精度较低[10]。针对上述存在问题,本文采用了一种基于九轴传感器的定位方式,利用基于MEMS技术的九轴传感器和运动学相关的理论[11],不依赖外部信息,实现自主、连续、简单、低功耗的导航室内定位。其中,使用了行人航迹推算(PDR)算法,依据行人行走步数、行走航向及步长来实现定位,短时间内获得较高精度的相对位置信息。

1 准备工作

1.1 该方法用到的设备

九轴蓝牙传感器是一款创新性的高性能微型无线传输姿态传感器。它是3种传感器的组合,包括三轴陀螺仪(检测角速度)、三轴加速度计(检测地球重力场的方向)、三轴磁力计(测量地球磁场方向)。它利用蓝牙2.0和BLE技术,可以轻松地与PC、智能手机等设备通信,被应用于机器人和人类动作测量。

九轴蓝牙传感器运用蓝牙技术与小米5进行无线传输。该传感器中有两种不同的通信模式,一种是命令模式(接通电源默认模式),在命令模式下,可以逐个命令访问传感器的功能,测量数据通过一个特殊的指令从传感器传送给用户。该模式适用于调整传感器的参数设置和同步数据传输,该模式下蓝色LED闪烁频率为10 Hz。另外一种是流模式,在流式模式中,数据不断地从传感器发送到主机。该模式适用于简单、高速的数据采集,无法在此模式下设置传感器参数。蓝色/红色LED在此模式下淡入淡出。最终通过这两种不同的通信模式,利用手机App采集传感器数据并进行分析,最终呈现行人的轨迹。

1.2 该方法的数据源

利用传感器中加速度计输出的三轴加速度、陀螺仪输出的三轴角速度、磁力计输出的三轴磁感应强度作为数据源,采样频率为50 Hz。

打开九轴蓝牙传感器并将其固定在脚踝上,同时打开手机蓝牙与传感器进行配对。配对成功之后,在室内正常行走。利用App采集传感器内置的加速度计、陀螺仪和磁传感器的X轴、Y轴、Z轴3个方向上的数据并进行保存。

1.3 该方法定义的坐标系

根据传感器固定在脚踝上的方向,本方法所定义的载体坐标系为b系,参考坐标系为n系。b系的方位指向如图1所示,n系为地理坐标系。在b系中,X轴为左右方向,Y轴为上下方向,Z轴为前后方向(由于传感器固定在脚踝上,行走方向为Y轴在水平面上的投影)。

图1 传感器固定位置及坐标系

2 步态检测

整体加速度计算。通过计算加速度计的三轴加速度,避免载体坐标dx、dy、dz不同,而导致人体的加速度在垂直方向上产生误差,从而降低了设备姿态的影响。整体加速度的计算公式如式(1)所示

(1)

式中:dx、dy、dz为加速度计3个方向x、y、z的实时采集值。

对计算得到的整体加速度进行均值滤波。设置一个滑动窗口,将每个滑动窗口的数据分为一组进行求和取平均值,将处理后的值保存作为新的整体加速度的值,使数据更加平滑,更易于波峰检测及滤去噪声。

2.1 改进的波峰检测法

利用滑动窗口的取值进行波峰检测。本方法以传统的波峰检测法为基础,在传统的波峰检测法上进行了一些改进。改进的波峰检测法需要满足以下几个条件:

(1)设置潜在波峰的值保持在一个范围内变化,从而避免身体抖动和传感器自身的误差造成数据有一定的波动;

(2)当前的点为下降趋势,之前的点为上升趋势;

(3)设置时间阈值,比较前一波峰的时间与潜在峰值的时间之差是否符合时间阈值,从而排除一些突然坐下及转动身体等带来的加速度值激增;

(4)设置一个几秒钟的滑动窗口,根据每个人行走的特点自适应地设定阈值,判断陀螺仪Z轴的角速度gyroZ在这个滑动窗口里的方差是否小于设定的阈值,从而排除手势晃动的情况;

(5)设置一个滑动窗口,该窗口以潜在峰值为中心,比较潜在峰值的前后采样点,若潜在峰值为最大值,就将伪波峰去除。

步态检测流程如图2所示。

2.2 原地踏步检测

根据传感器姿态的变化情况,原地踏步和正常行走时传感器的姿态不同,通过设定一个阈值来识别原地踏步,最终将原地踏步时的步长设为0,不计入定位的总距离,从而减少室内定位在定位距离方面的误差。

检测原地踏步需要满足以下几个条件:

(1)利用陀螺仪输出的数据,对陀螺仪X轴输出的角速度gyroX进行低通滤波,从而去除了一些噪声数据。

(2)在满足上述计步条件的基础上,取出每一步中X轴角速度的最大值maxGyroX和最小值minGyroX。

(3)设定一个阈值,若maxGyroX与minGyroX的差值小于所设定的阈值,则此次步态为原地踏步,将这次行走的步长设为0,否则为正常计步的情况。

原地踏步检测流程如图3所示。

图2 步态检测流程

图3 原地踏步检测流程

3 航向检测

3.1 四元数坐标变换

每一次行走的方向由姿态角决定,姿态角包括航向角ψ,俯仰角θ,横滚角γ,可以通过如下方程组得出

(2)

(3)

(4)

(5)

姿态转换矩阵得到后,利用如式(6)可以求出航向角ψ

(6)

3.2 航向修正

在启发式随机漂移消除算法(HDE)的基础上,利用一种基于主方向的航向修正算法,设定8个主方向,采用3个相邻步间的航向变化来检测直线行走和转弯,利用如式(7)来检测

(7)

其中,m表示行走路线的状态,1代表直线,0代表转弯;ψi表示当前步的航向角,ψi-1和ψi-2分别表示前一步和前两步的航向角,ψth表示设定的一个偏差阈值。通常情况下,偏差阈值设为10°左右。

当判断行人走直线,即m=1时,经HDE反馈系统修正航向角误差。在HDE反馈系统中,前一时刻航向角相对于当前行人主方向的偏移角度经MOD函数求取。MOD函数定义如式(8)所示

(8)

其中,ΔINT(k)为向上取整函数,将ψi-1、Δ代入MOD函数内,如式(9)所示

(9)

(10)

根据Ii修正航向角方向,使其回归主方向,即

ψi-HDE=ψraw,i+Ii

(11)

当判断行人走曲线,即m=0时,HDE停止了陀螺仪的偏移补偿,因此可以通过扩展卡尔曼滤波(EKF)进行偏移补偿。

4 步长检测

本文利用一种新的非线性步长估计模型,并结合了步频的信息,利用如式(12),对步长进行估计

(12)

其中,amax、amin分别代表行走一步时的最大加速度值和最小加速度值;k代表使估计步长与真实步长之间误差的最优值,它依赖于用户自身的真实步长估计得到,针对不同的用户取不同的值,衡量了加速度值对步长估计的影响,使结果更加准;ω为权重参数,它控制amax与amin之和在整个算法中的影响程度;β代表步频控制系数,由训练数据经最小二乘法拟合得到;F为步频,由如式(13)计算得到

(13)

其中,Tpeak和Tvalley分别为上述步态检测算法中每一步的波峰与波谷的时间。

5 实时定位

在实时定位阶段,利用如式(14),设定一个初始坐标,根据推算出来的步数、航向角、步长,可以推测到下一个点的坐标,从而推算出该行人的行走轨迹

(14)

其中,Xk和Yk分别表示行人第k步在X轴方向(东)和Y轴方向(北)上的位移,Sk表示行人在第k步上的步长,θk表示行人在第k步上的航向角。

6 实验设置及结果

6.1 步频检测结果

本次测试共6位参与者,每位参与者按要求分别在室内进行计步的测试。对每个参数者实验结果取平均值,并与传统的波峰检测法进行对比,由表1可知,改进的波峰检测法在计步的结果上要优于传统的波峰检测法。

6.2 步长估计结果

同样,6个人按要求在室内行走50 m,共产生6组数据来验证步长估计算法的性能。由表2可知,该步长估计算法的精度可以达到1 m。

表1 平均计步结果比较

表2 步长估计结果

6.3 定位结果

如图4所示,行人真实轨迹为横坐标为5的一条直线,图中黑色实线为未使用航向修正算法的行人轨迹,基本符合人的运动轨迹,但是定位过程中轨迹陡变,说明其连续性较差。使用航向修正算法能够缓解陡变的点,图中黑色虚线为使用航向修正算法后的行人轨迹,定位结果表明修正后的轨迹更加接近行人真实轨迹。因此,该航向修正算法能有效修正航向角的偏差。

图4 某办公室航向修正效果

7 结束语

本文提出了一种基于九轴传感器的室内定位方法,通过将传感器固定在脚踝上,在步态检测方面,设置了多个条件,识别出一些姿态,有效提高了步数的准确性;在航向角修正方面,采用了一种基于主方向的航向修正方法,在走直线时通过HDE反馈系统进行修正,在走曲线时,通过EKF算法进行偏移补偿,有效地纠正了航向角的偏差;在步长检测方面,使用了一种新的非线性步长估计模型进行估计,加入了权重参数,同时结合了步频的信息,进一步提高了步长的准确性。本文从多个方面考虑,切实有效地提高了室内定位的精度,有很大的实用价值。但本方法不适合在三维立体空间、磁场干扰强等室内环境中使用,在以后的工作中,考虑结合WLAN辅助、地图匹配等技术,实现更高精度的定位需求,同时,针对不同的场景,如何适配多样化场景,也是需要进一步研究的内容。

猜你喜欢
波峰航向步长
风浪干扰条件下舰船航向保持非线性控制系统
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
知坐标,明航向
作用于直立堤墙与桩柱的波峰高度分析计算
考虑几何限制的航向道模式设计
基于干扰观测器的船舶系统航向Backstepping 控制
儿童标准12导联T波峰末间期的分析
Dynamic Loads and Wake Prediction for Large Wind Turbines Based on Free Wake Method
基于逐维改进的自适应步长布谷鸟搜索算法
一种新型光伏系统MPPT变步长滞环比较P&O法