浦宇欢, 毛丽民, 刘龙飞
(常熟理工学院 电气与自动化工程学院,江苏 常熟 215500)
基于ZigBee的机器人室内定位设计
浦宇欢, 毛丽民, 刘龙飞
(常熟理工学院 电气与自动化工程学院,江苏 常熟 215500)
针对机器人在室内复杂环境中编码器易出现误差累计与零位漂移,智能算法计算成本高实时性差的定位困难,提出了一种基于ZigBee技术的室内定位方法。该定位系统由4个ZigBee模块,1个协调器组成。其中3个模块作为节点呈三角形排布固定在室内,机器人搭载1个盲节点,通过协调器实现节点间通讯。使用LabVIEW虚拟仪器技术实现接收信号强度(RSSI)至节点间距离转换的处理,利用已知的固定节点坐标和盲节点到三点之间距离,计算出盲节点的相对坐标,实现机器人定位。基于ZigBee的三边定位法,计算简单,不受环境复杂度的影响,成本低。经过调试与测试,定位误差小,满足机器人室内定位的要求。
室内定位; ZigBee技术; 接收信号强度; 虚拟仪器技术
随着机器人技术的发展,人们对室内外的机器人定位需求日益增大,基于GPS的室外定位已得到广泛的应用,比如手机定位软件,可以很方便知道目前的位置。但由于室内环境复杂、定位精度等要求,机器人室内定位难度很大。
在此背景下,本文将ZigBee技术应用到室内机器人的定位研究中,通过4个ZigBee模块,1个协调器,采用三边定位算法,实现机器人在室内的准确定位,相比传统RFID定位,ZigBee技术定位具有低成本、低功耗的优点[1]。
ZigBee是一种距离近、功耗低、低复杂度、低成本的无线传输技术,其以IEEE 802.15.4标准为基础,被业界广泛运用于无线传感网络中、智能家居、无线读表等领域[3]。
利用无线技术的定位,按不同的原理分为基于距离定位和无关距离定位两种。利用距离定位、特定方法算出节点之间的距离,经算法实现最终定位,其算法有三边测量法、三角定位算法等[4]。
1.1 距离的定位
(1) 基于TOA的定位。利用信号传播速度与达到时间来计算距离。图1所示为超声波TOA的基本模型,CPU处理发送、接收超声波的时间间隔,计算距离,即时间间隔与声波速度。TOA定位精度高,但需节点时间准确。
图1 超声波TOA模型图
(2) 基于TDOA的定位。利用不同传输速度的信号,根据多种信号的传输速度和到达节点的时间差来计算距离的。如图2所示,发射节点在T0时刻发送两种不同传输速度的信号(传输速度分别为v1和v2),接收节点分别在不同时刻T1和T2收到两种信号,利用下式计算出节点之间距离:
(1)
TDOA同时接收两种信号,提高了节点硬件成本。
图2 TDOA技术示意图
(3) 基于AOA的定位。利用信号到达方向,计算出角度,然后利用三角定位算法计算出节点的位置。如图3所示,已知节点A、B坐标定为(x1,y1) 、(x2,y2) ,待定位为C,其坐标为(x,y) ,C分别与A、B两节点角度为a、b,可列方程组:
(2)
解出方程组:
(3)
图3 AOA技术示意图
AOA定位受环境干扰大,需额外硬件支持。
(4) 基于RSSI的定位。利用已知发射节点发送信号时的信号强度(RSSI),接收节点收到RSSI值后,利用理论知识或者经验模型将RSSI值转为距离,再利用三边定位算法算出节点的位置[5]。
1.2 无关距离定位
无关距离的定位方法:利用网络特性确定网络中节点的大致距离,然后估算出节点的位置[6]。主要有近似三角形定位算法、质心算法、距离向量-跳数算法是无关距离的算法,与距离无关的定位方法对硬件的要求较高,同时算法复杂。
无关距离的定位算法对节点的密集度要求较高,需大量的参考节点,成本高、定位条件要求高[7]。基于距离的定位方法主要有TOA、TDOA、AOA及RSSI 4种方法,其中TOA、TDOA、AOA虽然定位精度高,但需安装额外的硬件,成本较高。本研究基于RSSI测距的定位方法[8]。
RSSI是指接收节点接收到的信号强度,ZigBee协议栈中,当子节点收到父节点信息时,会收到父节点的RSSI值。
2.1 ZigBee协议体系结构
ZigBee体系结构由物理层(PHY)、介质访问层(MAC)、网络层(NWK)、应用层(APL)组成,其结构图如图4所示。由图可见,物理层和介质访问层由IEEE 802.15.4标准定义;NWM层和APL层由ZigBee联盟定义。ZigBee协议的具体表现由Z-stack协议栈完成,软件部分重点介绍使用Z-stack协议栈。
2.2 ZigBee网络的拓扑
ZigBee协议体系,网络层主要负责网络的建立,网络拓扑结构由协调(Coordination)、路由器(Router)、终
图4 ZigBee各层分布图
负责网络建立和管理网络中的节点,网络地址为0X0000,利用协调器将数据传给上位机。路由节点在ZigBee网络中负责数据的转发,可以带路由节点和终端节点。终端节点是ZigBee网络的最后一级,终端节点不能转发其他节点的数据。ZigBee网络的拓扑结构有星形拓扑、簇状拓扑、网状拓扑,其结构如图5所示。
图5 网络拓扑图
2.3 ZigBee无线网络的数据传播方式
ZigBee网络的数据发送方式有点播、组播、广播,点播方式是一对一的发送格式,常见的点播是终端节点发送给协调器(地址0X0000)。组播是先将ZigBee网络中的节点或协调器绑定在一起,只有绑定在一起的设备才能接收到信息。广播是当一个设备发送数据时,ZigBee设备通过程序判断是否收该信息,广播可以根据地址要求来设置广播对象。
发射机与接收机之间的距离d与接收机接收的信号强度RSSI的关系为:
(5)按嵌入域划分:分为时/空域水印和变换域水印。时/空域水印是在时间/空间域嵌入水印,一般方法简单、运算速度快,但是鲁棒性较差。变换域水印通过对变换域系上施加操作完成嵌入水印的目的,变换域水印鲁棒性较好,但是原理复杂、不易实现、运算速度较慢。
RSSI=-(A+10nlgd)
(4)
式中:n指信号路径损耗常数;d为发射器与接收器之间的距离;A为另外一个传播常量,A表示收、发器1 m间隔的RSSI,需要实际测量得出。
3.1 三边定位测量方法
三边定位方法是利用三点到未知点之间的距离关系求出未知点坐标[10]。如图6所示,其中A、B、C三点分别是已知节点1、2、3,M为盲节点。已知(x1,y1)、(x2,y3)、(x3,y3)分别为A、B、C三点坐标。盲节点M坐标设为(x,y),固定节点A、B、C到盲节点M的距离分别为d1、d2、d3,由欧拉公式可得:
(5)
图6 三边定位模型
本文采用的方法是将RSSI值传给LabVIEW软件平台,计算出M坐标(x,y)。三边定位方法存在一个致命问题,当图中3点在一条直线,无法求出M坐标。本文调试时,将A、B、C人为地标定在不同直线上。
3.2 机器人定位的实现
本文上位机采用LabVIEW软件平台,布置控件位置、设置控件参数等,如图7~9所示。LabVIEW基于G语言编程方式,较VB与C#开发周期短,实现复杂的三边定位算法,提高工作效率[11]。
图7 上位机界面
图8 机器人串口读取程序
图9 机器人串口发送程序
3.2.1 RSSI距离转换程序
本文采用基于RSSI的距离定位方法, RSSI值转为距离需要调用LabVIEW的公式节点,如图10所示,包括3个输入量(RSSI、A、n),一个输出量(D)。
图10 RSSI值转距离程序
3.2.2 三边定位的程序
本文采用三边定位算法,通过LabVIEW调用Matlab公式节点算出目标的坐标,其中a、b、c三点坐标由自己标定。三边定位程序如图11所示。图中Matlab公式节点中Da、Db、Dc为输入量;p1为输出量;Da,Db和Dc分别为固定节点1、2、3到盲节点距离。
图11 三边定位程序
3.2.3 串口数据传输
本文配置两个串口程序,分别为机器人串口和ZigBee串口[12-13]。ZigBee串口波特率设置为115 200。串口读取数据时,读取的第1个字节为“A”时,继续读取11个字节数据;机器人串口波特率设置也为115 200。
机器人串口不仅接收数据还需发送数据,机器人发送的数据格式为0XFF、X、X、X、X,第1个字节为帧头,通过程序判断是否处理数据;最后4字节为PWM占空比(0~1 000)。
LabVIEW调用Matlab程序有两种方法:①Matlab script节点;②ActiveX函数模版。本文采用Matlab script节点,支持多输入、多输出、处理速度快等特点[14-15]。
3.3 坐标显示
如图12所示,坐标显示使用LabVIEW二维图片控件,在二维图片上打点实时显示坐标。
图12 坐标显示程序
本文定位调试场地在实验室300 cm×240 cm区域,调试场地图如图13所示。由图可见,机器人搭载一个盲节点,即定位节点,场地的3个角放着对应3个固定节点[10]。图14为实际调试结果,经多次测量,路径损耗n取值4.3较为合适。
图13 调试场地
(a)(b)(c)(d)
图14 调试图
图14(a)~(d)分别对应一组实验数据,图14(a)计算出的坐标为(151.388,117.59),实际测量的坐标为(156,112);图14(b)计算出的坐标为(196.228,148.908),实际测量的坐标为(200,150)。
本文对基于ZigBee技术的室内机器人三边定位方法进行了研究,使用LabVIEW收集信息处理与控制,针对本实验场地,定位误差在5~7 cm之间。在实际调试中,当机器人离固定节点30 cm之内时,无法定位,误差较大。
[1] 杜月林, 石欣然, 王克寒. 基于ZigBee技术的室内定位系统算法研究及实现[J].计算机技术与发展, 2014(7):245-249.
[2] 邹宜成, 梁 红. 室内智能移动机器人ZigBee无线网络定位技术[J]. 武汉理工大学学报(信息与管理工程版), 2012, 34(2):151-155.
[3] 王 琦. 基于RSSI测距的室内定位技术[J].电子科技, 2012, 25(6):64-66.
[4] 朱明辉,张会清.基于RSSI的室内测距模型的研究[J].传感器与微系统,2010,29(8):19-22.
[5] 丁 琳, 管小卫, 朱 霞. 基于RSSI的集群实时定位系统设计[J]. 国外电子测量技术, 2014, 33(12):69-73.
[6] 郑学理,付敬奇. 基于PDR和RSSI的室内定位算法研究[J].仪器仪表学报, 2015, 36(5):1177-1185.
[7] 朱 剑, 赵 海, 孙佩刚, 等. 基于RSSI均值的等边三角形定位算法[J]. 东北大学学报(自然科学版), 2007, 28(8):1094-1097.
[8] 边明明. 基于STM32F103的移动智能车硬件设计[J].煤炭技术,2014, 33(8):183-185.
[9] 王天河, 马庆龙. 基于射频无源定位的智能跟踪机器人系统[J]. 兵工自动化, 2010, 29(7):84-87.
[10] 杨佐龙, 陈 曦, 周智恒, 等. 基于RSSI的ZigBee定位节点布局优化[J]. 中国科技信息, 2013(14):101-103.
[11] 张世一, 黄 华, 刘永平. 基于ZigBee和LabVIEW的智能照明监控系统设计[J]. 研究与开发, 2014,33(5):63-66.
[12] 吴龙亮,薛 楠,权祎魁,等. 基于ZigBee与LabVIEW的火灾预警系统的设计[J]. 网络与通信, 2013,32(22):53-55.
[13] 徐攀峰,李丽娜,梁德骕,等. 基于LabVIEW与ZigBee的无线语音遥控机器人系统[J]. 辽宁大学学报(自然科学版), 2015,42(2):124-129.
[14] 李有堂,张正谦,丁海荣,等. 基于ZigBee和LABVIEW的车库无线监测系统设计[J]. 兰州理工大学学报, 2016,42(1):101-103.
[15] 包雪梅,任小洪,王 丹,等. 基于ZigBee和LabVIEW的数控机床振动信号分析采集系统设计[J]. 自动化与仪器仪表, 2016(3):75-77.
Design and Implementation of Indoor Positioning of Robot Based on ZigBee
PUYuhuan,MAOLimin,LIULongfei
(School of Electrical Engineering and Automation, Changshu Institute of Technology, Changshu 215500, Jiangsu, China)
An indoor location method based on ZigBee technology is proposed for positioning a robot in the complex indoor environment, because the classical algorithm is prone to error accumulation and zero drift,and the intelligent algorithm has high computational cost and poor real-time performance. The new positioning system consists of four ZigBee modules and one coordinator. Three of these modules are arranged in a triangular in the room as fixed nodes. The robot is equipped with a blind node, and these nodes communicate each other through the coordinator. The virtual instrument technology LabVIEW is used to achieve the
signal strength indication (RSSI) transferring to the inter-node distances. Because the coordinates of the fixed nodes are known, the relative coordinate of the blind node can be solved, so is the robot. The trilateral positioning method based on ZigBee is simple, low cost and can be used in complex environment. After debugging and testing, positioning error is small, hence the design meets the requirements of the robot indoor positioning.
indoor positioning; ZigBee technology; received signal strength indication (RSSI); virtual instrument technology
2016-08-28
苏州市科技计划项目(SYG201504)
浦宇欢(1992-),男,江苏常熟人,硕士,研究方向为机器人控制技术。
Tel.:15651127957; E-mail: puyuhuan00@126.com
毛丽民(1981-),男,江苏常熟人,硕士,高级实验师,研究方向为机器人与目标跟踪研究。
Tel.:13814928578;E-mail:maolimin_1981@163.com
TP 242.6
A
1006-7167(2017)04-0064-05