本发明涉及室内定位技术领域,具体涉及一种基于android智能终端设备的室内定位简易方法。
背景技术:
随着无线通信技术的快速发展和人们对定位服务需求的日益增多,无线定位技术获得越来越多的关注。全球定位系统gps(globalpositionsystem)是20世界70年代由美国国防部研制建立的一种具有全方位、全天候、全时段、高精度的卫星导航系统,能为全球用户提供低成本、高精度的三维位置、速度和精确定时等导航信息。在信号比较容易到达的无遮挡的室外,可以通gps来获取高精度的定位信息。对于室内环境,由于gps信号强度受到室内复杂环境的影响而大为衰弱,降低了定位精度,无法取得有用的位置信息。
研究表明人们日常生活中90%的时间是在室内,也就是说大部分时间都是gps定位照顾不到的,所以我们需要研究别的室内定位技术。现如今,室内定位技术受到了越来越多的关注,人们对室内定位的需求不断增长,如:地下车库对车辆位置的定位管理,医院对病人的跟踪管理,家中儿童老人定位看护以及发生灾难时的人员追踪与定位等等。根据室内环境的复杂多变性,室内定位的各种实现方法和解决方案也日益出现,比如依靠gnss技术实现室内定位,或利用无线传输技术进行室内定位,以及利用航位推算、图像分析、电脑视觉等技术进行室内定位。
现有的红外线、rfid等定位技术的定位精度一般,而且需要预先在定位环境中铺设精度较高的信号接收装置,对信号接受装置的摆放位置也有很高要求。而如超声波和超宽带等定位技术的定位精度较高,但定位装置的成本造价太高,不便于技术推广。如蓝牙、zigbee等定位技术虽然应用较为普及,实现成本较低,但定位精度受周围环境影响较大。wifi技术是一种基于无线信号的定位技术,它对基础设施的需求低,成本低廉,而且不需要安装额外设备,是现在主流的室内定位技术。但wifi室内定位技术也存在着信号容易被室内复杂环境干扰的缺点。pdr(pedestriandeadreckoning)定位技术是一种基于传感器的定位技术,是一种相对位置定位技术,能够随时提供运动体连续的二维位置信息。与基于无线信号的定位技术相比,该技术的优点在于它的定位精度,取决于传感器实时测量的数据的准确性,受周围环境的干扰较小。但是pdr技术也有相应的缺点,它容易产生累积误差。
技术实现要素:
本发明的目的在于克服现有的室内定位技术存在的精确度不足,易于受环境干扰和成本高的缺点,本发明提出了一种能够有效提高定位精度,减小环境干扰,成本低廉,技术原理简单,易于推广的室内定位简易方法。
本发明是通过下述技术方案实现的:
一种基于wifi与pdr的室内定位简易方法,包括如下步骤:
s1:设定初始位置和步长;
s2:通过加速度传感器测量的加速度值对行人的运动状态进行判定;
s3:通过rssi值进行wifi定位方法,采集多个参考节点的rssi值,当检测到rssi值超过阈值时,运用改进后的算法计算出当前位置,将当前位置作为实际位置值;
s4:进行pdr定位,对室内行人进行航迹推算得到位置估计。
上述技术方案中,步骤s2中,判断行人的运动状态的方法如下:
通过android系统提供的系统接口获取移动终端加速度传感器的实时数据,得到数组ai=(xi,yi,zi),xi、yi、zi分别代表系统第i次测量时在三个方向上的加速度,与此同时通过对z轴加速度值zi进行峰值检测,得到z轴加速度峰值大小数据zp,间隔时间ti,持续时间td;
记录当前时刻的加速度传感器数据an=(xn,yn,zn)与100ms前的加速度传感器数据an-1=(xn-1,yn-1,zn-1),将an与an-1的数据与间隔时间ti进行处理可以得到震动幅度值value,value由以下的式子得出:
value=(|xn-xn-1|+|yn-yn-1|+|zn-zn-1|)/ti*100,
对value的累积值values进行检测,当values大于设定的震动阈值5时,才会判断z轴加速度峰值大小数据zp是否大于1.5,当300ms>持续时间td>90ms,间隔时间ti>100ms时,计步算法才会判定用户的移动。
上述技术方案中,在步骤s3中的采集rssi值,当检测到有三个以上的rssi值超过阈值时,运用rssi三角形质心算法计算出当前位置,将当前位置作为实际位置值,实现rssi测距补偿。
上述技术方案中,步骤s3具体通过以下步骤实现:
s301:设定rssii表示未知节点m接受固定锚节点b1信号的rssi平均值,pi表示未知节点m接收到固定锚节点bi的信号强度平均值,则两者的转换关系,如公式所示:
s302:所有锚节点以相同功率周期性地对外发出广播信息,信息中包括自身坐标及节点id,未知节点收集每一锚节点的rssi值,求出每个锚节点的平均值;
s303:当普通节点收集到一定数量的锚节点信息时,求出普通节点到锚节点距离,由对应公式计算出di,将计算得到的di值从小到大排列;
s304:普通节点根据rssi值从大到小对锚节点排序,并建立rssi值与节点到锚节点距离的映射,建立三个集合,
其中锚节点位置集合:p_set={(x1,y1),(x2,y2),…,(xn,yn),},
锚节点集合:b_set={a1,a2,…,an},
未知节点到锚节点距离集合:d_set={d1,d2,…,dn},三个集合根据di从小到大的顺序进行排列;
s305:在锚节点集合b_set中优先选取rssi值大的前几个锚节点,组成以下的锚节点集合:
tset={(a1,a2,a3),(a1,a2,a4)…..(a1,a3,a4),(a1,a3,a5)…}
对锚节点集合tset,根据传统的三角形质心算法,求出最终节点m坐标,也就是最后的定位位置。
上述技术方案中,步骤s4具体包括对室内行人进行航迹推算,设定k是预先设定的步长,ai表示第i次测量的z轴加速度值,n表示行人在一步过程中一共采集到了n次z轴加速度值,根据以上的数值,估算位移stepsize,由下面的式子得出:
通过android智能设备提供的方位传感器对应api接口得到浮点型方向数据后,首先对东西南北四个方向进行判断,然后每隔45度分割,以此判断东南、东北、西南和西北,然后再计算出具体的度数得到具体的方位,根据方位和估算位移,由初始位置p0得到推算位置p1,将推算位置p1的值赋给p0,做好下一次pdr定位的准备。
上述技术方案中,所述android智能设备包智能手机、智能平板或者智能手表。
本发明与现有技术相比,具有如下有益效果:
由于本本发明使用的技术方案是采用基于rssi的wifi定位技术与pdr技术相融合的联合定位策略,基于rssi的绝对定位克服了单独使用pdr航位推算算法时步长不稳定及容易产生积累误差的缺陷,又可以通过pdr技术减小rssi定位的波动性。定位过程主要采用航位推算,规避了基于rssi室内定位时信号易受环境干扰的缺点。同时,使用本发明的方法的系统不用安装外部设备,对传感器的精度要求低,从而在避免设计复杂度较高的系统的同时,还可减少硬件成本消耗,进而使得室内定位时耗费的成本较低。本发明具有成本低廉,技术原理简单,并且定位精度较高,受周围环境干扰较小的优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的流程示意图;
图2为本发明中的运动状态判断原理图;
图3为本发明中基于pdr的计步算法流程图;
图4为本发明中基于rssi的三角形质心定位原理图;
图5为本发明中运用方位传感器判断方向流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
如图1所示,本发明提出一种基于wifi与pdr的室内定位简易方法,包括如下步骤:
s1:设定初始位置和步长;初始步长需要根据对应模型设定。通过一个佩戴在行人身上的设备,由加速度传感器实时收集数据,可以由收集的加速度信息和预先设定的阈值进行初始化状态判定。通过行人起步的时间和步行过程中的加速度值,通过步长算法求出行人的步长。
s2:通过加速度传感器测量的加速度值对行人的运动状态进行判定;
s3:通过rssi值进行wifi定位方法,采集多个参考节点的rssi值,当检测到rssi值超过阈值时,运用改进后的算法计算出当前位置,将当前位置作为实际位置值;
s4:进行pdr定位,对室内行人进行航迹推算得到位置估计。
步骤s2中,判断行人的运动状态的方法如下:
通过android系统提供的系统接口获取移动终端加速度传感器的实时数据,得到数组ai=(xi,yi,zi),xi、yi、zi分别代表系统第i次测量时在三个方向上的加速度,与此同时通过对z轴加速度值zi进行峰值检测,得到z轴加速度峰值大小数据zp,间隔时间ti,持续时间td,结果如图2所示。
记录当前时刻的加速度传感器数据an=(xn,yn,zn)与100ms前的加速度传感器数据an-1=(xn-1,yn-1,zn-1),将an与an-1的数据与间隔时间ti进行处理可以得到震动幅度值value,value由以下的式子得出:
value=(|xn-xn-1|+|yn-yn-1|+|zn-zn-1|)/ti*100,
对value的累积值values进行检测,当values大于设定的震动阈值5时,才会判断z轴加速度峰值大小数据zp是否大于1.5,当300ms>持续时间td>90ms,间隔时间ti>100ms时,计步算法才会判定用户的移动,如图3所示。
在步骤s3中的采集rssi值,当检测到有三个以上的rssi值超过阈值时,运用rssi三角形质心算法计算出当前位置,将当前位置作为实际位置值,实现rssi测距补偿。
步骤s3具体通过以下步骤实现:
s301:设定rssii表示未知节点m接受固定锚节点b1信号的rssi平均值,pi表示未知节点m接收到固定锚节点bi的信号强度平均值,则两者的转换关系,如公式所示:
s302:所有锚节点以相同功率周期性地对外发出广播信息,信息中包括自身坐标及节点id,未知节点收集每一锚节点的rssi值,求出每个锚节点的平均值;
s303:当普通节点收集到一定数量的锚节点信息时,求出普通节点到锚节点距离,由对应公式计算出di,将计算得到的di值从小到大排列;
s304:普通节点根据rssi值从大到小对锚节点排序,并建立rssi值与节点到锚节点距离的映射,建立三个集合,
其中锚节点位置集合:p_set={(x1,y1),(x2,y2),…,(xn,yn),},
锚节点集合:b_set={a1,a2,…,an},
未知节点到锚节点距离集合:d_set={d1,d2,…,dn},三个集合根据di从小到大的顺序进行排列;
s305:在锚节点集合b_set中优先选取rssi值大的前几个锚节点,组成以下的锚节点集合:
tset={(a1,a2,a3),(a1,a2,a4)…..(a1,a3,a4),(a1,a3,a5)…}
对锚节点集合tset,根据传统的三角形质心算法,求出最终节点m坐标,也就是最后的定位位置,如图4所示。
步骤s4具体包括对室内行人进行航迹推算,设定k是预先设定的步长,ai表示第i次测量的z轴加速度值,n表示行人在一步过程中一共采集到了n次z轴加速度值,根据以上的数值,估算位移stepsize,由下面的式子得出:
通过android智能设备提供的方位传感器对应api接口得到浮点型方向数据后,首先对东西南北四个方向进行判断,然后每隔45度分割,以此判断东南、东北、西南和西北,然后再计算出具体的度数得到具体的方位,根据方位和估算位移,如图5所示。由初始位置p0得到推算位置p1,将推算位置p1的值赋给p0,做好下一次pdr定位的准备。
所述android智能设备包智能手机、智能平板或者智能手表。
上述方案使用的是基于rssi的wifi定位技术与pdr技术相融合的联合定位策略,基于rssi的绝对定位克服了单独使用pdr航位推算算法时步长不稳定及容易产生积累误差的缺陷,又可以通过pdr技术减小rssi定位的波动性。定位过程主要采用航位推算,规避了基于rssi室内定位时信号易受环境干扰的缺点。同时,使用本发明的方法的系统不用安装外部设备,对传感器的精度要求低,从而在避免设计复杂度较高的系统的同时,还可减少硬件成本消耗,进而使得室内定位时耗费的成本较低。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。