模块化机器人移动定位系统的应用和研究

时间:2022-06-15 06:36:44

模块化机器人移动定位系统的应用和研究

摘 要: 移动定位是机器人执行任务的基础,没有精确的定位系统,移动机器人无法完成所要求的工作。基于Arduino模块设计实现了一个简单的机器人移动定位系统,系统以Arduino模块作为移动机器人的控制核心。简单介绍了移动定位理论,着重阐述定位系统的软硬件设计。系统采用ZigBee无线传感网络定位方法,利用ZigBee大范围定位无误差特性,使移动机器人快速准确定位,基于ZigBee无线传感网络定位范围较小、精确度低的缺陷,对测距定位算法进行了一定的改进。最后经试验验证,所设计的移动定位系统定位误差较小,满足实际需求。

关键词: 移动机器人; Arduino; ZigBee无线定位; RSSI

中图分类号: TN911?34; TP242.2 文献标识码: A 文章编号: 1004?373X(2015)24?0040?04

Research and application of mobile positioning system for modular robot

CHEN Shuya

(School of Mathematics and Computer Science, Gannan Normal University, Ganzhou 341000, China)

Abstract: Mobile positioning is the basis for robot to execute any tasks, that is, mobile robot can not complete the required work without a precise positioning system. A simple robot mobile positioning system based on Arduino module was designed and implemented, in which Arduino module is taken as the control core. The mobile positioning theory is introduced briefly, but the hardware and software design of the positioning system is described emphatically. ZigBee wireless sensor network positioning method is adopted in this system, which utilizes the zero error characteristic of ZigBee positioning in large area to make the mobile robot to locate correctly and rapidly. Aiming at the ZigBee’s shortcomings of small range and low accuracy, the ranging location algorithm is improved in this paper. The experimental results show that the positioning error of the designed mobile positioning system is small, which can satisfy the actual demand.

Keywords: mobile robot; Arduino; ZigBee wireless location; RSSI

自主移动机器人是通过自身传感器感知周围环境信息,对环境信息进行自主分析、判断和决策,并结合自身状态进行合理路径规划,最终自主运动到目的地以完成相应的任务[1]。移动定位是自主移动机器人首先要解决的问题,只有明确了自身精确位置才能做出合理有效的规划路径,进而快速准确地到达目的地。在定位过程中,单一传感器获取的数据是片面的,需要使用多个传感器才可以完整的获取机器人周围的环境信息[2]。本文利用多个ZigBee无线传感器的交互使用网络实现移动机器人的全局定位。

1 ZigBee无线定位技术

ZigBee无线传感器具有低功耗、低成本、强自组网的特点,这些特点使它在工厂或室内的应用中具有得天独厚的优势:自组网能力使得各监测节点自行完成网络构建,免去人工设置和维护;低功耗提高了监测数据的持续能力[3]。无线定位技术是根据特定的算法对接收的无线信号进行测量,从而计算被测物体的位置。定位算法主要有基于测距的定位算法和无需测距的定位算法。基于测距的定位算法需要通过测量传感节点之间的距离来计算未知节点的位置,此种算法有较高的精度,目前常用的测距技术是接收信号的强度RSSI(Received Signal Strength Indicator)。

1.1 基于RSSI的测距原理

RSSI测距技术成本低并易实现,是目前广泛使用的测距技术。受环境影响,传播模型建模的复杂性是此种测距误差的主要来源[4]。RSSI是发射节点和接收节点之间距离的函数,可表示为:

[RSSI=-(10nlgd+A)] (1)

式中:[n]是信号传输常数;[d]为发射节点和接收节点之间的距离;[A]是与发射强度有关的量。

1.2 基于RSSI的定位算法

在无线传感网络中,发射节点会周期性的发射信号,待测节点接收信号并采样存储,等到获得足够多的信息后,就通过定位算法计算待测节点的坐标,定位的过程如下:

(1) 先通过事先测定或GPS手段获取部分发射节点的精确位置坐标;

(2) 无线传感网络中的相邻节点间进行信息交流以交换位置坐标和测量各节点间的RSSI值,经过信息交流,待测节点获得了其相邻已知节点的坐标值和RSSI值;

(3) 发射节点根据接收的RSSI值,通过式(1)给出的计算模型计算与待测节点的距离;

(4) 待测节点根据收到的发射节点的距离和坐标,通过定位算法确定自己的坐标。

基于测距的节点定位算法有三边测量法、三角测量法、加权质心法和极大似然估计法。本文采用极大似然估计法作为确定待测节点的定位算法。采用极大似然估计法的示意图如图1所示。

图1 极大似然估计法的示意图

已知发射节点1,2,…,n的坐标分别为[(x1,y1),][(x2,y2),…,(xn,yn)]。它们到待测节点A的距离分别为[d1,d2,…,dn],设A的坐标为[(x,y)],根据极大似然估计法可求得A的坐标。

根据两点间的距离公式,可得:

[(x1-x)2+(y1-y)2=d12(x2-x)2+(y2-y)2=d22 ?(xn-x)2+(yn-y)2=dn2] (2)

从第一个方程开始依次减去最后一个方程可得: [x21-x2n-2(x1-xn)x+y21-y2n-2(y1-yn)y=d21-d2nx22-x2n-2(x2-xn)x+y22-y2n-2(y2-yn)y=d22-d2n ?x2n-1-x2n-2(xn-1-xn)x+y2n-1-y2n-2(yn-1-yn)y=d2n-1-d2n] (3)

将式(3)用线性方程可表示为:[AX=b]。

利用标准最小均方差估计法,可得A的坐标:

[X=(ATA)-1ATb] (4)

其中矩阵A,b和X分别为:

[A= 2(x1-xn) 2(y1-yn) 2(x2-xn) 2(y2-yn) ? ?2(xn-1-xn) 2(yn-1-yn)] (5)

[b= x22-x2n+y22-y2n+d2n-d21 x22-x2n+y22-y2n+d2n-d22 ?x2n-1-x2n+y2n-1-y2n+d2n-d2n-1] (6)

[X=xy] (7)

2 ZigBee无线定位系统的设计

在底层无线定位系统中,CC2431为待测节点的主控,CC2430为发射节点的主控。CC2431相较于CC2430,其增加了基于RSSI测距定位的硬件引擎,该引擎通过接收发射节点的RSSI值并经定位算法进行计算[5]。在ZigBee无线网络定位系统中,待测节点定位的精度不仅与周围的环境有关还与发射节点即参考节点的数量有关,一般情况下,参考节点越多,待测节点的定位精度越高。本文无线定位系统的底层硬件由1个CC2431待测节点和8个CC2430参考节点以及相关的协调器等设备组成。

2.1 基于测距的节点程序设计

参考节点的坐标(x,y)是事先确定的,本系统中待测节点模块固定在自动移动的机器人上。图2为待测节点的定位过程。

由图2可知,在定位引擎开始之前应使能定位引擎寄存器LOCENG即LOCENG.EN=1;然后读取坐标,读取到的参考节点存放在RF寄存器REFCOORD中,在向寄存器REFCOORD写入参考节点坐标之前需将LOCENG.REFLD置1表示一组已知坐标已经写入;8个坐标必须一次性写入。少于8个的节点坐标值用0.0填充。所有的测量参数应写入RF寄存器MEASPARM中,在写入寄存器MEASPARM之前,需要将LOCENG.PARLD置1;测量参数按照[A,n,RSSI1, RSSI2, RSSI3,…, RSSI7]顺序写入寄存器中,一次性写完后,使LOCENG.PARLD=0。当参考节点和测量参数都读取完毕后,使能LOCENG.RUN位,定位引擎开始计算所测的坐标值然后输出。

2.2 测距定位算法的改进

CC2431使用的寄存器以字节为单位,对传感节点处理的最大区域可达64 m×64 m,对于很多大的厂房和使用场所,不能满足定位需求。因此有必要对这一覆盖范围进行扩展,扩展的方法一般有两种途径:一是改造底层硬件,通过增加扩频电路等方式;另一种方式就是进行算法改进。硬件电路一旦固化,更改麻烦并增加成本,所以在定位算法上加以改进以满足实际需要。

图2 待测节点定位流程图

在改进的算法中将2 B的存储划分为两部分:坐标数据的低2位存储小数点,高14位存储坐标数据的整数部分,所以横、纵坐标最大可表示为16 384.75 m。改进算法后节点的位置示意图如图3所示。

图3 改进算法后节点的位置示意图

算法改进后的流程图如图4所示。算法步骤如下:

(1) 待测节点在与相邻节点信息交流时,找到 RSSI 绝对值最小的节点,然后以此节点为中心建立64×64大小的区域,并建立相对坐标系。将RSSI绝对值最小的节点坐标转换为相对坐标(32,32)(图3中的黑色节点),同时记录此节点坐标相对转换时横、纵坐标的偏差;

(2) 根据记录的坐标转换时的偏差值,将所构造的64×64范围内的所有节点的坐标加以修正,使其坐标值映射到该区域内;

(3) 将区域内的新坐标值写入待测节点相应的寄存器内,根据新的坐标值,计算出待测节点新的位置坐标,而此坐标值是待测节点在相对区域内的值,实际的坐标值需加上第一步所记录的偏差值,这样就得到了实际环境下的定位坐标。

图4 算法改进后定位流程图

3 移动机器人的机械系统

移动机器人采用Arduino MEGA2560单片机作为主控芯片,其采用USB与上位PC机进行数据传输,具有54路数字输入/输出口,16路模拟输入[6]。主控芯片负责测距传感器的数据采集、定位,驱动电机以及驱动舵机转向等。

3.1 电机驱动模块

系统采用RS?380SH直流电机作为移动机器人的动力装置,通过脉宽调制(PWM)方式以达到控制电机正反转的目的,利用桥式驱动器MC33886控制H桥通断控制小车前进的速度,并将MEGA2560的PWM2和PWM3、PWM4和PWM5两路8位寄存器合成16位寄存器使用,这样可以提高模糊控制的精度。

3.2 舵机转向模块

系统采用FUTABA?S3010型舵机完成转向控制功能,脉冲信号由Arduino MEGA2560的PWM0和PWM1级联提供。在单片机为24 Hz时,设级联PWM周期常数为60 000,则PWM周期为20 ms,占空比为4 500,对应输出为1.5 m/s。改变占空比就可以改变输出脉冲的宽度,相应舵机输出舵盘的角度也随之改变。

经多次转向实验,在输入信号为50 Hz,即PWM的周期为20 ms时,舵机的转角与输入脉宽成线性关系。高电平为1 500 μs时,舵机的转角为0°;高电平为1 900 μs时,舵机转角为右向45°;高电平为1 100 μs时,舵机转向为左向45°。舵机的转角与输入脉宽的关系如图5所示。

图5 舵机转角与输入脉宽关系图

4 定位测试

将设计的移动机器人在分布有8个传感器的无线区域内进行移动定位,图 6为上位机上看到的定位结果,在图形窗口上参考节点用星号表示,待测节点用黑色圆点显示,定位计算的坐标用红色十字表示。

图6 定位结果

表1是基于RSSI定位算法6次测试的结果,误差为0.764 9 m,在可以接受的范围内。

表1 定位测试结果 m

误差出现的原因有以下几个方面:

(1) 参考节点少,在实际的应用中,参考节点越多,定位精度就越高;

(2) 节点的疏密程度对定位也有影响,过密的节点排布会使网络信息交换过于频繁,网络容易拥塞;

(3) 定位的区域范围大,定位算法是基于RSSI测距的,易受周围环境影响,随着定位范围的扩大,环境就会越复杂,对定位结果的影响就越大。

5 结 语

本文主要研究和设计了移动机器人的定位系统,给出了部分模块的硬件结构和软件流程。系统以Arduino MEGA2560作为主控,负责测距传感器数据采集、定位以及电机和舵机的驱动等,采用ZigBee无线传感网络定位策略并改进了基于RSSI的定位算法。经过6次测试,平均误差为0.764 9 m。误差在可以接受的范围内,满足系统需求。

参考文献

[1] 蔡自兴,贺汉根,陈虹.未知环境中移动机器人导航控制研究的若干问题[J].控制与决策,2002,17(4):385?390.

[2] 王俊.移动机器人的定位方法研究[D].沈阳:东北大学,2010.

[3] 邹宜成,梁红.室内智能移动机器人ZigBee无线网络定位技术[J].武汉理工大学学报:信息与管理工程版,2012,34(2):151?152.

[4] 章坚武,张璐,应瑛.基于ZigBee的RSSI测距研究[J].传感技术学报,2009,22(2):285?286.

[5] 宋保业,许琳.带定位引擎的射频芯片CC2431[J].单片机与嵌入式系统设计,2007(11):44?45.

[6] 刘南君,毛培宏.基于Arduino Mega2560单片机的简易智能割草机器人的设计与实现[J].安徽农业科学,2012,40(36):162?167.

上一篇:浅谈煤矿人力资源工作的一些改进建议 下一篇:药品批发企业的GSP质量