CN107580294A - 一种室内混合定位方法 - Google Patents
一种室内混合定位方法 Download PDFInfo
- Publication number
- CN107580294A CN107580294A CN201710803304.5A CN201710803304A CN107580294A CN 107580294 A CN107580294 A CN 107580294A CN 201710803304 A CN201710803304 A CN 201710803304A CN 107580294 A CN107580294 A CN 107580294A
- Authority
- CN
- China
- Prior art keywords
- pdr
- wifi
- line
- current
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Navigation (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
Abstract
本发明公开了一种室内混合定位方法,所述方法包括以下步骤:在第一预设时段内,对当前地图进行展示,得到相关路网信息;获取PDR相关硬件参数,计算出第一预设时段内PDR轨迹,通过WiFi定位算法和所述PDR轨迹综合定位起点和朝向并进入下一定位时段,然后以PDR定位算法为主进行室内定位,并结合当前PDR数据与路网数据进行相似性匹配,再将相似性匹配结果与当前WiFi定位结果相结合以对当前PDR定位结果进行检测修正,从而进一步提高了室内定位精度,使得室内定位精度达到1米到3米。
Description
技术领域
本发明属于室内定位技术领域,尤其涉及一种室内混合定位方法。
背景技术
在互联网技术不断发展的情况下,通过采用全球卫星定位系统(GlobalPositioning System,GPS)在室外定位基本上已经得到了广泛的应用,但在进入室内后,GPS基本上就失去了定位精度,所以只能在蓝牙Beacon和无线网WiFi(WIreless-FIdelity)定位的思路下进行定位,由于铺设蓝牙Beacon的成本比较高,用户开蓝牙Beacon的机会也比较少,而WiFi的优点是覆盖范围广、所需硬件数量少、布设容易。
随着用户打开WiFi上网的比率上升,所以研究WiFi定位的前景可靠。由于WiFi信号的发射存在不是很稳定的情况下,在同一位置接收到的信号也会不停止的波动,所以单一的WiFi定位精度是在5米到10米,造成室内WiFi定位精度相对较低。
发明内容
本发明针对目前WiFi室内定位精度低的缺点,提供了一种室内PDR定位(即步行者航位推算定位)和WiFi定位相结合的混合定位方法,可以有效地提高目前室内定位精度,使得室内定位精度达到1米到3米,所述方法包括:
S01:对当前地图进行展示,获取第一预设时段内的WiFi数据和PDR数据;
S10:根据所述第一预设时段内的WiFi数据计算出WiFi定位结果,并显示所述WiFi定位结果;
S11:当所述第一预设时段内的WiFi数据和PDR数据达到预设数量条件时,计算出所述第一预设时段内实际行走定位轨迹;
S12:确定所述第一预设时段内的实际行走定位轨迹与所述第一预设时段内最后时刻对应的线段的终点,将所述线段的终点作为下一定位时段的起点startLocation,将所述线段的线段角作为所述下一定位时段的初始角度;
S02:对所述下一定位时段的起点startLocation和所述初始角度进行显示,并获取所述下一定位时段的起点时刻到当前时刻之间的PDR数据、WiFi数据和路网信息数据;
S20:将所述起点startLocation和所述PDR数据存入第一缓存,并将所述第一缓存中的startLocation定义为起点PdrStartLocation;同时将所述起点startLocation、所述PDR数据存入第二缓存,并将所述第二缓存中的startLocation定义为起点SimilarityStartLocation;
S21:根据所述第一缓存中的PDR数据、所述起点PdrStartLocation,以及所述路网信息数据计算出当前PDR定位结果,并显示当前PDR定位结果;
S22:根据与所述当前时刻对应的第二缓存中的PDR数据判断当前行走状态是否产生转弯,如转弯,则将所述第二缓存中的PDR数据、所述起点SimilarityStartLocation,以及所述路网信息数据进行相似性路网匹配;
S23:将相似性路网匹配结果与当前时刻的WiFi定位结果NowWifiLocation相结合以生成标准点位坐标,根据所述标准点位坐标对所述当前PDR定位结果进行检验,所述WiFi定位结果NowWifiLocation为根据当前时刻的WiFi数据计算获得;
S24:在所述标准点位坐标与所述当前PDR定位结果为不相同的坐标时,根据所述标准点位坐标对所述当前PDR定位结果进行修正,;
同时删除所述第二缓存中的PDR数据以及第一缓存中的PDR数据,并将所述下一定位时段的起点startLocation更新为修正后的当前PDR定位结果;
S30:在所述后续时段重复执行S02至S24的步骤,以继续进行室内定位。
优选地,所述步骤S10之前,所述方法还包括:
将所述当前地图上的每个点位上预先采集的WiFi数据录入至WiFi指纹库作为预存WiFi数据,所述WiFi指纹库中包括所述点位、所述MAC地址以及所述WiFi信号强度值之间的映射关系;
统计各个点位上信号强度值为前三位的无线接入点对应的MAC地址,并将每个点位的统计结果定义为MAC集Strong,将各MAC集Strong保存到所述WiFi指纹库中;
所述MAC集Strong通过以下模型进行表示:
Strong={Location1:{mac11,mac12,mac13},Location2:{mac21,mac22,mac23},…,Locationn:{macn1,macn2,macn3}};其中,Locationk表示第k个采集点位的位置,第k个采集点上传于所述WiFi指纹库中的WiFi数据表征为WiFik={mack1:rssik1,mack2:rssik2,…,mackn:rssikn},mac表示一无线接入点的mac地址,rssi表示一无线接入点的信号强度值。
优选地,所述步骤S10具体包括:
S101:确定所述第一预设时段内的一时刻的WiFi数据T,通过以下模型对T进行表示:
T={mact1:rssit1,mact2:rssit2,…,mactn:rssitn};其中,rssitn表示第n个mac地址对应的信号强度值;
S102:从所述WiFi数据T中确定信号强度第一的信号强度值rssitk,并获取与所述rssitk对应的mactk地址;从所述Strong集合的多个点位中查找出包含所述mactk的点位;将查找到的多个包含mactk的点位组成点位范围Locations,通过以下模型对所述点位范围Locations进行表示:
Locations={Location1,Location2,…,Locationm};
S103:根据所述WiFi数据T对所述点位范围Locations中的各个点位进行评分,以获取评分集合Scores,所述评分集合Scores表征为Scores={Location1:score1,Location2:score2,…,Locationm:scorem},
其中,所述评分表征为分数越大,则WiFi数据T与所述WiFi指纹库中的信号强度值差异越大;
S104:在所述评分集合Scores中分数score按照由小到大的顺序进行排序,选取与排序第一的分数值对应的点位作为所述第一预设时段内的一时刻的WiFi定位结果;
S105:重复执行所述S101至所述S104的步骤,以获取第一预设时段内的全部时刻的定位结果。
优选地,所述第一预设时段具有j个不同时刻;
相应地,所述步骤S104还包括:
在所述评分集合Scores中分数score按照由小到大的顺序进行排序,在所述评分集合Scores中选定前e个分数对应的点位作为所述第一预设时段内的一时刻的e个WiFi定位结果;
相应地,所述步骤S11包括:
S110:当所述第一预设时段内的WiFi数据达到预设数量条件时,根据所述WiFi定位结果生成多个第一预设时段内的WiFi定位路径,在所述第一预设时段内的每个时刻的e个WiFi定位结果中选取一个WiFi定位结果,以生成第一预设时段内的m条WiFi定位路径WiFiRoad;所述m条WiFi定位路径WiFiRoad由所述第一预设时段内的j个不同时刻的WiFi定位结果相连以生成,其中,m=ej。
优选地,所述第一预设时段内的PDR数据存储于PDR历史数据HistoryPDR,用以下模型进行对所述HistoryPDR表示:
HistoryPDR={PDRResult1,PDRResult2,…,PDRResultn};
其中,第k步PDR数据表征为PDRResultk={stepLengthk,anglek},stepLengthk表示第k步的步长,anglek表示第k步的方位角。
相应地,所述步骤S11还包括:
S111:当所述第一预设时段内的PDR数据达到预设数量条件时,根据所述HistoryPDR计算所述第一预设时段内的多个PDR线段PDRLine的长度,以及所述PDRLine对应的线段角;
其中,当第k-1步的方位角和第k步的方位角的差值在第一预设变化阈值时,则判定第k步时未发生转弯,将所述第k步所属当前直线上的所有步长的长度相加作为所述当前直线所对应的PDR线段PDRLine的长度,并将所述当前直线上的所有步长的方位角相加后的平均角度作为所述PDR线段PDRLine的线段角;
当第k步的方位角和第k-1步及第k-2步的方位角的差值均不在第一预设变化阈值时,则判定第k步时已发生转弯,将所述第k-1步所属当前直线上的所有步长的长度相加作为所述当前直线所对应的PDR线段PDRLine的长度,并将所述当前直线上的所有步长的方位角相加后的的平均角度作为所述PDR线段PDRLine的线段角;并将第k步的步长归入到下一个PDR线段PDRLine中;
S112:重复执行所述步骤S111,以计算出所述第一预设时段内多条PDR线段PDRLine,以生成PDR轨迹PDRRoad,所述PDR轨迹PDRRoad由多条PDR线段PDRLine构成;
所述PDRRoad表征为PDRRoad={PDRLine1,PDRLine2,…,PDRLinen},其中,PDRLine1为PDRRoad中的第1条PDR线段,PDRLine2为PDRRoad中的第2条PDR线段,PDRLinen为PDRRoad中的第n条PDR线段;其中,第n条PDRLine表征为PDRLinen={PDRLineLengthn,PDRLineAnglen};PDRLineLengthn为第n条PDRLine的长度,PDRLineAnglen为第n条PDRLine的线段角。
优选地,所述步骤S11还包括:
S113:以所述第一预设时段内的PDR轨迹PDRRoad为基准,对所述m=ej条WiFi定位路径WiFiRoad进行评分,得到评分集合RoadScores,所述评分集合RoadScores用以下模型表示:
RoadScores={WiFiRoad1:score1,WiFiRoad2:score2,…,WiFiRoadm:scorem};其中,所述分数表征为分值越小,则所述PDRRoad与所述WiFiRoad的差异越小;其中,Scorem表示第m条WiFiRoad的分数值;
从所述评分集合RoadScores中选取分数值最小的WiFiRoad作为所述第一预设时段内实际行走定位轨迹。
优选地,所述路网信息数据为预先存储于PDR预存库中,其中,所述路网信息数据用以下模型表示:
PDRData={Location1:PDR1,Location2:PDR2,…,Locationn:PDRn};其中Location表示起点位置,以k`为起点对应的路网数据PDRk`={Linek`1,Linek`2,…,Linek`n},其中,Linek`1表示以k`为起点的第1条路网线段,Linek`2表示以k`为起点的第2条路网线段,Linek`n表示以k`为起点的第n条路网线段;用以下模型对所述路网线段Linek`n表示:
Linek`n={Locationk`,EndLocationk`n,LineAnglek`n,LineLengthk`n},
Locationk`表示起点位置k`,EndLocationk`n表示所述Linek`n的终点位置,LineAnglek`n表示所述Linek`n的线段角,LineLengthk`n表示所述Linek`n的长度。
优选地,所述步骤S21进一步包括:
S211:确定PDR定位的初始起点PdrStartLocation、以及当前PDR数据;根据所述当前PDR数据判断当前行走状态是否转弯,若没转弯,则计算所述当前PDR数据中所有步行的平均角度stepAngle与总长度stepLength;若转弯,则计算所述当前PDR数据中转弯前的步行的平均角度stepAngle与总长度stepLength;
S212:获取与所述起点PdrStartLocation对应的路网信息数据,从所述路网信息数据中确定与所述起点PdrStartLocation相关联的多条路网线段,并从所述相关联的多条路网线段中确定各个方向上长度最短的路网线段,将各个方向上长度最短的路网线段的线段角度分别与所述stepAngle进行比较,从所述各个方向上长度最短的路网线段中选取与所述stepAngle的角度差异最小的路网线段Lineki;
在当前行走状态为没有转弯时,以所述PdrStartLocation为起点计算沿所述Lineki的方向走距离为所述总长度stepLength后的点位坐标LocationNow,若所述总长度stepLength大于所述Lineki的长度,则将所述Lineki的终点EndLocationki作为当前PDR定位结果并显示,并将当前起点由PdrStartLocation更新为EndLocationki,同时删除所述第一缓存中的PDR数据;若所述总长度stepLength小于所述Lineki的长度时,则将所述LocationNow作为当前PDR定位结果并显示;
或
在当前行走状态为转弯时,将所述Lineki的终点EndLocationki作为当前PDR定位结果并显示,并将当前起点由PdrStartLocation更新为EndLocationki,同时删除所述第一缓存中的PDR数据。
优选地,所述步骤S22中的所述将所述第二缓存中的PDR数据、所述起点SimilarityStartLocation,以及所述路网信息数据进行相似性路网匹配,具体包括:
根据所述第二缓存中所述起点时刻到当前时刻之间的PDR数据生成所述起点时刻到当前时刻之间PDR轨迹PDRRoad={PDRLine1,PDRLine2,…,PDRLinen};
并将所述SimilarityStartLocation作为当前起点集similar-nowLocation={Simila rityStartLocation},所述similar-nowLocation为变量;
根据所述当前起点集similar-nowLoaction、所述PDRLine1在相关联的路网信息数据PDRnow中寻找满足预设条件的路网线段以获取下一段PDR线段的起点集,其中,所述PDRnow为从所述PDRData中基于当前时刻的similar-nowLocation中各点位坐标获取;重复执行根据当前获取到的起点集以及当前PDR线段在相关联的路网信息数据PDRnow中寻找满足预设条件的路网线段以获取下一PDR线段的起点集,直至所述下一PDR线段位为所述PDR轨迹中的最后一条线段;
其中,所述相关联的路网信息数据PDRnow表征为PDRnow={Linenow-1,Linenow-2,…,Linenow-n},其中,Linenow-1、Linenow-2以及,Linenow-n分别表示路网线段,所述相关联的路网信息数据PDRnow来源于所述路网信息数据PDRData;
以SimilarityStartLocation为起点计算出满足所述PDR轨迹PDRRoad的所有PDR线段的全部路网线段,并将计算出的各路网线段的终点作为相似性路网匹配点位ForecastPoint存储到预测终点集SimilarityForecastPoint中。
优选地,所述步骤S23中所述将相似性路网匹配结果与当前时刻的WiFi定位结果NowWifiLocation相结合以生成标准点位坐标,具体包括:
根据所述当前时刻的WiFi定位结果NowWifiLocation从所述预测终点集SimilarityForecastPoint中选取与所述NowWifiLocation距离最短的相似性路网匹配点位,将选取的相似性路网匹配点位作为标准点位坐标。
相应地,所述步骤S24还包括:
在所述标准点位坐标与所述当前PDR定位结果为不相同的坐标时,根据所述NowWifiLocation所对应的WiFi轨迹的最后一条线段与所述当前PDR数据所对应PDR线段之间的线段角差值,对当前角度进行修正,并将修正后的当前角度作为下一定位时段的初始角度。
本发明通过在第一预设时段内,对当前地图进行展示,得到相关路网信息;获取PDR相关硬件参数,计算出第一预设时段内PDR轨迹,通过WiFi定位算法和所述PDR轨迹综合定位起点和朝向并进入下一定位时段,然后以PDR定位算法为主进行室内定位,并结合当前PDR数据与路网数据进行相似性匹配,再将相似性匹配结果与当前WiFi定位结果相结合以对当前PDR定位结果进行检测修正,从而进一步提高了室内定位精度,使得室内定位精度达到1米到3米。
附图说明
图1为本发明一种室内混合定位方法的主要流程图示意图;
图2为本发明一种室内混合定位方法第一实施例的流程示意图;
图3为本发明一实施例中室内混合定位方法的流程示意图;
图4为本发明一实施例中以点k`为起点所对应的路网数据PDRk`的示意图;
图5为本发明一实施例中涉及点位检测修正的示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明一种室内混合定位方法主要流程图:待定位用户在第一预设时段内(即用户最开始进入室内的初始时段)打开手机定位应用软件,通过手机传感器实时获取PDR信号和Wi-Fi信号;根据Wi-Fi定位算法计算Wi-Fi定位结果将其存储并输出显示,并实时存储PDR数据;当Wi-Fi历史数据与PDR历史数据达到一定数量,可以匹配求出行走的路线时,初始化起点和方位角进入下一定位时段。在所述下一定位时段通过路网与PDR数据匹配的PDR定位算法实时计算当前定位结果并显示,若如定位结果判断出错,则用相似性路网匹配与Wi-Fi定位结果综合修正当前位置,并以当前位置为起点重新开始定位。
需要说明的是本实施例的执行主体可以为进入室内建筑的移动终端,所述终端设备可以是手机、平板电脑等,在手机或者平板电脑等装置上安装一个室内定位应用软件APP,其中,所述终端设备可以包括加速度传感器、陀螺仪和磁力计,其中用户移动的步长和步数是通过加速度传感器获取,而最开始的初始角度是通过磁力计获取的,之后的角度(朝向)是由陀螺仪获取的,由于其为本技术领域熟知技术,故在本实施例中不再赘述。
参照图2,图2为本发明一种室内混合定位方法一实施例的主要流程示意图。
本实施例中,所述方法包括以下步骤:
步骤S01:对当前地图进行展示,获取第一预设时段内的WiFi数据和PDR数据;
需要说明的是,所述第一预设时段为待定位用户进入当前室内起的起始时刻开始计算的第一段行走时间。本实施例中,以用户使用手机作为室内定位的移动终端为例进行说明,即步骤S01中的WiFi数据和PDR数据为可通过手机传感器实时获取。
步骤S10:获取第一预设时段内的WiFi数据,根据所述WiFi数据计算出WiFi定位结果;
步骤S11:当所述第一预设时段内的WiFi数据和PDR数据达到预设数量条件时,计算出所述第一预设时段内实际行走定位轨迹;
所述步骤S10可理解为本实施例的WiFi定位算法。
可理解的是,本实施例采用Wifi定位,即首先要合理地对划分环境网格,并在所属建筑物的室内合理部署无线热点(Wireless Access Point,AP);优选地,可在室内合理部署多个AP;分别测量所有采集点位上各AP的信号强度值(Received Signal StrengthIndication,RSSI),并将每一个采集点位对应的位置信息、MAC地址(即对应的AP)和信号强度作为WiFi指纹数据存储到WiFi指纹数据库(简称WiFi指纹库),即将当前地图上的每个点位上预先采集的WiFi指纹数据录入至WiFi指纹库作为预存的WiFi数据,所述WiFi指纹库中包括点位、MAC地址(用mac表示)以及所述WiFi信号强度值(用rssi表示)之间的映射关系,例如(某个点位k的)WiFi指纹数据的存储形式为WiFik={mack1:rssik1,mack2:rssik2,…,mackn:rssikn};而所述WiFi指纹数据库各点位数据WiFiData={Location1:WiFi1,Location2:WiFi2,…,Locationn:WiFin},其中,Locationn表示第n个采集点位(即点位坐标),WiFin表示当前地图中第n个点位坐标(Locationn)所存储的WiFi指纹数据。
在具体实现中,所述步骤S10(WiFi定位算法)之前,所述方法还包括对指纹库WiFiData中的WiFi指纹数据进行预处理:
统计各个点位上信号强度值为前三位的无线接入点对应的MAC地址,并将每个点位的统计结果定义为MAC集Strong,将各MAC集Strong保存到所述WiFi指纹库中;
所述MAC集Strong通过以下模型进行表示:
Strong={Location1:{mac11,mac12,mac13},Location2:{mac21,mac22,mac23},…,Locationn:{macn1,macn2,macn3}};其中,Locationk表示第k个采集点位的位置,第k个采集点上传于所述WiFi指纹库中的WiFi数据表征为WiFik={mack1:rssik1,mack2:rssik2,…,mackn:rssikn},mac表示一无线接入点的mac地址,rssi表示一无线接入点的信号强度值。
相应地,参考图3,图3中子步骤S101到S105为本实施例WiFi定位算法的流程,即所述步骤S10(WiFi定位算法)具体包括:
子步骤S101:确定第一预设时段内的一时刻的WiFi数据T,通过以下模型对T进行表示:
T={mact1:rssit1,mact2:rssit2,…,mactn:rssitn};其中,rssitn表示第n个mac地址对应的信号强度值;
需要说明的是,所述第一预设时段内的一时刻指的是第一预设时段内从第一时刻到第一预设时段内最后一个时刻之间的每个时刻。
子步骤S102:从所述WiFi数据T中确定信号强度第一的信号强度值rssitk,并获取与所述rssitk对应的mactk地址;从所述Strong集合的多个点位中查找出包含所述mactk的点位;将查找到的多个包含mactk的点位组成点位范围Locations,通过以下模型对所述点位范围Locations进行表示:
Locations={Location1,Location2,…,Locationm};
可理解的是,步骤S102先根据T中最强的信号强度值选定一个点位范围,这样可缩小从WiFi指纹库中查找预存的点位范围,提高查找效率。
子步骤S103:根据所述WiFi数据T对所述点位范围Locations中的各个点位进行评分,以获取评分集合Scores,所述评分集合Scores表征为Scores={Location1:score1,Location2:score2,…,Locationm:scorem},其中,所述评分表征为分数越大,则WiFi数据T与所述WiFi指纹库中的信号强度值差异越大;
在具体实现中,本实施例选取的WiFi信号强度范围为(-100dbm,-10dbm)其它强度被过滤。假设某点位指纹库中的信号Y={macy1:rssiy1,macy2:rssiy2,…,macym:rssiym},则信号T与信号Y的评分方法:首先,以信号T为基准进行计算,误差其中rssiti是信号T中macti对应的强度,而rssiyi是信号T中macti在信号Y中对应的强度,如果rssiyi不存在,则取-100dbm(-100dbm为选取过滤范围的最低值);其次,计算信号T与信号Y的MAC交集MACint=MACT∩MACY={mac1,mac2,…mack},计算系数k=num(MACint)/num(MACT)(num表示个数);再次,根据MACint中mac地址的顺序,依次找到信号T对应的强度RSSIT={rssiT1,rssiT2,…,rssiTk}以及信号Y对应的强度RSSIY={rssiY1,rssiY2,…,rssiYk},计算其中表示RSSIT的标准差;最后,再根据信号T与信号Y的误差及夹角余弦计算分数score=error/cos<RSSIT,RSSIY>。需要说明的是:可以根据系数k≥0.6进一步缩小步骤S102中Locations的范围,如果步骤S102中Locations的系数k全都小于0.6则放弃这一步。
子步骤S104:在所述评分集合Scores中分数score按照由小到大的顺序进行排序,选取与排序第一的分数值对应的点位作为所述第一预设时段内的一时刻的WiFi定位结果;
子步骤S105:重复执行所述S101至所述S104的步骤,以获取第一预设时段内的全部时刻的定位结果。
其中,所述S104还包括:
在所述评分集合Scores中分数score按照由小到大的顺序进行排序,在所述评分集合Scores中选定前e个分数对应的点位作为所述第一预设时段内的一时刻的e个WiFi定位结果;
相应地,所述步骤S11包括:
子步骤S110:当所述第一预设时段内的WiFi数据达到预设数量条件时,根据所述WiFi定位结果生成多个第一预设时段内的WiFi定位路径,在所述第一预设时段内的每个时刻的e个WiFi定位结果中选取一个WiFi定位结果,以生成第一预设时段内的m条WiFi定位路径WiFiRoad;所述m条WiFi定位路径WiFiRoad由所述第一预设时段内的j个不同时刻的WiFi定位结果相连以生成,其中,m=ej。
需要说明的是,每条WiFi定位路径包括J个WiFi定位结果WiFiResult,
所述m=ej条WiFi定位路径WiFiRoad用以下公式进行表示:
WiFiRoad={WiFiRoad1,WiFiRoad2,…,WiFiRoadm},
其中,WiFiRoad1表示所述第一预设时段内第一种可能的WiFi定位路径,WiFiRoad2表示第一预设时段内第二种可能的WiFi定位路径,WiFiRoadm表示第m(m=ej)种可能的WiFi定位路径。
在具体实现中,本发明以获取了6次Wi-Fi定位结果,每次取评分最好的前5个Wi-Fi定位点,并要求这段时间内PDR数据个数超过10个(PDR数据为每一步步长与方位角)为例进行说明。假设满足条件的Wi-Fi历史数据为HistoryWiFi={WiFiResult1,WiFiResult2,…,WiFiResult6},假设第k次Wi-Fi定位结果WiFiResultk={WiFiResultk1,WiFiResultk2,…WiFiResultk5};
根据Wi-Fi历史数据HistoryWiFi推算出多种行走路线每段线长及角度。假设第一预设时段内一个有J个不同时刻,在每个时刻从所述评分集合Scores中选定分数最小的前e个分数对应的点位作为所述第一预设时段内的一时刻的e个WiFi定位结果;本实施例中以J=6,e=5进行说明,总共有条ej条(56条)可能行走的路线。假设其中一种可能行走的路径Road={WiFiResult1a,WiFiResult2b,WiFiResult3c,WiFiResult4d,WiFiResult5e,WiFiResult6f},其中,a,b,c,d,e,f都在[1,5]的区域内,WiFiResult1a表示第一次Wi-Fi定位的第a种可能结果。先判断相邻两次Wi-Fi定位点是否相同,如果相同,则说明停留在原地;如果不同,再判断是否在一条线上。如果不在一条线上,则删除这种可能;如果在一条线上,则存储该线的线长与线角。最终,推算出Wi-Fi预测的多种路线结果WiFiRoad={WiFiRoad1,WiFiRoad2,…,WiFiRoadn},其中,第f种路线结果WiFiRoadf={WiFiLine1,WiFiLine2,…,WiFiLinem},其中,第k段线WiFiLinek={WiFiLineLengthk,WiFiLineAnglek,Locationk},Locationk表示第k段线的结束点位置,WiFiLineLengthk表示第k段线的线段长度,WiFiLineAnglek表示第k段线的线段角度。如果WiFiRoadf中第k段WiFiLinek的结束点与第k+1段WiFiLinek+1的起点相同,且角度线角几乎一样,则合并WiFiLinek与WiFiLinek+1,新的线长为WiFiLinek与WiFiLinek+1线长和,新的线角为WiFiLinek与WiFiLinek+1线角均值。需要说明的是,上述步骤涉及到每次WiFi定位评分的前5个地点必有一个是真实位置,如WiFi定位结果不同需要调整个数。
子步骤S111:当所述第一预设时段内的PDR数据达到预设数量条件时,根据所述HistoryPDR计算所述第一预设时段内的多个PDR线段PDRLine的长度,以及所述PDRLine对应的线段角;
可理解的是,所述子步骤S111以及下文的子步骤S112为本实施例的计算出PDR轨迹的步骤。其中,所述第一预设时段内的PDR数据存储于PDR历史数据HistoryPDR,用以下模型进行对所述HistoryPDR表示:
HistoryPDR={PDRResult1,PDRResult2,…,PDRResultn};
其中,第k步PDR数据表征为PDRResultk={stepLengthk,anglek},stepLengthk表示第k步的步长,anglek表示第k步的方位角。其中,第k-1步为第k步之前的那一步(PDR数据)。
在具体实现中,当第k-1步的方位角和第k步的方位角的差值在第一预设变化阈值时,则判定第k步时未发生转弯,将所述第k步所属当前直线上的所有步长的长度相加作为所述当前直线所对应的PDR线段PDRLine的长度,并将所述当前直线上的所有步长的方位角相加后的平均角度作为所述PDR线段PDRLine的线段角;
当第k步的方位角和第k-1步及第k-2步的方位角的差值均不在第一预设变化阈值时,则判定第k步时已发生转弯,将所述第k-1步所属当前直线上的所有步长的长度相加作为所述当前直线所对应的PDR线段PDRLine的长度,并将所述当前直线上的所有步长的方位角相加后的的平均角度作为所述PDR线段PDRLine的线段角;并将第k步的步长归入到下一个PDR线段PDRLine中;
具体地,本发明中第k-1步到第k步转角angleChange=f(anglek-1,anglek),方法f的求法为:angleChange=anglek-anglek-1,如果angleChange>180°,angleChange=angleChange-360°;如果angleChange<180°,angleChange=angleChange+360°;若|angleChange|>25°,则从第k-1步到第k步有明显角度变化,即上述第一预设变化阈值取25度,当第k步的方位角和第k-1步的方位角及第k-2步的方位角差值的绝对值均大于25度,则说明第k步已发生转弯。
子步骤S112:重复执行所述子步骤S111,以计算出所述第一预设时段内多条PDR线段PDRLine,以生成PDR轨迹PDRRoad,所述PDR轨迹PDRRoad由多条PDR线段PDRLine构成;
所述PDRRoad表征为PDRRoad={PDRLine1,PDRLine2,…,PDRLinen},其中,PDRLine1为PDRRoad中的第1条PDR线段,PDRLine2为PDRRoad中的第2条PDR线段,PDRLinen为PDRRoad中的第n条PDR线段;其中,第n条PDRLine表征为PDRLinen={PDRLineLengthn,PDRLineAnglen};PDRLineLengthn为第n条PDRLine的长度,PDRLineAnglen为第n条PDRLine的线段角;
子步骤S113:以所述第一预设时段内的PDR轨迹PDRRoad为基准,对所述m=ej条WiFi定位路径WiFiRoad进行评分,得到评分集合RoadScores,所述评分集合RoadScores用以下模型表示:
RoadScores={WiFiRoad1:score1,WiFiRoad2:score2,…,WiFiRoadm:scorem};其中,所述分数表征为分值越小,则所述PDRRoad与所述WiFiRoad的差异越小;其中,Scorem表示第m条WiFiRoad的分数值;
从所述评分集合RoadScores中选取分数值最小的WiFiRoad作为第一预设时段内实际行走定位轨迹。
可理解的是,本发明利用Wi-Fi定位历史结果预测出多种可能的行走路线,然后与PDR数据进行匹配,推算出最可能的行走路线。
在具体实现中以Wi-Fi第f种路线为例对上述评分方法进行说明:首先,判断PDR轨迹PDRRoad与WiFiRoadf中线段个数是否一样,如果不一样,则直接评分9999表示差异很大;如果一样,即n==m,则计算每次转角差异RoadAngleChange。如果RoadAngleChange>30°,则直接评分9999表示差异很大;如果所有转角差异都满足条件,则求误差评分
以第一段线到第二段线为例,对求PDR轨迹PDRRoad和WiFi定位路径WiFiroad之间转角差异RoadAngleChange的方法说明,基于上述子步骤S111中求转角的方法可知,
PDR线段角度差异:PDRAngleChange=f(PDRLineAngle1,PDRLineAngle2),WiFi线段角度差异:WiFiAngleChange=f(WiFiLineAngle1,WiFiLineAngle2)进而得出所述转角差异:RoadAngleChange=|PDRAngleChange-WiFiAngleChange|。
子步骤S113通过结合PDR轨迹对多条WiFi定位路径进行评分,并根据评分结果选取差异最小的WiFi定位路径作为实际行走定位轨迹,最终得到较为准确的实际行走路径,为下一定位时段的混合定位初始化起点和方位角。
进一步地,步骤S11(即子步骤S113)之后是
步骤S12:确定所述第一预设时段内的实际行走定位轨迹与所述第一预设时段内最后时刻对应的线段的终点,将所述线段的终点作为下一定位时段的起点startLocation,将所述线段的线段角作为所述下一定位时段的初始角度
可理解的是,本实施例从步骤S01到步骤S12已经完成了待定位用户在进入室内最初始一段时间(即所述第一预设时段)的室内定位流程,即在所述第一预设时段内通过WiFi定位为所述待定位用户确定的一个室内定位显示结果并结合PDR轨迹确定下一定位时段的起点startLocation以及初始方位角,待定位用户在第一预设时段之后时段的定位主要采用PDR算法为主进行室内定位,同时当检查到PDR定位结果有明显误差时,会结合路网数据(相似性路网匹配)和WiFi定位算法对PDR定位结果进行修正。
具体的,下述从步骤S02开始是在所述第一预设时段之后采用以PDR算法为主对待定位用户进行室内定位。
步骤S02:对所述下一定位时段的起点startLocation和所述初始角度进行显示,并获取所述下一定位时段的起点时刻到当前时刻之间的PDR数据、WiFi数据和路网信息数据;
需要说明的是,步骤S02中的WiFi数据和PDR数据可通过手机传感器实时获取。同时,所述路网信息数据为预先存储于PDR预存库中,其中,所述路网信息数据用以下模型表示:
PDRData={Location1:PDR1,Location2:PDR2,…,Locationn:PDRn};其中Location表示起点位置,以k`为起点对应的路网数据PDRk`={Linek`,Linek`,…,Linek`},其中,Linek`1表示以k`为起点的第1条路网线段,Linek`2表示以k`为起点的第2条路网线段,Linek`n表示以k`为起点的第n条路网线段;
用以下模型对所述路网线段Linek`n表示:
Linek`n={Locationk`,EndLocationk`n,LineAnglek`n,LineLengthk`n},Locationk`表示起点位置k`,EndLocationk`n表示所述Linek`n的终点位置,LineAnglek`n表示所述Linek`n的线段角,LineLengthk`n表示所述Linek`n的长度。
可理解的是,参考图4,图4为本实施例中以点k`为起点所对应的路网数据PDRk`的示意图;其中,路网线段Linek`n表示在Location k`这个点位上某方向上预存的路网线段,这些路网线段用以预测室内的用户可能行走的线段对应的坐标点位。如图4所示例如以点k`为起点,点k`到点a1可理解为以k`为起点的第1条路网线段Linek`1,点k`到点a2可理解为以k`为起点的第2条路网线段Linek`2,点k`到点b1可理解为以k`为起点的第3条路网线段Linek`3,点k`到点b2可理解为以k`为起点的第4条路网线段Linek`4,点k`到点d1可理解为以k`为起点的第4条路网线段Linek`4,点k`到点d2可理解为以k`为起点的第5条路网线段Linek`5,点k`到点c1可理解为以k`为起点的第6条路网线段Linek`6,值得一提的是这些路网线段Linek`在地图上都有预存的点位坐标(即图中的a1、a2、b1、b2、c1、d1、d2代表地图上的点位坐标)。
进一步地,步骤S02之后是
步骤S20:将所述起点startLocation和所述PDR数据存入第一缓存,并将所述第一缓存中的startLocation定义为起点PdrStartLocation;同时将所述起点startLocation、所述PDR数据存入第二缓存,并将所述第二缓存中的startLocation定义为起点SimilarityStartLocation;
可理解的是,在步骤S02中,手机传感器实时获取到的PDR数据会被复制两份然后到分别保存到不同的缓存中,即第一缓存和第二缓存,其中,所述第一缓存中的PDR数据用于PDR定位算法对用户进行室内定位;具体涉及PDR定位算法的实现会在步骤S21中进行说明
所述第二缓的PDR数据存用于对PDR定位结果修正检测,即在用户在室内发生转弯时,检查由PDR定位算法计算出的PDR定位结果是否出现误差,具体涉及修正检测方法的实现会在步骤S22、S23及S24中进行说明。
步骤S21(PDR定位算法):根据所述第一缓存中的PDR数据、所述起点PdrStartLocation,以及所述路网信息数据计算出当前PDR定位结果,并显示当前PDR定位结果;
在具体实现中,所述步骤S21进一步包括:
子步骤S211:确定PDR定位的初始起点PdrStartLocation、以及当前PDR数据;根据所述当前PDR数据判断当前行走状态是否转弯,若没转弯,则计算所述当前PDR数据中所有步行的平均角度stepAngle与总长度stepLength;若转弯,则计算所述当前PDR数据中转弯前的步行的平均角度stepAngle与总长度stepLength。需要说明的是子步骤S211中判断当前行走状态是否转弯的方法和上文第一预设时段的子步骤S111的方法原理相同。
子步骤S212:获取与所述起点PdrStartLocation对应的路网信息数据,从所述路网信息数据中确定与所述起点PdrStartLocation相关联的多条路网线段,并从所述相关联的多条路网线段中确定各个方向上长度最短的路网线段,将各个方向上长度最短的路网线段的线段角度分别与所述stepAngle进行比较,从所述各个方向上长度最短的路网线段中选取与所述stepAngle的角度差异最小的路网线段Lineki;
在当前行走状态为没有转弯时,以所述PdrStartLocation为起点坐标计算沿所述Lineki的方向走距离为所述总长度stepLength后的点位坐标LocationNow,若所述总长度stepLength大于所述Lineki的长度,则将所述Lineki的终点EndLocationki作为当前PDR定位结果并显示,并将当前起点坐标由PdrStartLocation更新为EndLocationki,同时删除所述第一缓存中的PDR数据;若所述总长度stepLength小于所述Lineki的长度时,则将所述LocationNow作为当前PDR定位结果并显示;
或
在当前行走状态为转弯时,将所述Lineki的终点EndLocationki作为当前PDR定位结果并显示,并将当前起点由PdrStartLocation更新为EndLocationki,同时删除所述第一缓存中的PDR数据。
进一步的下文中步骤S22、步骤S23及步骤S24这三个步骤组成了结合路网数据和WiFi定位算法结果对PDR定位结果进行检测修正的方法
步骤S22:根据与所述当前时刻对应的第二缓存中的PDR数据判断当前行走状态是否产生转弯,如转弯,则将所述第二缓存中的PDR数据、所述起点SimilarityStartLocation,以及所述路网信息数据进行相似性路网匹配;
需要说明的是,所述步骤S22中判断当前行走状态是否产生转弯的方法和上文第一预设时段的子步骤S111中的方法原理相同。在当前行走状态产生转弯时,会启动并执行对PDR定位结果进行检测修正的步骤;在当前行走状态没有发生转弯时,则不执行对PDR定位结果进行检测修正的步骤。
具体地,所述步骤S22中的所述将所述第二缓存中的PDR数据、所述起点SimilarityStartLocation,以及所述路网信息数据进行相似性路网匹配,具体包括:
子步骤S221:根据所述第二缓存中所述起点时刻到当前时刻之间的PDR数据生成所述起点时刻到当前时刻之间P D R轨迹P D RR o a d={PDRLine1,PDRLine2,…,PDRLinen};并将所述SimilarityStartLocation作为当前起点集similar-nowLocation,并用以下模型对所述当前起点集表示:similar-nowLo cation={SimilarityStartLocation},其中,所述similar-nowLocation为变量,用以表示每段路线可能的起点集;
需要说明的是,所述第二缓存中所述起点时刻到当前时刻之间PDR轨迹的计算方法和上述子步骤S111、S112原理一样。
子步骤S222,根据所述当前起点集similar-nowLoaction、所述PDRLine1在相关联的路网信息数据PDRnow中寻找满足预设条件的路网线段以获取下一段PDR线段的起点集,其中,所述PDRnow为从所述PDRData中基于当前时刻的similar-nowLocation中各点位坐标获取;重复执行根据当前获取到的起点集以及当前PDR线段在相关联的路网信息数据PDRnow中寻找满足预设条件的路网线段以获取下一PDR线段的起点集,直至所述下一PDR线段位为所述PDR轨迹中的最后一条线段;
其中,所述相关联的路网信息数据PDRnow表征为PDRnow={Linenow-1,Linenow-2,…,Linenow-n},其中,Linenow-1、Linenow-2以及,Linenow-n分别表示路网线段,所述相关联的路网信息数据PDRnow来源于所述路网信息数据PDRData;
子步骤S223,以SimilarityStartLocation为起点计算出满足所述PDR轨迹PDRRoad的所有PDR线段的全部路网线段,并将计算出的各路网线段的终点作为相似性路网匹配点位ForecastPoint存储到预测终点集SimilarityForecastPoint中。
上子步骤S221到S223在具体实现中,
基于所述起点SimilarityStartLocation与PDR轨迹PDRRoad={PDRLine1,PDRLine2,…,PDRLinen},预测用户真实行走路线,设置线角误差angleError=30°,线长误差lengthError=6m。由于所述similar-nowLoaction为变量,假设第K段线的起点集为:
similar-nowLoaction-K={similar-nowLoactionK1,similar-nowLoactionK2,..,simila r-nowLoactionKn},similar-nowLoactionK1表示当前起点集中第k段线可能的第一个起点K1,similar-nowLoactionK2表示当前起点集中第k段线可能的第2个起点K2,similar-nowLoactionKn表示当前起点集中第k段线可能的第n个起点Kn;
以similar-nowLoactionKn为起点的第k段线的PDR线段为PDRLinek,PDRLinek对应的线段角度PDRLineAnglek,线段长度为PDRLineLengthk;
在路网数据PDRData中找到与上述起点similar-nowLocationKn相关的PDRnow={Linenow-1,Linenow-2,…,Linenow-n};
如果Linenow-1,Linenow-2,…,Linenow-n这之中存在某条路网线段Linei的线角与线长满足|f{PDRLineAnglek,LineAnglei}|<30°且|PDRLineLengthk-LineLengthi|<6,则将该路网线段作为(以similar-nowLoactionKn为起点的)可能的真实路线并存储该路网线段的终点作为第k+1段线的起点集。按照上述步骤计算第k段线起点集similar-nowLoaction-K中各个起点所对应的可能的真实路线并存储该线的终点作为第K+1段线的起点集similar-nowLoaction-K+1;
根据上述步骤的原理以起点SimilarityStartLocation作为初始起点集similar-nowLoaction={SimilarityStartLocation},从第一段PDR线段计算到最后一段PDR线段,在计算到最后一段PDR线段时,找到满足上述PDR轨迹的最终起点集similar-nowLoaction-N,同时将最终起点集similar-nowLoaction-N中的各个点位坐标存储到预测终点集SimilarityForecastPoint中;
SimilarityForecastPoint={ForecastLocation1,ForecastLocation2,…,ForecastLocationn};
为了进一步对上述方案进行说明,参照图5,点A为初始起点为例进行说明,最开始所述similar-nowLocation={SimilarityStartLocation=点A};本例中PDR轨迹是用户从起点A先直行5米再左转5米,即PDRRoad={PDRLine1,PDRLine2};
首先,所述第二缓存中所述起点A时刻到当前时刻之间的PDR数据生成所述起点时刻到当前时刻之间PDR轨迹PDRRoad是人先从点A起沿线段A-B方向直行5米(即第一条PDR线段PDRLine1),而此时是用户直行5米后的对应时刻,并且发生了用户直行5米后再左转的移动趋势;可理解的是,对应子步骤S221,此时根据所述当前起点集similar-nowLoaction在路网信息数据库中获取与点A对应的路网信息PDRnow,参见图5,其中与点A对应的路网信息PDRnow的路网线段Line为路网线段A-B(4米),路网线段A-C(6米),路网线段A-X1(13米),路网线段A-Y1(4米),路网线段A-Y2(4米);
可理解的是,对应子步骤S222中将上述路网线段(路网线段A-B,A-C,A-X1,A-Y1,A-Y2)分别与所述第一个PDR轨迹即PDRLine1进行比较,即将PDRLine1对应的线长PDRLine1Length与上述PDRnow的路网线段对应的线长LineLength进行长度比较,同时将PDRLine1对应的线段角PDRLineAngle与上述路网线段对应的线段角LineAngle进行长度比较,当|f{PDRLine1Angle,LineAngle}|<30°,并且
|PDRLine1Length-LineLength|<6米,根据比较结果(路网线段A-X1因为线长不满足条件;A-Y1,A-Y2因为线段角度不满足条件)将满足条件的路网线段A-B和路网线段A-C的终点B、终点C作为下一段线段的可能的起点集,并将点B和点C存入当前起点集similar-nowLocation;继续以点B、以及点C分别作为下一段(用户直行5米后再左转,即PDRLine2)的起点;
由图5可知上述下一线段PDRLine2是用户(直行5米之后的)又左转5米,将当前起点集similarity-nowLocation中的点B和起点C作为第二段满足条件的起点分别找左转5m可能的位置,同理根据公式:
|f{PDRLine1Angle,LineAngle}|<30°且|PDRLine1Length-LineLength|<6米,获取满足条件的路网线段B-D、以及路网线段C-E,并将点D和点E存入当前起点集similar-nowLocation;
以起点A为已知起点确定此时所述PDR轨迹PDRRoad={PDRLine1,PDRLine2};这里PDRLine2是所述PDR轨迹中最后一段线,同时将满足条件点D和点E存入预测终点集SimilarityForecastPoint。
步骤S23:将相似性路网匹配结果与当前时刻的WiFi定位结果NowWifiLocation相结合以生成标准点位坐标,根据所述标准点位坐标对所述当前PDR定位结果进行检验,所述WiFi定位结果NowWifiLocation为根据当前时刻的WiFi数据计算获得;
进一步地,所述步骤S23中所述将相似性路网匹配结果与当前时刻的WiFi定位结果NowWifiLocation相结合以生成标准点位坐标,具体包括:
根据所述当前时刻的WiFi定位结果NowWifiLocation从所述预测终点集SimilarityForecastPoint中选取与所述NowWifiLocation距离最短的相似性路网匹配点位,将选取的相似性路网匹配点位作为标准点位坐标。
步骤S24:在所述标准点位坐标与所述当前PDR定位结果为不相同的坐标时,根据所述NowWifiLocation所对应的WiFi轨迹的最后一条线段与所述当前PDR数据所对应PDR线段之间的线段角差值,对当前角度进行修正,并将修正后的当前角度作为下一定位时段的初始角度;根据所述标准点位坐标对所述当前PDR定位结果进行修正;同时删除所述第二缓存中的PDR数据以及第一缓存中的PDR数据,并将所述下一定位时段的起点startLocation更新为修正后的当前PDR定位结果(相应地,两份缓存中的PdrStartLocation以及SimilarityStartLocation也更新为修正后的当前PDR定位结果),以继续进行室内定位。
需要说明的是,在所述标准点位坐标与所述当前PDR定位结果为相同的坐标时,说明此刻PDR定位结果是正确的,不需要对其进行修正。所述相似性路网匹配其原理是根据PDR预存库的路网线段与某一确定起点SimilarityStartLocation开始记录的PDR历史数据进行匹配。
可理解的是,由于人行走时,每一步的PDR数据都存在步长误差与方位角误差,虽然每一步误差较小可以忽略,但是长时间累积后PDR误差将会非常大(尤其当人在室内行走发生转弯时),所以一段时间后PDR定位算法可能会出错,此时需要重新预测当前位置,并更新PDR定位算法的起点和角度。
在具体实现中,上述根据所述标准点位坐标对所述当前PDR定位结果进行修正具体为:在所述标准点位坐标与所述当前PDR定位结果为不相同的坐标时,将所述标准点位坐标作为所述当前时刻的真实的定位结果,并以所述标准点位坐标为起点进行后续时段的定位;
而根据所述NowWifiLocation所对应的WiFi轨迹的最后一条线段与所述当前PDR数据所对应PDR线段之间的线段角差值,对当前角度进行修正具体为:根据以下公式对所述当前角度进行修正,
amendAngle=angleWifi-anglePdr+angleNow
其中,amendAngle属于[0,360°)区间范围,若amendAngle>=360°,则amendAngle=amendAngle-360°;
若amendAngle<0,则amendAngle=amendAngle+360°;
其中amendAngle表示修正后的角度(修正后的朝向),angleWifi表示WiFi轨迹最后一段线的角度,anglePdr表示PDR轨迹最后一段线的角度,angleNow表示当前角度(当前朝向)。
S30:在所述后续时段重复执行S02至S24的步骤,以继续进行室内定位。
本实施例步骤S10到所述S12为在所述第一预设时段内通过WiFi定位为所述待定位用户确定的一个室内定位显示结果并结合PDR轨迹确定下一定位时段的起点startLocation以及初始方位角,后续时段的室内定位均以PDR定位算法进行室内定位为主,并结合路网数据和WiFi定位算法对PDR定位算法结果进行检测修正(步骤S22、步骤S23和步骤S24),从而进一步提高了室内定位精度,使得室内定位精度达到1米到3米。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种室内混合定位方法,其特征在于,所述方法包括:
S01:对当前地图进行展示,获取第一预设时段内的WiFi数据和PDR数据;
S10:根据所述第一预设时段内的WiFi数据计算出WiFi定位结果,并显示所述WiFi定位结果;
S11:当所述第一预设时段内的WiFi数据和PDR数据达到预设数量条件时,计算出所述第一预设时段内实际行走定位轨迹;
S12:确定所述第一预设时段内的实际行走定位轨迹与所述第一预设时段内最后时刻对应的线段的终点,将所述线段的终点作为下一定位时段的起点startLocation,将所述线段的线段角作为所述下一定位时段的初始角度;
S02:对所述下一定位时段的起点startLocation和所述初始角度进行显示,并获取所述下一定位时段的起点时刻到当前时刻之间的PDR数据、WiFi数据和路网信息数据;
S20:将所述起点startLocation和所述PDR数据存入第一缓存,并将所述第一缓存中的startLocation定义为起点PdrStartLocation;同时将所述起点startLocation、所述PDR数据存入第二缓存,并将所述第二缓存中的startLocation定义为起点SimilarityStartLocation;
S21:根据所述第一缓存中的PDR数据、所述起点PdrStartLocation,以及所述路网信息数据计算出当前PDR定位结果,并显示当前PDR定位结果;
S22:根据与所述当前时刻对应的第二缓存中的PDR数据判断当前行走状态是否产生转弯,如转弯,则将所述第二缓存中的PDR数据、所述起点SimilarityStartLocation,以及所述路网信息数据进行相似性路网匹配;
S23:将相似性路网匹配结果与当前时刻的WiFi定位结果NowWifiLocation相结合以生成标准点位坐标,根据所述标准点位坐标对所述当前PDR定位结果进行检验,所述WiFi定位结果NowWifiLocation为根据当前时刻的WiFi数据计算获得;
S24:在所述标准点位坐标与所述当前PDR定位结果为不相同的坐标时,根据所述标准点位坐标对所述当前PDR定位结果进行修正;同时删除所述第二缓存中的PDR数据以及第一缓存中的PDR数据,并将所述下一定位时段的起点startLocation更新为修正后的当前PDR定位结果;
S30:在所述后续时段重复执行S02至S24的步骤,以继续进行室内定位。
2.如权利要求1所述的方法,其特征在于,所述步骤S10之前,所述方法还包括:
将所述当前地图上的每个点位上预先采集的WiFi数据录入至WiFi指纹库作为预存WiFi数据,所述WiFi指纹库中包括所述点位、所述MAC地址以及所述WiFi信号强度值之间的映射关系;
统计各个点位上信号强度值为前三位的无线接入点对应的MAC地址,并将每个点位的统计结果定义为MAC集Strong,将各MAC集Strong保存到所述WiFi指纹库中;
所述MAC集Strong通过以下模型进行表示:
Strong={Location1:{mac11,mac12,mac13},Location2:{mac21,mac22,mac23},…,Locationn:{macn1,macn2,macn3}};其中,Locationk表示第k个采集点位的位置,第k个采集点上传于所述WiFi指纹库中的WiFi数据表征为WiFik={mack1:rssik1,mack2:rssik2,…,mackn:rssikn},mac表示一无线接入点的mac地址,rssi表示一无线接入点的信号强度值。
3.如权利要求2所述的方法,其特征在于,所述步骤S10具体包括:
S101:确定所述第一预设时段内的一时刻的WiFi数据T,通过以下模型对T进行表示:
T={mact1:rssit1,mact2:rssit2,…,mactn:rssitn};其中,rssitn表示第n个mac地址对应的信号强度值;
S102:从所述WiFi数据T中确定信号强度第一的信号强度值rssitk,并获取与所述rssitk对应的mactk地址;从所述Strong集合的多个点位中查找出包含所述mactk的点位;将查找到的多个包含mactk的点位组成点位范围Locations,通过以下模型对所述点位范围Locations进行表示:
Locations={Location1,Location2,…,Locationm};
S103:根据所述WiFi数据T对所述点位范围Locations中的各个点位进行评分,以获取评分集合Scores,所述评分集合Scores表征为
Scores={Location1:score1,Location2:score2,…,Locationm:scorem},
其中,所述评分表征为分数越大,则WiFi数据T与所述WiFi指纹库中的信号强度值差异越大;
S104:在所述评分集合Scores中分数score按照由小到大的顺序进行排序,选取与排序第一的分数值对应的点位作为所述第一预设时段内的一时刻的WiFi定位结果;
S105:重复执行所述S101至所述S104的步骤,以获取第一预设时段内的全部时刻的定位结果。
4.如权利要求3所述的方法,其特征在于,所述第一预设时段具有j个不同时刻;
相应地,所述步骤S104还包括:
在所述评分集合Scores中分数score按照由小到大的顺序进行排序,在所述评分集合Scores中选定前e个分数对应的点位作为所述第一预设时段内的一时刻的e个WiFi定位结果;
相应地,所述步骤S11包括:
S110:当所述第一预设时段内的WiFi数据达到预设数量条件时,根据所述WiFi定位结果生成多个第一预设时段内的WiFi定位路径,在所述第一预设时段内的每个时刻的e个WiFi定位结果中选取一个WiFi定位结果,以生成第一预设时段内的m条WiFi定位路径WiFiRoad;所述m条WiFi定位路径WiFiRoad由所述第一预设时段内的j个不同时刻的WiFi定位结果相连以生成,其中,m=ej。
5.如权利要求4所述的方法,其特征在于,所述第一预设时段内的PDR数据存储于PDR历史数据HistoryPDR,用以下模型进行对所述HistoryPDR表示:
HistoryPDR={PDRResult1,PDRResult2,…,PDRResultn};
其中,第k步PDR数据表征为PDRResultk={stepLengthk,anglek},stepLengthk表示第k步的步长,anglek表示第k步的方位角。
相应地,所述步骤S11还包括:
S111:当所述第一预设时段内的PDR数据达到预设数量条件时,
根据所述HistoryPDR计算所述第一预设时段内的多个PDR线段PDRLine的长度,以及所述PDRLine对应的线段角;
其中,当第k-1步的方位角和第k步的方位角的差值在第一预设变化阈值时,则判定第k步时未发生转弯,将所述第k步所属当前直线上的所有步长的长度相加作为所述当前直线所对应的PDR线段PDRLine的长度,并将所述当前直线上的所有步长的方位角相加后的平均角度作为所述PDR线段PDRLine的线段角;
当第k步的方位角和第k-1步及第k-2步的方位角的差值均不在第一预设变化阈值时,则判定第k步时已发生转弯,将所述第k-1步所属当前直线上的所有步长的长度相加作为所述当前直线所对应的PDR线段PDRLine的长度,并将所述当前直线上的所有步长的方位角相加后的的平均角度作为所述PDR线段PDRLine的线段角;并将第k步的步长归入到下一个PDR线段PDRLine中;
S112:重复执行所述步骤S111,以计算出所述第一预设时段内多条PDR线段PDRLine,以生成PDR轨迹PDRRoad,所述PDR轨迹PDRRoad由多条PDR线段PDRLine构成;
所述PDRRoad表征为PDRRoad={PDRLine1,PDRLine2,…,PDRLinen},其中,PDRLine1为PDRRoad中的第1条PDR线段,PDRLine2为PDRRoad中的第2条PDR线段,PDRLinen为PDRRoad中的第n条PDR线段;其中,第n条PDRLine表征为PDRLinen={PDRLineLengthn,PDRLineAnglen};PDRLineLengthn为第n条PDRLine的长度,PDRLineAnglen为第n条PDRLine的线段角。
6.如权利要求5所述的方法,其特征在于,所述步骤S11还包括:
S113:以所述第一预设时段内的PDR轨迹PDRRoad为基准,对所述m=ej条WiFi定位路径WiFiRoad进行评分,得到评分集合RoadScores,所述评分集合RoadScores用以下模型表示:
RoadScores={WiFiRoad1:score1,WiFiRoad2:score2,…,WiFiRoadm:scorem};
其中,所述分数表征为分值越小,则所述PDRRoad与所述WiFiRoad的差异越小;其中,Scorem表示第m条WiFiRoad的分数值;
从所述评分集合RoadScores中选取分数值最小的WiFiRoad作为所述第一预设时段内实际行走定位轨迹。
7.如权利要求1所述的方法,其特征在于,所述路网信息数据为预先存储于PDR预存库中,其中,所述路网信息数据用以下模型表示:
PDRData={Location1:PDR1,Location2:PDR2,…,Locationn:PDRn};其中Location表示起点位置,以k`为起点对应的路网数据PDRk`={Linek`1,Linek`2,…,Linek`n},其中,Linek`1表示以k`为起点的第1条路网线段,Linek`2表示以k`为起点的第2条路网线段,Linek`n表示以k`为起点的第n条路网线段;
用以下模型对所述路网线段Linek`n表示:
Linek`n={Locationk`,EndLocationk`n,LineAnglek`n,LineLengthk`n},
Locationk`表示起点位置k`,EndLocationk`n表示所述Linek`n的终点位置,LineAnglek`n表示所述Linek`n的线段角,LineLengthk`n表示所述Linek`n的长度。
8.如权利要求7所述的方法,其特征在于,所述步骤S21进一步包括:
S211:确定PDR定位的初始起点PdrStartLocation、以及当前PDR数据;根据所述当前PDR数据判断当前行走状态是否转弯,若没转弯,则计算所述当前PDR数据中所有步行的平均角度stepAngle与总长度stepLength;若转弯,则计算所述当前PDR数据中转弯前的步行的平均角度stepAngle与总长度stepLength;
S212:获取与所述起点PdrStartLocation对应的路网信息数据,从所述路网信息数据中确定与所述起点PdrStartLocation相关联的多条路网线段,并从所述相关联的多条路网线段中确定各个方向上长度最短的路网线段,将各个方向上长度最短的路网线段的线段角度分别与所述stepAngle进行比较,从所述各个方向上长度最短的路网线段中选取与所述stepAngle的角度差异最小的路网线段Lineki;
在当前行走状态为没有转弯时,以所述PdrStartLocation为起点计算沿所述Lineki的方向走距离为所述总长度stepLength后的点位坐标LocationNow,若所述总长度stepLength大于所述Lineki的长度,则将所述Lineki的终点EndLocationki作为当前PDR定位结果并显示,并将当前起点由PdrStartLocation更新为EndLocationki,同时删除所述第一缓存中的PDR数据;若所述总长度stepLength小于所述Lineki的长度时,则将所述LocationNow作为当前PDR定位结果并显示;
或
在当前行走状态为转弯时,将所述Lineki的终点EndLocationki作为当前PDR定位结果并显示,并将当前起点由PdrStartLocation更新为EndLocationki,同时删除所述第一缓存中的PDR数据。
9.如权利要求8所述的方法,其特征在于,所述步骤S22中的所述将所述第二缓存中的PDR数据、所述起点SimilarityStartLocation,以及所述路网信息数据进行相似性路网匹配,具体包括:
根据所述第二缓存中所述起点时刻到当前时刻之间的PDR数据生成所述起点时刻到当前时刻之间PDR轨迹PDRRoad={PDRLine1,PDRLine2,…,PDRLinen};
并将所述SimilarityStartLocation作为当前起点集similar-nowLocation={SimilarityStartLocation},所述similar-nowLocation为变量;
根据所述当前起点集similar-nowLoaction、所述PDRLine1在相关联的路网信息数据PDRnow中寻找满足预设条件的路网线段以获取下一段PDR线段的起点集,其中,所述PDRnow为从所述PDRData中基于当前时刻的similar-nowLocation中各点位坐标获取;重复执行根据当前获取到的起点集以及当前PDR线段在相关联的路网信息数据PDRnow中寻找满足预设条件的路网线段以获取下一PDR线段的起点集,直至所述下一PDR线段位为所述PDR轨迹中的最后一条线段;
其中,所述相关联的路网信息数据PDRnow表征为PDRnow={Linenow-1,Linenow-2,…,Linenow-n},其中,Linenow-1、Linenow-2以及,Linenow-n表示路网线段,所述相关联的路网信息数据PDRnow来源于所述路网信息数据PDRData;
以SimilarityStartLocation为起点计算出满足所述PDR轨迹PDRRoad的所有PDR线段的全部路网线段,并将计算出的各路网线段的终点作为相似性路网匹配点位ForecastPoint存储到预测终点集SimilarityForecastPoint中。
10.如权利要求1或9所述的方法,其特征在于,所述步骤S23中所述将相似性路网匹配结果与当前时刻的WiFi定位结果NowWifiLocation相结合以生成标准点位坐标,具体包括:
根据所述当前时刻的WiFi定位结果NowWifiLocation从所述预测终点集SimilarityForecastPoint中选取与所述NowWifiLocation距离最短的相似性路网匹配点位,将选取的相似性路网匹配点位作为标准点位坐标。
相应地,所述步骤S24还包括:
在所述标准点位坐标与所述当前PDR定位结果为不相同的坐标时,根据所述NowWifiLocation所对应的WiFi轨迹的最后一条线段与所述当前PDR数据所对应PDR线段之间的线段角差值,对当前角度进行修正,并将修正后的当前角度作为下一定位时段的初始角度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710803304.5A CN107580294B (zh) | 2017-09-07 | 2017-09-07 | 一种室内混合定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710803304.5A CN107580294B (zh) | 2017-09-07 | 2017-09-07 | 一种室内混合定位方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107580294A true CN107580294A (zh) | 2018-01-12 |
CN107580294B CN107580294B (zh) | 2020-03-24 |
Family
ID=61031575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710803304.5A Active CN107580294B (zh) | 2017-09-07 | 2017-09-07 | 一种室内混合定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107580294B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108375376A (zh) * | 2018-03-08 | 2018-08-07 | 浙江师范大学 | 转角检测方法及装置 |
CN109005503A (zh) * | 2018-08-13 | 2018-12-14 | 电子科技大学 | 一种基于WiFi与PDR的融合定位方法 |
CN110134744A (zh) * | 2018-02-08 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 对地磁信息进行更新的方法、装置和系统 |
CN110913338A (zh) * | 2019-12-17 | 2020-03-24 | 深圳奇迹智慧网络有限公司 | 定位轨迹纠正方法、装置、计算机设备和存储介质 |
WO2020088644A1 (zh) * | 2018-11-01 | 2020-05-07 | 华为技术有限公司 | 定位方法及装置 |
CN113466789A (zh) * | 2021-09-06 | 2021-10-01 | 宏景科技股份有限公司 | 一种室内定位方法、系统、计算机设备及存储介质 |
CN114495514A (zh) * | 2022-02-16 | 2022-05-13 | 中南大学 | 一种多源数据协同的车辆违规掉头热点区域识别方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103916875A (zh) * | 2014-04-24 | 2014-07-09 | 山东大学 | 基于wifi无线网络多类控制终端的管理与规划系统 |
CN104180805A (zh) * | 2014-08-29 | 2014-12-03 | 中国海洋大学 | 基于智能手机的室内行人定位与跟踪方法 |
WO2015013847A1 (zh) * | 2013-08-02 | 2015-02-05 | 贾玲 | 一种wifi终端信息推送系统及其实现方法 |
US20150308839A1 (en) * | 2014-04-25 | 2015-10-29 | Samsung Electronics Co., Ltd. | Trajectory matching using ambient signals |
-
2017
- 2017-09-07 CN CN201710803304.5A patent/CN107580294B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015013847A1 (zh) * | 2013-08-02 | 2015-02-05 | 贾玲 | 一种wifi终端信息推送系统及其实现方法 |
CN103916875A (zh) * | 2014-04-24 | 2014-07-09 | 山东大学 | 基于wifi无线网络多类控制终端的管理与规划系统 |
US20150308839A1 (en) * | 2014-04-25 | 2015-10-29 | Samsung Electronics Co., Ltd. | Trajectory matching using ambient signals |
CN104180805A (zh) * | 2014-08-29 | 2014-12-03 | 中国海洋大学 | 基于智能手机的室内行人定位与跟踪方法 |
Non-Patent Citations (1)
Title |
---|
席瑞等: "室内定位方法综述", 《计算机科学》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134744A (zh) * | 2018-02-08 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 对地磁信息进行更新的方法、装置和系统 |
CN108375376A (zh) * | 2018-03-08 | 2018-08-07 | 浙江师范大学 | 转角检测方法及装置 |
CN108375376B (zh) * | 2018-03-08 | 2020-11-24 | 浙江师范大学 | 转角检测方法及装置 |
CN109005503A (zh) * | 2018-08-13 | 2018-12-14 | 电子科技大学 | 一种基于WiFi与PDR的融合定位方法 |
CN109005503B (zh) * | 2018-08-13 | 2020-05-19 | 电子科技大学 | 一种基于WiFi与PDR的融合定位方法 |
WO2020088644A1 (zh) * | 2018-11-01 | 2020-05-07 | 华为技术有限公司 | 定位方法及装置 |
CN110913338A (zh) * | 2019-12-17 | 2020-03-24 | 深圳奇迹智慧网络有限公司 | 定位轨迹纠正方法、装置、计算机设备和存储介质 |
CN110913338B (zh) * | 2019-12-17 | 2021-06-04 | 深圳奇迹智慧网络有限公司 | 定位轨迹纠正方法、装置、计算机设备和存储介质 |
CN113466789A (zh) * | 2021-09-06 | 2021-10-01 | 宏景科技股份有限公司 | 一种室内定位方法、系统、计算机设备及存储介质 |
CN113466789B (zh) * | 2021-09-06 | 2021-11-26 | 宏景科技股份有限公司 | 一种室内定位方法、系统、计算机设备及存储介质 |
CN114495514A (zh) * | 2022-02-16 | 2022-05-13 | 中南大学 | 一种多源数据协同的车辆违规掉头热点区域识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107580294B (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107580294A (zh) | 一种室内混合定位方法 | |
CN104303071B (zh) | 供移动设备使用的室内导航辅助数据的适应性更新 | |
CN104655137B (zh) | 行人航迹推测辅助的Wi‑Fi信号指纹定位算法 | |
CN109478062A (zh) | 用于无人机的wwan无线电链路质量导航 | |
CN104105067B (zh) | 基于地磁信息的实时定位系统及方法 | |
CN105091889B (zh) | 一种热点路径的确定方法及设备 | |
US8784309B2 (en) | Sensor fusion for activity identification | |
EP2511727B1 (en) | Location tracking | |
CN102696030B (zh) | 由状态驱动的移动搜索 | |
CN109874112A (zh) | 一种定位的方法及终端 | |
CN104902562B (zh) | 一种基于多层指纹匹配的室内定位方法 | |
JP5867223B2 (ja) | 測位システム,サーバ,携帯端末,測位方法及びプログラム | |
CN102523617B (zh) | 基于节点通信半径和信标节点分布的改进型DV-Hop算法 | |
CN106052696A (zh) | 一种基于移动终端的博物馆实时路径诱导方法 | |
CN111417066B (zh) | 定位方法、装置、电子设备和计算机可读存储介质 | |
CN105865464A (zh) | 搜索路径周边兴趣点的方法和装置 | |
CN105704652A (zh) | 一种wlan/蓝牙定位中的指纹库采集和优化方法 | |
CN106095802A (zh) | 城市路网上基于r树的全时态移动对象索引方法 | |
CN109059934A (zh) | 路径规划方法、装置、终端及存储介质 | |
CN107277772A (zh) | 一种无线接入点定位方法及装置,计算机可读存储介质 | |
CN107110652A (zh) | 处理空间特征 | |
CN106412828A (zh) | 基于apit的无线传感器网络节点定位方法 | |
CN109756837A (zh) | 定位方法及装置 | |
CN108230020A (zh) | 一种基于多维时间粒度时空频繁区域挖掘的方法 | |
CN110399445A (zh) | 一种兴趣点的处理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |