_SKU_DFR0527__UA 100&UM 208室内UWB定位套件 - jimaobian/DFRobotWikiCn GitHub Wiki

UA-100&UM-208 UWB室内定位套件

简介

此机器人定位系统采用TOF定位方式,具有高精度高功率的特点,其定位精度可达5cm,主要用在高精度定位。采用了UWB脉冲无线电定位技术,抗干扰能力强,传输效率高,发射功率小,延长了电源的工作时间,其产生的电磁辐射对人体的影响也很小。通过此定位系统,您可以自行设定室内机器人坐标来进行各种应用和设计,此款套件可以提供给您前所未有的精度和稳定.

DFR0527连接示意图.png

用机器人定位标准架构,其由 4 台 UA-100 作为 Anchor(基站),1 台 UM-208 作为Tag(标签)。基站与标签的测距数据会在标签(UM-208)的主板进行运算以得到定位数据,该位置信息通过标签自带的 Wi-Fi 发送至客户端PC(电脑)。
PC上安装的定位软件会将收到的数据报文进行解算并传送得出的结果到软件显示窗口。

技术规格

  • 输入电压:UM-208(标签):DC 【12V】 ; UA-100(基站):DC 【12V-15V】 USB【5V】
  • 尺寸大小:UM-208(标签):116 x 98 x 38mm ; UA-100(基站):129 x 101 x 26mm
  • 工作温度:-20℃~65℃
  • 存储温度:-30℃~75℃
  • 测距精度:5厘米(1万次标准差)
  • 覆盖范围:单个基站通信距离30米,整体范围视摆放情况而定
  • 平均功耗:<1W(无wifi连接) <2W(有wifi连接)
  • 接口:DC(供电口), Mini-USB, SMA(USB)
  • 外置全向天线

引脚说明

image:标签.jpg|标签板UM-208外观图 image:基站.jpg|基站板UA-100外观图

UM-208接口

标签板UM-208接口示意图

上到下依次为:

UART输出

直流12V电源输入

232串口输出

485串口输出

UART输入 |

  • 802.15.4a UWB天线
  • 视距工作距离大于100米
  • 双CPU,多应用接口(TTL/RS232/485)
  • 外置全向天线
  • 输出功率-24dBm/MHz
  • 使用DC12V供电
  • 串口输出提供解算的信息

UA-100接口 [[File:UA-100接口图.png|标签板UM-208接口示意图

]]

从左到右依次为:

直流12V电源输入

USB 5V输入&串口数据输出 |

  • 802.15.4a UWB天线
  • 视距传输距离30米
  • 外置全向天线
  • 输出功率-41dBm/MHz
  • 使用DC12V或USB5V供电

使用教程

准备

设置教程

UA-100可通过 USB-5V以及 DC12V 两种供电方案进行供电;UM-208采用12V供电,使用前需要用电脑连接标签wifi

  • UA-100布设

           注意:UA-100架设位置应在高度不低于 160cm 相对空旷位置,不要紧贴墙角及金属物体,天线应垂直于地面,四台基站应尽可能布设为规则矩形以获得更高精度            架设完毕后需对各基站逐一进行位置坐标测定并记录测绘原则为以地图左上角顶点为坐标原点,右向为X轴正向,下方向为Y轴正向.

  • '''UM-208布设 '''

           UM-208 需采用 DC12V 供电。            注意:安放位置应尽可能高并远离金属物体以减少遮挡及干扰造成的精度影响,UWB 天线应垂直地面.

  • 计算机连接设置

           计算引擎可使用家用 windows 系统电脑,安装本公司产品软件后即可使用。            配置方式:用户需要将电脑连接至 SSID 为 woxulocation 的无线网络,密码为 woxu12345678,本机无线网卡 IP 需设置为 192.168.1.118,网关设置为 192.168.1.1            连接完成后,需打开防火墙对于定位系统软件的网络限制,打开控制面板-系统及安全-windows 防火墙-允许应用通过防火墙进行配置.

软件配置

打开 WxRobotLocal 上位机所在文件夹,将准备好的地图文件拷贝至该文件夹(非必须)。双击打开 WxRobotL.ini 进 行软件配置,具体需修改的配置项如下:

需修改配置项 说明 格式
anchorname 基站id以及对应显示名次 基站 ID=显示名称
anchorpos 基站的位置,格式为“x,y,z”,单位为米 基站 ID=X,Y,Z
tagname 标签 ID 及对应显示名称 标签 ID=显示名称
tagheight 标签高度,单位为米 标签 ID=Height
tagip 标签 IP,用于下发基站坐标 标签 ID=192.168.1.11(一般出厂IP为11)
trackcolor 轨迹点颜色,格式为 red,green,blue,分别为RGB颜色的RGB分量 标签 ID=red,green,blue
showmap 送显的地图 showmap=*.jpg
maprect 地图的实际位置(左,上,右,下),单位为米;程序会按照前面设置的显示比例,调整地图在屏幕上显示的大小和位置 maprect=0.00,0.00,测绘所得横向(X)宽度,测绘所得纵向(Y)长度

显示界面分为以下几部分:

显示.png

1、UDP 接收端口,默认 44333,点击打开后会抓取 44333 端口下的 UDP 报文并提供给定位引擎解算.

2、设备栏,显示设备相关信息.

3、位置计算,点击开始后,定位引擎会将解算结果呈现到地图上.

4、接口数据,主要查看收发报文内容.

5、日志显示内容,主要用于查看操作记录,收发报文和定位数据.

6、地图窗口,主要呈现出定位效果。可以点击鼠标左键拖动地图.

点击“打开”打开 UDP 端口开始抓取报文。点击“设备”对应下拉框选择标签 ID,点击“操作”对应下拉 框选择“预设基站位置”,然后点击“确定”。点击左下角“日志显示内容”后下拉框,选择“收发报文”, 此时右侧下部窗口开始快速打印原始报文,此状态说明设备工作正常。检查地图送显定位信息是否 正确,若不正确查看报文中缺少那些基站报文,对应检查该基站工作是否正常.

DFR0527(1).png

演示效果

根据下图所示,将标签置于桌子中心,基站放置于4个桌角位置按照上述教程完成配置.

定位标签_-_信号-01.jpg

结果如下图中中心点即为标签,坐标单位为米. DFR0527结果.png

数据读取

通过连接UM208的UARTOUT(标准3.3V TTL)的RX TX GND,波特率115200,可获取相应的串口数据.

[[File:定位串口数据.jpg|串口数据格式

]]

串口读取程序示例

/*!
 * @file DFR0527.ino
 * @brief UWB-based robot location system for indoor
 * @n This example demonstrates how to read current coordinate data value
 *
 * @copyright   [DFRobot](http://www.dfrobot.com), 2016
 * @copyright   GNU Lesser General Public License
 *
 * @author [Xiaoyu]([email protected])
 * @version  V1.0
 * @date  2018-01-30
 */
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);       // RX, TX 定义软串口用于接收标签板坐标数据
int YCTa = 0, YCTb = 0,XCTa = 0, XCTb = 0,YCT = 0,XCT = 0;
int Y=500 ,  X=500;                    //此处需要定义标签的大概初始坐标用于校准
char col;                              // 用于存储从串口读到的数据
unsigned char buffer_RTT[18] = {};     //存储读取的数据�
void setup()
{
  mySerial.begin(115200);
  Serial.begin(57600);
}

void loop()
{
    if (mySerial.read()== 0x57)        //读取数据包头
     {
      for (int j = 0; j < 18; j++)
      {
        col = mySerial.read();
        buffer_RTT[j] = (char)col;
        delay(2);
       }
      mySerial.flush();
      if(buffer_RTT[2]==0x0C)
       {
        if(buffer_RTT[5]==0x20)
         {
          if(buffer_RTT[10]==0x64)     //校准读取到的数据
           {
            YCTa = buffer_RTT[9];      //读取Y坐标高八位数据
            YCTb = buffer_RTT[8];      //读取Y坐标低八位数据
            YCT = (YCTa << 8) + YCTb;
            delay(1);
            if(YCT-Y<500&&Y-YCT<500)
              {
               Y=YCT;
               }//消除数据抖动
            XCTa = buffer_RTT[7];      //读取X坐标高八位数据
            XCTb = buffer_RTT[6];      //读取X坐标低八位数据
            XCT = (XCTa << 8) + XCTb;
            delay(1);
            if(XCT-X<500&&X-XCT<500)
              {
               X=XCT;
               }//消除数据抖动
      Serial.print("X:");              //串口输出X,Y坐标
      Serial.print(X);
      Serial.println("cm");
      Serial.print("Y:");
      Serial.print(Y);
      Serial.println("cm");
           }
         }
       }
      }
}
注意:在读取坐标前需要先按照之前的教程设定好基站并用软件告知标签基站位置,并且设定好标签大概位置。

常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

| 更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。 |

更多

DFshopping_car1.png DFRobot商城购买链接