¿Qué algoritmo puedo usar para construir un mapa de un área explorada usando varios sensores de ultrasonido?

9

Los sensores de ultrasonido son increíblemente baratos en estos días, lo que los convierte en una opción popular para muchas aplicaciones robóticas para aficionados, y me gustaría usar un montón de ellos (digamos 10) alrededor de un robot con un algoritmo para construir un mapa aproximado de un área (como el robot lo explora.) No estoy interesado en tratar con objetos en movimiento en esta etapa, solo en señalar los estacionarios, y usaré el GPS para la ubicación. Me doy cuenta de que otros componentes, como un escáner láser, producirían resultados mucho más precisos, sin embargo, tales dispositivos también son astronómicamente más caros.

¿Existe un algoritmo para este propósito?

berry120
fuente

Respuestas:

5

Los algoritmos son esencialmente los mismos, independientemente de los sensores que esté utilizando.

El verdadero problema, que Chris mencionó , es que SLAM es difícil incluso con muy buenos sensores.

Consideraría que el GPS, la odometría de la rueda y una IMU son necesarios incluso para intentar golpear con ultrasonido.

Si solo está buscando una ubicación económica, le recomiendo que también eche un vistazo al slam basado en visión / cinect. Tanto las cámaras web como el Kinect son muy baratas y el golpe visual ha recorrido un largo camino.

El kinect es prácticamente el santo grial en términos de rendimiento / costo del sensor siempre que esté en interiores.

Aquí hay un ejemplo de un kinect en un robot más muchas matemáticas: http://www.youtube.com/watch?v=9Y4RQVpp-BY

usuario65
fuente
6

Hay toda un área de literatura sobre este tema. La idea más general es la de localización y mapeo simultáneos ( SLAM ), donde el robot debe construir un mapa al mismo tiempo que se ubica en ese mapa. Dependiendo de cuán preciso desee que sean sus mapas, puede intentar un problema más simple de crear un mapa de cuadrícula de ocupación , que asume que conoce la ubicación del robot.

En general, el GPS es bastante horrible, por lo que generar una cuadrícula de ocupación simplemente usando el GPS como fuente de ubicación principal generará mapas bastante difusos. Sin embargo, es posible integrar GPS con aceleración, giroscopios, brújulas, cámaras, codificadores de rueda y otros sensores para aproximarse a una buena posición en el mundo. De lo contrario, tendrá que buscar un sistema SLAM simple para manejar sus problemas.

Un buen paquete de código abierto g2o , para el llamado GraphSLAM, le permite poner restricciones como el GPS y la posición relativa de las paredes. Puede que no sea un ajuste exacto, pero es bastante general.

Chris Mansley
fuente
1
Una idea adicional sería recopilar todos los datos, utilizando comportamientos básicos de evitación para asegurarse de que el robot no se estrelle contra nada, y luego usar un gráfico SLAM de procesamiento posterior. Esto puede aprovechar todos los datos capturados, en lugar de solo los datos anteriores de un punto. Es posible que desee visitar: openslam.org/ssa2d.html o robots.stanford.edu/papers/thrun.graphslam.html
Barrett Ames
2

Para hacer SLAM, necesitará una estimación de posición relativamente buena.

Los robots que usan escáneres láser pueden funcionar solo con odometría, porque los datos son relativamente precisos, y los datos del escáner se pueden usar para ayudar a localizar en pasos de tiempo posteriores.

Los sensores de ultrasonido son muy borrosos, generalmente tienen una dirección borrosa de más de 20 grados, y se detectará cualquier cosa en la dirección general.

Por lo tanto, son de una ayuda insignificante para ayudar a localizar (excepto en entornos muy estructurados).

Se puede usar una combinación de GPS / IMU para obtener una localización razonable. Por supuesto, esto depende de la escala del robot, y si está en interiores, el GPS puede no ser práctico.

Si puede controlar cuidadosamente el deslizamiento de la rueda, la odometría de la rueda puede mejorar significativamente la localización a corto plazo (aunque se prefiere un método absoluto de localización). Sin una referencia absoluta (por ejemplo, GPS), incluso con un escáner láser, deberá poder resolver el problema de "cerrar el ciclo".

Los entornos estructurados pueden tener un requisito de precisión más bajo. Por ejemplo, un entorno similar a un laberinto con paredes a distancias regulares de cuadrícula cuadrada, donde es fácil detectar la presencia de una pared en cada dirección de una celda de cuadrícula.

ronalchn
fuente