最近一直在研究UWB室内定位,我们组买了DECA的两块板子,就两块板子就花去了1000多大洋,而且给的代码还是入门级的可想而知UWB室内定位在我国尚且处于发展的萌芽状态,最近在读官方给的文档时发现之中尚且有许多资料需要自己去买,价格不菲。就UWB定位的前景而言,国内虽然尚未普及,但是由于科学的发展不断的进步,室内定位应该在不久的十年之内得到发展,与wifi和蓝牙的定位技术相比,uwb的定位精度算得上是高的了,据说可以达到分米级,不过就现有的芯片DW1000而言,我觉得他的功耗和定位的稳定度都还不太好,测量的时候必须要远离桌子等等15公分以上才回比较准确,这些以后可能会的到改善。因为要看的东西太多,而且都是英文的,我想通过博客把这些知识记下来,方便以后查看。废话不多说,进入正题。
今天看的文档主要的讲的定位算法有两种:TWR(Two-Way Ranging)和TDOA(Time Difference of Arrival )。
一、TWR的系统
流程:
在官方给的文档中有专门讲解定位的方法的,TWB被认为是双边测距定位系统,通过下图中标签和基站的通信,可以获取标签和基站的距离,图中存在着几种信息类型:poll message、blink message、response message、Final message、ack message等。
下图中展示的是双边测距的过程:标签先发送携带自己ID的眨眼信号(blink message),主机收到信号后予以回应,然后标签将自己的三个时间数据回传到基站,期间的时间数据也即芯片计数值是被保存的,基站最后得到两组数据:标签测出的时间距离值(TRR-TSB)/2以及基站测出的时间距离值(TRF-TSR)/2,求取平均值后与光速的差就是距离值,当然,考虑到设备延时,最后的计算公式为:[(TRR-TSB)-(TSR_TRB) + (TRF-TSR)-(TSF-TRR)]/4,至此,测距完成。
功耗优化: 文档中对功耗的讲述比较多,官方应该是重视低功耗的。通信过程中的休眠会减少电量的消耗,适当的通信策略在众多标签的同行中有突出的表现,下面是在不同的状态下的能耗情况。
如图一所示,Slave一直处于监听状态,主机发送数据之后从机会发送回应,这种状态由于主从机之间的通信时间是随机的,所以从机必须一直处于监听状态,所以能量消耗比较大;
当从机变得多起来时,如图所示,由于接收数据并且对比地址会增加能量消耗,所以红色部分会增加不必要的能量损失,对此在软件方面可以通过判断地址不匹配后进入休眠状态,因此可以减少部分能源消耗。
图三设置了主从机同步,从机会在主机发送数据之前的一段时间唤醒设备,曾被接收数据,数据及收完毕之后再次进入休眠状态,这将极大的节省电能,但是也需要复杂合理的协议支撑,比较麻烦。
上图对比位同步状态的情况,可以看到红色部分的能量少了许多,同步通信的优势在大规模的从机通信上的能耗优势在这里得到很好的体现。
二、TDOA系统
流程:
TDOA在定位系统中实现更加简洁,但是也更麻烦,他要求基站间的时间同步,这是有算法本身决定的。TDOA全称是到达时间差的意思,也就是说标签是间隔固定的时间向四周广播Blink Message,这个信息包含了标签自己的ID值。当附近至少有三个基站收到这一信息时,由于本身基站的时间是可以看作一致的,这时就可以根据三个基站的时间差推断出标签当时的位置。因为这三个基站的具体位置都是已知的,因此以标签的坐标为圆心,必有一圆和最近的基站相切,并且与另外两个以基站为圆心,以各自的时间差的光距为半径的圆相切,这样就能确定标签的距离。
这时基站要做的事情就更简单了,每个基站就接收,报告时间差,剩下的就交给位置引擎去处理了。
功耗优化:标签隔一点时间发送数据,之后大部分时间都在休眠,因此电量损耗低不少,基站因为要进行同步,损耗比标签大。