algorithm mapping robotics

algorithm - Algoritmo SLAM



mapping robotics (8)

Además, si escribe C ++, MRPT debería ser una de sus opciones para implementar SLAM.

MRPT es Mobile Robot Programming Toolkit que se basa en SLAM, visión artificial y algoritmo de planificación de movimiento. Encontrará muchos ejemplos fáciles y algunas aplicaciones útiles, como filtro SLAM de Kalman, SLAM de gráficos, SLAM de Kinect 3D, etc. aquí.

¿Alguien tiene alguna experiencia con el desarrollo o el trabajo en el problema del robot autónomo, en particular desarrollando el algoritmo SLAM? Me gustaría saber dónde sería un buen lugar para comenzar a desarrollar una versión muy básica de SLAM. También se agradecerá cualquier referencia a los recursos sobre los temas (que no sean las obvias búsquedas de Google).


Algunas de las personas que trabajan en robots en la universidad de Bielefeld confían en los siguientes documentos en su trabajo con un robot.

  • I. Esteban, O. Booij, Z. Zivkovic y B. Kröse. Omnivision basado en la trayectoria slam. En RSS Enviado. IEEE, 2008

  • A Harati, S Gachter y R Siegwart. Segmentación de imágenes de rango rápido para interiores 3D-SLAM. En el 6 ° Simposio IFAC sobre Vehículos Autónomos Inteligentes (IAV), 2007.

  • A Harati y R Siegwart. Ortogonal 3D-SLAM para entornos interiores que utilizan ángulos en ángulo recto. En la 3ª Conferencia Europea de Robótica Móvil (ECMR), 2007.

Otro documento que podría darle un punto de partida es:

  • R. SIEGWART, IRNOURBAKHSH (2004). Introducción a Robots Móviles Autónomos. MIT Press

La mayor parte del artículo debe encontrarse en google scholar.


El libro Probabilistic Robotics de Thrun, et al. Pasa bastante tiempo en SLAM.

OpenSLAM tiene una gran cantidad de recursos SLAM e implementaciones de diferentes algoritmos SLAM.


Otra respuesta tardía, pero acabo de encontrar un tutorial sobre la construcción de EKF slam en Matlab u Octave por el Dr. Joan Sola aquí: http://www.joansola.eu/JoanSola/eng/course.html .

Se trata de 8 horas de video y es un poco lento, pero lo guiará a través de una implementación de trabajo de SLAM.



Probabilistic Robotics es definitivamente un gran libro para comenzar, pero los algoritmos actuales han dejado atrás gran parte del alcance que cubre.

El TORO de Grisetti (disponible en OpenSLAM) es un algoritmo rápido que puede cerrar bucles en el tiempo O (N) (donde N es el tamaño del bucle). Puede ser adecuado para usted en las siguientes condiciones:

  • No necesita una precisión óptima (p. Ej., No está utilizando esto para realizar la estructura desde el movimiento, o reduce el rango de búsqueda de las características visuales)
  • No utiliza sensores de posición solamente, como GPS.

El iSAM de Kaess es muy bueno si quieres una precisión óptima (óptimo en un sentido de mínimos cuadrados). Puede adaptarse a usted en las siguientes condiciones:

  • Usas GPS
  • Usted se beneficiaría de una precisión óptima.
  • No te importa que cierre bucles en O (N ^ 2) tiempo, donde N es el número de poses en el bucle.
  • Su robot puede detenerse para volver a resolver el mapa desde cero cada cientos de puntos de referencia. Esto llevará unos segundos. (Esta debilidad se ha superado en su reciente informe técnico ).
  • Tus estimaciones iniciales de postura son decentes. De lo contrario, iSAM puede quedarse atascado en los mínimos locales.

Finalmente, puedes leer mi documento IROS 2010 sobre SLAM flexible, que te da un control con el que puedes ajustar el costo de cerrar un ciclo, donde más costo significa más precisión. El costo puede establecerse entre O (N) y O (N ^ 2). Incluso en su mínima precisión, es aún más preciso que TORO. Úselo si:

  • Le gustaría procesar incluso grandes cierres de bucle en tiempo real.
  • Quieres usar el GPS

También considere la bondad de sus estimaciones iniciales de postura. Cuando se usa un buen algoritmo de comparación de escaneo láser en áreas interiores limitadas, la deriva de la postura puede ser bastante pequeña. Esto elimina gran parte de la carga de precisión de SLAM, y la diferencia entre la salida de técnicas aproximadas como TORO y técnicas exactas como iSAM se adelgaza.

Buena suerte,

- Matt


openCV es su mejor apuesta para esto, es una gran biblioteca que maneja una tonelada de problemas de Visión por Computadora que tiene una gran historia, comunidad y soporte.

http://opencv.willowgarage.com/wiki/


Sé que llegaré a esta fiesta un poco tarde, pero tengo una implementación SLAM extremadamente simple que se ejecuta en MATLAB (o la Octava gratuita) que es útil para aprender los conceptos básicos. La implementación es casi tan simple como puede ser, y comprende solo 283 líneas de código.

Compruébelo aquí: https://github.com/randvoorhies/SimpleSLAM