Me gustaría construir un robot que siga una ruta virtual (no una ruta visible como una 'línea negra sobre una superficie blanca', etc.).
Estoy entusiasmado al ver algunos videos de ciencia ficción que muestran a los robots que transportan bienes y materiales en un lugar lleno de gente. Y realmente no siguen una línea física. Sienten obstáculos, profundidad, etc.
Me gustaría construir uno de esos robots que siga una ruta específica (virtual) desde el punto A hasta el B.
He intentado un par de cosas:
Usando un sensor magnético de "efecto Hall" en el robot y corriente de transporte de alambre (debajo de la mesa). El problema aquí era que la proximidad del sensor de efecto hall es tan pequeña (<2 cm) que es muy difícil juzgar si el robot está en línea o no. Incluso usar series de imanes no podría resolver este problema, ya que mi mesa tiene 1 pulgada de grosor. Entonces esta idea fracasó: P
Usando una pintura ultravioleta (en una línea) y usando leds UV en el robot como sensores. Esto dará más movimiento de Zig-Zag para el robot. Y debido a las amenazas potenciales de usar una fuente de luz UV, incluso esta idea fracasó: P
Finalmente pensé en tener una cámara encima y usar algoritmos de procesamiento de imágenes para ver si el robot está en la línea o divergiendo.
¿Hay alguna solución mejor que esta? Realmente buscando algunas soluciones creativas y simples. :)
Respuestas:
Hay muchas formas posibles de abordar este problema, y todas dependen del material disponible y de la experiencia del fabricante del robot.
En resumen, el criterio es que:
Dependiendo de la longitud del camino, usar codificadores podría ser suficiente. Sin embargo, debe tenerse en cuenta que debido a la inexactitud física, la deriva hace que la odometría (lo que llamamos usar codificadores para medir la distancia) no sea práctica para largas distancias. Sin embargo, esto es fácil para distancias cortas, y al menos debe considerarse.
Si la distancia es demasiado larga solo para la odometría, uno debería considerar usar algún sensor para medir giros (por ejemplo, un giroscopio o una brújula ). Los giros tienden a introducir la mayor cantidad de errores en odometría (medir a lo largo de una línea recta no tiene demasiado error), por lo que usar un sensor para giros a veces puede hacer que la odometría sea una solución viable.
Si la odometría u odometría + giro detectado no funciona, entonces podemos ser creativos. Si desea que el robot siga una ruta compuesta principalmente por segmentos rectos, puede colocar LED IR en "puntos de referencia" dados en la tabla y hacer que el robot detecte esos LED y conduzca hacia cada punto de referencia en serie.
Sin embargo, eso todavía deja algunas marcas visuales en la mesa (aunque podría disfrazarse hasta cierto punto), y sería genial poder hacerlo sin eso. Otro enfoque sería utilizar punteros láser que brillen paralelos a la superficie de la mesa, pero a unas pocas pulgadas por encima de la mesa. El robot podría usar un fotorresistor para detectar cuándo cruza un láser, y esto podría hacerle saber cuándo girar.
En general, creo que la odometría aumentada con un sensor de ángulo es probablemente la mejor opción para su robot, al menos con la forma en que lo ha descrito. Puedo pensar en más opciones, pero eso es todo lo que veo en este momento.
Solo curiosidad: ¿por qué quieres que la línea sea invisible? Saber por qué podría abrir algunas posibilidades más.
fuente
Anki usa sensores ópticos en sus autos de juguete para implementar seguidores de línea. Los sensores ópticos son sensibles en el rango IR. El hecho de que las líneas no se pueden ver se explica fácilmente: las líneas están recubiertas con un color negro que es transparente en el rango IR. Paliogen black L 86 o Paliogen black S 84 de BASF son estos colores. Si coloca códigos de barras a lo largo de las líneas, incluso puede obtener información de posicionamiento absoluto de los sensores ópticos.
fuente
Tengo una respuesta corta para tu pregunta. Esto es solo para un robot habilitado para ROS. Hay muchas formas de hacer esto, pero así es como lo he hecho. Usé ROS y Kuka Youbot. Podría ser cualquier robot que use ROS. Es muy útil conocer ROS si planea estar en robótica.
Use ROS Luego use GMapping para mapear su entorno. Ejemplo de habitación o pasillo y guardar el mapa. Luego, usando RVIZ, indique la posición del objetivo en el mapa.
fuente
Bueno, no necesitas ninguna línea para el caso. Lo único que probablemente necesitará son coordenadas globales. Si puede colocar su robot en un campo definido por coordenadas globales y aplicar reglas simples de física newtoniana, el robot puede ir de un punto a otro. Según su ubicación actual, descubrirá el ángulo de dirección actual, el ángulo de dirección deseado y las coordenadas de la meta (también conocido como "pose"). Una vez que proporcione velocidad al robot, comenzará a moverse hacia las coordenadas del objetivo. En cada iteración, volverá a calcular su pose y hará ajustes cuando sea necesario.
fuente