He estado involucrado con el diseño de sistemas comerciales que tenían el propósito de informar directamente la posición de una etiqueta o que necesitaba saber eso como parte de un esquema más amplio. Entre estos sistemas se utilizó IR, RF y ultrasonido. Puedo decirles que ninguno de ellos resuelve el problema "muy bien".
RF se puede usar para encontrar la ubicación a una resolución razonable basada en la triangulación con la intensidad de la señal. Sin embargo, varias cosas estropean la intensidad de la señal recibida. Si utiliza RF, use una frecuencia baja en comparación con WiFi, y muchos otros sistemas de RF. Utilizamos 434 MHz, que es una de las frecuencias ISM. En esa banda está permitido enviar un mensaje corto de una potencia limitada una vez cada 10 segundos, a menos que el usuario inicie deliberadamente alguna acción. Las frecuencias más altas se difractan y obstruyen más en un ambiente interior. Luego hay problemas de variación de la intensidad de la señal recibida debido a la polarización. Hay maneras de lidiar con eso, pero eso sería todo un discurso por sí solo.
Es posible que se sienta tentado a tratar de encontrar la ubicación midiendo el tiempo de llegada, al menos hasta que haga los cálculos. A tan solo un nanosegundo por pie, los receptores múltiples deben sincronizarse con gran precisión. Aún más difícil, tienen que ser capaces de determinar algún evento común en la transmisión a la resolución de un solo ciclo de la portadora, pero, por supuesto, las limitaciones de ancho de banda solo permitirán pequeños cambios entre los ciclos de la portadora adyacente. Básicamente, si tiene que preguntar aquí, la hora de llegada de RF es muy difícil y probablemente su presupuesto.
Básicamente, IR hace lo que usted quiere, excepto por el hecho de que su cuerpo y su ropa lo bloquean fácilmente. No va a funcionar en un bolsillo. Puede funcionar recortado a la camisa, pero no si se cubre con una solapa o un suéter o algo. Por lo general, el IR rebota en una habitación muy bien, pero no hay mucha energía que lo haga a través de la puerta relativamente pequeña. Si puede lidiar con los problemas de oclusión, es una buena manera de localizar una etiqueta dentro de una habitación, ya que las paredes son opacas al IR.
El ultrasonido tampoco atraviesa las paredes, sino que rebota en una habitación menos bien. Puede pasar por una fina capa de ropa a veces y otras no. También hay mucho más ruido ambiental de ultrasonido que RF o IR. Incluso si la etiqueta está colocada en el cofre y no está cubierta y el transmisor está orientado hacia afuera (es realmente fácil tener un lado del transmisor con la etiqueta hacia el lado opuesto), existe una posibilidad razonable de que no se reciba un mensaje. Puede realizar una triangulación de tiempo de llegada útil con ultrasonido, ya que es muy lenta (tarda aproximadamente 3 ms / m), pero eso también significa que la velocidad de datos es muy lenta. Si estas etiquetas pueden emitir un solo ping, entonces no te importa la velocidad de datos. Si necesita identificar varias etiquetas, debe enviar algún tipo de información con cada mensaje. Terminamos codificando información en el tiempo entre ráfagas cortas. Pero, tenga en cuenta que hay un límite inferior inherente en el tiempo entre ráfagas. No puede enviar uno nuevo hasta que el último termine de hacer eco en el entorno, ya que los receptores se confundirán. En la práctica, debe esperar unos 10 metros de propagación para que las cosas se apaguen entre ráfagas. El cliente puede haber solicitado una patente sobre esto, no estoy seguro.
En cualquier caso, debe considerar que el canal de la etiqueta al receptor es propenso a errores. Si intenta enviar datos, es mejor que incluya una suma de comprobación. De hecho, tuvimos problemas con un sistema de RF anterior que usaba solo 8 bits de suma de comprobación por paquete (no diseñé ese formato de paquete). Hubo suficientes cosas malas que se interpretaron como buenos datos para causar problemas de campo. El formato de paquete más nuevo (que diseñé) tenía una suma de comprobación CRC de 20 bits, y eso básicamente solucionó el problema.