张伦东,卢晓慧,李军正,何劢航
(1.信息工程大学,郑州 450001;2.北斗导航应用技术河南省协同创新中心,郑州 450001;3.中国人民解放军91039部队, 北京 102401)
由于人经常在城区、树林、室内等区域活动,所以对人进行精确导航定位是导航定位技术中十分具有挑战的工作[1]。目前,根据采用的手段不同,对行人进行导航定位主要有三种方式:1)利用视觉对行人进行定位。这种方式又可分为行人目标跟踪和行人自主导航定位两种模式。行人目标跟踪,一般是在需要对人进行导航定位的场合,安装摄像头等视频设备,利用相关算法对人进行跟踪定位,这种方法不需要人合作,但是需要事先布置设备,限制了人的自主性;行人自主导航定位可通过携带图像传感器,对周围环境进行拍摄,经在线计算,对行人进行导航定位[2-3],这种方法定位精度高,但是计算量大,功耗比较大,光线不好时影响定位效果。2)利用通信信号或射频信号对人进行导航定位。例如利用移动通信基站进行定位,以及无线射频标签(Radio Frequency Identification,RFID)定位、蓝牙定位、超宽带(Ultra Wide Band,UWB)定位、ZigBee定位等[4-8]。这些定位虽然采用的具体技术不同,但基本上都需要事先布设固定基站[9],行人通过持有接收或发射的设备进行导航定位。3)利用微机电系统( Micro-Electro-Mechanical System,MEMS)惯性器件对行人进行导航定位。这种方法将MEMS惯性器件嵌入到行人可穿戴设备中,一般是安装在鞋底,结合人的运动特点对行人进行导航定位。
相对于其他导航定位手段,基于MEMS惯性器件的行人导航技术不需要事先布设基站,仅依靠自身携带的MEMS陀螺仪、加速度计和磁强计等传感器就可以完成行人的导航定位,具有自主性好,基本不受环境干扰的特点,而且功耗低,数据处理小,还可实时解算。因此,比较适合环境未知,无法提前布设基础设施的单兵作战、消防救援、反恐等应用领域。但是,这类人员工作比较特殊,除了正常行走外,更多的情况是跑步、转向和上下楼,甚至还会出现跳跃和爬行等运动形式[10],所以给导航定位算法带来了更大的挑战。潘献飞等[11]对相关技术进行了详细综述,并展望了今后的发展趋势。在此基础上,本文首先对基于MEMS惯性器件的行人导航技术的基本原理进行了介绍,然后对基于零速修正(Zero Velocity Update,ZUPT)的行人导航的关键技术和相关研究进展进行了阐述,最后探讨了行人自主导航技术的发展趋势。
行人导航所用的MEMS惯性器件,要求小体积、低功耗、小质量、低成本[10]。这样的MEMS惯性器件性能较差,单独进行导航很难满足行人导航定位的要求。但人是一步一步地行走,如果能将人行走的步数和步长探测出来,再结合航向信息,则可以采用步行航位推算(Pedestrian Dead Reckon-ing, PDR)计算行人的位置和航向,一般称为基于步长估计的行人航位推算方法[12]。另外,人行走的时候,每走一步脚都会着地,此时脚部相对地的速度为零,如果将MEMS安装在鞋上或者嵌入到鞋垫里,这样结合每步着地时的零速进行零速修正,可以对人进行导航定位,一般称为基于零速修正的行人导航算法[12]。
与航位推算的原理一样,基于步长估计的行人航位推算原理如图1所示[10]。如果已知初始位置,结合人行走的特征,利用陀螺仪和加速度计等数据,采用一定的步长估计模型估计人行走的步长,然后利用陀螺仪或磁强计测量计算的航向角,将步长分解到选定的坐标系中,可以得到下一步人的位置。
图1 航位推算基本原理示意图Fig.1 The principle of PDR algorithm
在图1中,假设初始位置S1的坐标已知,为(x1E,y1N);S2为行人行走一步后的位置;人行走一步的步长为d1,航向角为θ1。则人在S2处的位置可为
(1)
同样地,在后续的导航定位中,只要能够估计行人的步长和航向,就可以推算行人下一步的位置。
一般来说,PDR包括步伐检测、步长估计、航向计算和位置更新等4个步骤,其处理过程如图2所示[10]。步伐检测主要包括步频检测和步数判断。步频检测主要用来划分人运动过程中的步态周期,并计算一个完整步态周期的持续时间,用于步长估计和航向计算。步数判断则是识别人是否已完成一步这个动作,用于位置更新。
图2 航位推算处理过程Fig.2 The procedure of PDR algorithm
步长估计主要用来估计行人一个步态周期走过的距离,一般通过建立步长估计模型进行步长估计。但是,不同的人步长不同,而且步长还与人的状态、行走的环境等多种因素有关,如人是否疲劳、是否生病、是否独行、是否携带东西、路上是否有障碍、地形的坡度、地形的质地等。所以,建立比较精确的步长估计模型非常困难[10]。并且,不同的运动类型对应不同的步长模型系数,如针对正常行走优化的步长模型系数,对于跑步等运动形式的步长估计的就不太精确。另外,根据惯性器件不同的安装方式,步长模型的系数也不相同。如果惯性器件不是固定的,如利用手机里的惯性器件进行导航定位,则步长估计模型的系数也不一样。可见,步长估计是行人航位推算算法中最为关键的技术,估计算法取决于惯性传感器的安装位置和行人的运动方式。
航向计算主要是利用陀螺仪和磁强计的数据,结合人的运动特征,实时计算人运动的航向角,进而将人行走的每步的步长分解到相应的坐标系中。航向角的精度直接关系行人导航的导航定位精度。但是,由于行人导航采用的主要是低成本低精度的惯性器件,所以人相对真北的航向角很难求解或者精度较低,所以目前的行人导航一般都是相对于初始位置的相对导航,得到经纬度等绝对定位的还比较少。
位置更新主要是根据估计的步长和计算的航向角推算行人的位置。推算的位置精度主要受步长估计精度和航向角计算精度的影响,并且随着行走距离的增加,定位误差越来越大。
行人航位推算实现简单,灵活方便,器件可以安装在脚部、腰部、手臂、胸部,或者口袋里,对安装的位置限制较小,特别是现在的智能手机,大都集成了陀螺仪、加速度计和磁强计等传感器。因此,PDR得到了广泛的研究和应用。但是,PDR受很多因素的影响,定位精度有限。而对于单兵作战、消防救援和反恐等应用领域,由于包含跳跃和跑步等多种运动模式,将该算法应用于这些特殊领域还有待于进一步深入研究。
人在行走和跑步等运动过程中,脚部会不断地离开地面和接触地面。当脚部接触地面时,行人的速度为零。如果将MEMS惯性器件安装在脚部,如鞋里或者特制的鞋垫里,传感器检测到脚部着地时,理论上此时MEMS部件的速度应该为零。此时,将速度零值作为观测值进行导航滤波计算,称为基于零速修正的行人导航算法。由于脚部离开地面的时间比较短,所以采用零速修正,即可得到较高的导航定位精度。其基本原理如图3所示[13]。
图3 零速修正基本原理示意图Fig.3 The principle of ZUPT algorithm
在零速修正的行人导航算法中,要求MEMS惯性器件安装在脚部,这限制了很多场合的应用。但是与行人航位推算相比,该算法比较简单;能够适应多种场合;采用该算法,不同的人对导航定位精度的影响较小;导航定位精度相对较高,非常适合士兵作战、消防救灾等特殊场合的应用。
在零速修正的行人导航算法中,零速状态检测和绝对航向角的高精度计算是最为关键的技术,这是影响行人导航定位精度的最重要的因素。其次,如果能将人的运动模式进行细分,根据人的运动模式进行零状态检测和算法修正,导航定位的精度将会更高,同时还可监测前方执行任务的人员状态,为复杂情况的处置提供信息。
准确检测出行人的零速状态是基于零速修正的行人导航算法的前提。在行人实际运动过程中,由于脚部的高频振动,由陀螺仪和加速度计的输出数据精确地判断零速状态和非零速状态非常困难。在零速状态判断中,行人实际上处于零速状态,但是设计的算法没有判断出来,这种情况称为漏判;行人实际上处于非零速状态,但是设计的算法判断为零速,称为误判[14]。如果发生漏判,则在本次零速修正中,参与修正的数据量比实际的数据量少,但是对于正常行走来说,这对导航定位的精度基本没有影响;但对跑步来说,本来脚与地面接触的时间就比较短,再漏判一些数据,则参与零速修正的数据量就会更少,进而影响导航定位的精度。误判是错误地将非零速状态认为是零速状态,用误判的结果进行零速修正肯定会产生较大的误差,并且这种误差会一直影响后续的导航定位解算[14]。因此,零速状态检测应遵循的基本原则是避免发生误判,尽量减少漏判。
零速状态检测既可以采用加速度计的数据,也可以采用陀螺仪的数据,还可以采用加速度计与陀螺仪的组合数据。采用滑动窗口进行检测,滑动窗口为N,即采集N个数值,当计算值满足一定要求时就认为处于零速状态。J. O. Nilsson等对基于加速度阈值、角速度阈值、加速度方差以及角速度和加速度组合等四种判断方法进行了研究[15]。唐文杰[16]和贾铮洋[17]等分别对这四种判断方法进行了总结。四种零速检测算法模型如下:
1)加速度阈值检测法
(2)
2)角速度阈值检测法
(3)
3)加速度方差检测法
(4)
4)组合检测法
Amutil=
(5)
(6)
唐文杰等[16]对四种判别方法分别进行了实验验证,实验共行走了50步,四种判断方法的效率几乎没有差别,但组合检测方法的正确率最高。贾铮洋等[17]进行了4min的行走实验,结果表明加速度阈值和加速度方差检测方法均可检测出每步的零速状态区间。在定位结果方面,采用加速度方差检测方法的定位精度最高,而采用组合检测法的定位精度最差,这与唐文杰等得出的结论不同。潘献飞等[11]和J. O. Nilsson等[15,18]认为,在大多数情况下,组合检测方法的效果更好。唐文杰和贾铮洋的实验都是在正常行走状态下进行的,在其他运动模式下的情况需要进一步深入检验。
人的运动比较复杂,不能一直处于行走等一种运动模式。对于混合运动模式,张健敏等[19]提出了一种多运动模式下的自适应阈值零速检测方法。该方法利用随机森林算法对静止、走路、跑步、上楼和下楼等5种运动模式进行分类识别,并根据识别结果对判定阈值进行自适应调整,实验结果表明这种方法可有效提高定位精度。贾铮洋等[17]提出了一种混合运动模式下的双重阈值零速区间检测算法,该方法首先利用角速度变化特性识别运动模式,然后根据不同运动模式匹配相应的加速度和角速度阈值及时间窗口的大小,相对于固定阈值来说,定位精度可提升70%以上。为了减小误判,田晓春等[20]提出了多条件约束的行人导航零速区间检测算法,该方法采用器件输出的模值、方差、幅值和峰值等多个条件的约束来检测步态中的零速点,可有效降低误判。
零速状态的正确检测非常重要,特别是对于跑步和跳跃等脚部与地面接触时间比较短的情况,零速区间的检测更加困难。对于跑步的运动模式,Sang K P等[21]提出了一种隐马尔可夫模型来检测零速的方法,该方法仅使用一个方向上的陀螺输出,并且认为无论正常行走还是跑步,一个完整的跨步都包含起步、跨步、落地、静止4个阶段,这4个阶段具有一定的逻辑关系,如果检测出2个不相邻的状态,则中间肯定会漏检一个状态。对于跑步、跳跃或快速行走等运动模式,由于脚接触地面的时间比较短,同一属性采样值的个数比较少,利用隐马尔可夫模型可以可靠地检测出零速,实验表明在速度大约2.8m/s的步速下,该方法的零速检测成功率可达100%。
除了利用MEMS陀螺仪和加速度计数据检测零速区间外,还可以增加其他传感器提高零速区间的检测精度。O. Bebek等[22]在鞋底安装了一组压力传感器,通过压力数据可以更精确地测量零速区间,避免了零速的误判。国内学者也对此方法进行了研究,实验证实可有效提高零速检测的精度和成功率[23-24]。但是,增加压力传感器,也增加了应用的难度。
零速状态检测是基于零速修正辅助的行人导航算法中最关键的技术,但精确判断零速区间在技术上很难实现,尤其是对于跑步和跳跃等混合运动模式,精确检测零速状态还需进一步深入研究。
潘献飞等[11]分析指出,由于航向角不可观测,零速修正不能修正航向角的漂移。又由于MEMS陀螺仪的误差比较大,利用陀螺仪的值很难求解行人相对真北的航向角,也就是只依赖陀螺仪很难求取绝对航向角,只能求取相对于初始时刻的相对航向。从目前可查阅的文献来看,无论是采用行人航位推算还是基于零速修正辅助的行人导航算法,导航定位基本上都是相对于出发点的相对定位,能够给出绝对航向以及经纬度等绝对位置的非常少。
贾铮洋等[25]提出了一种利用手机的卫星导航定位信息与足部MEMS器件解算轨迹比对求解初始绝对航向的方法。这种方法首先要在室外能够接收卫星信号的场合运动一段时间,等绝对航向求解出来后再进入室内运动,这样就可以求出人的经纬度等绝对位置。Johann等[26]利用建筑物的方向,将人在建筑物内的行走分为4个或8个主要方向,然后对航向进行约束。利用磁强计可以计算航向角,虽然易受外界多种因素的影响,但是长期精度比较高,经补偿后可以与MEMS惯性器件计算的航向融合,进而对航向进行修正。F. Zampella等[27]根据磁场变化与航向间的变化关系,采用卡尔曼滤波估计航向误差,进而提高航向角的精度。国内学者曾庆化等[28]采用区域划分的思想,将人行走的区域划分为紧密连接的蜂窝六边形,利用行走的历史信息,采用粒子滤波对航向进行修正,实验结果表明航向修正后位置误差可由5.3%降至1.7%。张立强等[29]利用准静止磁场检测算法修正了室内行走时的航向漂移,由实验结果可知,定位误差约为行走距离的0.6%~1.6%。由于人在室内一般是在走廊里行走或者进行直角转弯,也有学者提出利用建筑物的方向对航向角进行修正。Khairi等[30]研究了利用楼向信息修正航向的相关方法,实验结果表明,在室内行走24min共1557m,其位置误差仅为4.62m。尹航[31]提出了利用室内地图修正航向的方法,以原始的结构图作为室内地图,采用拓扑化规则提取门、房间、走廊等在空间中具有固定关系的特征并存储在数据库中,在人行走时利用地图匹配算法修正人的位置。
绝对航向是经纬度等绝对位置获取的基础,在行人导航中,需要深入研究。目前的研究多集中在求取相对位置,与相对位置相比,求取人的经纬度等绝对位置能更好地与卫星导航相结合,更适合进行室内外无缝定位,而且对于士兵等执行特殊任务的人员来说,更希望获取经纬度等绝对位置信息。所以,对基于足部MEMS惯性器件的行人导航来说,应注重绝对航向和绝对位置信息获取方面的研究。
无论基于步长估计的行人航位推算还是基于零速修正的行人导航算法,如果能识别出行人的运动模式,就可以有针对性地设置相应的参数。
为了提高行人导航算法的鲁棒性,算法中应包含一个实时的行人运动模式分类系统,用来识别人的运动模式。K. Frank等[32]给出了一种典型的运动模式识别和传感器位置确定的方法。在该方法中,首先由传感器输出得到与方位无关的信号;然后用一段数据确定信号的特点;最后用模式识别算法,根据测量的信号特征与存储的不同运动模式的信号特征进行匹配,从而识别人的运动模式。如果传感器固定在人身体的任何部位,则只采用3个轴向加速度计或者3个轴的陀螺仪,或者只采用水平或垂直的1个传感器即可识别人的运动模式。而信号的时域特征可以采用均值、最大最小值、过零次数等,频域特征可采用频率峰值、幅度峰值等。识别算法多种多样,既可以采用线性判别分类法,也可以采用神经网络或支持向量机等方法。但是采用模式识别方法,需要采集多种类型的运动数据。对于同一类型的运动模式,不同的人信号特征也不一样,这种方法需要的先验知识较多,实现比较复杂。在足部安装MEMS惯性传感器,只要安装关系固定,不同的人行走时,同一种运动模式单个轴上传感器的波形类似,出现最大值最小值的逻辑顺序相同。基于此,张伦东等[33]提出了一种基于单轴传感器信号特征的行人运动模式识别方法。该方法根据不同传感器信号特征的逻辑关系可有效判断人的正常行走、上楼、下楼和不同方向的跌倒;再根据运动频率,还可以区分正常行走和跑步。该方法比较简单,计算量较小,但是只采用一只脚的传感器数据不能完全识别人的运动模式,还需要深入研究。
虽然国内外学者对行人导航技术进行了大量的研究,提出了很多技术手段和解决方案。但是,对于环境未知的不受约束的自主行人导航来说,先前的单一手段还难以满足相关需求。对于行人自主导航,建议以足部MEMS惯性器件为主,结合视觉传感器等其他技术手段,根据不同的应用,设计相应的方案。总的来说,应重点关注以下几点。
人的运动情况复杂,单靠一种导航技术很难满足人的多种运动模式的需要。因此,可以根据不同的需求,采用多传感器组合的方式,提高行人导航定位的精度,以及对多种未知场合的适应性。
有学者利用惯性导航系统(Inertial Navigation System,INS)和UWB[34-35]组合技术对人进行导航定位,取得了较好的效果。但是UWB需要事先布设,没有充分考虑人的自主性。对人的自主导航来说,应深入研究不需要事先布设就能在未知环境中进行导航定位的组合导航技术。
首先,应深入研究MEMS惯性器件在行人导航应用中的各类影响因素,尽可能地消除各种误差对行人导航定位精度的影响,提高只靠MEMS惯性器件就能进行精确导航定位的能力。根据人运动的特性,提高导航定位精度的相关技巧也比较多,如在初始时刻,人总会静止十几秒甚至一分多钟,此时可以利用陀螺仪和加速度计的输出值进行相关的误差修正,进而提高器件的使用精度。
其次,应根据不同的应用,研究相应的组合技术。人所执行的任务是多种多样的,对应的主要运动模式也不一样,应根据不同的应用对应的主要运动模式研究相应的组合技术。例如对于大众应用,可采用基于智能手机里的MEMS陀螺仪和加速度计的PDR与WiFi组合[36-37]。当没有WiFi信息时,利用智能手机里传感器的相关信息进行定位;当有WiFi信息时,则进行组合导航定位,同时修正手机定位的相关误差。而对于士兵和消防员等执行特殊任务的人员来说,可以采用基于零速修正辅助的行人导航算法与视觉导航相结合的方法,利用视觉的高精度修正行人导航误差。这种方法一方面可以进行导航定位,另一方面还可以将视觉感测的信息传递到指控中心,便于掌握前方的态势。
行人导航所用的器件精度低,应利用人运动的特点尽可能地消除器件误差,根据不同应用采用不同的组合方案值得深入研究和探讨。
人的运动模式与导航定位的关系十分紧密。对于行人的导航定位来说,如果能精确感知人的运动模式,一方面可以有效提高人的导航定位精度,另一方面可以对人的运动模式进行分类,对危险的行为进行监控,如士兵受伤摔倒、消防员中毒摔倒等,以便于更及时、更精准地进行救护[38-43]。
Paul D.Groves[10]对人的运动进行了分类,除了静止,人的运动大致可分为:普通运动、竞技运动、行进等。普通运动又包括:步行前进、跑步、后退、右侧跨步、左侧跨步、右转、左转、上山/上台阶、下山/下台阶、站立、坐下、躺下等;竞技运动主要包括:跑步、跳跃、爬行、攀登、闪躲等;行进主要包括:自动扶梯、电梯、骑自行车、坐汽车、坐火车等。
对于大部分人来说,主要进行的是普通运动,而对于士兵和消防员等执行特殊任务的来说,还有跳跃和爬行等。因此,需要深入研究人运动模式的精确感知,并将运动模式的精确感知与导航定位相结合,从而提高行人导航定位的性能。
对于行人导航来说,应充分利用各种约束来提高定位精度和其他性能。其实,基于零速修正辅助的行人导航本身就利用了人脚部着地时速度为零这个约束条件。此外,还有学者研究了建筑物信息约束、双脚MEMS器件的距离约束、图像约束等[44-46]。
行人导航的难点是在室内等没有卫星导航信号的场合,如果能对建筑物进行三维建模,利用建筑物的三维重建信息修正行人导航的误差,进而可以提高精度。武汉大学的相关团队对该方法进行了初步研究和验证[45],证明了该方法能够有效提高行人的导航定位精度。由于行人自主导航需要在未知环境中也能够方便应用,但是对建筑物进行三维重建需要花费一定的时间。如果能够根据建筑物的结构图,快速进行三维重建,并按一定的格式导入到行人导航数据的处理器中,与MEMS信息进行融合,则能够提高行人导航系统的精度和适用性;还可以利用建筑物的三维信息引导人快速到达目的地,提高任务的执行效率。
如果人与人之间能够进行无线通信,可以计算执行任务的人与人之间的距离,采用单兵协同定位的方法提高行人导航定位的精度和适用性。潘献飞等[11]对单兵协同导航定位的方式进行了介绍,但是,这种方法目前仍处于初步研究阶段,还需要深入研究。
不同的人员主要的运动模式不同,对导航定位的要求也不同。基于MEMS惯性器件的行人导航,可以首先针对运动模式相对单一的人员群体进行工程应用,在工程应用中改进相关的技术,然后逐步推广,扩大应用范围。
目前,从事行人导航定位研究的公司和学术机构比较多,每家的产品和方案都有各自的特色。即使采用同样方案的单位,其接口和数据格式也不相同。因此,不便于形成联盟,将行人导航相关产品做大做强。所以,有志于行人导航定位的单位应联合起来,尽快制定标准的接口和数据格式。这样,一方面便于用户能够集成每家的优势模块,形成适合用户的产品;另一方面可以形成规模,更大地促进市场,反过来进一步促进行人导航技术的发展。
由于人的运动模式复杂,给人进行自主导航定位非常困难。本文在介绍了利用MEMS惯性器件进行行人自主导航原理的基础上,重点阐述了基于零速修正的行人导航的关键技术和国内外相关研究进展。最后,对行人导航技术的发展进行了展望,指出了应重点关注的问题和技术难点。目前,仍没有一种通用的技术可以实现行人的自主导航定位,也缺少相关的标准协议,定位精度也难以满足行人自主导航定位的需求。期待不久的将来,相关技术能够得到突破,进而促进行人自主导航的发展和应用。