Me pregunto si es posible detectar la posición de una rótula usando:
Me imagino que algo similar a un de Bruijn Torus , que se puede proyectar sobre una superficie esférica en lugar de un toro o un plano, haría el truco.
¿Existe un algoritmo conocido para generar y/o decodificar dicha imagen?
Sí, existen varios patrones de este tipo que se utilizan para determinar la posición absoluta en un plano:
Cuando se usa un bolígrafo digital en papel digital , dos pasos clave en el algoritmo son (a) decodificar la parte del patrón visible desde el bolígrafo en bits, y (b) decodificar esos bits en una ubicación absoluta, que indica qué página en el cuaderno y una posición tosca en esa página. O, en otras palabras, al diseñar el sistema y decidir dónde va la tinta en el papel, el diseñador del sistema primero (b) elige algún patrón de bits en una cuadrícula, tal vez el código gris cíclico de pista única que se usa en la carpeta de direcciones de Anoto o un toro de Bruijn o una variedad de otros patrones de bits en una cuadrícula. Luego, el diseñador del sistema (a) elige una de varias maneras de representar cada bit como tinta sobre papel.
Aboufadel, Smietana y Armstrong; "Codificación de posición" proporciona una descripción detallada de algunas de las opciones posibles para (a) y (b). Si entiendo correctamente, la alfombra de dirección de Anoto usa una secuencia estrechamente relacionada con una secuencia de Bruijn, pero técnicamente no es un toroide de Bruijn.
hecht; Las "Interfaces gráficas de usuario de datos integrados impresos" brindan una descripción detallada de DataGlyphs, que usa para (a), y el "código de alfombra" que usa para (b). Jeff Breidenbach y yo usamos la frase "una alfombra de direcciones de DataGlyph" para esa combinación particular de (a) y (b).
Hay varias formas de proyectar estos patrones "planos" en una esfera ; tal vez usando una proyección como el cubo esférico cuadrilateralizado o alguna otra técnica de cuadrícula geodésica para pixelizar la esfera . Todas estas proyecciones tienen un tipo de distorsión (muchas costuras) u otro (mucho estiramiento en algunas regiones en comparación con otras) o algún tipo de compromiso (pocas costuras y algo menos de estiramiento); esperemos que pueda encontrar uno que funcione bien con su hardware.
No veo por qué el toroide de Bruijn no funcionaría
Casi funciona .
Un toroide de Bruijn funciona bien como la cuadrícula de bits en una alfombra de direcciones para encontrar la posición absoluta en un plano. Los sistemas de alfombra de direcciones más populares utilizan otros patrones de bits que son más fáciles de decodificar que un toro de De Bruijn, aunque requieren que el sensor vea un poco más de módulos.
Un toroide de Bruijn también funcionaría bien como la cuadrícula de bits en una carpeta de direcciones para encontrar la posición absoluta en un toroide o una sección de un cilindro; con un diseño cuidadoso, el patrón podría diseñarse para "coincidir correctamente" recorriendo todo el círculo alrededor de la circunferencia de un cilindro, y para "hacer coincidir correctamente" viajando ambos círculos completos alrededor de ambas circunferencias de un toro.
Comenzando cerca (por ejemplo) de la ciudad de Accra, con un diseño cuidadoso se podría diseñar un patrón basado en un toroide de Bruijn que cubriera completamente una banda angosta cerca del ecuador y "emparejara apropiadamente" recorriendo el círculo completo alrededor del ecuador (pero dejando los polos descubiertos). Alternativamente, comenzando cerca de la misma ciudad, con un diseño cuidadoso se podría imprimir exactamente el mismo patrón cerca de la ciudad de Accra, pero extenderlo a lo largo del meridiano principal y la línea de cambio de fecha internacional, cubriendo ambos polos. Esos dos enfoques imprimirían exactamente el mismo patrón en el globo terráqueo cerca de Accra, pero, por desgracia, un toroide de Bruijn da patrones contradictorios en las antípodas de Accra en la línea de fecha internacional cerca del ecuador.
¿Hay algún otro patrón similar a un toroide de Bruijn que "coincide correctamente" en ambas direcciones al mismo tiempo, cuando se imprime para cubrir completamente una esfera o incluso un cubo? Hasta el momento nadie parece ser capaz de encontrar uno, por lo que nos vemos obligados a utilizar sistemas que pueden tolerar "costuras" en el patrón, de la misma manera que los cartógrafos se ven obligados a cortar al menos una costura en un globo para poder proyectar un globo entero en una hoja plana de papel.
Una vez que permita las costuras, nuevamente los patrones basados en el toroide de Bruijn funcionarían bien: corte uno o más trozos grandes de ese patrón y use los trozos como "adaptación de un patrón plano a una esfera", recortando superposición; a pesar de que el patrón no "coincidirá correctamente" en las costuras.
Esto conduce a una respuesta más matemática, pero si tiene conocimiento a priori del patrón que va a colocar en la pelota, cualquier patrón lo suficientemente aleatorio debería funcionar, siempre que haya suficientes diferencias (tanto en traslación como en rotación) entre todos posibles regiones que puede capturar a la vez.
1) Sugeriría dibujar muchos códigos QR en posiciones aleatorias que cubran> 50% del área que tienen codificadas las coordenadas X e Y. Luego, decodifica el código QR más cercano al centro de la imagen y extrapola un poco las coordenadas para contar el código descentrado.
Actualización: 2) Probablemente puedas vivir con una resolución más pequeña si puedes dibujar una bola en color. Luego, enciende su bola con LED RGB, cada color por separado -> códigos QR dos veces más pequeños.
3) Si la bola no es metálica, puede colocar un imán dentro y ver la dirección usando un par de sensores Hall.
4) Puede simplemente poner una estructura regular allí y rastrear la posición relativa como un mouse óptico
Me preocuparía por la suciedad en la pelota.
Como dijo tyblu en su comentario, use un sensor óptico y rastree la distancia y la dirección recorrida, luego calcule su nueva posición en función de la distancia y la dirección desde la posición anterior. Este será su método más simple para obtener la información que necesita.
El procesamiento de imágenes como ese puede ser bastante lento y tedioso con un buen margen de error y no es un camino que tomaría para determinar la posición.
tiblu
connor lobo
dave
cristiano