This is an old revision of the document!
Robótica Móvil
Tarea 1 (Licenciatura)
Tarea 2 (Licenciatura)
Entrega: 29 de marzo antes de las 23:59.
Implementación del algoritmo “bug” para buscar fuentes, con el robot Pioneer p3dx.
La ubicación de la fuente se definirá en las variables xf, yf dentro de su código.
Utilizar los sensores ultrasónicos para rodear los obstáculos en el camino del robot.
Crear una rejilla de ocupación con resolución de 0.25×0.25m^2 por celda que cubra todo un escenario de 10x10m^2.
Utilizar los sensores ultrasónicos para actualizar el contenido de las celdas de la rejilla de ocupación, mientras el robot intenta llegar a su destino.
Un programa en Python por equipo.
El programa será probado por el profesor en un escenario de 10x10m2 en V-REP, sin mostrárselo a los estudiantes.
Enviar un archivo .py por equipo, con el nombre NombreEquipoTarea2.py a este enlace.
Tarea 1 (Maestría)
Tarea 2 (Maestría)
Entrega: 25 de marzo antes de las 23:59.
Implementación del algoritmo “bug” para buscar fuentes, con el robot Pioneer p3dx.
La ubicación de la fuente se definirá en las variables xf, yf dentro de su código.
Utilizar los sensores ultrasónicos para rodear los obstáculos en el camino del robot.
Crear una rejilla de ocupación (probabilística) con resolución de 0.25×0.25m^2 por celda que cubra todo un escenario de 10x10m^2.
Utilizar los sensores ultrasónicos para actualizar el contenido de las celdas de la rejilla de ocupación, mientras el robot intenta llegar a su destino. Asuma un modelo de sensor con probabilidad de falso positivo de 0.01 en todo el rango de 0 a 1m, y falso negativo también de 0.01. En caso de detección, no agregue ruido a la medición.
Utilizando matplotlib, pygame o cualquier otra alternativa disponible en la distribución Anaconda, cree una visualización de la rejilla de ocupación, preferentemente en (casi) tiempo real.
Un programa en Python por persona.
El programa será probado por el profesor en un escenario de 10x10m2 en V-REP, sin mostrárselo a los estudiantes.
Enviar un archivo .py por equipo, con el nombre ApellidosNombresTarea2.py a este enlace.
Proyecto Final (Maestría)
Crear un mundo de 15x15m2 de manera programática, con muros perimetrales (fuera del área de 15×15) y obstáculos cilíndricos.
Generar un roadmap probabilístico para cubrir el espacio de configuración libre.
Implementar una búsqueda en grafo para hallar una ruta entre cualquier configuración inicial y meta.
Enviar a un robot Pioneer 3dx sin colisionar, desde su qInicial a su qMeta.
Mientras el robot viaja de qInicial a qMeta, generar una rejilla de ocupación de 60×60 y desplegarla al final del recorrido. Además, almacenarla en formato de texto con la función numpy.savetxt().
Los obstáculos serán especificados por el usuario en un archivo de texto, una línea por obstáculo, separando con espacios: posx posy radio.
El programa debe, al final, graficar el espacio de configuración y el roadmap generado (dibujar los nodos y aristas del grafo).
Para la entrega, debe enviar el código en Python y un reporte en PDF (enlace para el envío disponible próximamente).
Fecha de entrega: 12 de abril de 2019, límite a las 23:59hrs.
Herramientas de robótica, visión y control de Peter Corke RVC toolbox
Simulador V-REP (utilizar la edición pro EDU para el curso)
V-REP
-
-
Distribución de Python Anaconda Anaconda
Repositorio con muestras del código del curso GitHub RoboticaMovil
Proveedor de un kit útil para el curso LABESA Nota: no es obligatorio adquirir los materiales con este proveedor, solo es una opción conveniente y a precio razonable.
Para el análisis de estabilidad de un controlador de robots con propulsión diferencial, revisar:
M. Aicardi, G. Casalino, A. Bicchi and A. Balestrino, “Closed loop steering of unicycle like vehicles via Lyapunov techniques,” in IEEE Robotics & Automation Magazine, vol. 2, no. 1, pp. 27-35, March 1995.
doi: 10.1109/100.388294
Algoritmo de Dijkstra interactivo
https://www-m9.ma.tum.de/graph-algorithms/spp-dijkstra/index_en.html
Algoritmo A* interactivo
https://www-m9.ma.tum.de/graph-algorithms/spp-a-star/index_en.html