基于ZigBee技术的家庭服务机器人定位问题研究
2011-07-03徐海黎江金金朱志松朱龙彪
徐海黎,江金金,朱志松,朱龙彪
(南通大学 机械工程学院,南通 226019)
0 引言
家庭服务机器人是智能家居系统[1]的一个重要组成部分,但是受限于家庭网络技术的瓶颈,人们对智能家居系统的研究大多局限于通过总线技术来实现信息家电的智能化和网络化;而家庭服务机器人作为家居内移动的智能体,必须通过无线网络通信的形式才能方便地与其他家庭设备进行信息交互。
目前,在无线通信领域主要有红外(IR)、蓝牙、Wi-Fi和ZigBee等技术。红外技术虽然成本最低,但传输距离短,易受遮挡。蓝牙技术虽然比较成熟,但协议复杂且开发成本高。Wi-Fi技术适合多媒体应用,但价格昂贵且功耗大。ZigBee技术是一种低功耗、低成本、低复杂度和低速率的双向无线网络或通信技术,是一组基于IEEE802.15.4无线标准研制开发的有关组网、安全和应用软件方面的通信技术[3],其应用领域主要包括家庭和楼宇网络、工业控制、医疗等,尤其在无线传感器网络(WSN,Wireless Sensor Networks)方面发挥其他网络不可替代的作用[2]。
定位是移动机器人的一个基础而重要的课题。已知环境地图的定位易于解决,但在完全未知环境下,定位具有很大的难度,把移动机器人融入无线传感器网络中,作为其移动的节点,利用无线传感器网络的定位功能可为移动机器人提
供定位支持。
1 基于ZigBee技术的WSN系统构建
针对室内服务机器人在无线通信和定位方面的要求,构建了基于ZigBee技术的室内无线传感器网络平台,如图1所示。网络采用ZigBee技术进行无线通信,平台由网关节点、参考节点和盲节点组成,采用星型网络拓扑结构将上述节点组合起来。
网关节点负责网络的构建和维护,同时通过RS232口实现系统信息交汇中心与监控主机的连接,完成对参考节点和盲节点的参数设置、命令传输和状态信息收集等功能。主要由CC2430模块和母板组成。母板集成了CC2430仿真器、CC2430模块插槽、RS232电路模块、LCD显示屏及USB接口电源模块等。CC2430是由TI/Chipcon公司生产的ZigBee片上系统(SoC)解决方案,该芯片整合了2.4 GHz IEEE802.15.4 RF收发机CC2420、增强型8051MCU、SRAM、闪存等设备,具有IEEE802.15.4/Zigbee完全兼容的物理层和硬件层,可以通过物理层和媒体访问控制层实现无线通信。
参考节点采用路由器的配置,通过参数配置和人工部署获得自身的精确坐标,为盲节点的定位提供参考坐标。主要由CC2430模块和为其提供电源的电池底板组成,如图2所示。
盲节点可以是路由器或者终端,是WSN定位系统中未知自身坐标的节点。该节点被安装在服务机器人上,通过无线定位技术可以计算出该节点的坐标,从而实现机器人的无线定位。系统中,盲节点为带有硬件定位引擎的CC2431 模块。CC2431是TI/Chipcon公司继CC2430之后推出的一种带硬件定位引擎的片上系统解决方案。该芯片不仅包含了CC2430的资源和特性,而且集成了硬件定位引擎。
图2 参考节点模块
图3 ZigBee网关
2 基于WSN系统的RSSI 定位实现
在智能空间的无线传感器网络中,参考节点固定在室内WSN 的指定位置,可以作为WSN 定位中的信标节点;盲节点携带在移动式家庭服务机器人上,其位置随时间变化而不同,因而是WSN 定位中的未知节点。基于接收节点信号强度(RSSI)的定位是目前应用范围最广,价格最为低廉的一种技术。其定位方法描述为:已知发射节点的发射信号强度,接收节点根据接收信号的强度,计算出信号的传播损耗,然后利用理论或经验的信道传播衰减模型,将信号的损耗转换为距离,再利用已有的定位算法计算节点的位置[5]。为了实现服务机器人在智能空间内的无线定位,首先利用RSSI技术确定未知节点到信标节点的距离或方位,然后使用极大似然估计法来计算节点的位置。
2.1 基于RSSI测距的数学理论模型
将经典的Friis自由空间传播方程[6]扩展至非自由空间,有:
式中:Pr(d)为收发节点间的距离为d时接收到的信号强度(瓦特,W);d0为远场距离;n为信道衰落参数,其取值范围为2.0~5.0。2.0 对应自由空间信道损失,5.0 对应建筑物阻挡的传播阴影区。
通常,采用增益来衡量无线电的发射功率,以dBm 作为无线电的功率单位,故对(1)式两边取对数得到:
在实际应用中,一般选择RSSI 代替式(2)中的Pr(d);并且选择d0= 1m 作为远场距离,此时,令A为Pr(1)对应的无线电增益(单位:dBm)。则式(2)可改写为:
实际环境中RSSI受到所处环境的影响会有波动,这将会导致距离计算产生偏差。因此,需要对RSSI值进行过滤和处理,并根据实际环境对(3)式中的参数进行修正。如式(4)所示,采用取平均值的计算法对RSSI 值进行过滤。
未知节点在进行定位计算前,从每个可通信的信标节点收集n个RSSI值,然后对这些RSSI 值求平均即得到盲节点当前所处位置到参考节点的信号强度。在获得RSSI值之后,还需要根据应用环境对n和A两个参考值进行估计,然后根据(3)式求得盲节点和参考节点间的距离d。
2.2 基于CC2430的RSSI值获取
采用RSSI 定位技术的前提是参考节点接收来自盲节点无线信号的RSSI值。CC2430有一个内置的接收信号强度指示器(RSSI),其数字值为8 位有符号的二进制补码,可以从寄存器RSSIL.RSSI_VAL读出。RSSI值是通过8个符号周期内(128μs)取平均值得到的。
从寄存器RSSIL.RSSI_VAL 读出的RSSI 值,需要经过一个简单的运算才能将其转换为RF 管脚的功耗值。运算公式如下:
这里RSSI_OFFSET 是系统开发过程中的经验值,与RF前端增益有关,设计中的CC2430 模块取其值为-45dBm。P是一个相对值,单位为dBm,表示相对于1mW的分贝数。就CC2430 而言,接收信号的功率P一般在0~-100dBm 之间。当信号功率衰减到接近于-100dBm 时,该数据帧将不会被接收。
2.3 CC2431硬件定位引擎的参数配置
CC2431 的定位估计采用分布式计算方法,在节点上分布式定位计算可避免集中计算方法带来的大量网络传输与通信延迟问题。为了达到最佳精确度,须采用接近各向同性(near- isotropic)辐射特性的天线。引擎的定位误差取决于指定区域的信号环境、参考节点的部署模式和密度。
从软件编程接口来看,CC2431 硬件定位引擎是一个接口很简单的函数实现,即写入所需参数,等待计算完毕,然后读取计算结果(盲节点的坐标)。表1列出了CC2431 硬件定位引擎所需要的输入参数。
由表1可以看出,参数A、n(N_Index)的确定直接关系到盲节点的定位计算。它们是跟环境和硬件有关的参数,因此,需要针对具体的应用环境来测量计算出A、n的值。
2.3.1 参数A的估计
参数A是一个经验值,可以通过实验获得。实验中,在半径为1米的圆上,通过测量位于圆上不同位置的四个点到圆心节点的RSSI 值,然后求平均即可估算出参数A的值。
理论上参数A的值在各个方向是相等的。但是在各个不同方向时,盲节点和参考节点的天线方向完全不同,这将会影响到参数A的值。因此,必须通过多个实验值求平均来确定参数A 的值。
2.3.2 参数n的估计
参数n描述了信号强度随传播距离的增加而降低的幅度。参数n受环境影响很大,例如信号穿透的墙的厚度对参数n会造成较大影响,这个参数值只能通过实验获得。通过实验测得多组RSSI和节点间距离的关系值后,利用最小二乘曲线拟合即可求得参数n的值。同时,最小二乘曲线也可求得参数A的值,其结果和在半径为1米的圆上测得的值一致。
2.4 无线定位网络节点间通信流程
智能家居室内WSN定位系统的网络节点间通信流程如下,网关节点负责WSN的建立和维护,并且通过RS232串口与定位监控中心通信,使用户可以实时在线地对网络中参考节点的坐标以及盲节点定位引擎参数进行配置。参考节点负责应答单跳网络范围内盲节点的XY_RSSI请求的应答,向盲节点发送带有自身坐标的(X,Y)。盲节点根据参考节点坐标和收集到的RSSI值计算自己的位置坐标。盲节点的整个定位过程分为广播阶段、数据收集阶段和定位计算阶段。
1)广播阶段。首先,盲节点以100ms的间隔发出8个广播消息,每一个在盲节点通信范围内的参考节点都会对该广播消息作出应答。如果一个参考节点处于睡眠状态,它将没有应答。因此盲节点最开始发送的几个广播消息,可能收不到任何参考节点的应答消息,在此通过重复发送以便所有临近的参考节点都能收到盲节点的广播请求。
2)数据收集阶段。盲节点向步骤(1)中有应答的参考节点再发送8个请求数据包,参考节点对每个请求数据包都发送一个包含有参考节点坐标值的应答数据包。参考节点每发送一个数据包,盲节点都得到一个与该参考节点有关的RSSI值。
3)定位计算阶段。如果收集到多于3个参考节点的应答数据包,则盲节点就可以根据参考节点的坐标和RSSI值计算自己的位置,并将计算出的位置信息发送到网关节点,然后网关节点通过RS232发送到定位监控中心。
3 无线定位实验
测试条件:室内办公室环境,发射节点的发射功率为0dBm,A取52,n取3.75。测试区域为8m×3m,分别在(0,0),(0,4),(0,8),(3,0),(3,4),(3,8)六个位置布置6 个参考节点。测试时将待测节点随机放置在测试区域内。表2为测试结果,即定位数据。
表1 定位引擎输入参数
由表2中数据可见,节点定位精度基本在±0.50m 左右。
表2 定位实验数据
4 结论
定位是移动机器人导航的基础。本文构建了智能家居室内无线传感器网络,组建了ZigBee无线定位系统,利用CC2431内嵌的定位引擎实现了节点的定位功能。测试实验表明,该节点的定位误差在1m范围内,能够满足移动式家庭服务机器人导航的应用要求。
[1] 杨士元.数字家庭网络技术及应用[M].北京:电子工业出版社,2002.
[2] 任丰原,黄海宁,林闯.无线传感器网络[J].软件学报,2003,14(7):1282-1291.
[3] 熊邦宏,李扬,朱洪雷,等.无线传感器网络在环境污染监测中的应用设计[J].计算机测量与控制, 2009,17(2):258-260.
[4] 曹小红,李颖,丰皇.无线传感器网络节点定位技术综述[J].信息技术,2009(7):233-235,240.
[5] 孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005.
[6] 张先毅,王英龙,郭强,等.基于室内办公环境的WSN信道衰落模型的分析[J].山东大学学报(理学版),2002,24(5):44-47.