首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于TinyOS平台的RSSI定位系统设计与实现 02

基于TinyOS平台的RSSI定位系统设计与实现 02

2.2 三边测量法定位
        
三边测量法是无线传感器网络定位算法中较为最典型的一种。在盲节点通过基于RSSI的测距方法获取到3个或以上信标节点的距离后,就可利用三边测量法进行自身定位。如图1所示,已知3个信标节点A、B、C的坐标(x1,y1)、(x2,y2)、(x3,y3)。假设盲节点的坐标为(x,y),根据盲节点接收到的RSSI值,得盲节点到A,B,C的距离分别为d1、d2、d3。

   
        则根据三边测量法原理,有式(4)成立
        
        由式(4)可以求得盲节点的坐标如式(5)所示
        
   
    3 RSSI定位算法在操作平台上的实现
        
在此环节中,主要用NesC语言在TinyOS环境下将RSSI定位算法具体实现,编译成功后将NesC程序分别烧写到对应的硬件节点中进行实验。其实验结构如图2所示,信标节点发送包含自身坐标的数据包到盲节点及基站节点。盲节点接收信标节点发送的数据包解析出每一个的RSSI值,结合信标节点的位置坐标计算出自身坐标值,并将结果发送至基站节点。基站节点接收一切数据包,并将其发送到XServe中转站。
    PC机上的XServe作为节点网络和操作者之间通信的主要通道,它提供多个通信端口用于输入信息,以便于网络间数据传送;操作者可以通过终端接口或XMLRPC命令接口与其进行通信;它可以解析、转换和处理节点传送的数据;在解析过程中,将原始格式的数据转换到相应的传感器读数测量单位;最后将转换后的数据显示于XSniffer界面中。PC机上的XSniffer可以显示出XServe传送的所有数据;能够让操作者监测到网络中的所有节点是否都在正常通信、数据包的序列号以及传送地址是否正确、以及路由的更新和时间同步消息。

    3.1 总体实验思路
        
信标节点:负责发送包含自身位置的数据包到盲节点。盲节点:负责接收信标节点发来的数据包,提取出信标节点的坐标值,并从数据包中获得RSSI值,在此基础上计算出自身的坐标值,并将计算出的结果发送到基站节点。基站节点:负责接收所有能够听见的数据包,并将其转发到XServe,最后显示到XSniffer界面中,如图3所示。


   
        图3中,后5位数据是自行定义的,发送给2号节点的5位数据中,前3位是接收到的3个已知节点RSSI值,后两位是计算出的盲节点坐标值,为便于显示,最后两位数据分别扩大了10倍,实际值应当缩小10倍。发送给5号节点的数据是信标节点自身的坐标值。
    3.2 具体实现思路
    3.2.1 信标节点
        
实验中采用3个信标节点,首先分别指定各节点的ID,以便能够从XSniffer界面中观察出每个节点发送的数据。信标节点在实验中起着关键的作用,只有保证信标节点与盲节点之间进行正常通信,才可以得到可信的盲节点位置坐标。具体实现思路如下:(1)定义一个缓存区,用于存储自身的坐标值。(2)设置一个定时器,计时发送出缓存区中的数据到盲节点,指定红色led灯亮,并通过XSniffer界面观察发送数据是否正确。(3)数据发送成功,指定绿色led灯亮。
    3.2.2 盲节点
        
实验目的是测出盲节点的位置,因此盲节点是实验的目标节点。首先指定其ID,以便在XSniffer界面中读取数据。其次要保证能够正常接收并提取信标节点发送的数据,才可以得到可信的自身位置坐标。具体实现思路如下:(1)定义接收和发送两个缓存区及其对应的变量指针。(2)设置4个不同的计时器,第1个计时器时间到,通过变量指针将接收缓存区中的数据复制到发送缓存区中。第2和第3个计时器时间到,重复上述操作。第4个计时器时间到,利用发送缓存区中数据计算出盲节点坐标值。(3)将盲节点的坐标值发送到基站,并通过XServe到XSni ffer界面读取数据。
    3.2.3 基站节点
        
基站节点用于接收信标节点和盲节点发送的数据,并将数据向上传送,使得实验者能够明确每个节点发送的数值。具体实现思路如下:(1)定义一个缓存区,用来存储接收到的数据。(2)利用接收函数接收可以听到的信号。(3)将接收到数据通过串口传送到XServe,通过XServe将数据显示到XSniffer界面中。
   
    4 实验结果及数据分析
        
(1)两个信标节点放置在坐标轴上,另外一个随机放置。信标节点的坐标设为(0,2),(4,0),(6,6),盲节点坐标如表1和表2所示。

    如表1所示,当信标节点置于坐标轴上时,数据误差较大,是因为室内坐标轴所选为墙壁,会发生信号反射现象,室外坐标轴所选为操场周围的栅栏,也会对无线信号的传输产生较大影响。从总体数据看,室内差值最大为2.16 m,最小为0.98 m;室外差值最大为1.56 m,最小为0.81 m。在室外定位中,距离越远误差则越大,其原因是室外无线信号干扰导致RSSI值衰减不稳定
返回列表