使用主动式RFID标签进行出入(到达/离开)检测

11
实际上到达是相当简单的,标签进入接收器天线范围内,但出发是导致问题的原因。
首先介绍一下我们的设置信息。 标签: 它们在433Mhz工作,每1.5秒发送一个“心跳信号”,在运动中进入传输爆发模式,持续时间与其移动时间一样长。 它们会传输其ID、传输序列号(从1到255,重复循环)、使用时间以及运动传感器的输入(如果有的话)。我们无法对它们进行任何控制。它们会一直做它们应该做的事情,直到电池死亡。而且它们被密封起来了。
接收器将所有数据和标签的信号强度转发给我们的软件。软件可以与多个接收器配合使用。目前我们正在使用全向天线。 我们如何确定标签已经离开了建筑物? 问题:
  • 有时两个或更多标签同时发送“心跳信号”,但没有接收到信号。随着标签数量的增加,这些冲突会越来越频繁,这个问题通过标签随机改变其“心跳率”(在几毫秒内)以避免冲突来解决。问题是我不能依赖标签在一定时间内不进行“注册”作为离开的迹象。这可能是由于冲突引起的超时。由于这些冲突,我们不能保证每个“心跳信号”都会被接收。
  • 标签制造商建议我们使用两个接收器,并将它们设置为标签通过的门。根据标签通过“门”的顺序,我们可以确定它们的运动方向。我们全向天线的问题在于,有时标签信号会弹回建筑物,然后到达接收器。因此,根据信号强度,它看起来比实际位置远。
有没有办法解决我们如何可靠地确定标签是进入还是离开?我们也可以以不同的方式设置天线。
我编写了解释接收器数据的软件,因此可以以任何方式操纵它。但是我无法想出如何解释信息以获得所需的可靠性。

目前唯一的想法是尝试方向天线吗?但我想尝试我们目前拥有的所有选项。

此外,任何涉及主动RFID标签的文献建议都非常受欢迎,我找到的大多数书籍都处理被动标签解决方案。


信号的范围是多少?换句话说,标签距离接收器有多远才能可靠地被检测到?标签通常保持运动状态(或频繁移动)吗?您需要实时检测存在并需要什么分辨率?换句话说,知道标签在过去N分钟内何时离开是否可以接受? - Adam Liss
信号范围取决于接收器上使用的天线类型,但假设它大约为250英尺。标签在离开场所时处于运动状态。目前我不知道可接受的时间范围是多久,一旦我了解到会立即添加。 - Alexxandar
可接受的时间为3分钟内。 - Alexxandar
你能否从两个“门”读卡器中获取标签的方位角?如果可以,您可以在信号强度在x个心跳内逐渐减弱且处于一定方位范围内时将标签计数为已离开。不确定读卡器的功能是否支持此操作。 - Kobunite
3个回答

14
作为一个高层次的声明,如果您需要跟踪离开您网站的物品,那么您的RFID技术可能不适用。您拥有的技术更适合于在大区域内对位置跟踪标签进行跟踪,例如工厂车间。尽管如上所述,这是我的看法:
一个好的主动式RFID方法是将您的区域分成与业务流程相关的区域,例如:
  • 仓库
  • 装货区
  • 包装

标签进入区域代表启动新流程或结束当前标签所在流程的末端。例如,从仓库移动到包装表示组装发货,移动到装货区则启动了一次发货。

许多RFID实现的关键在于安装和配置RFID基础设施以:

  1. 映射标签->资产(已完成)
  2. 映射标签读取->区域(并由此推断资产->区域)
  3. 将区域之间的移动映射到业务流程中的步骤(因此了解何时资产离开站点是您的目标)

有许多考虑因素:433MHz信号的物理特性、天线位置、天线灵敏度以及一些供应商的技巧。在优化站点配置之后,您可能需要对标签读取进行一些处理技巧。

脏数据

请注意,标签读取数据可能会存在干扰 - 来自未屏蔽电机、电线等的射频干扰、天气条件以及对标签的物理操作(例如覆盖金属)都是经常发生的。记住RSSI就像股票行情一样 - 在宏观趋势之上有很多随机的微观经济噪音。要解释移动,请计算一组读数的线性回归,而不是依赖于特定读数的RSSI。如果您确实看到一个标签以高RSSI广播,然后降至中等水平,然后消失了,您可以将其解释为标签正在离开接收器的范围。这是否是场外?好吧,您需要考虑现场的布局(区域)和区域内接收器的位置。
三角定位
编辑:我错误地使用了“三角定位”这个术语。这是指通过已知它从两个或三个已知位置所成的角度来确定某物体的位置。在RFID中,您使用距离,因此被称为 '三边测量'
根据我的经验,销售您所描述的标签技术的供应商拥有服务器软件,使用接收到的RSSI确定标签的绝对位置。使用此类软件,您应该能够获得标签在1-10米内的位置。然后很容易确定标签是否正在离开现场。
要自己编写代码:
首先,每个标签在移动时都会发出ping信号。这些ping信号几乎同时到达接收器并发送到服务器。但是,信息有时可能以错误的顺序或与其他接收器的早期和后期读取交错到达。为了帮助相关ping信号,ping信号包含一个序列号。您要查找来自同一标签、具有相同序列号的标签读数,并由三个(或更多)接收器接收到的读数。如果超过三个,则选择三个具有最大RSSI的读数。
距离是基于RSSI近似计算的。这不是线性的,而且受到非平凡随机变化的影响。快速谷歌搜索得出:

enter image description here enter image description here

给定三个大致距离,从三个已知点(接收器位置)可以使用使用3个纬度和经度点以及3个距离的三边测量解决标签的近似位置。
现在您拥有标签的绝对位置。您可以使用这些位置来跟踪标签的绝对移动。
为了使其有用,您应该将接收器放置在物理站点边界附近,以便可靠地检测标签。然后,您应该确定一个“地理围栏”,在接收器范围内围绕您的站点。我会编写一条业务规则,声明:
- 如果标签的最后已知位置在地理围栏之外,并且 - 从标签读取的标签未在(例如)10秒内被检测到,则 - 声明标签已离开站点。
通过使用三边测量和地理围栏,您可以将业务逻辑仅集中在接近失效的标签上。如果您从这样的标签那里无法收到1.5秒的ping几次,那么该标签很可能已经超出了接收器的范围,因此离开了现场。
您已经意识到标签读取有时可能来自反射。如果您有很多这些内容,则您的三边测量将非常差。因此,在相当大的开放空间和最小化反射器的情况下,此方法效果最佳。
一些RFID供应商已经将所有这些功能内置到其服务器中 - 编写自己的代码处理这些功能是(显然)不容易的。
使用广域接收器进行区域设计
区域的逻辑设计可以帮助业务逻辑层。例如,假设您有两个区域(A和B)和两个接收器(1和2):
     A           B
+----------+----------+
|          |          |
|    1     |     2    |
|          |          |
+----------+----------+

如果你从接收器1处读取到标签,然后又在接收器2处读取到一个标签,你会如何解释这种情况?是标签T移动到了B区域,还是只是在接收器2的极限范围内被读取到了?

如果你稍后在接收器1处再次读取到标签,那么标签是回到原来的位置,还是一直没有移动?

更好的物理解决方案是:

     A           B
+----------+----------+
|          |          |
|   1      2      3   |
|          |          |
+----------+----------+

在这种方法中,从A到B移动的标签将从以下接收器中获取读取:
1      1   1   2  1  2  2 3 2  2 3  2  3  3  3  3      3  
             -------> time 

From a programming logic point of view, a movement from A -> B has to traverse reads 1 -> 2 -> 3 (even though there is a lot of jitter). It gets even easier to interpret when you combine with RSSI.
Portal design with directional receivers
You can create quite a good portal using two directional receivers (you will need to spend some time configuring the antenna and sensitivity carefully). Mount a receiver well above the door on both sides. Below is a schematic from the side. R1 and R2 are the receivers (and the rough read field is shown), and on the left is a worker pushing an asset through the door:
            ----> direction of motion

        -------------------+----------------
                     R1    |    R2
                    /  \   |   /  \
           o       /    \     /    \
           |-++   /      \   /      \
           |\++  /        \ /        \
  ------------------------------------------

您应该得到类似于这样的读取模式:

 <nothing>    1   1   1 1  1  12  1 21 2 12 2 1 2 2   2  2   2   <nothing>
             -------> time 

这表明了从接收器1到接收器2的移动。
“路标” Savi 实现通常使用“路标”来辅助定位。路标发射出照亮小区域(如门口)的 123KHz 光束。路标还会传输一个唯一的编号来标识自己(例如左门可能是 1,而右门可能是 2)。当标签通过光束时,它将被唤醒并重新广播号码。读取器现在知道标签通过哪个门。
注意周围环境中的金属物体。123KHz 很容易沿混凝土墙中的钢筋、金属栅栏和铁轨传输数百米,我们曾经由于这种效应而看到标签报告距离路标数百米。
通过这种方法,您可以像对待被动式一样实现门户。
“模拟路标”
如果您无法使用路标,则有一个不太正规的解决方案:
1. 将被动式 RFID 标签粘贴到您的主动式 RFID 标签上 2. 在每个门口安装一个被动式 RFID 读写器
Passive RFID在受限空间中表现非常出色,因此该实现可以很好地工作。这个解决方案可能与您的主动RFID供应商成本相同(或更便宜)。
如果您聪明的话,可以使用EPC GIAI命名空间用于被动标签ID,并将其与主动标签ID一起烧录。这样,主动和被动标签将具有完全相同的名称。
物理考虑:
433MHz标签具有一些有趣的特性。构造良好的接收器可以读取大约100m内的标签,这对于RFID来说是一个很长的距离。此外,433MHz可以很好地包裹障碍物,尤其是金属障碍物。我们甚至可以读取在50公里/小时行驶的汽车的后备箱中的标签 - 信号从橡胶密封处传播。
在安装读写器以监视区域时,必须非常仔细地调整其位置和灵敏度,以最大限度地读取您区域内的标签,并同时最小化来自您区域外部的读取。这可以通过硬件或软件配置来完成(例如删除所有低于特定RSSI的读取)。
一个想法是将接收器移开到您的标签即将退出的区域,如下图所示(R表示读写器):
+-------------------------+-----------+
|       Warehouse         |    Exit   |
|                         .           |
|                         .            
|  R                      .          R   --->
|                         .            
|                         .           |
|                         |           |
+-------------------------+-----------+

我建议进行RF站点调查,并花足够的时间来正确理解标签和读卡器在区域内的工作方式。正确安装物理设备至关重要。

另一件要做的事是考虑物理限制,如走廊和门口,并将其视为阻塞点 - 将逻辑区域映射到它们。放置一个读卡器(带有定向接收器调整以覆盖瓶颈)和较低的灵敏度来覆盖瓶颈。

没有标签读取实际意义

如果我的RFID经验教给我任何东西,那就是你随时可能会得到虚假读取,因此你需要对所有情况保持怀疑态度。例如,您可能会发现某个标签几秒钟内没有读取 - 这可能意味着任何事情:

  1. 用户意外将金属罐放在标签上方
  2. 铲车挡在标签和读取器之间
  3. 射频冲突
  4. 短暂的网络拥塞
  5. 电池耗尽或衰减(记得检查标签读取中的低电量标志,并确保企业有替换旧标签的流程)。
  6. 标签被推入托盘而被摧毁
  7. 被某人盗走,想要将其转售为废品(不是开玩笑 - 这确实发生过)
  8. 哦,对了,可能是标签离开了现场。

如果在5分钟内没有收到标签的消息,则很可能它已经离开了现场。

在大多数您使用此主动标签技术的业务流程中,在系统决定标签离开现场之前进行短暂延迟是可以接受的。

结论

  1. 现场调查:花时间在不同位置尝试读取器。拿着标签在场地周围走动,看看实际得到的读数是什么。用这个来:
  2. 逻辑分割你的站点成区域,并将接收器定位在最准确的位置以定位标签在区域中的位置
  3. 使用多个接收器更容易确定区域之间的移动;如果可能的话,将物理限制(如门和走廊)作为门户进行测试。作为 RFID 实施的一部分,您甚至可能希望安装新的墙壁或栅栏来创建这样的限制。考虑使用被动式 RFID 门户。
  4. 注意金属,特别是大面积的金属。
  5. 你有脏数据。你需要对 RSSI 进行线性回归,以便在短时间内发现趋势;你需要能够原谅少量缺失的标签读数。
  6. 确保有业务流程处理电池的死亡和标签突然消失的情况。

最重要的是,通过在最佳位置安装接收器并仔细配置它们来解决这个问题,然后再正确地处理软件。试图用软件解决不良的现场安装问题可能会导致过早老化。

披露:我曾在一家主要的主动 RFID 供应商工作了8年。


三角剖分并未被考虑,但也不排除使用它。如果您能告诉我如何使用它,我将非常感激。同时感谢您提供了非常全面的答案。 - Alexxandar
@Alexxandar:我已经更新了我的答案,解释了三角测量。而且,呃!发现它实际上被称为三边测量。 - Andrew Alcock

1
使用定向天线似乎是更可靠的选择,但这显然取决于您场所的精确布局。
至于使用当前的全向接收器,我可以想到一些选项:
  • 第一种方法,也可能是最容易的方法,是收集关于现场标签平均“签到”时间的一些数据,可能与现场标签数量有关(如果数量可能会发生剧烈变化 - 因为你的碰撞频率将与存在的标签数量相关)。然后,您可以分析这些数据,以查看是否可以选择适当的截止时间,在此之后,您宣布标记不再存在。显然,您选择的确切截止时间取决于您看到的数据以及您愿意接受误报的程度 - 也可能是任何可接受的截止时间都在您的3分钟窗口之外(尽管我认为如果是这种情况,那么您的3分钟窗口可能不可行)。
  • 另一个更困难的选项(或者更像是一组选项)是利用更多关于每个标签的历史信息 - 例如,寻找信号强度逐渐减小然后消失的标签,或者检查签到时间发生 drastical 变化的标签,或者利用多个接收器并查找接收器之间的模式 - 例如仅由一个接收器看到然后消失的标签,或者标签离开现场时接收器之间的信号强度(表示方向)的特殊模式。
显然,第二个选项主要是寻找模式,既包括随时间变化的模式,也包括接收者之间的模式,这可能需要更多的人力和分析工作。如果您能够收集足够的高质量数据,您可能可以利用机器学习算法来识别相关的模式。

1
我们每天都这样做。
第一个问题是:“在任何给定时间,您的读卡器上有多少个标签?”碰撞比您想象的要更少,但确实会发生,并且可以轻松确定标签过度拥挤。
我们的软件是编写的,并且可能正在使用您正在使用的相同的读卡器和标签。我们设置了读取器超时以确定标签何时“离开”或“离线”;通常是30秒没有读取标签。当检测到标签时,到达当然是瞬间的,然后将标签标记为“在线”。
我们还可以选择使用多个读卡器;例如,在门口和停车场或建筑物内安装另一个读卡器。门禁读卡器具有较短的超时时间。如果标签通过门禁读卡器,则变为红色,然后很快超时以将标签标记为“离线”。如果标签被任何其他读卡器读取,则标签被视为“在线”。
如果您认为有帮助,我可以发布链接,否则您可以搜索RFID Track。它是iOS应用程序,并且有为演示服务器发布的设置。
彼得

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接