曹宇
(上海城建职业学院,上海 201415)
许多室内应用场合需要对机器人精确定位,其精度甚至需达到厘米级别。定位技术常用的有GPS、RFID、蓝牙、Wi-Fi、ZigBee、UWB 等。其中 GPS 室外效果良好,但在室内,由于建筑物阻挡,无法定位。而RFID、蓝牙、Wi-Fi、ZigBee和 UWB都可进行室内定位。若剔除成本因素,在定位精度、稳定性或工作距离上来看UWB更为胜出。因此在设计室内机器人精确路线行走定位时,采用UWB技术比较合适。
UWB(Ultra-WideBand)使用亚纳秒级超窄脉冲来做近距离精确定位,可进行厘米级别精度定位。UWB具有抗干扰性能强、传输速率高、消耗电能小、发送功率小以及高安全性等诸多优势。
机器人在工业上和服务行业上发展空前。行业不同,机器人的应用场景不一样;要求不同,机器人的控制方式也会有差异。此处使用的ROS机器人小车,采用四个电机驱动,以更好的在任意方向行驶。
本系统研究的是:ROS车上携带UWB标签,在UWB基站覆盖之下,让ROS车在室内随意行进,通过构建的UWB定位系统,实时获取ROS车准确的室内位置。
系统整体由三部分组成:UWB定位系统、上位机系统和下位机系统。
UWB定位系统,为了实现二维定位至少需要三个基站一个标签形成UWB定位系统,但是这种配置需要有个前提条件,三个基站必须位于同一水平位置上,这对部署提出了很高的要求,因此实际系统采用四个基站和一个标签。其中0号基站负责将定位信息传给上位机系统,标签则放在ROS车上用以定位。
上位机系统,即服务器,读取UWB定位系统的坐标位置,并发目标位置给ROS下位机;
下位机系统,即ROS机器人小车,接收上位机所发目标位置,调用API控制电机行进,另外将传感器信息返回给上位机。
UWB模组选择DecaWave公司的DW1000芯片,符合IEEE802.15.4-2011超宽带标准,定位最小误差可在10厘米以内,芯片功耗低,可做双向测距和定位。
构建的UWB系统由4个基站和1个标签组成,实现室内精准定位,其结构如图1所示。
图1 UWB系统结构
图2 ROS机器人小车
上位机通过Wi-Fi模组,获取标签与基站的信息。在图1中可见,基站0收集标签信息并发送到上位机中。
选用型号为UltraAI ROS的ROS机器人小车。其主控设备是x86工控机,具有数据实时处理性能,满足运行ROS系统的功能要求;具有多种接口,可连接各类传感器进行通信。ROS车采用四个电机驱动,STM32作为电机驱动主控。工控机的USB接口与激光雷达相连,使ROS车具备了扫描本地地图和识别障碍物的功能。同时工控机还接入了双目深度摄像头,使得ROS车还具备3D物体感知功能。这些外设使得ROS车具备了室内自动驾驶能力。为此只要在ROS车上加上UWB标签,就可在其行驶中进行定位研究。
UWB常用TOF(Time of Fly)方式计算电磁波传输时间,通过传输的时间换算成距离[1]。标签A和基站B之间测距,如图3所示:A在Ta时刻发出信号,经过T时段后,B在Tb时刻收到;B在Tc时刻发回信号,经过T时段后,A在Td时刻收到。其中Ta和Td会记录在A寄存器中,Tb和Tc记录在B寄存器中。对同时钟频率A、B设备采用时钟偏移量方法,可得出单程飞行时间T=[(Td-Ta)-(Tc-Tb)]/2,即为A、B间电磁波传输所用时间。所以A、B间距离D=电磁波传速×[(Td-Ta)-(Tc-Tb)]/2。
图3 UWB测距
图4 UWB定位
在UWB 测距原理基础上,可使用TOA(Time of Arrival,到达时间)定位方法测量:用前述UWB测距原理,计算出标签与三个不同基站间的距离,最后通过三边定位算法得到标签坐标值[2]。如图4所示,以三基站的位置为原点,标签到三基站的距离为半径,画三个圆,三圆交点就是标签的坐标。
当测试结果不准时,会出现三圆未必有交点,或者产生两个交点,或者三圆相交后形成区域等情况。需在程序中用纠正半径,或者求交点平局值等方法解决[3]。
根据定位原理实现具体代码,可参考UWB产品官方源程序。这里用流程图来简要说明与定位相关的几个部分:UWB标签程序和UWB基站程序。
标签程序,用于发送测量命令给各个基站,并测量和各个基站(1/2/3基站)的距离后发送给基站0。以上循环进行。见图5所示。
图5 标签程序流程
作为参考点的基站负责响应标签的测距响应命令,并将测量结果封装到响应帧中,通过无线再发送给标签。见图6所示。
图6 UWB基站程序流程
基站0程序除了作为参考点响应标签的测量命令之外(这部分不再赘述),实时接收标签发送的测量数据,并将测量数据缓存后通过串口发送给上位机。以上循环进行。见图7所示。
上述代码实现后,使用UWB产品官方提供的测试软件,适配室内地图后,可看到如图7效果,0/1/2/3是4个基站,中间是ROS车运行定位轨迹显示,符合实际情况。
图7 UWB基站0程序
图8 室内ROS车运行定位轨迹
采用UWB技术,实现了对行进中ROS机器人小车的精确定位,测得精度为0.1m,与基于激光SLAM的机器人定位导航处于同一量级。在此基础上,接下来可与SLAM、深度摄像头等联合使用,进一步提高ROS车的定位精度和智能化水平。