¿Alguna idea para que los LEDs IR sean identificables durante el seguimiento de posición?

6

Background

Johnny Lee demostró varias ideas interesantes (detalladas, por ejemplo, en este video , así como esta página ) que aprovechan la cámara de infrarrojos de un Wii-Remote. La cámara IR tiene una resolución de 1024x768 y está diseñada para rastrear los 4 puntos de iluminación infrarroja más brillantes en su vista, a 100 Hz. Cada uno de estos 4 "puntos" podría ser un marcador móvil en forma de, por ejemplo, un LED infrarrojo: la cámara detecta la emisión del LED, que a su vez emite a 100 Hz, los datos de posición del "blob" IR observado. Lo que permite un sistema de seguimiento de posición de bricolaje rápido y económico.

Problema

En la configuración anterior, si cada LED IR no solo se enciende, sino que también se hace IDENTIFICABLE de forma única, daría lugar a muchas posibilidades interesantes. Por ejemplo, esto permitiría un seguimiento continuo de la posición de cada marcador en el espacio de forma única (es decir, con el conocimiento de qué blob es cuál). Además, el hecho de que cada marcador IR LED sea único también significa que la configuración podría extenderse a cualquier número de puntos (por ejemplo, 50 marcadores) en lugar de solo a los 4 puntos más brillantes.

La pregunta es: suponiendo que empiece por conectar cada marcador IR LED a un microcontrolador, ¿cuál sería la forma más efectiva de extender la configuración anterior para que cada marcador IR LED sea IDENTIFICADO de manera única? En términos generales, describo un enfoque a continuación: ¿hay algún enfoque más versátil o más simple que este, o tal vez se puedan realizar mejoras?

Primero, un método que NO es prometedor: ya que cada MarkerLED infrarrojo está conectado a un microcontrolador, es posible que cada MarkerLED parpadee en un patrón único. Pero la cámara IR tiene solo una frecuencia de actualización de 100 Hz, por lo que si hubiera 50 LED, sería difícil ajustar un patrón único para cada uno, sin que el seguimiento efectivo de la posición de los puntos sea realmente lento.

A continuación se muestra una idea general que actualmente estoy considerando (rastrea y identifica 50 marcadores IR LED):

  • Comience etiquetando en un simple Detector IR al lado de la Cámara IR, cuyos dos salidas se leen / rastrean en sincronía por un microcontrolador o computadora común.

  • Ahora, digamos que hay 50 marcadores. Para cada circuito MarkerLED / Microcontrolador, también se agrega un segundo LED IR, denominado IdentifierLED, por lo que hay un par de LED IR para cada marcador, ambos controlados por el microcontrolador.

  • Para un marcador dado, de modo que se pueda rastrear su posición, MarkerLED solo se ENCIENDE para exactamente una ventana específica de 20 milisegundos por segundo (cada marcador tiene su propia ventana de 20 ms). Durante esa misma ventana particular de 20 ms, el microcontrolador pulsa el identificadorLED correspondiente de una manera específica a una frecuencia alta (por ejemplo, 38 kHz), configurando un patrón / ID único para ese marcador específico.

  • Y lo mismo para los 49 Marcadores restantes consecutivos, cada uno con su propia ventana diferente de 20 milisegundos y su propio patrón de identificación de alta frecuencia. Eso cuida el lado de los marcadores de las cosas.

  • Ahora, en el lado sensible de las cosas: por cada ventana consecutiva de 20 milisegundos durante un segundo, la cámara IR detecta la posición de un marcador específico (cuya ventana de 20 milisegundos es) a través de MarkerLed correspondiente. Al mismo tiempo, el Detector IR identifica QUÉ marcador es, a partir del patrón detectado del IdentifierLED correspondiente.

  • Y este seguimiento de posición e identificación continúa durante las cincuenta ventanas de 20 milisegundos dentro de cada segundo.

  • Por lo tanto, se realiza un seguimiento de todos los 50 marcadores, y el microcontrolador del lado de seguimiento puede actualizar los datos de cada marcador una vez por segundo.

pregunta boardbite

3 respuestas

1

En lugar de transmitir el código de identificación del marcador desde el marcador a un receptor central, tal vez sería más sencillo transmitir el código de identificación del marcador desde un transmisor central al marcador.

El transmisor central (quizás un transmisor IR de 38 kHz o algún transmisor inalámbrico) enviaría, en efecto, "Marcador número 22, enciéndalo durante los próximos 20 ms en mi marca: AHORA". (Idealmente, mientras ese marcador está encendido durante esos 20 ms, el transmisor central está enviando la identificación del marcador next para que se encienda).

Dado que un transmisor central está controlando la sincronización, no tendrá que lidiar con los marcadores que se desincronizan y transmiten accidentalmente al mismo tiempo.

Esperamos que pueda colocar el transmisor central lo suficientemente cerca del rastreador de posición, de modo que si cualquier marcador no puede ver los comandos enviados por el transmisor central, ese marcador no estaría en el campo visual del rastreador de posición de todos modos.

Esto también le brinda la flexibilidad de utilizar los datos que obtiene de su rastreador de posición para adaptar de forma dinámica los marcadores que selecciona:

  • Si algunos marcadores parecen estar inmóviles o extremadamente lentos, quizás solo necesite revisarlos una vez cada 3 segundos aproximadamente.
  • Quizás pueda consultar las últimas posiciones de más de un marcador a la vez; algo como "OK, los marcadores número 22 y 23, enciéndelos durante los próximos 20 ms en mi marca: AHORA".
  • Si algunos marcadores no son visibles desde este punto de vista, quizás solo necesite verificar si alguno de ellos ha vuelto a ingresar al campo visual una vez cada 3 segundos aproximadamente.
  • Los intervalos de tiempo que liberas con las técnicas anteriores se podrían usar para rastrear los marcadores restantes a una velocidad de actualización algo más rápida que la que harías si simplemente alternas cada marcador en un patrón fijo.
  • Si, por ejemplo, el marcador # 22 está tan cerca del marcador # 23 que el receptor del # 23 está cegado cuando el marcador # 22 está activo, puede cambiar el orden en que se encienden los marcadores para que el # 23 encienda "el mensaje pasa algunas ranuras antes el mensaje" # 22 active ".
respondido por el davidcary
3

Olvidó algún tipo de inicialización / transmisión del latido del corazón, de lo contrario el marcador no sabría cuándo encenderse. Dependiendo de qué tan buenos sean sus sensores y leds, es posible que pueda usar diferentes segmentos del espectro IR. De esta manera podría distinguir un LED con una longitud de onda de 300 µm de uno con 200 µm. Si tiene varias cámaras, puede usar diferentes ópticas / filtros (es factible). De lo contrario, invierta en una cámara con una mayor velocidad de cuadros y deje que cada marcador parpadee en un patrón único. El patrón no solo debe estar activado / desactivado, sino que también puede aprovechar la modulación de frecuencia.

    
respondido por el suha
2

Supongo que hay algún tipo de computadora poderosa que procesa cada fotograma de video, y puede hacer cosas como medir (aproximadamente) el brillo de cada LED IR.

Simplemente module el brillo de cada LED IR a una frecuencia diferente, y deje que la computadora reconozca la frecuencia de cada uno.

Primero tome un caso simple: LED1 variaría su brillo en una onda sinusoidal de 10Hz, de 50% a 100% de brillo. La computadora ahora puede rastrear el brillo del LED, pasarlo a través de un filtro de paso bajo y usar el cruce por cero para medir su frecuencia. LED2 estaría variando a, por ejemplo, 15Hz, y la PC podría distinguir fácilmente entre ellos.

Puede tomar hasta un segundo antes de que la PC tenga un buen bloqueo de frecuencia en ambos.

Está bien, pero esto no va a funcionar para 50 LED. Es difícil tener tantas frecuencias distinguibles que pueden ser muestreadas por una cámara de 100Hz en un corto espacio de tiempo. La solución es usar DTMF!

DTMF es un método utilizado en los teléfonos de oldy worldy para enviar datos mediante tonos. Se definen 8 tonos, y el transmisor enviaría dos tonos diferentes al mismo tiempo, y el receptor buscará el par de tonos en una cuadrícula para elegir uno de los 16 resultados.

Ahora, podría usar fácilmente una cuadrícula de 7x7, para permitirle tener 49 LED IR diferentes. La computadora debe poder distinguir entre 14 frecuencias si puede ver los LED durante aproximadamente 1 segundo cada uno. Usaría frecuencias mucho más bajas que las DTMF, digamos, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32 Hz.

alternativamente, use solo 8 frecuencias, y seleccione cualquiera de las dos de las 8 para obtener 56 (8x7) combinaciones.

    
respondido por el Rocketmagnet

Lea otras preguntas en las etiquetas