2009-07-03 12 views
31

¿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).Algoritmo SLAM

+1

Justificación de la pregunta de reapertura: Dado que el motivo del cierre es "[este tipo de preguntas] tienden a atraer respuestas obstinadas y correo no deseado". Creo que esta pregunta debería reabrirse ya que cada respuesta dada hasta ahora ha sido muy útil y de alta calidad, con la excepción de una. Tenga en cuenta que el tema que pregunté es muy amplio y estoy pidiendo opiniones de expertos sobre dónde es un buen lugar para comenzar. – ldog

Respuesta

26

El libro Probabilistic Robotics de Thrun, et al pasa una buena cantidad de tiempo en SLAM.

tiene muchos recursos SLAM e implementaciones de diferentes algoritmos SLAM.

+0

¡Gran libro! Exactamente lo que estaba buscando, este libro presenta todo desde cero, lee aproximadamente 1/5 en el libro ahora y tiene una comprensión mucho mejor. – ldog

+2

Ya, definitivamente es un gran libro. Sin embargo, asegúrate de revisar la página de erratas, ya que hay algunos errores matemáticos aquí y allá según la impresión que tengas. http://robots.stanford.edu/probabilistic-robotics/errata.html –

-5

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/

+3

OpenCV es bueno para el procesamiento de imágenes, pero además de un filtro kalman no hay algoritmos de mapeo completos incluidos – Janusz

+0

OpenCV no es una plataforma SLAM. Posiblemente podrías construir un framework SLAM usándolo pero por sí mismo no tiene relación con SLAM. – twerdster

+0

OpenCV no solo no tiene ninguna funcionalidad SLAM, sino que supone que su interfaz SLAM es visual. No es un escenario inverosímil, pero el escaneo láser es más común. – SuperElectric

4

Algunas de las personas que trabajan en los robots en la Universidad de Bielefeld se basan en los siguientes artículos 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 sobre Robótica Móvil (reglamento), 2007.

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

  • R. Siegwart, I.R.NOURBAKHSH (2004). Introducción a Robots Móviles Autónomos. MIT Press

La mayor parte del documento debe encontrarse en google scholar.

29

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

Grisetti's TORO (disponible en OpenSLAM) es un algoritmo veloz que puede cerrar bucles en el tiempo O (N) (donde N es el tamaño del bucle). Puede ser que le demanda bajo las siguientes condiciones:

  • No necesita una precisión óptima (por ejemplo, no se está usando para llevar a cabo esta estructura de movimiento, o estrechar el rango de búsqueda de características visuales)
  • No utiliza sensores de posición solamente, como GPS.

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

  • Utiliza el GPS.
  • Se beneficiaría de una precisión óptima.
  • No le molesta 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 recent tech report).
  • Sus estimaciones iniciales de postura son decentes. De lo contrario, iSAM puede quedarse atascado en los mínimos locales.

Por último, puede rozar mi IROS 2010 paper en SLAM flexible, lo que le da un mando con el que se puede ajustar el costo de cerrar un bucle, donde más costo significa una mayor 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.
  • que desea utilizar GPS

Ten en cuenta también la bondad de sus estimaciones iniciales plantean. 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

+0

su enlace al "documento IROS 2010" sobre SLAM flexible está roto. ¿Podrías actualizarlo? Soy interesante al leerlo. – Snowman

14

sé que voy a esta fiesta un poco tarde, pero tengo una aplicación SLAM extremadamente simple que se ejecuta en MATLAB (o la libre Octave) 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.

Échale un vistazo aquí: https://github.com/randvoorhies/SimpleSLAM

+0

Mejor tarde que nunca :) Gracias por el enlace (y el código) Voy a verificar esto con más detalle una vez que tenga algo más de tiempo. – ldog

2

Además, si se escribe C++, MRPT debe ser una de su elección en la implementación de SLAM.

MRPT es un kit de herramientas de programación de robots móviles que se basa en el algoritmo de SLAM, visión artificial y 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í.

3

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.

Son unas 8 horas de video y son un poco lentas, pero lo guían a través de una implementación de trabajo de SLAM.