一种获取定位点的方法和装置技术领域
本发明涉及定位技术领域,特别涉及一种获取定位点的方法和装置。
背景技术
随着科学技术的发展,定位技术的种类也越来越多,如GPS(Global
Positioning System,全球卫星定位系统)定位技术、CELL ID(小区识码)基站
定位技术、WIFI(Wireless Fidelity,无线保真)定位技术、基于行人行迹推算
算法PDR(Pedestrian Dead Reckoning)定位技术等。
现有的定位技术中,GPS定位技术是将高速运动的卫星瞬间位置作为已知
的起算数据,采用空间距离后方交会的方法,确定待测点的位置。CELL ID定
位技术是根据移动台(如手机)所处的蜂窝小区的CELL ID来确定用户的位置,
具体地,移动台在当前蜂窝小区注册后,在网络中就会有相对应的CELL ID,
当移动台收到相应的基站信号后,就可以解析出CELL ID,根据此CELL ID确
定用户的位置。WIFI定位技术是检测用户设备周围的WIFI热点的信号强弱,
然后将检测到的WIFI热点的信号强弱信息与数据库中预存的WIFI热点的信号
强弱信息匹配得到用户的位置。基于行人行迹推算算法PDR定位技术是通过重
力加速度计和电子罗盘获取用户在行走时的行走步数和行走角度,根据预设或
通过步长分析模型得出的行走步长,以及行走步数和行走角度,得出用户行走
的路线。
然而,在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
无论是GPS定位技术、CELL ID定位技术还是WIFI定位技术,信号都是
以电磁波的形式传播的,而电磁波的传播会受到温度、湿度及地磁的影响,使
得在实际应用中,会因为受到温度、湿度及地磁的影响而无法获得比较精确的
定位效果,定位精度低。基于行人行迹推算算法PDR定位技术中的三个基本要
素:行走步数、行走步长和行走角度,需要通过如重力加速度器,电子罗盘等
设备获取数据,而如今这些设备在获取数据时都存在一定的误差,无法获得比
较精确的定位效果,定位精度低。
发明内容
为了提高定位精度,本发明实施例提供了一种获取定位点的方法和装置。
所述技术方案如下:
一种获取定位点的方法,所述方法包括:
获取用户的当前定位点、行走步长和行走角度;
判断当前是否存在有利用预设的定位点卡尔曼滤波器计算得到的状态向量
值;
如果没有存在,则将所述当前定位点、所述行走步长和所述行走角度,作
为预设的定位点卡尔曼滤波器的第一状态向量值和第一观测向量值;
根据所述第一状态向量值和所述第一观测向量值,利用预设的卡尔曼滤波
器进行计算,得到第二状态向量值和第一当前有效定位点。
一种获取定位点的装置,所述装置包括:
获取模块,用于获取用户的当前定位点、行走步长和行走角度;
判断模块,用于判断当前是否存在有利用预设的定位点卡尔曼滤波器计算
得到的状态向量值;
第一处理模块,用于当所述判断模块的判断结果是没有存在时,将所述当
前定位点、所述行走步长和所述行走角度,作为预设的定位点卡尔曼滤波器的
第一状态向量值和第一观测向量值;
计算模块,用于根据所述第一状态向量值和所述第一观测向量值,利用预
设的卡尔曼滤波器进行计算,得到第二状态向量值和第一当前有效定位点。
本发明实施例提供的技术方案的有益效果是:
通过将获取的用户的当前定位点、行走步长和行走角度作为预设的定位点
卡尔曼滤波器的第一状态向量值和第一观测向量值,利用预设的卡尔曼滤波器
进行计算即可得到当前有效定位点,不会受到温度、湿度及地磁的影响,且对
重力加速度器,电子罗盘等设备获取数据的数据进行了迭代计算,可以消除误
差的影响,可以获得比较精确的定位效果,提高了定位精度。
附图说明
图1是本发明实施例1提供的一种获取定位点的方法流程图;
图2是本发明实施例2提供的一种获取定位点的方法流程图;
图3是本发明实施例2提供的一种通过数字罗盘测得的用户的行走角度的
示意图;
图4是本发明实施例3提供的一种获取定位点的装置结构示意图;
图5是本发明实施例3提供的另一种获取定位点的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明
实施方式作进一步地详细描述。
实施例1
参见图1,本发明实施例提供了一种获取定位点的方法,包括:
101:获取用户的当前定位点、行走步长和行走角度。
102:判断当前是否存在有利用预设的定位点卡尔曼滤波器计算得到的状态
向量值。
103:如果没有存在,则将当前定位点、行走步长和行走角度,作为预设的
定位点卡尔曼滤波器的第一状态向量值和第一观测向量值。
104:根据第一状态向量值和第一观测向量值,利用预设的卡尔曼滤波器进
行计算,得到第二状态向量值和第一当前有效定位点。
进一步地,获取用户的当前定位点、行走步长和行走角度,包括:
利用全球卫星定位系统定位技术、小区识码基站定位技术、无线保真定位
技术、或基于行人行迹推算算法定位技术,获取用户的当前定位点;
利用基于行人行迹推算算法定位技术,获取用户的行走步长和行走角度。
进一步地,预设的定位点卡尔曼滤波器如下:
定位点卡尔曼滤波器的状态向量X为:
定位点卡尔曼滤波器的观测向量Z为:
定位点卡尔曼滤波器的状态方程为:
定位点卡尔曼滤波器的状态转移矩阵A为:
定位点卡尔曼滤波器的观测矩阵H为:
H = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ; ]]>
定位点卡尔曼滤波器的状态协方差矩阵Q为:
Q = 0.2 0 0 0 0 0.2 0 0 0 0 0.01 0 0 0 0 25 ; ]]>
定位点卡尔曼滤波器的测量协方差矩阵R为:
R = 4 0 0 0 0 4 0 0 0 0 0.01 0 0 0 0 25 ; ]]>
定位点卡尔曼滤波器的控制矩阵B=0;
其中,Px、Py分别为当前定位点的X坐标、Y坐标;S为行走步长;为行
走角度。
进一步地,判断当前是否存在有利用预设的定位点卡尔曼滤波器计算得到
的状态向量值之后,该方法还包括:
如果存在有,则将利用预设的定位点卡尔曼滤波器计算得到的状态向量值
作为第一状态向量值;将当前定位点、行走步长和行走角度,作为第一观测向
量值;然后执行根据第一状态向量值和第一观测向量值的步骤。
本发明实施例所述的获取定位点的方法,通过将获取的用户的当前定位点、
行走步长和行走角度作为预设的定位点卡尔曼滤波器的第一状态向量值和第一
观测向量值,利用预设的卡尔曼滤波器进行计算即可得到当前有效定位点,不
会受到温度、湿度及地磁的影响,且对重力加速度器,电子罗盘等设备获取数
据的数据进行了迭代计算,可以消除误差的影响,可以获得比较精确的定位效
果,提高了定位精度。
本发明实施例所述的获取定位点的方法,可以利用GPS定位技术、CELL ID
基站定位技术、或WIFI定位技术等获取用户的当前定位点,下面以利用WIFI
定位技术获取用户的当前定位点为例进行进一步地说明。
实施例2
参见图2,本发明实施例提供了一种获取定位点的方法,包括:
201:利用WIFI定位技术获取用户的当前定位点,利用基于行人行迹推算
算法定位技术获取用户的行走步长和行走角度。
202:判断当前是否存在有利用预设的定位点卡尔曼滤波器计算得到的状态
向量值,如果存在有,则执行203;否则,执行204。
具体地,卡尔曼滤波器是一种递归的估计,只要获知上一时刻状态的估计
值以及当前状态的观测值就可以计算出当前状态的估计值,卡尔曼滤波器的五
个基本公式如下:
X(K|K-1)=AX(K-1|K-1)+BU(K) (1)
P(K|K-1)=AP(K-1|K-1)A'+Q (2)
X(K|K)=X(K|K-1)+Kg(K)(Z(K)-HX(K|K-1)) (3)
Kg ( K ) = P ( K | K - 1 ) H ′ HP ( K | K - 1 ) H ′ + R - - - ( 4 ) ]]>
P(K|K)=(I-Kg(K)H)P(K|K-1) (5)
(1)、(2)、(3)、(4)和(5)各个式中,X(K|K-1)是当前状态的预测值;
X(K-1|K-1)是上一时刻状态的最优化估计值;U(K)为当前状态的控制量,如果
没有控制量,它可以为0;A表示状态转移矩阵,A'表示A的转置矩阵;B表示
控制矩阵;P(K|K-1)是X(K|K-1)对应的协方差矩阵;P(K-1|K-1)是
X(K-1|K-1)对应的协方差矩阵;H表示观测矩阵;Q是状态协方差矩阵;R是
测量协方差矩阵;X(K|K)是当前状态(K)的最优化估计值;Kg为卡尔曼增益;
P(K|K)是X(K|K)对应的协方差矩阵;Z表示观测向量。
参见图3,根据基于行人行迹推算算法定位技术,D点为当前定位点,F点
为基于行人行迹推算算法得到的定位点,F点的坐标可根据D点的坐标、行走
步长S和行走角度值β来确定即F(x,y)=A(x+S*cos(β),y+S*sin(β))(6)。
根据F点的坐标公式设置定位点卡尔曼滤波器如下:
定位点卡尔曼滤波器的状态向量X为:
定位点卡尔曼滤波器的观测向量Z为:
式(7)、(8)中,Px、Py分别为当前定位点的X坐标和Y坐标;S为行走
步长,该行走步长可为固定值,也可为通过PDR步长模型得到的动态值;为
电子罗盘得到的行走角度。
定位点卡尔曼滤波器的状态方程为:
因为定位点卡尔曼滤波器的状态方程为非线性方程组,根据式(6),将定
位点卡尔曼滤波器的状态转移矩阵A设置为:
定位点卡尔曼滤波器的观测矩阵H为单位矩阵,即:
H = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ]]>
根据实验,将定位点卡尔曼滤波器的状态协方差矩阵Q和测量协方差矩阵R
分别设为如下:
Q = 0.2 0 0 0 0 0.2 0 0 0 0 0.01 0 0 0 0 25 ]]>
R = 4 0 0 0 0 4 0 0 0 0 0.01 0 0 0 0 25 ]]>
设置定位点卡尔曼滤波器的控制矩阵B=0。
通过上述设置的定位点卡尔曼滤波器进行迭代计算,将每一次迭代计算得
到的当前状态的最优化估计值X(K|K)将作为当前有效定位点。
203:将当前定位点、行走步长和行走角度,作为预设的定位点卡尔曼滤波
器的第一状态向量值和第一观测向量值,然后执行205。
204:将利用预设的定位点卡尔曼滤波器计算得到的状态向量值作为第一状
态向量值;将当前定位点、行走步长和行走角度,作为第一观测向量值;然后
执行205。
205:根据第一状态向量值和第一观测向量值,利用预设的卡尔曼滤波器进
行计算,得到第二状态向量值和第一当前有效定位点。
具体地,在通过设置的定位点卡尔曼滤波器进行迭代计算时,如果是第一
次进行计算,则将当前定位点、行走步长和行走角度,作为预设的定位点卡尔
曼滤波器的第一状态向量值和第一观测向量值;如果已经计算过一次了,则以
后计算时,可以将上次利用预设的定位点卡尔曼滤波器计算得到的状态向量值
作为第一状态向量值;将当前获取的当前定位点、行走步长和行走角度,作为
第一观测向量值。具体计算过程如下:
根据上述设置的B=0,第一状态向量值和第一观测
向量值为当前定位点、行走步长和行走角度,利用式(1),得到当前状态的预测
值X(K|K-1)如下:
可简写为:
此时定位点卡尔曼滤波器已经更新,对当前状态的预测值X(K|K-1)的协方
差矩阵P(K|K-1)也进行更新,即对式(2)进行更新,并且,初始的协方差
P(K-1|K-1)为0,因此此时的P(K|K-1)=Q,即:
P ( K | K - 1 ) = 0.2 0 0 0 0 0 . 2 0 0 0 0 0.01 0 0 0 0 25 ]]>
根据当前状态的预测值X(K|K-1),结合式(3)和(4)收集当前状态的测量值。
此测量值为最新的WIFI定位坐标、行走角度和行走步长,初始值为上次有效定
位点、当时的行走角度和行走步长。结合当前状态的预测值和当前状态的测量
值,得到当前状态的最优化估计值X(K|K)。
由于H为单位矩阵,此时的即:
K g ( K ) ≈ 0.05 0 0 0 0 0.05 0 0 0 0 0.5 0 0 0 0 0.5 ]]>
代入式(3)得:
可简写为:
其中,Px"(K-1)、Py"(K-1)分别为该次迭代计算得到的当前有效定位点的X坐
标值和Y坐标值。
为了使得定位点卡尔曼滤波器不断地运行下去,使得最优化估计值不断更
新,将上次利用预设的定位点卡尔曼滤波器计算得到的状态向量值作为第一状
态向量值,将当前获取的当前定位点、行走步长和行走角度,作为第一观测向
量值,并通过式(5)更新当前状态X(K|K)的协方差矩阵P(K|K),得到
P ( K | K ) = 0.19 0 0 0 0 0.19 0 0 0 0 0.01 0 0 0 0 12.5 ]]>
这样又可将P(K|K)与X(K|K)的值分别赋给P(K-1|K-1)和X(K-1|K-1)代
入式(1)、(2)进行循环迭代计算,从而可以不断地迭代计算,不断获得最新最优
的当前有效定位点。
本发明实施例所述的获取定位点的方法,通过将获取的用户的当前定位点、
行走步长和行走角度作为预设的定位点卡尔曼滤波器的第一状态向量值和第一
观测向量值,利用预设的卡尔曼滤波器进行计算即可得到当前有效定位点,不
会受到温度、湿度及地磁的影响,且对重力加速度器,电子罗盘等设备获取数
据的数据进行了迭代计算,可以消除误差的影响,可以获得比较精确的定位效
果,提高了定位精度。
实施例3
参见图4,本发明实施例提供了一种获取定位点的装置,该装置包括:
获取模块301,用于获取用户的当前定位点、行走步长和行走角度;
判断模块302,用于判断当前是否存在有利用预设的定位点卡尔曼滤波器计
算得到的状态向量值;
第一处理模块303,用于当判断模块302的判断结果是没有存在时,将当前
定位点、行走步长和行走角度,作为预设的定位点卡尔曼滤波器的第一状态向
量值和第一观测向量值;
计算模块304,用于根据第一状态向量值和第一观测向量值,利用预设的卡
尔曼滤波器进行计算,得到第二状态向量值和第一当前有效定位点。
进一步地,获取模块301具体包括:
第一获取单元,用于利用全球卫星定位系统定位技术、小区识码基站定位
技术、无线保真定位技术、或基于行人行迹推算算法定位技术,获取用户的当
前定位点;
第二获取单元,用于利用基于行人行迹推算算法定位技术,获取用户的行
走步长和行走角度。
进一步地,预设的定位点卡尔曼滤波器如下:
定位点卡尔曼滤波器的状态向量X为:
定位点卡尔曼滤波器的观测向量Z为:
定位点卡尔曼滤波器的状态方程为:
定位点卡尔曼滤波器的状态转移矩阵A为:
定位点卡尔曼滤波器的观测矩阵H为:
H = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ; ]]>
定位点卡尔曼滤波器的状态协方差矩阵Q为:
Q = 0.2 0 0 0 0 0 . 2 0 0 0 0 0.01 0 0 0 0 25 ; ]]>
定位点卡尔曼滤波器的测量协方差矩阵R为:
R = 4 0 0 0 0 4 0 0 0 0 0.01 0 0 0 0 25 ; ]]>
定位点卡尔曼滤波器的控制矩阵B=0;
其中,Px、Py分别为当前定位点的X坐标、Y坐标;S为行走步长;为行
走角度。
进一步地,参见图5,该装置还包括:
第二处理模块305,用于当判断模块302的判断结果是存在有时,将利用预
设的定位点卡尔曼滤波器计算得到的状态向量值作为第一状态向量值;将当前
定位点、行走步长和行走角度,作为第一观测向量值;然后通知计算模块304
执行根据第一状态向量值和第一观测向量值的步骤。
本发明实施例所述的获取定位点的装置,通过将获取用户的当前定位点、
行走步长和行走角度作为预设的定位点卡尔曼滤波器的初始值,利用预设的卡
尔曼滤波器进行迭代计算即可得到当前有效定位点,不会受到温度、湿度及地
磁的影响,且对重力加速度器,电子罗盘等设备获取数据的数据进行了迭代计
算,可以消除误差的影响,可以获得比较精确的定位效果,提高了定位精度。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,
其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光
盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的
精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的
保护范围之内。