随着人类进入信息社会,我们生存的空间里已经充斥了各种各样的电磁波。这些电磁波为我们提供了很多通信、导航、测距等服务。而这其中,利用无线传感器网络对物体进行定位是一个非常重要的应用。
所谓无线传感器网络(WSN,Wireless Sensor Network),是指大量的具有信息感知功能的传感器节点,通过无线通信方式形成的一个多跳自组织网络系统。在无线传感器网络中利用节点发送与接收无线信号确定物体的位置就称为无线传感器网络节点定位。这是近年以来新兴的物联网关键技术之一。
目前主流的定位算法分为两类:基于测距(Range-based)的定位算法和无需测距(Range-free)的定位算法。
基于测距的定位算法,通过测量节点间点到点的距离或角度信息,使用三边测量法、三角测量法、或最大似估估计法计算被测物体位置。但是首先在成本上,它对网络的硬件设施提出了较高的要求,而其使用的各种测量技术,比如TOA、TDOA、AOA以及RSSI等,也存在各自的局限性。以TOA定位为例,TOA定位是指测量出两个及以上基站与被测物体之间的信号传播时间,从而得到被测物体与到多个基站的距离,以基站为圆心,距离为半径就可以画出多个圆,多个圆的交点即是被测物体的实际位置。
但是说起来容易做起来难,大家知道电磁波的速度就是光速是很快的,因此就要求发射机和接收机之间有非常精确的时间同步,毕竟电磁波1微秒就已经传播了300米。此外,发射信号还必须用时间标识加以区分,从而使接收方能辨别出该信号是何时发射的。这些都不太容易实现,因此限制了TOA定位的应用。
此外,基于测距的定位经常采用多次测量,循环求精,这些都将产生大量计算和通信开销,因而基于测距的定位算法并不适用于低功耗、低成本的应用领域。
无需测距的定位机制则无需距离和角度信息,仅根据网络连通性等信息来实现对物体位置的测量。与Range-based机制相比,Range-free定位机制对硬件的要求较低,因此成本和功耗较低,并且网络生存能力强,定位精度基本满足实际需要,而粗精度定位对于大多数的应用场景都已经够用。例如说抓捕一个犯人,只需要定位他的大致位置,然后由警方去现场搜捕就可以了。
但是对于高要求精度的场合,无需距离的定位方法则还是捉襟见肘,比如DV-hop、APIT、质心定位算法等。所以,当下如何提高定位精度是重中之重。
那么,为什么需要提高定位的精度呢?比如,两军交战,我想知道对方指挥所的具体位置,以便我实施精确打击。但是我只知道指挥所就在这片区域,那么接下来就是如何在这片区域中确定具体位置的问题。
这种情况下,首先派出足够多的小型无人机(即使遭受攻击,也不一定丧失信息采集功能,具有较强的战场可靠性),这些无人机都带有观测声音、图像、电子波等传感器,同时其中部分带有GPS或北斗设备。通过这些传感器就可以分辨出指挥所,然后通过定位将信息发给我方。
重点来了!如何提高精度?这是很多科研机构都在研究的问题。
提高精度,可以从测距和非测距这两个大类去着手。
对于测距算法,一切都围绕着RSSI值去进行,RSSI值是通讯工程中的专业术语,它代表着无线网络的信号强度,RSSI值一般是越大越好的。对于家用情况下的WIFI来说,信号强度-60到-70dBm之间算是信号很好的了。因此,在实际应用中,如何得出最优的RSSI值就是一个突破口!
目前常用的方法,可以用各种滤波方式来提高精度。常见的有均值滤波,高斯滤波以及卡尔曼滤波等。
整体来看,卡尔曼滤波的效果最好,但是还有优化的空间,比如引入渐消因子,补偿机制等(从卡尔曼滤波本身的缺点上出发,去想办法弥补,从而提出一种新的改进的卡尔曼滤波算法)。
对非测距算法,通常主要通过数学的方式去改进,比如最小二乘,极大似然或者加权平均等等。
这些方法可以通过matlab仿真来实现。
一般来说,仿真流程如下:
首先利用matlab随机布置很多点(类似刚才的无人机),其中一些点给定具体的坐标,求解目标就是用这些已知的坐标去确定未知的坐标。
在实际计算中,还要给出一些未知坐标,有同学可能会问不是要求这个未知坐标吗?怎么还直接给定呢!这里因为我们用的是仿真,所以最后要用这个数据和运算出来的数据进行对比,计算误差。
最后要注意的是,因为定位的算法中经常会对RSSI值进行操作,很多研究者在RSSI值上也加大了研究力度,其中仿真过程中误差的比较是通过将RSSI的理论值加上噪声充当实际值进行实际处理的(不易理解的地方)。
对于无线传感器网络来说,未来可开发的应用场景还有很多,有兴趣的朋友可以关注活在信息时代,未来获取更多的相关资讯哦。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至957126978@qq.com举报,一经查实,本站将立刻删除。