基于bp神经网络和改进质心算法的室内定位方法

文档序号:7987783阅读:457来源:国知局
专利名称:基于bp神经网络和改进质心算法的室内定位方法
技术领域
本发明属无线通信与智能控制领域,是一种利用计算机技术、ZigBee无线通信技术、人工智能技术、位置几何原理等实现对室内环境下待定位节点进行的定位,并将待定位节点的位置信息在上位机PC上进行存储与显示。
背景技术
人类在外部开放空间的时间远远没有在室内如办公室、家里等室内空间的时间长,可以说室内是人类活动最密集,与人类生活生产最相关的场合。因此室内基于位置的服务LBS (Location-based Services)存在大量应用需求,有极大的研究价值和很好的研究前景。特别是08年汶川地震、10年3月份的王家岭矿难、10年8月份甘肃舟曲泥石流等发生后人们在紧急搜救地下埋藏幸存者时亟待对这些人员的精确定位,以及08北京奥运会和 10年上海世博会的安保工作和失散人员跟踪定位,商场、地铁、图书馆、医院、监狱等场所的人员定位等等这些应用亟需相应的定位产品的研制和生产并投入使用,这些需求促使人们对室内的人员定位以及室内与外部通信等技术的研究和关注。室内环境存在非视距、多径、干扰多变等因素,因此像GPS等用于室外定位的技术不能应用于室内。然而室内环境在人类生产生活中有着重要地位,人类亟需相应的室内定位产品的研制和投入使用,这些需求促使人们对室内定位方法的研究和关注。根据目前的研究情况,室内定位技术按所借助的手段不同可以分为如下几类基于无线电信号的,基于红外线的,基于超声波的,基于激光的,基于图像视觉的等。基于红外、激光、超声波、视觉和图像的定位方法精度相对高些,但要求定位环境必需为可视距且定位范围过小;基于超宽带UWB、蓝牙等的定位技术定位范围相对较小且要求附加设备,费用高昂。ZigBee是一种无线通讯协议,ZigBee技术是基于IEEE802. 15. 4标准的低功耗个域网协议。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本,主要适合用于自动控制和远程控制领域,可以嵌入各种设备。无线信号在传播的过程中随着传播距离的增加,信号强度逐渐变弱,并且信号强度的衰减和距离成一定的关系。实际的情况是无线电波传播的机制并不单一,它服从反射, 散射和绕射等,特别是在室内,传播条件和状态更为复杂多变。在理想情况下和实测的接收信号强度RSSI与距离d关系如下图4所示。但不管是理想环境还是复杂多变的室内环境下,RSSI和无线信号传输距离之间有确定关系,RSSI的测量具有重复性与互换性,在应用环境下RSSI适度的变化有规律可循。而Kolmogorov定理也已经证明,任一连续函数都可由一个三层BP网络来实现,因此完全可以用BP神经网络来拟合接收信号强度RSSI与距离 D之间的非线性函数关系。在CCM31芯片中有专用的定位引擎,输入三个或三个以上的参考节点坐标以及对应接收信号强度RSSI,以及提前人为设置好的参数A和N,即可输出对应的盲节点坐标。但此定位方法精度过低,对不同环境普适性不强且还要人为设置参数A和 N02/8页

发明内容
为了解决传统室内定位技术过于依赖经验,对不同环境的普适性不强,精度不高的缺点,在研究分析无线信号传播模型和传统的室内定位方法的基础上,本发明提出了基于BP神经网络和改进质心算法的室内定位方法,与传统定位方法相比减小了定位误差,避免了对信号传播模型中复杂参数的拟合,提高了定位精度。基于BP神经网络和改进质心算法的室内定位方法,定位系统主要有四部分组成 网关部分、参考节点、盲节点、监控部分;网关部分核心采用CCM30芯片或CCM31芯片,起着上通下达的作用,负责定位系统网络的组建、新加入网络节点的地址分配、退出网络节点的删除、与上位机进行交互通信,网络各节点间通信与运维;参考节点由CCM30芯片或CCM31芯片组成,是位置已知坐标人为设置的一类静态节点,负责求出盲节点发送来的信号的接收信号强度值RSSI,并将此接收信号强度值 RSSI返回给盲节点,以及节点间相互通信的中转站,参考节点不参与定位计算;盲节点由CCM31定位芯片组成,是位置待确定,可移动的节点,所述的定位方法最终是在盲节点内的CCM31芯片上完成的,盲节点在由参考节点形成的网络范围内移动, 根据参考节点发送回的参考节点坐标值以及接收信号强RSSI,实现定位;监控部分由装有监控软件的上位机构成,通过串口与网关连接,将网关发送上来的盲节点定位信息、节点间通讯信息等在界面上实时显示,另外将监控人员人为设置的一些参数通过网关发送给各个节点;所述的定位方法依次包括下述步骤1)首先在室内环境下用上述无线定位系统进行数据采集,记录并存储下实验时参考节点坐标、盲节点坐标、两者之间距离d以及相应的接收信号强度值RSSI ;2)确定BP神经网络模型并用上一步实验中所取得的接收信号强度RSSI与距离 d去训练所建立的BP神经网络,以接收信号强度RSSI作为输入,对应的距离d作为输出去训练所建立的BP神经网络,并在训练中修改BP神经网络的各参数以使其能反映RSSI-d的关系;所采用的BP神经网络为三层神经网络;在采用的三层神经网络中,隐含层的层数为1 层,输入层和输出层的节点数目均为1,隐含层的节点数目为26,即采用1 沈1的BP神经网络结构,训练函数为traincgf算法,训练次数和目标误差分别设置为1000和0. 001,3)用实际的接收信号强度值RSSI与对应的距离d值去反复训练并验证所建立的 BP神经网络,将能真实反映RSSI-d关系的BP神经网络参数记录保存,并将其封装成一个固定的函数,该函数输入是接收信号强度RSSI,输出即为对应的距离d。4)在盲节点CCM31定位芯片中接收到参考节点发送来的接收信号强度RSSI后, 调用上述函数,即可得到该参考节点与该盲节点的距离d ;按此方法等得到三个以上参考节点与盲节点的距离d,保存下这些距离d以及相应的接收信号强度和参考节点的位置坐标;5)根据参考节点与盲节点的位置关系可知,盲节点位于以参考节点坐标为圆心, 以距离d的圆环上,取其中接收信号强度RSSI最强的三个参考节点,就可以得到三个圆,盲节点的位置就在这三个圆的相交区域内;求出三个圆中两两圆心连心线与这两个圆周相交的两点,取相交的点中距离最近的两个点,两圆相切的话视为两点重合,这样就可以得到六个点,求这六个点的质心,即为估计的盲节点的坐标;
6)得到盲节点位置坐标后,盲节点将其自身的估计位置坐标发送至网关模块,参考节点也将自己位置坐标发送至网关,再由网关模块通过串口发送到上位机监控显示端进行。本发明可以取得如下有益效果1、定位更精确。本发明的定位误差控制在2. : 以内,与传统定位方法3_5m的定位误差相比减小了定位误差。2、简化了算法且对不同环境普适性强。本发明的方法减少了对复杂参数的拟合, 用不同环境的接收信号强度RSSI和距离d去训练建立的BP神经网络成功后可用于不同的定位环境,对不同的定位环境具有普适性。


图1本发明的定位系统整体结构框图2本发明核心算法框图3核心算法简易流程图4接收信号强度RSSI与距离d的关系曲线图
图5BP网络拟合RSSI-d曲线图6典型三个参考节点与盲节点之间的位置关系
图7两圆外切;
图8两圆相交;
图9两圆内含;
图10两圆外离;
具体实施例方式本发明在研究分析无线信号传播模型和传统的定位方法的基础上,提出了基于BP 神经网络算法和质心算法来确定室内待定位节点的坐标位置的方法。一、定位系统和环境的准备1、前期准备工作,在室内环境下取得大量的接收信号强度RSSI和距离d的数据, 建立BP神经网络模型,该模型选取1 沈1的结构,并且选取traincgf为训练函数,用取得的RSSI-d数据来训练建立的BP神经网络模型,选取训练输出正常的模型,提取并保存神经网络各层连接权值与域值,用C语言编程并实现此神经网络,并将其封装成函数形式。2、程序烧录,用USB线连接在线仿真器和PC机,再将仿真器另一端通过JTAG线连接至实验板上边,打开上位机开发环境,编译并下载定位程序,注意向参考节点和盲节点以及网关中写入不同的程序。3、片上地址修改,打开CCM31/CC2430FLASH擦写程序,分别给不同的节点指定不同的地址,注意不能设置为全0或全F,且一定不能有地址重复的情况,设置完地址后直接烧写进FLASH就可以了。4、系统搭建,用串口线连接网关和上位PC机,连接好后,打开上位机监控软件,导入提前已经设计好的定位环境平面位图,并给网关上电,等待几秒钟,使网关建立稳定的个域网。
5、定位环境布置,自定义定位环境的参考坐标系,尽量按人为习惯去设定原点和 XY轴方向。把参考节放置在位置已知的定位环境中去,并记下各对应参考节点的坐标值,给参考节点上电并使其加入到网关刚建立的个域网中来,此时网关会给刚加入的参考节点分配IP地址,此地址作为网通信区分的依据。打开盲节点,放置在定位环境中即可。至此定位系统和环境已经准备好了。二、基于BP神经网络和改进质心算法的室内定位方法,本发明的核心技术方案见附图 1、图 2 和图 3 所示。其中 RSSI (Received Signal Strength Indication)为接收信号强度,BP(Back Propagation)神经网络为应用最广技术最成熟的一种神经网络模型。整个定位系统主要有四部分组成网关部分、参考节点、盲节点(也称定位节点或移动节点)、监控部分。网关部分核心为CCM30或CC2431,是整个定位系统的大脑与核心,起着上通下达的作用,负责定位系统网络的组建、新加入网络节点的地址分配、退出网络节点的删除、与上位机进行交互通信,网络各节点间通信与运维等。参考节点由CCM30 或CCM31组成,是位置已知坐标人为设置的一类静态节点,负责将盲节点传过来的信号强度值RSSI传送给盲节点,以及节点间相互通信的中转站,参考节点不参与定位计算。盲节点由CCM31组成,是位置待确定,可移动的节点,本发明的定位方法最终是在盲节点内的 CCM31芯片上完成的,一般盲节点应该在由参考节点形成的网络范围内移动,根据参考节点发送回的参考节点坐标值以及接收信号强RSSI,实现定位。监控部分是指上位机监控软件,通过串口与网关连接,将网关发送上来的盲节点定位信息、节点间通讯信息等在界面上实时显示,另外将监控人员人为设置的一些参数通过网关发送给各个节点。该方法还依次包括下述步骤1)提前在室内环境下用CCM31无线定位系统进行数据采集,记录并存储下实验时参考节点坐标、盲节点坐标、两者之间距离d以及相应的接收信号强度值RSSI等。①提前测定好定位环境的长宽等各参数,设计出待定位环境的平面图并保存成 BMP位图形式。②人为设定好该定位环境的参考坐标系,均勻的在定位环境内布置下参考节点, 并记录下各参考节点对应的坐标值。③将网关节点通过串口连接到PC上位机上,打开上位机协议栈嗅探器软件 (Packet sniffer),打开网关节点电源,建立ZigBee无线个域网。并打开上一步中布置好的参考节点电源,使其识别网关节点建立的个域网并加入网络中来。④打开盲节点模块电源,让其识别网络并加入,将盲节点放在固定坐标定位环境中,计算并记录下此时与盲节点最近的三个参考节点距离盲节点的距离d,同时通过I^cket sniffer软件中查出这三个参考节点所发送给盲节点的接收信号强度值RSSI。至此我们得到并保存了接收信号强度RSSI和与之对应的距离d。2)确定BP神经网络模型并用上一步实验中所取得的接收信号强度RSSI与距离d 去训练所建立的BP神经网络,并在训练中修改BP神经网络的各参数以使其能真实准确的反映RSSI-d之间关系。最终的BP神经网络模型为1 沈1的结构,并且选取traincgf 为训练函数,最终的RSSI-d仿真效果如图5所示。从图中可以看出所确定的BP神经网络模型结构可以很好的拟合RSSI-d关系曲线,并且性能优良。3)在确定了 BP神经网络模型后,用实际的接收信号强度值RSSI与对应的距离d值去反复训练并验证所建立的BP神经网络,将能真实反应RSSI-d关系的BP神经网络參数 记录保存,并将其封装成ー个固定的函数,该函数输入是接收信号強度RSSI,输出即为对应 的距离d。①将1)中所记录保存的接收信号強度RSSI和对应距离d的数据分成两类,ー类 用来训练步骤2、所确定的BP神经网络模型,井随时用另外一組RSSI-d的数据来验证训练 完成的BP神经网络模型。②找到训练和验证效果都能反映RSSI-d关系的BP神经网络模型,并提取出此BP 网络模型各层之间的连接权值和阈值并保存。在本实施例中隐含层的权值和阈值分別为Net. iw{l, 1}=[-36. 40000010531637336.40000288886634636. 39272488027561536. 37864142077937436.403178851573387-36.63623466689971836. 396321099206666-36.40207856989610536.40685612180524136.342408076413598-36.450169997073843-36.31564905187396236.418466328082602-36.415464495993881-36. 93361165642647138.636944107809384-36. 716668898934010-30. 013729406082337-38.94512280408583429.13767376560108234.56913359332685331. 520847532446087-53. 82505768943217117.466418645000807-14.88695370548367327. 161076794827373]和
Net. b{l}=[36. 399999865346487-33.487996321223534-30. 585301685367341-27.691307846685955-24. 74650389854188521.447430590993228-18.93410392597023416. 010588850227105-13.088505121255121-10.4133115124179597. 0277816318484785. 001113139881642-1· 114363680082095-1· 231534644082010-4. 2623653641043738.967733842860842-11. 501162784869219-14.942217334470536-22.48608639700874112.40309948059153022. 50901269600445823. 758419936898765-40. 59159662451767817.805949756982596-12. 55321224381641825. 211986006975195]输出层的权值和阈值分别为(Net. Iw{2,1})T =[0. 5497450869415430.0363745237491720.477564070718694-0. 3025883586220790. 217018272229333-0.804138166134195-0. 179073498879172
-0.048441239077330-0.0495489623354650. 576391973185706-0. 270615829215902-0. 2703794863749930.9800474640074830.079779438854116-1. 7573300334677260. 870858327105578-1. 696568535411495-1.467673672834538-2.8830929456702612. 7945148129631593.63493956788995610.6194664388828425. 7044492905142544. 100102032385458-9.0338142647555756. 343190402732181]和Net. b{2丨=-0. 248295982194058③将上一步找出的BP神经网络用C语言实现,并封装成一个函数模块,这个函数模块的输入参数为接收信号强度RSSI,输入为对应该的距离d,这样就可以在盲节点得到参考节点传过来接收信号强度RSSI时调用此函数,然后直接就输出了距离d,且精度很高, 对环境普适性强。4)在盲节点CCM31定位芯片中接收到参考节点发送来的接收信号强度RSSI后, 调用上述函数,即可得到该参考节点与该盲节点的距离d。按此方法等得到多个参考节点与盲节点的距离d,保存下这些距离d以及相应的接收信号强度和参考节点的位置坐标。首先在CCM31的寄存器LOCENG. RUNA中写入0表示禁止使能定位计算,然后在得到接收信号强度RSSI后,调用封装好的函数,输出即为距离d,接着就进入到下一步中。5)根据参考节点与盲节点的位置关系可知,盲节点位于以参考节点坐标为圆心, 以距离d的圆环上,取其中接收信号强度RSSI最强的三个参考节点,就可以得到三个圆,盲节点的位置就在这三个圆的相交区域内。求出三个圆中两两圆心连心线与这两个圆周相交的两点(距离最近的两个点,两圆相切的话视为两点重合),就可以得到六个点,求这六个点的质心,即为估计的盲节点的坐标。三个参考节点与盲节点的位置关系如图6所示。由三个参考节点的坐标和参考节点与盲节点之间的距离可以得到三个圆环,得到参考节点坐标(Xi,yi)和该参考节点与盲节点的距离d后,就可估计盲节点在以参考节点坐标Uyyi)为圆心,以距离d为半径的圆环上。理想情况下有三个这样的圆,相交于一点即为盲节点位置坐标,但由于干扰和噪声的存在,不可能得到刚好相交于一点的三圆,因此这三圆的就存在多种位置关系,初步计算三个圆共有27种位置关系,但两圆之间只有相交、 相离、相切(内切和外切)这几种关系,如图7、图8、图9、图10所示。不管两圆之间的位置关系如何,连接两圆的圆心,两圆连心线与两圆周总有两个交点(相切时视一个交点视为两交点重合)。那么三个圆,两两圆心相连,就有六个交点,很容易就可以求出这六个点的坐标质。观查图6,普通质心定位算法是求三个参考节点所形成的三角形的质心做为盲节点的位置估计,这样精度过低。本发明是求连心线与圆相交所得的六个点所形成的六边形的质心,盲节点就存在六边形内部。相比三角形,此六边形在三角形内部,将盲节点的位置估计限定在了更小的范围内部,因此定位精度更高。求这六边形的质心,即得到盲节点的位置坐标估计。典型的三个参考节点A(xa,ya),B(xb,yb),C(x。,yc)与估计的盲节点(χ, y)的位置关系如图6所示。连接A(xa,ya)和B(xb,yb)两点得线段与两圆交于~、B1两点,同理可以得到另外两点A (xa,ya) iPC(x。,y。)连线与圆交于Q、A2, BUb,yb)和C(x。,yc)连线与圆交于 B2、C2 ο上述得到了六边形A1B1C1A2B2C2,假设六边形六个顶点的坐标分别为 A(XA,yA) A(xA2^A2) bI(xB1^B1) ^2 (xB2^B2) Q(xC1^C1) C2 ( ,於2 ),求这六个点的质心即得
到盲节点的位置坐标。
权利要求
1.基于BP神经网络和改进质心算法的室内定位方法,其特征在于定位系统主要有四部分组成网关部分、参考节点、盲节点、监控部分;网关部分核心采用CCM30芯片或CCM31芯片,起着上通下达的作用,负责定位系统 ZigBee网络的组建、新加入网络节点的地址分配、退出网络节点的删除、与上位机进行交互通信,网络各节点间通信与运维;参考节点由CCM30芯片或CCM31芯片组成,是位置已知坐标人为设置的一类静态节点,负责求出盲节点发送来的信号的接收信号强度值RSSI,并将此接收信号强度值RSSI返回给盲节点,以及节点间相互通信的中转站,参考节点不参与定位计算;盲节点由CCM31定位芯片组成,是位置待确定,可移动的节点,所述的定位方法最终是在盲节点内的CCM31芯片上完成的,盲节点在由参考节点形成的网络范围内移动,根据参考节点发送回的参考节点坐标值以及接收信号强RSSI,实现定位;监控部分由装有监控软件的上位机构成,通过串口与网关连接,将网关发送上来的盲节点定位信息、节点间通讯信息等在界面上实时显示,另外将监控人员人为设置的一些参数通过网关发送给各个节点;所述的定位方法依次包括下述步骤1)首先在室内环境下用上述定位系统进行数据采集,记录并存储下实验时参考节点坐标、盲节点坐标、两者之间距离d以及相应的接收信号强度值RSSI ;2)确定BP神经网络模型并用上一步实验中所取得的接收信号强度RSSI与距离d去训练所建立的BP神经网络,以接收信号强度RSSI作为输入,相应的距离d作为输出去训练所建立的BP神经网络,并根据训练效果校正BP神经网络的各参数;所采用的BP神经网络为三层神经网络;在采用的三层神经网络中,隐含层的层数为1层,输入层和输出层的节点数目均为1,隐含层的节点数目为26,S卩,即采用1 沈1的BP神经网络结构,训练函数为 traincgf算法,训练次数和目标误差分别设置为1000和0. 001 ;3)用实际的接收信号强度值RSSI与对应的距离d值去反复训练并验证所建立的BP神经网络,将能反映RSSI-d关系的BP神经网络的各参数记录保存,并将其封装成一个固定的函数,该函数输入是接收信号强度RSSI,输出即为对应的距离d。4)在盲节点CCM31定位芯片中接收到参考节点发送来的接收信号强度RSSI后,调用上述函数,即可得到该参考节点与该盲节点的距离d ;按此方法等得到三个以上参考节点与盲节点的距离d,保存下这些距离d以及相应的接收信号强度和参考节点的位置坐标;5)根据参考节点与盲节点的位置关系可知,盲节点位于以参考节点坐标为圆心,以距离d的圆环上,取其中接收信号强度RSSI最强的三个参考节点,就可以得到三个圆,盲节点的位置就在这三个圆的相交区域内;求出三个圆中两两圆心连心线与这两个圆周相交的两点,取相交的点中距离最近的两个点,两圆相切的话视为两点重合,这样就可以得到六个点,求这六个点的质心,即为估计的盲节点的坐标;6)得到盲节点位置坐标后,盲节点将其自身的估计位置坐标发送至网关模块,参考节点也将自己位置坐标发送至网关,再由网关模块通过串口发送到上位机监控显示端进行。
全文摘要
基于BP神经网络和改进质心算法的室内定位方法,属无线通信与智能控制领域。在室内环境下进行数据采集,记录并存储下实验时参考节点坐标、盲节点坐标、两者之间距离d以及相应的接收信号强度值RSSI;用接收信号强度RSSI与距离d去训练建立的BP神经网络;再用实际的接收信号强度值RSSI与对应的距离d值去训练并验证所建立的BP神经网络,得到一个函数;调用函数,得到参考节点与盲节点的距离d;得到三个以上与盲节点的距离d参考节点;取RSSI最强的三个参考节点,以距离d为半径得到三个圆;求出三个圆中两两圆心连心线与这两个圆周相交的两点得到六个点,求六个点的质心,即为盲节点的坐标;该方法定位更精确,简化了算法。
文档编号H04W64/00GK102413564SQ20111038234
公开日2012年4月11日 申请日期2011年11月25日 优先权日2011年11月25日
发明者张会清, 石晓伟, 闫豪杰 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1