Localizando un enjambre de robots

9

Tengo una habitación de 300 cm x 300 cm con un techo de 25 cm de alto (sí, veinticinco centímetros). Contiene 50 pequeños robots con ruedas (unos 20 cm x 20 cm). Una computadora central orquestará los movimientos de los robots, utilizando una red inalámbrica para enviarles comandos de posición. Los robots realizarán su propio control de posición de bucle cerrado para ahorrar ancho de banda inalámbrico. Los robots tienen microcontroladores ARM de 32 bits. Tienen sensores de posición de las ruedas y la capacidad de hacer un control preciso de las ruedas.

Problema: los robots aún no pueden hacer esto porque no tienen forma de medir su posición en la habitación.

Pregunta: ¿Cómo se puede dar a los robots la capacidad de medir su posición y orientación con una precisión mejor que ± 5 mm? Estoy buscando una solución precisa y robusta, que no se vea afectada por las oclusiones y que no requiera una PC de alta potencia en cada robot. Cualquier sensor que sea necesario para la localización se puede agregar fácilmente a los robots. Los microcontroladores se pueden cambiar fácilmente por otros más potentes si la solución de localización lo requiere.

Rocketmagnet
fuente
¿Qué tipo de sensores tienen los robots y qué tipo de potencia computacional?
DaemonMaker
1
@DaemonMaker: agregó esa información y trató de aclarar la pregunta.
Rocketmagnet
1
Esa es una buena actualización @Rocketmagnet, pero la pregunta sigue siendo bastante abierta. Hay muchos trucos en la literatura de localización que pueden estar disponibles según lo que sus robots puedan observar sobre sí mismos, su entorno y entre ellos. Por ejemplo, hay mucho trabajo relacionado con la combinación de las creencias de múltiples robots para aumentar la precisión de la creencia de cualquier robot. Esto se puede lograr agregando una pequeña cámara y un marcador fiducial a cada robot y no aumentaría mucho el procesamiento.
DaemonMaker
¿Las oclusiones bloquean la línea de visión xy, o z también? Por ejemplo, si tiene líneas, láseres o espejos en el techo, ¿los robots generalmente podrán verlos?
James Waldby - jwpat7
@ jwpat7 - Dado que el techo es muy bajo y los robots prácticamente lo tocan, básicamente nunca hay una línea de visión en la dirección Z.
Rocketmagnet

Respuestas:

4

Algunas ideas me salen de la cabeza ... En general, puede hacer que cada robot detecte su propia posición o hacer que algún tipo de sistema encuentre los robots y les envíe información sobre su posición (o una combinación). Posiblemente, usar otras posiciones de robot para ubicarse es otra opción si pueden comunicarse. También puede combinar la información del sensor de los robots y otras fuentes.

Óptico

Puede codificar la posición absoluta o la posición relativa en el piso o el techo. Un sensor en el robot puede mirarlos. Un sensor como el de su mouse óptico puede obtener un movimiento relativo de la mayoría de las superficies, incluso sin ningún patrón. Había ratones de estilo antiguo que usaban una cuadrícula estampada.

Podría tener dos (o más) cámaras en cada robot mirando diferentes direcciones, si las paredes de la habitación tienen el tipo correcto de patrón, podría determinar su ubicación en función de las imágenes. Una cámara giratoria es otra opción. La obstrucción de la cámara por otros robots puede ser una preocupación.

Un conjunto de sensores o una cámara en el piso o en el techo podrían ubicar a los robots y luego puede enviarles su ubicación.

Algún tipo de sensor óptico giratorio que puede localizar la dirección de una baliza óptica (por ejemplo, un LED).

Sonido

Podría tener algunas balizas alrededor emitiendo chirridos de ultrasonido. Si todos están sincronizados (p. Ej., Retraso fijo entre ellos), dada su ubicación, puede usar un cálculo de tiempo de vuelo para determinar la posición del robot. Hace muchos años trabajé con un digitalizador de ultrasonido que tenía una precisión de aproximadamente un mm en una distancia de aproximadamente un metro, por lo que parece en el estadio. Dependiendo de la forma de su robot y la configuración de los enjambres, las reflexiones y obstrucciones pueden o no ser un problema. Tendrías que experimentar, pero mi intuición es que con suficientes balizas podrías tener un buen rendimiento.

Buscadores de rango de ultrasonido en cada robot. (¿girando?) Podría mapear la distancia a otros robots o las paredes.

Si alguno de estos suena interesante, puedo intentar desarrollar esas ideas un poco más.

Guy Sirton
fuente
Me gusta el método de ultrasonido. Me pregunto si podría enviarlo a través del piso para que pueda viajar sin ser molestado o reflejado por el enjambre.
Rocketmagnet
@Rocketmagnet: Podrías enviarlo por el piso. El problema es acoplar correctamente el transductor, que generalmente se hace con gel. Probablemente sería un poco desordenado para su aplicación. Sin el acoplamiento correcto, el ultrasonido simplemente rebotaría en la superficie. Quizás las ruedas de tu robot podrían hacer el truco.
Guy Sirton
@GuySirton Quiero implementar la detección de chirridos de ultrasonido desde un dispositivo que se emiten desde otro dispositivo. Me cuesta hacer esto porque todos los componentes que veo disponibles son telémetros que emiten y detectan el eco. Sacan el rango y es difícil separarlos en partes de emisión y recepción. Necesito enviar las señales por aire. ¿Alguna sugerencia o sugerencia? ¡Gracias!
nigromante
@necromancer deberías poder comprar transmisores / receptores, por ejemplo, mira esto digikey.ca/product-detail/en/MA40S4R/490-7706-ND/4358146 y más en la misma categoría ...
Guy Sirton
@GuySirton muchas gracias. una gran ayuda!
nigromante
4

Si el techo es una superficie plana que es visible desde la parte superior de los robots, puede colocar franjas marcadoras (o algún otro patrón fiducial conocido) en el techo a intervalos regulares. Las rayas pueden ser líneas blancas o negras o cinta reflectante estrecha, detectada mediante fotosensores en la parte superior de los robots.

Si los sensores de posición de la rueda y el control preciso de la rueda son lo suficientemente buenos como para mantener la precisión deseada de los datos de ubicación cuando un robot no se ha movido más allá de la distancia d desde una posición conocida con precisión, las rayas (que pueden ser rayas blancas, rayas negras o cinta reflectante estrecha) Es posible que deba colocarse a una distancia no mayor a aproximadamente d / √2.

El software de planificación de movimiento probablemente necesitaría adaptarse. Si la posición de un robot está constantemente equivocada cuando cruza una franja, ajuste su proporción de conteo de codificador de rueda a la distancia recorrida; o si se vería una franja si una pierna de viaje fuera un poco más larga, extienda la pierna para cruzarla; o mover para calibrar contra varias rayas justo antes de cualquier operación sensible a la posición; o realizar operaciones sensibles a la posición en un punto de cruce de franjas.

Existe una gran variedad de patrones fiduciales posibles. Las franjas ortogonales dispuestas paralelas a los ejes xey son probablemente las más simples de crear y trabajar. Pero vale la pena considerar los ojos de buey, las cruces, las cuñas, los códigos de barras y otros patrones.

James Waldby - jwpat7
fuente
+1 Aunque leí tu respuesta antes de publicar la mía, aún publiqué casi la misma respuesta sobre fiduciales ... Culpo a la falta de sueño.
ThomasH
@ThomasH, gracias! Estoy sorprendido el PO no ha votado a ninguna de las respuestas, todos los cuales proporcionan alguna información útil.
James Waldby - jwpat7
4

La baja distancia entre la parte superior del robot y el techo realmente restringe sus opciones. Parece casi imposible obtener una visión centralizada de toda la sala y trabajar desde allí.

No estoy seguro de qué tipo de 'habitación' estás hablando y cuánto puedes instrumentarlo, pero podría ser una opción colocar marcadores en el techo en lugar de los robots. Dada la corta distancia, tendría que llenar casi por completo el techo con pequeños marcadores que se pueden observar completamente con una cámara que apunta hacia arriba en cada robot, aunque es posible que pueda colocar esta cámara más abajo en el robot, digamos entre las ruedas delanteras y traseras a cada lado, para darle un ángulo de visión más amplio. Pero el mayor desafío sería imprimir suficientes marcadores distintos para instrumentar todo el techo.

Alternativamente, podría concebirse equipar el piso con muchas etiquetas RFID, siempre que pueda encontrar lectores que tengan un rango lo suficientemente pequeño (AFAIK, los lectores RFID solo le dirán que cierta etiqueta está dentro del rango, no dónde está). El lector RFID de Phidgets ya tiene un rango de aprox. 3 pulgadas, así que a menos que localice al ver qué grupo de etiquetas puede observar (si es posible observar varias etiquetas al mismo tiempo, ¿puede decir que no tengo experiencia laboral real con RFID?), Tendría que experimentar con obteniendo etiquetas más pequeñas y 'protegiéndolas' hasta cierto punto del lector, para que no puedan leerse a una distancia muy corta.

En general, parece un desafío difícil pero muy interesante. Si es por trabajo, supongo que no puede decirnos el propósito del proyecto, pero seguro que suena intrigante :)

ThomasH
fuente
Gracias por la respuesta. Frustrantemente, hay tan poco que puedo revelar sobre el proyecto que ha hecho que sea muy difícil hacer la pregunta.
Rocketmagnet
Estaba pensando lo mismo. Las piscinas tienen las banderas de colores arriba y las líneas debajo para indicarle al nadador su ubicación en su carril en la piscina. El mismo concepto pero 2 ejes en lugar de uno.
zkent
3

Si un sistema vicon está fuera de discusión, puede usar un sistema de cámaras calibradas para leer los marcadores colocados encima de los robots.

  1. Coloque las mejores cámaras que pueda obtener alrededor del entorno. Yo uso cámaras web de $ 20 de amazon.com
  2. Use las herramientas de calibración de OpenCV para calibrar las cámaras.
  3. Coloque marcadores encima de los robots.
  4. Las cámaras conocen sus posiciones relativas en el entorno, por lo que al triangular las posiciones de los marcadores, pueden generar con precisión la posición y la orientación de los marcadores.

Algo así como lo que hicieron estos investigadores en este documento (ver página 16)

Sin embargo, como otros han señalado, si el techo es muy bajo, no tendrá una buena línea de visión hacia la parte superior de los robots, y tendrá dificultades para usar este método.

Josh Vander Hook
fuente
Gracias por la respuesta. El problema con algo como Vicon es la gran cantidad de oclusión que ocurre cuando tienes 50 robots llenando una habitación con un techo tan bajo. Creo que eso hace que este tipo de solución sea imposible.
Rocketmagnet