智能移动终端被动无线信号采集及定位方法与流程

文档序号:11524974阅读:246来源:国知局
智能移动终端被动无线信号采集及定位方法与流程
本发明属于计算机软件以及无线信号数据捕获与提取、智能移动终端软件与定位算法
技术领域
,涉及一种被动无线信号采集及智能移动终端定位方法。
背景技术
:近年来,随着无线通信技术和智能移动终端的广泛应用,移动lbs(locationbasedservice,基于位置的服务)应用发展迅猛。lbs是指通过移动终端和无线网络的配合来确定移动用户的地理位置,从而提供用户所需与位置相关服务信息的一种定位与导航融合服务形式。lbs技术从总体上可归纳为几类,gnss技术(如卫星等),无线定位技术(无线通信信号、射频无线标签、超声波、光跟踪、无线传感器定位技术等),其它定位技术(计算机视觉、航位推算等),以及gnss和无线定位组合的定位技术(a-gps或a-gnss)。著名的gps等定位技术由于信号强弱、障碍物、干扰源多等因素导致精度低、能耗和成本高、安全隐私等问题。使基于wifi、bluetooth等网络的无线定位技术由于部署广泛且低成本较低而备受关注。最早基于wifi网络的定位系统有微软开发的radar系统。基于wifi网络无线定位技术采用指纹定位方法通常能够达到比较好的定位效果。目前在wifi位置指纹定位技术上已有很多研究成果,从最早的最近邻(nn)算法,到后面陆续提出的knn、wknn、贝叶斯概率算法、神经网络算法、支持向量机算法等;而在定位系统方面也已有不少可鉴成果,较典型的有radar、eorus、nibble与weyes等室内定位系统。然而这些方法和系统最大的不足是需要用户协作,也就是说需要用户主动上传数据。这对于大型的公共社会活动几乎是不可能,如大型音乐会,参会人员来自四面八方,大家都不熟悉,要求他们提供协作是很困难。技术实现要素:本发明针对智能移动终端在开启wifi/bluetooth无线信号时,会周期性的发射wifi/bluetooth无线信号请求连接控制帧(或探测请求帧)的特征,基linux工作于monitor监听模式的无线网卡开发被动无线信号探测扫描模块。然后建立无线信号指纹数据库,实现循环随机更新指纹数据库方法和基于欧几里德最短距离的定位算法。该方法无需智能移动终端协作,因而可广泛应用在大型公共社会活动中。为解决上述问题,本发明所采用的技术方案为:一种智能移动终端被动无线信号采集及定位方法,包括如下步骤:步骤1:周期性捕获智能移动终端发送的网络数据包,识别其中类型为探测请求的无线信号控制帧,并从中读取无线信号信息,从而实现被动无线信号探测扫描;步骤2:按地理位置依次进行无线信号探测扫描,以采集无线信号信息,使用直方图特征提取技术提取无线信号强度直方图特征值,从而建立无线信号指纹数据库;步骤3:接收随机智能移动终端通过无线通信方式发送的位置信息,并与无线探测扫描信息融合更新第二步所建立的无线信号指纹数据库;步骤4:通过基于被动无线探测信号强度的欧几里德最短距离定位并结合无线信号指纹数据库对使用智能移动终端的用户进行定位:步骤4.1:周期性捕获网络数据包,并提取无线信号信息;步骤4.2:按mac地址对无线信号信息进行分类,对每个mac地址无线信号信息统计信号强度rssi值的出现频率,提取直方图特征值;步骤4.3:对由mac地址和直方图特征值构成的探测扫描数据集,依如下子步聚执行:步骤4.3.1:定义变量欧几里德距离mineucdistance并赋最大值作为初始值;步骤4.3.2:按排列顺序从无线信号指纹数据库取一条记录;步骤4.3.3:指纹数据记录依次与探测扫描数据集中的每个无线信号数据进行欧几里德距离计算,如果其值小于mineucdistance,则用此值代替mineucdistance,同时记下mac地址、指纹数据的位置坐标;否则不作处理;步骤4.3.4:检查是否遍历指纹数据库的数据,如果没有则转步骤4.3.2,否则转步骤4.3.5;步骤4.3.5:输出具有最小欧几里德距离智能移动终端mac地址的用户位置,并把此mac地址、histogram特征值从探测扫描数据集中移除;步骤4.3.6:探测扫描数据集是否为空,如果不为空则转步骤4.3.1,否则转步骤4.4;步骤4.4:循环执行步骤4.1、步骤4.2和步骤4.3。所述的一种智能移动终端被动无线信号采集及定位方法,步骤1中,周期性捕获网络数据包是以时间间隔为30到60秒的周期进行捕获。所述的一种智能移动终端被动无线信号采集及定位方法,步骤1中,识别无线信号控制帧是通过解析数据包,查找帧类型值为0x40的数据帧识别为无线信号控制帧。所述的一种智能移动终端被动无线信号采集及定位方法,步骤1中,读取无线信号信息包括信息id号、时间、mac地址、信号强度rssi值、制造商、ap/bluetoothssid名。所述的一种智能移动终端被动无线信号采集及定位方法,步骤2中,按地理位置依次进行无线信号探测扫描,是对于具体地理空间以0.5米为基本单位建立平面坐标系统,然后对平面坐标系统内除实物障碍坐标点外的每个坐标点依次进行无线信号探测扫描。所述的一种智能移动终端被动无线信号采集及定位方法,步骤2中,使用histogram特征提取技术是统计智能移动终端无线信号强度rssi值的出现频率,并取出现频率靠前的rssi值作为无线信号强度rssi的histogram特征值。所述的一种智能移动终端被动无线信号采集及定位方法,步骤2中,建立无线信号指纹数据库,是通过建立由位置坐标和histogram特征值构成的无线信号指纹数据,以此建立指纹数据库。所述的一种智能移动终端被动无线信号采集及定位方法,步骤3中,智能移动终端随机报告位置信息是智能移动终端向系统服务器报告当前所在位置坐标及终端mac地址。所述的一种智能移动终端被动无线信号采集及定位方法,步骤3中,更新无线信号指纹数据库的过程包括:探测扫描模块采集相应mac地址智能移动终端无线信号信息;统计无线信号强度rssi值的出现频率,计算无线信号强度rssi的histogram特征值;在无线信号指纹数据库中查询位置坐标;更新无线信号指纹数据库此位置的无线信号强度histogram特征值。本发明的技术效果在于,不需要智能移动终端用户的协作,就可以被动的获得智能移动终端用户的wifi、bluetooth等无线信号信息。利用这些无线信号信息和本发明提出的定位算法可以较高精度的确定用户位置。对大型活动组织者确定各区域人员数量、密度、人员流动方式,以确保组织活动的有效性和安全性具有重要的意义。同时也能对火车站大厅、展厅、仓库、超市、图书馆、地下停车场、矿井等管理提供技术支持。附图说明图1是本发明提供的智能移动终端被动无线信号采集及定位方法流程图;图2是本发明提供的智能移动终端无线网络硬件体系图;图3是histogram特征值提取实例图。具体实施方式下面结合附图和实施例对本发明所述方法进行详细说明。本发明提出了一种能捕获智能移动终端周期性发射的wifi/bluetooth无线信号请求连接控制帧的无线信号探测扫描方式,以实现基于被动无线探测信号强度的定位方法,其流程图如图1所示。该方法无需智能移动终端协作,具有精度高,部署简单快捷等特点。本发明通过下述技术方案实现:步骤1:本发明利用linux工作于monitor监听模式的无线网卡周期性捕获网络数据包,然后识别probe控制帧即探测控制帧,并提取无线信号信息,实现被动无线信号探测扫描模块;步骤2:按地理位置依次利用无线信号探测扫描模块采集无线信号信息,使用histogram特征即直方图特征提取技术,来提取无线信号强度histogram特征值,从而建立无线信号指纹数据库;步骤3:利用智能移动终端随机报告位置信息与无线探测扫描信息融合更新第二步所建立的无线信号指纹数据库;步骤4:本发明提出基于被动无线探测信号强度的欧几里德最短距离定位算法;对于被动无线信号探测扫描模块,其主要实现子步骤如下:步骤1.1:采用sudoiwconfigwlan0modemonitor将linux系统无线网卡设置为monitor模式;步骤1.2:利用基于linux标准库libpcap的pcap_loop()周期性(时间间隔为30到60秒)捕获网络数据包;步骤1.3:利用ieee80211_radiotap、ieee8011_frame_header结构解析数据包,如果数据包的帧类型值为0x40则为探测控制帧;步骤1.4:提取无线信号信息,主要包含信息id号、时间、mac地址、信号强度rssi值、制造商、ap/bluetoothssid名;步骤1.5:循环执行步骤1.2、步骤1.3、步骤1.4。对于无线信号指纹数据库的建立,其主要实现子步骤如下:步骤2.1:对地理空间按空间布局进行位置剖分;步骤2.2:按位置依次利用探测扫描模块采集无线信号信息,每周期每智能移动终端约能捕获6-11条无线信号信息,且其信号强度rssi值具有波动性。本发明采集无线信号时间约为3分钟,则每智能移动终端约能采集30-55条无线信号信息;步骤2.3:统计智能移动终端无线信号强度rssi值的出现频率,如rssi值-49,出现12次,本发明采用前三名为无线信号强度rssi的histogram特征值;步骤2.4:建立由位置坐标(x,y)、三个无线信号强度rssi的histogram特征值构成的无线信号指纹数据,以此建立指纹数据库;步骤2.5:循环执行步骤2.2、步骤2.3、步骤2.4,直到所有位置指纹数据采集完毕。对于无线信号指纹数据库的更新,其主要技术子步骤如下:步骤3.1:智能移动终端随机通过wifi、bluetooth或gprs向系统服务器报告当前所在位置坐标(x,y)及终端mac地址;步骤3.2:探测扫描模块采集相应mac地址智能移动终端无线信号信息;步骤3.3:统计无线信号强度rssi值的出现频率,计算无线信号强度rssi的histogram特征值;步骤3.4:在无线信号指纹数据库中查询位置坐标(x,y);步骤3.5:更新无线信号指纹数据库此位置的无线信号强度histogram特征值;步骤3.6:循环执行步骤3.1、步骤3.2、步骤3.3、步骤3.4和步骤3.5。基于被动无线探测信号强度的欧几里德最短距离定位算法主要子步骤如下:步骤4.1:探测扫描模块周期性捕获网络数据包,并提取无线信号信息;步骤4.2:按mac地址对无线信号信息进行分类,对每个mac地址无线信号信息统计信号强度rssi值的出现频率,提取histogram特征值;步骤4.3:对由(mac地址、histogram特征值)构成的探测扫描数据集,依如下子步聚执行:步骤4.3.1:给欧几里德距离mineucdistance赋最大值步骤4.3.2:从无线信号指纹数据库取一条记录步骤4.3.3:指纹数据与探测扫描数据集中的每一对数据进行欧几里德距离计算,如果其值小于mineucdistance,则用此值代替mineucdistance,同时记下mac地址、指纹数据的位置坐标;步骤4.3.4:指纹数据库的数据全取了没有,如果没有则转步骤4.3.2,否则转步骤4.3.5步骤4.3.5:输出具有最小欧几里德距离智能移动终端mac地址的用户位置,并把此(mac地址、histogram特征值)从探测扫描数据集中移除。步骤4.3.6:探测扫描数据集是否为空,如果不为空则转步骤4.3.1,否则转步骤4.4步骤4.4:循环执行步骤4.1、步骤4.2和步骤4.3。本实施例所采用智能移动终端无线网络硬件体系如图2所示,由智能移动终端(手机、ipad等)、蓝牙设备(ibeacon节点、移动bluetooth设备等)、无线连接设备(wi-fiap、路由器、无线网卡等)、基于monitor模式的探测扫描模块和服务器。实施例首先基于linux操作系统工作在monitor模式下的无线网卡,开发无线信号探测扫描模块。为了让ubuntu上的无线网卡工作在monitor模式,我们调用如下命令实现:sudoifconfigwlan0downsudoiwconfigwlan0modemonitorsudoifconfigwlan0up无线信号探测扫描模块是利用ubuntu的qt开发工具开发。为了获取无线网卡数据包,本发明调用libpcap库来实现无线数据包的捕获。因而在qt工程中必须加入如下工程配置:projectsadd:libs+=-l/usr/local/arm/libpcap/lib/-lpcap对于无线网络数据包,我们利用ieee80211_radiotap、ieee8011_frame_header结构来解析数据包,如果数据包的帧类型值为0x40则为探测控制帧。因而在主cpp文件中本发明加入如下头文件和常量设置:本模块首先对ip地址和端口号进行设置,然后调用getwirelessnetmac()建立socket。其核心代码为:sock_mac=socket(af_inet,sock_stream,0);strcpy(ifr_mac.ifr_name,"wlan0");if(ioctl(sock_mac,siocgifhwaddr,&ifr_mac)<0)为捕获无线数据包,必调用libpcap库,其实现如下:其中函数voidprocesspacket(u_char*arg,conststructpcap_pkthdr*pkthdr,constu_char*packet)能循环实现无线网络数据包的捕获,探测控制帧的识别以及无线信号信息:信息id号、时间、mac地址、信号强度rssi值、制造商、ap/bluetoothssid名等提取,是无线信号探测扫描模块的核心,其关键代码如下:最后会调用一些函数如:writewifiinfotofile(),进行数据存储与传送工作。本实施例第二步是建立无线信号指纹数据库,其方法是对活动空间按空间布局进行位置剖分,建立基于位置的坐标体系。首先按位置依次利用探测扫描模块采集无线信号信息,每周期每智能移动终端约能捕获6-11条无线信号信息,且其信号强度rssi值具有一定波动性,如有些信号强度是-45,有此是-50等。本发明采集无线信号时间约为3分钟,则每智能移动终端约能采集30-55条无线信号信息。其次,本发明利用histogram提取技术处理智能移动终端的多条无线信号信息。histogram技术统计智能移动终端无线信号强度rssi值出现频率如图3所示,在此实例中,信号强度-44出现14次,-41出现12次,-43出现7次,-47出现6次等。本发明采用出现频率最高的三次信号强度值做为histogram特征值,因而所获得的值为-44、-41和-43。以此为基础,建立如下表所示的无线信号指纹数据库记录numxyrssirssirssi10000112.424.5-44-41-4310000211.88.9-56-55-58循环执行以上步骤,直到所有位置指纹数据采集完毕。本实施例第三步是随机更新无线信号指纹数据库。由于无线信号强度具有波动性,且随着时间环境迁移对信号强度具有重要影响性,因而数天前建立的无线信号指纹数据库信息不一定对现在定位算法有效。为了提高定位算法的精度,本发明采用不定时随机选择空间位置和随机智能移动终端通过wifi、bluetooth或gprs连接服务务器,并行同系统报告当前所在位置坐标(x,y)。系统将调用探测扫描模块捕获相应的智能移动终端无线信号信息,智能移动终端可通过mac地址识别。然后,使用histogram技术提出其histogram特征值。最后,在无线信号指纹数据库中查询相应位置坐标(x,y)并更新此位置的无线信号强度histogram特征值。本实施例第四步是实现基于被动无线探测信号强度的欧几里德最短距离定位算法。本发明首先利用探测扫描模块周期性捕获网络数据包,并提取无线信号信息。由于探测扫描模块可能获取多个智能移动终端的无线信号信息,因而本实例按智能移动终端mac地址对无线信号信息进行分类,对每个mac地址无线信号信息利用histogram技术提出其histogram特征值,从而构成(mac地址、histogram特征值)格式的探测扫描数据集。本定位算法核心是探测扫描数据集中的histogram特征值与无线信号指纹数据库的histogram特征值吻合性,也就是本算法的欧几里德距离dk,其定义如下:它是无线信号强度所有组合中最小的值。利用此值,算法在无线指纹数据库找到最佳指纹,把此指纹所在位置坐标(x,y)作为智能移动终端用户所在位置输出。从而为大型公共活动提供了基础定位数据,以下是具体定位算法伪代码:当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1