DWM1000模块的UWB机器人室内定位系统*

2018-12-07 08:32,,
单片机与嵌入式系统应用 2018年11期
关键词:测试数据移动机器人原理图

,,

(1.浙江树人大学 信息科技学院,杭州 310015;2.史陶比尔(杭州)精密机械电子有限公司)

引 言

室内移动机器人定位是移动机器人设计的关键技术,由于室内环境GPS定位无法正常运行,主要采用激光导航SLAM定位方法、视觉定位方法。激光导航SLAM定位、视觉定位传感器价格昂贵,数据处理计算量大,实时性较差,目前应用成本较高,而且对于复杂环境,这两种方法不能提供很好的定位精度。所以,这里提出了采用UWB技术来实现室内复杂环境下的移动机器人定位。

1 UWB定位基本原理

UWB(超宽带)定位是近年来发展起来的一种定位方式,使用极窄的脉冲信号或者极宽的频谱带宽信号进行信息传递,具有穿透能力强、定位精度高等优点,具有厘米级的定位能力[1-2]。

UWB定位的常用方法有基于到达时间(TOA)、基于到达时间差(TDOA)、基于到达角度(AOA)、基于接收到信号强度指示(RSSI)4种[3-5]。这里采用TDOA作为UWB的定位方法。

到达时间差法TDOA的原理是通过测量不同基站接收同一个移动站定位信号的时间差,从而计算出同一个移动站到不同基站的距离差。知道移动点到不同基站的距离差,就可以通过三边定位法求得移动点的位置。

UWB定位的基本原理采用三边定位法[6],已知三点位置(x1, y1)、(x2, y2)、(x3, y3),已知未知点(x0, y0)到三点距离d1、d2、d3,以 d1、d2、d3为半径作三个圆,根据毕达哥拉斯定理,得出交点即未知点的位置计算公式:

上式通过最小二乘法求解最小方差得到坐标信息。

可以得到矩阵Hx=b,其中:

最终解为:x=(HTH)-1HTb。

2 系统总体架构

本设计为UWB定位系统。系统以STM32F103C8为主控制器,使用DWM1000模块进行通信,使用TOF算法测得两模块之间的距离。本系统由一个标签和三个基站组成,在标签分别得到三个基站的距离后,通过三边定位用最小二乘法求解得到坐标。

3 系统硬件设计

3.1 UWB定位模块设计

UWB定位模块采用DWM1000模块,可以通过控制相关寄存器实现工作状态的切换;采用SPI总线与主控芯片接口,速率最高达20 MHz;具有很好的抗多径干扰能力,非常适合室内复杂环境的定位应用。DWM1000模块由收发器、模式变换器、状态控制器、SPI接口电路组成,其原理图如图1所示。

图1 DWM1000模块原理图

DWM1000模块核心控制引脚有CS、SI、SO、SCLK,功能定义如表1所列,这里DWM1000模块为从设备,STM32F103为主设备。

表1 DWM1000模块核心控制引脚

3.2 主控制模块设计

主控制模块采用STM32F103C8芯片,工作频率为72 MHz;具有36个快速I/O端口,所有I/O口均可以映像到16个外部中断;配置有3个USART接口、1个CAN总线接口、2个I2C接口、2个SPI接口、2个I2S接口、1个USB接口;拥有2个12位模/数转换器,可以实现单次或者多次扫描转换;内部包含8个16位的定时器;采用LQFP48封装,具有体积小、易于集成的优势。

这里采用STM32F103C8的SPI总线接口实现对DWM1000模块的控制,主控制模块的原理图如图2所示。其中CS、SCLK、SO、SI为STM32F103C8的SPI数据总线;SW1、SW2、SW3、SW4为拨码输入,设置UWB定位模块的节点号;RXD、TXD用来实现外接无线模块,实现与上位机的无线通信;CAN_TX、CAN_RX为STM32F103C8的CAN总线接口,用来实现板级互联;SWCLK、SWDIO用来实现控制程序的SWD方式下载。

图2 STM32F103C8原理图

4 系统软件设计

系统软件采用的开发平台为Keil公司的Keil5,STM32F103采用SPI总线控制UWB定位模块DWM1000,主要软件模块有串口通信模块、SPI通信模块、时针模块、中断模块、定时器模块。STM32F103控制UWB定位模块的SPI控制时序图如图3所示。

图3 UWB模块SPI控制时序图

通过SPI时钟极性(CPOL)和时钟相位(CPHA),STM32F103可以实现4种SPI模式。时钟极性CPOL=0时,SCLK在空闲状态为低电平;时钟极性CPOL=1时,SCLK在空闲状态为高电平。时钟相位CPHA=0时,数据线信号会在SCLK的奇数边沿采样;时钟相位CPHA=1时,数据线信号会在SCLK的偶数边沿采样。

这里采用时钟极性CPOL=0,时钟相位CPHA=0模式,SCLK在空闲状态为低电平,数据线信号会在SCLK的奇数边沿采样。SPI总线单次传输8位,高位MSB在前,这个可以通过STM32F103的SPI初始化程序配置,配置程序如下:

SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;

SPI_InitStructure.SPI_Mode=SPI_Mode_Master;

SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;

SPI_InitStructure.SPI_CPOL=SPI_CPOL_Low;

SPI_InitStructure.SPI_CPHA=SPI_CPHA_1Edge;

SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;

SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_32;

SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;

SPI_InitStructure.SPI_CRCPolynomial=7;

SPI_Init(SPI1, &SPI_InitStructure);

其中SPI_Mode 设置STM32F103为主设备模式,SPI_DataSize 设置单次输出8位,SPI_CPOL设置SPI时钟极性为低电平,SPI_CPHA设置SPI为奇数边采样,SPI_FirstBit设置SPI通信为高位MSB在前。配置完这些SPI_InitStructure的结构体成员后,只需要SPI_Init()函数就可以把这些参数写入寄存器中。

5 实验与结果

通过在室内实验场地每隔2 m画一个测试点,测试距离范围为0~40 m,UWB定位节点安装在移动机器人上,测量到的数据通过板子里面的无线模块发送到电脑,电脑采集定位数据并同时显示在上位机界面,测试数据如表2所列。上位机界面通过C#软件开发。

提取到距离数据后,就可以通过相应算法实现定位点坐标测量,测试数据如表3所列,可以保证±5 cm的定位精度。

表2 测距测试数据

表3 定位测试数据

坐标测试效果图如图4所示,○为设计坐标点,*为系统定位结果。

图4 UWB定位点测试效果图

结 语

激光SLAM定位、视觉SLAM定位的计算复杂、传感器成本过高、实时性差,本文针对这些缺陷,提出了通过UWB定位技术来实现室内移动机器人的定位,构建了实际的软硬件平台,完成了相关的实验,验证了UWB定位技术在室内移动机器人方面的可行性。实验结果表明,本系统具有高稳定性、高精度,可以很好地满足室内移动机器人的定位要求。

猜你喜欢
测试数据移动机器人原理图
移动机器人自主动态避障方法
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
测试数据管理系统设计与实现
基于Twincat的移动机器人制孔系统
基于自适应粒子群优化算法的测试数据扩增方法
空间co-location挖掘模式在学生体能测试数据中的应用
关于EDA教学中Quartus II原理图输入法的探讨
极坐标系下移动机器人的点镇定