定位算法调研一、定位算法的研究意义对于大多数应用,不知道传感器位置而感知的数据是没有意义的。传感器节点必须明确自身位置才能详细说明在什么位置或区域发生了特定事件,实现对外部目标的定位和追踪。用无线传感器网络进行目标的跟踪定位,就是综合传感器自身位置信息和网络节点与目标的关系信息,确定目标所处的地理位置。对于移动目标而言,连续不断的定位就是跟踪。传感器自身的位置信息,是实现目标定位跟踪的基础,而网络节点与目标的关系信息,则是实现目标定位跟踪的关键。另一方面,了解传感器节点位置信息还可以提高路由效率,可以为网络提供命名空间,向部署者报告网络的覆盖质量,实现网络的负载均衡以及网络拓扑的自配置等。尽管现有的许多定位系统和算法能够较好的解决WSN自身定位问题。但依然存在如下一些问题:(1)未知节点必须与锚点直接相邻,从而导致锚点密度过高。(2)定位精度依赖于网络部署条件。(3)没有对距离/角度测量误差采取抑制措施,造成误差传播和误差积累,定位精度依赖于距离/角度测量的精度。(4)依靠循环求精过程抑制测距误差和提高定位精度,虽然循环求精过程可以明显地减小测距误差的影响,但不仅产生了大量的通信和计算开销,而且因无法预估循环的次数而增加了算法的不确定性。(5)算法收敛速度较慢。因此必须采用一定的机制改进或者避免以上问题,从而实现更高精度的WSN自身定位。二、定位算法的研究现状从1992年AT&TLaboratoriesCambridge开发出室内定位系统ActiveBadge至今,研究者们一直致力于这一领域的研究。事实上,每种定位系统和算法都用来解决不同的问题或支持不同的应用,它们在用于定位的物理现象、网络组成、能量需求、基础设施和时空的复杂性等许多方面有所不同。根据定位算法中对节点位置的不同计算方式,可以分为集中式定位算法以及分布式定位算法。集中式定位算法把所需信息传送到某个中心节点,并在那里进行节点定位计算的方式。Doherty等[1]假定网络中存在一定比例的锚点,根据凸规划(convexoptimization)来估计不确定节点的位置。MDS-MAP[2]则采用了多维定标的方法来提高定位精度。这两种算法都是典型的集中式定位算法,其后一系列的算法对该算法进行改进以提高节点定位精度。分布式定位算法是指依赖节点间的信息交换和协调,由节点自行进行定位计算的方式。质心算法中[3],每个节点通过计算它所侦听到的锚点的中心位置来确定自身位置,如果锚点布置的比较好,则定位误差能够得到很好的改善。APIT算法[4]中的节点侦听自己附近锚点的信号,根据这些信号,APIT算法把临近这个节点的区域划分为一个个相互重叠的三角形区域。然后采用划分网格的方法找出自己所在的区域,如果能够侦听到足够多的锚点信息,这个区域可以变得很小,从而提高算法的定位精度。根据定位算法中节点获取信息的不同方式,可以分为基于测距技术的定位和无须测距技术的定位(range-basedversusrange-free)两大类。Range-Based定位通过测量节点间点到点的距离或角度信息,使用三边测量(trilateration)、三角测量(triangulation)或最大似然估计(multilateration)定位法计算节点位置;Range-Free定位则无须距离和角度信息,仅根据网络连通性等信息即可实现。Range-Based定位常用的测距技术有RSSI,TOA,TDOA和AOA。RSSI(receivedsignalstrengthindicator)虽然符合低功率、低成本的要求,但有可能产生50%的测距误差[5]。TOA(timeofarrival)需要节点间精确的时间同步,无法用于分布式定位;TDOA(timedifferenceonarrival)技术受限于超声波传播距离有限(WSN所使用的超声波信号通常传播距离仅为20~30英尺,因而网络需要密集部署)和NLOS问题对超声波信号传播的影响;AOA(angleofarrival)也受外界环境影响,而且需要额外硬件,在硬件尺寸和功耗上可能无法用于传感器节点。除上述测距技术的局限性以外,range-based定位机制使用各种算法来减小测距误差对定位的影响,包括多次测量[6],循环定位求精[7],这些都要产生大量计算和通信开销。所以,range-based定位机制虽然在定位精度上有可取之处,但并不适用于低功耗、低成本的应用领域。因功耗和成本因素以及粗精度定位对大多数应用已足够(当定位误差小...