En robótica, ¿cuáles son algunos algoritmos de planificación de rutas fáciles de implementar en un Turtlebot en ROS?

La planificación de rutas es una primitiva importante para los robots móviles autónomos que les permite a los robots encontrar la ruta más corta, u óptima, entre dos puntos. Requiere un mapa del entorno y el robot para estar al tanto de su ubicación con respecto al mapa. Supongo que tiene el mapa (mapa de cuadrícula de ocupación en su mayoría preferido) y su Turtlebot puede localizarse.
Hay muchos algoritmos: Dijkstra, A *, D * y RRT
1) Algoritmo de Dijkstra : este es uno de los algoritmos más simples y fáciles de implementar. He implementado con éxito este algoritmo en uno de mis proyectos Psi bot: robot autónomo de oficina de navegación interior
LinK –
2) Algoritmo A *: este algoritmo requiere una estimación de costos junto con la distancia real y el nodo marcado. Más eficiente que el algo de Dijkstra y funciona mejor para mapas de cuadrícula de ocupación.
3) Algoritmo D *: este algoritmo es una extensión del algoritmo A *.
Aborda el problema de la reprogramación costosa cuando aparecen obstáculos en el camino del robot.
4) Árboles aleatorios de exploración rápida (RRT): el algoritmo más eficiente (aún no implementado) útil cuando el espacio de búsqueda es grande o el entorno de búsqueda de dimensiones es alto . Aborda este problema utilizando un enfoque aleatorio que tiene como objetivo explorar rápidamente un área grande del espacio de búsqueda con refinamiento iterativo.

Para Turtlebot (beign un robot de accionamiento diferencial) … el algoritmo de Dijkstra y A * se puede implementar fácilmente … dado el mapa de cuadrícula de ocupación
¡¡¡Aclamaciones!!!

¿Supongo que quiere implementar la parte de planificación desde cero? Como está utilizando ROS con una plataforma decente, puede obtener el nivel más bajo que desee. Comenzando con el caso más simple, puede tener algo como:

Dado un mapa de la sala (que puede construir utilizando el kinect de antemano), implemente algo como A *, PRM o RRT para navegar de un punto a otro.

Si desea realizar una navegación en un entorno desconocido, deberá tener un algoritmo más robusto que pueda reaccionar ante un mapa cambiante. Eso también implica configurar los paquetes ROS existentes que pueden construir un mapa a medida que avanza.

Como los Turtlebots son simples robots de accionamiento diferencial contenidos en una forma cilíndrica, el problema de planificación es considerablemente más fácil que para muchas plataformas, y puede usar algoritmos mucho más simples. Los RRT y PRM funcionarán suficientemente bien (suponiendo que la optimización de la ruta no sea una prioridad), o también funcionarán los algoritmos de búsqueda de gráficos como Dijkstra, A * o D *.

Probablemente lo más fácil es usar sus sensores para construir una cuadrícula de ocupación no probabilística. Utilice una resolución suficientemente gruesa para enmascarar las imprecisiones en la detección y localización, y al mismo tiempo justifique que su robot no sea un punto 1D. Dada esta cuadrícula de ocupación, cualquiera de los algoritmos mencionados anteriormente se puede usar de forma inmediata con ROS.

Estaría de acuerdo con Víctor aquí. Comience con A *, y luego mire algo como D * -lite que lo ayudará a explicar los cambios de obstáculos de manera eficiente.

Si solo necesita un planificador de trabajo (y no le importa implementarlo usted mismo), eche un vistazo a la biblioteca SBPL para ROS (sbpl – Wiki de ROS)

¿Está buscando hacer una planificación de ruta (por ejemplo, llegar a una ubicación específica X) o simplemente evitar obstáculos? Algunas ideas potenciales: histograma polar vectorial, algoritmos de error, hojas de ruta probabilísticas.

Uno de mis asesores enseña una clase sobre ‘Algoritmos para la robótica basada en sensores’. Consulte las notas de su curso para obtener algunas ideas adicionales: Calendario de cursos de Sensor 2013

Lo primero que necesita es resolver el problema de localización. Como le gustaría apegarse al hardware existente, debería buscar gmapping o RGBDSlam. Una vez que tenga esto, la parte difícil, resuelto, y obtenga un mapa y su posición, un algoritmo tan simple como Dijkstra o A * lo hará.

Hice lo mismo y utilicé un algoritmo llamado algoritmo “A Star”.
A * algoritmo de búsqueda