胡琦瑶,周和兴,彭先霖2,艾 娜,齐 锦
(1.西北大学 信息科学与技术学院,西安 710127; 2.西北大学 智能交互与信息艺术研究中心,西安 710127)
目前,机器人已广泛应用于制造业、非制造业以及为人类服务。其中,送水机器人针对的目标用户十分广泛,例如办公室业务繁忙的工作人员、行动不便的老年人以及残疾人士等,可应用于办公区域、医院、家庭等各种场所,极大地解放了人类的双手,用更智能化的机器代替人类服务。因此设计研究出一个智能室内定位送水的机器人就变得迫在眉睫。
目前关于送水机器人的研究大多集中在运水部分[1]或者单独倒水部分,并未将两者有效结合在一起。文献[2]设计的智能接水机器人,无需人为控制可以完全智能得为用户完成接水的工作,弥补了当代一些遥控家具机器人的不足。但家居环境的复杂性,系统光靠视觉识别和红外避障可能在完成效率上不够理想,甚至于长时间发现不了目标所在。
本文研究开发一个基于物联网的智能室内定位送水系统,实现了水杯定位、转向前行、自动添注水等功能,可应用于办公区域、医院、家庭等多种场所的智能饮水服务。
本文采用了4个直流电机驱动的机械模块,倒水模块采用机械臂送水。控制系统包括UP Squared处理器、电机驱动模块、STM32F103x(MCU)模块、Zigbee无线模块、UWB定位模块、机械臂模块、供电与稳压系统。机械系统包括运输以及倒水系统,通过机械系统和控制系统的密切配合保证运动的稳定性和功能的可靠性。按照如下步骤进行操作:
1)当用户需要机器人进行服务时,只需按下按键开关,通过Zigbee模块的无线传输将命令发送至机器人的行动总控中心UP Squared开发板,开发板发出行进指令,使得机器人启动并前进,通过MCU最小模块实现对机器人的辅助控制。
2)机器人依靠UWB定位模块实时监测定位信息,并识别出目标地点,计算出到达目标所需转动的角度以及行进的距离。通过L298N模块驱动电机运转实现对机器人前进、倒退、位置调整等运行状态的控制。并通过MPU6050模块感知前进角度,对前进方向不断进行调整。
3)机器人到达目标地便停止行进,利用磁耦合谐振线圈的电压随空间距离的变化特性,实现对目标地水杯的精准定位,使得出水口准确对准水杯并开始放水动作。通过超声波测距仪实时监测水杯水量,保证水杯中的水不会溢出。
4)结束任务后,机器人能够返回原地待命。
5)当有两个或两个以上目标同时发出信号时,机器人应按接收到信号时间的先后分别响应,完成倒水任务。
系统方案如图1所示。
图1 系统工作框图
送水系统要实现在接到送水请求后在较短的时间内将水送达的功能,就必须快速而准确地到达水杯的位置。常见的许多定位方式都不能达到要求。
室内环境相对复杂,红外测距定位、深度摄像机定位等方式等定位方式准确度不高;而且必须要求水杯在机器人的视距范围内,而事实上由于室内人员活动、桌面摆件遮挡等因素存在,这一条件常常得不到满足[3]。
1)室内定位对精度要求较高,GPS、WIFI、蓝牙等定位方式精度多在米级,不能满足高精度定位的要求。
2)Zigbee等定位方式信号传输受多径效应和移动的影响很大,精度对硬件和环境的依赖程度很大[4]。
3)超声波定位等方式响应较慢,会增加系统工作延迟。
UWB定位[5]采用极窄脉冲传输数据,数据传输速度快、定位精度可达厘米级、且抗干扰能力强,并且具有低功耗、安全性高等优点,可以较好的满足系统工作的要求,因此我们在系统中采用UWB模块进行定位。
DWM1000芯片[6]是一个超宽带无线收发芯片,对于多路径衰弱有更强的抗干扰能力,在高衰弱环境下也可以进行可靠的通信,非常容易的集成到实时定位系统(RTLS)和无线传感网络(WSN)中。
图2 DWM1000模块框图
本文使用双面双向测距算法的通讯方式只需要5次通讯,就能测量标签分别到三个基站的距离。
送水系统进行移动的动作如前进、左转弯走弧线、后退等,总体可以分解为两个正交的部分,即直行和转向。实际上解决的就是机器人到达目标位置需要旋转的角度和方向的问题。
2.2.1 角度测算
图3 角度测算图
图3中,A点为起始点的位置,S0、S1、S2三点对应三个定位基站。通过UWB模块进行测距与定位,可知起始点到三基站的距离,当标签接收到来自目标基站S0的信号,主控制器控制机器人按初始方向行进一小段距离,得到实时A’的位置信息。V1为机器人前进方向的向量,V2为实时位置到目标点方向的向量,将V2平移至A’点进行分析,则在此时机器人需要转向目标点的角度为V1与V2的夹角θ。在V1与V2已知的情况下由公式1可计算出机器人需要转动的角度:
(1)
得出机器人需要转动的角度θ。
2.2.2 角度感知
在测算出机器人需要转动的角度后,还需要告诉机器人应该左转还是右转。实验中,给向量V1与V2同一起点,则有两种情况:1)当θ1>θ2时:(1)判断条件θ1-θ2-θ<0.5°时,我们判定此时的θ1-θ2就是机器人需要转动的角度θ,此时机器人应该向右转,如图4(a)所示;(2)θ1-θ2-θ>0.5°时,我们判定此时的θ1-θ2不是机器人需要转动的角度θ,此时机器人应该向左转,如图4(b)所示。
图4 角度感知示意图
2)当θ2>θ1时:与θ1>θ2时的情况刚好相反。由于标签定位存在误差,机器人旋转控制不是完全精确,因此一次计算有可能无法让机器人准确的到达目标点。让机器人返回其所转角度,当它与θ不一致时,送水系统会不断检测机器人的实时位置(x1,y1)与目标点(x2,y2)之间的距离D:
(2)
当机器人与目标点的最小距离小于10 cm时,则让机器人停止,即视为到达终点;若机器人与目标点的最小距离大于10 cm时,在机器人停止后,需要重新进行一次角度测算与角度感知,在获得一个新的角度后前进,直到到达目的地附近。通过这样的算法,大大提高了机器人寻址的精度。
图5 二次测算示意图
通过目标方向角度感知的计算,得到机器人需要调整的方向,下一步采用MPU6050模块检测机器人旋转的角度。机器人旋转速度与电源输出的能量有关,在电源能量下降时的情况与电量充沛时不同,只是采用简单的控制策略容易出现旋转时间长或系统震荡等问题,因而我们采用PID控制[7],以提高旋转过程的抗干扰能力。
PID控制根据偏差的比例(Proportional)、积分(Integral)、微分(Differential)进行控制[8],控制框图如图6所示[9]。
图6 PID控制框图
在本系统中,误差的积累作用较小,也不需要提前预测差值的到来而提前响应,故而在重点整定比例系数[10]。通过测试不同比例参数下的系统响应情况,选择出合适的参数。
送水系统在准确到达水杯附近后,需要精确控制出水阀口至杯口正上方。出于系统稳定性考虑,本文采用磁耦合谐振式无线电传输装置进行精准定位。磁耦合谐振式无线电传输装置的主要组成部分包括:
1)磁耦合谐振部分:由谐振线圈、谐振电容串联构成谐振体,发送与接收线圈分别产生和接受磁场能量,是电路与磁场的耦合媒介[11]。发射线圈采用1.3 mm的漆包线,圆筒式绕法N=3匝,直径为10 cm,接收线圈与发射线圈尺寸、绕法完全一致,以保证收发端线圈的固有频率一致。
提高谐振频率,增加两线圈之间的互感能够有效提高传输效率,但谐振频率的增加、线圈直径以及匝数的增加会带来很大的线圈损耗电阻,影响传输效率。因此要增加线圈直径、减小匝数,在线圈电感量不变的情况下,这种方法会比增加线圈匝数、减小直径能更有效的提高传输效率。最终,谐振频率确定在1.3 MHz。
2)磁场驱动源:包括供电和高频激磁电路,此部分功能是将直流电源的直流电转换为线圈中的高频电流,用以驱动磁耦合谐振部分产生谐振磁场并向其提供高频能量,实现无线电能传输[12]。
我们设计在水杯下方安置一个激发线圈,并给它通入脉冲信号,使之在周围空间中激发变化的磁场,在机器人出水口附近安置一个感应线圈,并在控制端检测线圈中电压的峰值。在机器人到达制定位置后,可以先控制步进电机在一个水平面内寻找到使感应线圈电动势峰值最大的角度,可以预见,这个方向就是激发线圈所在的方向;然后控制出水口垂直上升适当距离;控制步进电机将出水口朝激发线圈方向移动,直至感应线圈电动式峰值达到最大,此时出水口将准确到达水杯正上方。
除了在水平面内精确找到水杯的位置外,在垂直面内还需要控制出水口上升适当距离,并且完成对杯中水位的感知,实验中采用超声波测距方法实现。超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。
超声波测距模块HC-SR04具有性能稳定,测度距离精确,模块高精度,盲区小等优点,在公共安防、物体测距等领域有广泛应用[13]。测距步骤如下:
1)采用IO口触发测距,在控制口发出一个10的高电平信号;
2) 模块自动发送8个40 kHz的方波,自动检测是否有信号返回[14];
3)如果有信号返回,通过IO口输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间[15]。
4)当有信号返回时,通过定时器计时,当接收口变为低电平时就可以读定时器的值,可得此次测距的时间,从而计算出距离。不断的测试,即可以达到你移动测量的值[16]。
在垂直面上升合适距离的关键在于送水系统能够感知到什么位置是合适位置。经过分析发现,在出水口所处的高度尚未超过水杯时,出水口前方较近处就有固体介质(水杯);等所处的高度超过杯口后,出水口前方较远处才开始出现固体介质(墙)。因而我们可以在出水口附近放置一个超声波测距模块[17],通过合理设置距离阈值,距离超过阈值后便停止上升。
在出水口到达指定位置后,控制继电器,使出水口开始出水,通过超声波模块检测到杯中水位到达合适位置时,上传一个信号给控制器,停止出水,完成相应工作。
智能室内定位送水系统在按下呼叫器的按键后,接受到倒水请求开始工作。因为并非所有的室内环境都覆盖了WIFI信号,蓝牙传输受限于距离且易受干扰,采用组网简单、传输距离较长的Zigbee通信模块进行无线数据传输[18]。
DL-20无线发射接收模块是基于Zigbee技术的无线串口模块,可以将两个或者多个串口在无线状态下连接起来。将DL-20模块配置为点对点模式,点对点模式存在两个端口数据传输端口:A端和B端。A端串口发出的数据会被B端串口接接收,反之亦然,点对点模式下同一个频道只允许两个节点相互通信。
图7 Zigbee系统功能框图
数据在传输过程中采用的是透明传输模式。用户只需按照Zigbee协议的具体帧格式对数据进行封装,然后一次进行发送,最后在接收端对数据按照顺序进行接收[19]。在实际应用中,选择波特率为9600,分别将两个Zigbee通信模块安置在呼叫器与机器人上。
智能室内定位送水系统要求定位准确,对复杂环境适应能力强,角度调整迅速准确,能较好适应感应线圈在移动中的变化。实验中分别对以下几部分进行测试。
为测试UWB模块在不同复杂程度的环境中的精度,我们分别在空旷的教室与桌椅等遮挡物较多的教室中进行精读测试,具体方法如下:
1)布置好基站之后,室内随机选取6个点。
2)用米尺分别测量这些点与基站0之间的距离,测量三次取平均值,将平均值近似看作点与基站0之间的标准距离。
3)将标签0分别放置到这6个点的位置。
4)在每一点处连续测10次标签与基站的距离。
5)用测量得到的数据与标准距离的差值的平均值表征误差。
图8 UWB定位测试图
观察测试结果,我们发现基站与标签之间距离的远近,对测距精度并没有明显影响,每次测量得到的数据误差都在10cm之内;在复杂环境中测距的误差相较于空旷感环境略有上升,但仍能保证较高的测量精度;在测量多次求取平均值之后,测向误差降到1%以下,可以满足系统对精度的要求。
这是由UWB是依赖极窄脉冲传输数据的特点决定的。理论上穿越书桌等障碍物后,窄脉冲不会产生明显的衰减。因而即使环境中障碍物较多,对测距精度的影响也微乎其微。这与我们测试得到的结果是一致的。
合理的PID参数的选择,在提高机器人旋转速度的同时,系统应该具有较好的稳定性,即震荡程度低,同时在电源能量变化时能有较强的适应能力,即始终有较好的反应速度和较高的稳定性[20]。
设置机器人旋转目标为45°,控制机器人旋转,通过串口实时将机器人旋转的角度上传至控制端。将不同的PID参数得到的角度变化情况绘制成曲线图,多次测试后选取最佳参数。得到的曲线图如图9、图10、图11所示。
图9 PID参数为1000-4的测试数据
图10 PID参数为1200-4的测试数据
图11 PID参数为1500-5的测试数据
PID的第一个参数表示系统的整体速度,第二个参数表示对于指令的响应速度。经过分析,第一次测量的整体速度高,但响应时间长,系统震荡严重,到达稳定时间较长;第二组在整体速度将下来之后,震荡较少;第三组在降低整体速度后,消除了震荡,因此第三组参数较为合理。
多次尝试后整定的PID参数能使机器人有较快的反映同时保持相对稳定,且在电源能量不同的情况下有较强的适应能力。
本文采用检测感应线圈中感应电动势的极值来确定水杯与出水口的相对位置,这要求感应电动势的极值要明显存在,且检测延迟要低。
分别在水平面和垂直面内对感应线圈进行移动,并读取感应线圈中电动势的大小,将之绘成曲线图,观察极值情况。
由于响应存在延迟,不易直接检测,我们检测在系统读到的感应线圈中电动势极值时所处的位置与理论位置的差值,以此来间接刻画系统的响应延迟[21]。感应线圈在水平面内旋转不同的角度,得到的输出电压值如图12所示,在距离发射线圈最近的位置处,有一个电压峰值,其感应电压值是最大的。
图12 感应电动势测试数据
为测试HC-SR04模块测距的精度,设计如下方案:
1)在模块附近随机选取6个点;
2)用米尺分别测量这些点与模块之间的距离,测量3次取平均值,将平均值近似看作点与模块之间的标准距离;
3)将一个刚性固体介质分别放置到这6个点的位置;
4)在每一点处连续测10次介质与模块的距离;
5)用测量得到的数据与标准距离的差值的平均值表示误差。
以第一个点和第二个点测量数据为例说明。
1)第一个点实际测量距离为20 cm,超声波测距数据如表1所示。
表1 第一个点测量距离 cm
以上20组测量数据平均值为:20.8。
2)第二个点实际测量距离为18 cm,超声波测距数据如表2所示。
表2 第二个点测量距离 cm
以上20组测量数据平均值为:19.1。
HC-SR04超声波测距模块可提供2~400 cm的非接触式距离感测功能,测量精度最高可以达到3 mm。分析以上测量结果可得,设计的机器人所用超声波测距模块测量精度为1 cm。
本文分别在待机状态下(停止电动势检测、机器人运行等,仅串口接收数据工作)测试系统静态电流、电压及功耗,在全负荷状态下(开启所有设备)测试系统工作电流、电压及功耗。
各个硬件模块的功耗如表3所示。
表3 系统各模块功耗
根据以上各模块功率测试所得,静态功耗主要集中在UP Squared处理器,但总体相对来说较低,共计5.35 W,动态功率共计13.6 W,大概为静态功率的2.5倍。
通过测试发现在静态情况下机器人耗电极少,可支持长时间数据监听;在巡航倒水的模式下也有较好的续航能力。
本文所设计的系统采用Zigbee模块进行呼叫器与机器人之间的数据交互;采用UWB模块在室内进行精准定位;采用MPU6050 模块进行旋转角度感知,PID算法控制机器人旋转;基于电流磁效应和电磁感应定律感知水杯位置;采用超声波模块对出水口上升的高度和水杯中水位进行检测。不仅能够很好地实现运水和倒水两个功能,并且定位精度、运动的稳定性以及功能的可靠性都得到了良好的保障,完全实现了智能室内定位送水的功能,达到了实际应用于室内智能定位送水的技术要求。