手上有一对 DecaWave的一套 DWM1002 (Node)/1003(Tag)的 PDoA Kit.
相应的开发工具和文档
-
Thank you for your interest in our Beta PDoA Kit.
-
-
The self-extracting software package containing Software, Schematics,
-
User Manual and other collateral can be downloaded here:
-
-
Version 1.1
-
-
https://www.decawave.com/wp-content/uploads/2019/08/BETA_PDOA_KIT_RELEASE_1.1.exe
-
-
Version 2.0
-
-
New features:
-
SDK was changed to nRF5_SDK_16.0.0_98a08e2
-
DWM1003 Tag:
-
1)IMU sensor enabled, Tag switches from high to low update rate if not moving
-
-
Known issues DWM1002 Node:
-
1) USB Drivers for Nordic have given problems on Windows 7 machines
-
2) GUI cannot find the Node during startup. Possible fix: start a
-
terminal program like TeraTerm or Putty, connect to the Node’s Virtual
-
COM Port (USB Serial Device), close the terminal program and start the
-
PC GUI Application.
-
-
Also it is possible to use Tag’s FW v5.0.0 (from Release 2.0) with
-
Node’s FW 4.2.0 (from Release 1.1)
-
-
-
https://decawave.com/wp-content/uploads/2020/04/BETA_PDOA_KIT_RELEASE_2.0.EXE
-
-
For technical support please contact us at: csupport@decawave.com or
-
check out our forum: https://decaforum.decawave.com
DWM1002 有一对很漂亮的大眼睛
DWM
1003 Tag有很酷的 CP-Wings天线, O(∩_∩)O哈哈~
基于DW1000 IC. 通过 two-way TOF测量得到 ±10cm误差的距离检查.
环境搭建:
1. DWM1002有两个usb口, 使用PC GUI程序时需要连接的USB module口, 接开发板是连接 USB Dev口.
先把node 和 tag 正面相对, 打开 pc gui程序.
1. 配置: GUI点击 Joined选显卡上勾选要入网跟踪的Tag标签设备.> 标签设备则会动态出现在显示区域内.
2. 校准过程的前置要求
-
尽量在同一高度.
-
天线是垂直相对的.
-
两者是视觉无阻碍的.
校准:
-
把tag防止node 的前面 3m处.
-
点击 按钮 和 的弹出窗口按钮.
-
选在Tag, 点击 OK.
-
输入距离值,然后OK
-
等待精度条到100%时, 说明系统训练OK.
算法方案可以设置 motion Filter, 让原始的定位数据有个相对平滑的结果(因为实际测试下来,校准后仍然会有较大的跳动). 结果的影响: 板子温度
GUI工具可以设置地图文件, 让位置显示更直观.
我们最终的使用方式为
1. tag 在人身上走动.
2. node 在机器人上, 判断tag的方位和距离.
3. 机器人计算tag周边的安全位置, 并导航到该位置.
4.
机器人判断tag的前后位置发生了重大改变(移动超过1m), 则重复动作2.
所以
1. 首先 需要从node端获取 tag的位置. 因为是评测, 则直接从 module application 接口实现.
输出结果为JSON格式, 通过TLV封装数据.
-
DWM1002 Node App-Level Interface
-
1. 115200 8 1 N
-
2. stop\#10 --> ok\#13\#10\#10
-
3. deca$ \x0A --> JS0089{"Info":{\#13\#10"Device":"PDOA Node",\#13\#10"Version":"4.2.0",\#13\#10"Build":"Aug 27 2019 16:13:30",\#13\#10"Driver":"DW1000 Device Driver Version 04.01.01"}}\#13\#10ok\#13\#10
-
4. stop\#10 --> ok\#13\#10
-
5. jstat\#10 --> JS009A{"System Config":{\#13\#10"ADDR":"0001",\#13\#10"PANID":"DECA",\#13\#10"NUMSLOT":10,\#13\#10"SLOTPER":10,\#13\#10"SFPER":100,\#13\#10"REPDEL":1000,\#13\#10"P2FDEL":3500,\#13\#10"RCDEL":1000,\#13\#10"SMTX":0}}\#13\#10JS0030{"Run Time":{\#13\#10"UART":0,\#13\#10"AUTO":1,\#13\#10"PCREP":1}}\#13\#10
-
JS00A4{"Calibration":{\#13\#10"ANTTXA":18124,\#13\#10"ANTRXA":14829,\#13\#10"ANTTXB":18124,\#13\#10"ANTRXB":14829,\#13\#10"PDOAOFF":154,\#13\#10"RNGOFF":174,\#13\#10"ACCTHR":50,\#13\#10"ACCSTAT":5000,\#13\#10"ACCMOVE":1000}}
-
\#13\#10ok\#13\#10
-
6. getKList\#10 --> JS0062{"KList":[{"slot":"0001","a64":"082261444D83CB15","a16":"4096","F":"0001","S":"0064","M":"0001"}]}\#13\#10ok\#13\#10 //判断是否已经有join过的tag.
-
7. node 0\#10 --> ok\#13\#10 开始持续性的 TWR信息回馈.
-
-
.. JS006B{"TWR": {"a16":"4096","R":66,"T":12542,"D":300,"P":148,"Xcm":-8,"Ycm":300,"O":253,"V":1,"X":0,"Y":0,"Z":0}}\#13\#10
-
-
//手动添加标签
-
addtag 082261444d83cb15 4096 0001 64 01\#13\#10 + save\#10 // 0001-> 10Hz 0002: 5HZ 0005:2HZ 000a=1Hz 0032=0.2Hz --> M=01为使用imu. 使用imu时上报频率会较低.
-
反馈
-
JS0064{"TagAdded": {"slot":"0001","a64":"082261444D83CB15","a16":"4096","F":"0001","S":"0064","M":"0001"}}\#13\#10ok\#13\#10 --> F:移动时上报频率 10进制, S:静止时的上报频率 10进制. M:掩码. bit0:使用IMU判断静止或者移动. 为0是则使用F的值.
JS0064: JS为类型 json 0064 hex代表字节长度. {xxx} 为0x64 = 100字节的内容.
-
TWR:
-
a16 : Tag 短地址 hex
-
R: 流水号 10进制.
-
T: 开机时的时间 us 10进制.
-
D: 距离 cm. 10进制, 整形.
-
P: 角度, 10进制 度.
-
Xcm/Ycm: tag的坐标位置.
-
-
结果的坐标系为: 以Node为原点, X轴正为左, Y轴正为后, 即Y数值永为负值.
阅读(2515) | 评论(0) | 转发(0) |