一种基于声音测距和移动向量的多用户室内定位方法
技术领域
本发明涉及室内定位技术,尤其涉及一种基于声音测距和移动向量的多用户室内定位方法。
背景技术
定位服务实时为用户提供其位置信息,是现代信息技术的重要内容。高精度定位技术是很多移动计算应用的基础,例如车载导航系统,基于地理位置的信息推送系统等。目前最为成熟和广泛应用的全球定位系统(GPS)技术利用卫星进行定位,用户设备接收卫星信号并计算与卫星的距离,当用户能够接收到三颗以上卫星信号时,根据三边定位理论能够计算出自身所处的经纬度坐标。GPS设备成本低,精度高,在军事和民用领域应用都很广泛,但其目前主要服务于室外场景,对于室内应用由于建筑墙壁对卫星信号的阻隔,GPS无法正常使用。
目前已经有多种室内定位技术,这些技术可以分为如下两大类。第一类是基于测距的定位技术,该类定位技术需要在室内部署一些信标节点,用户设备通过各种方式获得与三个以上信标节点的距离,再根据三边定位理论计算出用户设备自身的位置。常用的测距方法有基于声音传播时间来测距离,根据设备信号强度的衰减来测距离等。第二大类是基于信号指纹的方法,这一类方法利用了群智感知。目前我们的室内环境往往都被各种无线信号所覆盖,例如在一些商场和办公室内都能够观测多个WIFI信号,由于受到信号衰减和室内结构引起的信号反射,多径效应等,在不同位置我们观测到的信号强度是不一样的。因此可以把多个WIFI接入点的信号强度构成的向量看作是当前位置的指纹,即该信号强度向量是某个物理位置的特征。基于信号指纹的定位方法首先需要构建信号指纹库,即采集室内各个位置的信号指纹,在定位过程中,将用户设备观测到的信号强度向量和指纹库当中的数据进行比对,挖掘出最相似的指纹,其对应的位置信息就作为用户目前所处的位置。但是,基于信标节点的定位方法需要部署大量信标,维护开销很大。基于信号指纹的方法需要事先进行大量的指纹采集,开销较大,同时当室内环境或者指纹信息变化的时候难以实时更新,容易造成定位结果不准确。
发明内容
本发明的目的在于通过一种基于声音测距和移动向量的多用户室内定位方法,来解决以上背景技术部分提到的问题。
为达此目的,本发明采用以下技术方案:
一种基于声音测距和移动向量的多用户室内定位方法,其包括如下步骤:
A、智能手机之间周期性互相发送和接受声音信号,利用声音传播延迟计算相互之间的相对距离;
B、利用智能手机的指南针和罗盘计算一段时间内的移动向量,其中,移动向量表示为运动方向和移动距离的二元组;
C、计算每一对智能手机用户之间的距离向量,其中,距离向量表示为用户之间的距离和他们之间的相对角度;
D、起始用户定位:选择一个起始三角形作为定位起点,将三角形中任意一点作为原点,根据步骤C进行距离向量计算,根据原点和它们到原点的距离向量计算其余两个点的位置;
E、迭代计算多用户位置:将起始三角形中的三个用户位置放入已定位集合,从没有定位的用户中取一个,与已定位集合中的两个点计算距离向量,然后确定新用户的位置,并将新用户位置放入已定位集合,该过程不断迭代,直至所有用户都被定位;
F、多用户实时追踪:确定一个时刻所有用户位置之后,在连续的时间段内,根据用户的移动向量和之前位置信息计算新的坐标,实现用户位置实时追踪。
特别地,所述步骤C具体包括:距离向量表示为用户之间的距离和他们之间的相对角度,其计算过程如下:考虑一个计算周期,周期内两用户移动向量的差等于周期前后他们之间距离向量的差,据此构建二次方程组,运算得到计算周期前后两个时间点用户之间距离向量角度,结合之前测得的距离信息,即能得到智能手机用户之间的距离向量。
特别地,所述步骤C之后还包括:所述二次方程组可能出现两组解的情况,利用三角形的特性进行歧义消除:两两之间能够测距的三个用户位置构成一个三角形,根据三角形的特征,它们之间的距离向量满足两边之差等于第三边,将步骤C当中的解带入该等式当中,满足等式的解为所需距离向量。
本发明提供的基于声音测距和移动向量的多用户室内定位方法利用智能手机之间声音传播延迟测定距离,利用智能手机的指南针和罗盘来确定移动向量,综合这两种信息计算用户的实际位置。本发明无需进行信号指纹采集,同时仅需要一个参照点就能够对于多个用户进行室内定位,且精度高,误差小。
附图说明
图1为本发明实施例提供的基于声音测距和移动向量的多用户室内定位方法流程图;
图2a、图2b、图2c为本发明实施例提供的移动向量和距离向量示意图;
图3a、图3b为本发明实施例提供的多用户迭代示意图;
图4为本发明实施例提供的多用户移动追踪实例。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
请参照图1所示,图1为本发明实施例提供的基于声音测距和移动向量的多用户室内定位方法流程图。
本实施例中基于声音测距和移动向量的多用户室内定位方法具体包括如下步骤:
步骤S101、智能手机之间周期性互相发送和接受声音信号,利用声音传播延迟计算相互之间的相对距离。
步骤S102、利用智能手机的指南针和罗盘计算一段时间内的移动向量,其中,移动向量表示为运动方向和移动距离的二元组。如图2a所示,Mi(t0,t1)是用户i在时刻t0至t1之间的移动向量。
步骤S103、计算每一对智能手机用户之间的距离向量,其中,距离向量表示为用户之间的距离和他们之间的相对角度。
如图2a、图2b、图2c所示,在t0时刻,用户i和j之间的距离向量表示为Rij(t0)。计算过程如下:考虑一个计算周期,周期内两用户移动向量的差Mj(t0,t1)-Mi(t0,t1)等于周期前后他们之间距离向量的差Rij(t1)-Rij(t0)。据此构建二次方程组,求解方程组得到计算周期前后两个时间点用户之间距离向量角度,结合之前测得的距离信息,即能够得到智能手机用户之间的距离向量。
步骤S104、步骤S103中二次方程组可能出现两组解的情况,利用三角形的特性进行歧义消除:两两之间能够测距的三个用户位置构成一个三角形,根据三角形的特征,它们之间的距离向量满足两边之差等于第三边。如图3a所示,解方程之后得出j和k点分别有多个可能的位置,将步骤S103当中的解带入该等式当中,满足等式的解为最终结果。
步骤S105、起始用户定位:选择一个起始三角形作为定位起点,将三角形中任意一点作为原点,根据步骤S103和S104进行距离向量计算,根据原点和它们到原点的距离向量计算其余两个点的位置。
步骤S106、迭代计算多用户位置:将起始三角形中的三个用户位置放入已定位集合,从没有定位的用户中取一个,与已定位集合中的两个点计算距离向量,然后确定新用户的位置,并将新用户位置放入已定位集合,该过程不断迭代,直至所有用户都被定位。如图3b所示,新用户m与已定位的节点i和j之间的距离向量分别为Rim和Rjm,可以计算出m点的坐标。事实上,由于测距误差的存在,通过Rim和Rjm计算得到的m的位置在去除错误结果之后也并不完全重合,如图3b所示,这里取平均坐标作为点m的位置估计值。
步骤S107、多用户实时追踪:确定一个时刻所有用户位置之后,在连续的时间段内,根据用户的移动向量和之前位置信息计算新的坐标,实现用户位置实时追踪。如图4所示,实验中4个用户在室内各自连续行进一段时间,四条曲线展示的是用本发明的方法追踪到的用户行进路线,一侧的深灰色箭头代表的是用户实际的移动路线。由图4可知,本发明的定位精度较高,误差小。
本发明的技术方案利用智能手机之间声音传播延迟测定距离,利用智能手机的指南针和罗盘来确定移动向量,综合这两种信息计算用户的实际位置。本发明无需进行信号指纹采集,同时仅需要一个参照点就能够对于多个用户进行室内定位,且精度高,误差小。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。