This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
roboticamovil [2019/03/14 22:53] jpirmz |
roboticamovil [2020/03/09 21:58] (current) jpirmz |
||
---|---|---|---|
Line 1: | Line 1: | ||
==== Robótica Móvil === | ==== Robótica Móvil === | ||
- | [[https://www.dropbox.com/s/hejkjy0mpgf8gb5/RoboticaMovilMIE.pdf?dl=0|Temario y criterios de evaluación (Maestría)]] | + | === Tarea 1 === |
- | [[https://www.dropbox.com/s/1je2w0u2zvfd528/RoboticaMovil.pdf?dl=0|Temario y criterios de evaluación (Licenciatura)]] | + | Entrega: 19/mar/2020 |
- | === Tarea 1 (Licenciatura) === | + | Código en Python para que el robot Pioneer 3dx dentro del simulador CoppeliaSim siga una trayectoria definida por puntos (x,y) almacenados en un |
- | Entrega: 12 de marzo antes de las 23:59. | + | archivo de texto, un punto por línea, separando X e Y por un espacio. |
- | * 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. | + | |
- | * Un programa en Python por equipo. | + | |
- | * El programa será probado por el profesor en un escenario de 15x15m2 en V-REP, sin mostrárselo a los estudiantes. | + | |
- | Enviar un archivo .py por equipo, con el nombre NombreequipoTarea1.py a [[https://www.dropbox.com/request/IvqHqt1RYEsyCKE9DAZd|este enlace]]. | + | |
- | /* | + | |
- | === Tarea 1 (Maestría) === | + | |
- | Entrega: 11 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. | + | |
- | * A partir de los v(t) y omega(t) calculados para mover el robot, graficar x(t), y(t) y theta(t) (integración simple de 1er orden). Asuma que x(0), y(0), theta(0) son cero. Puede usar numpy y matplotlib para crear las gráficas. | + | |
- | * Un programa en Python por //persona//. | + | |
- | * El programa será probado por el profesor en un escenario de 15x15m2 en V-REP, sin mostrárselo a los estudiantes. | + | |
- | Enviar un archivo .py por equipo, con el nombre ApellidosNombresTarea1.py a [[https://www.dropbox.com/request/NQcP9bqlu3kc5NGTu5hh|este enlace]]. | + | |
- | */ | + | |
- | === Tarea 1 (Maestría) === | + | Ejemplo de archivo |
- | [[https://www.dropbox.com/s/hsmay9n6fzjbvpm/MIETarea1.xlsx?dl=0|Calificaciones por NUA]] | + | |
- | (Es un libro de Excel, una calificación por cada hoja o pestaña) | + | |
- | === Tarea 2 (Maestría) === | + | <code> |
- | Entrega: 25 de marzo antes de las 23:59. | + | 0 0 |
- | * Implementación del algoritmo “bug” para buscar fuentes, con el robot Pioneer p3dx. | + | 1 2.3 |
- | * La ubicación de la fuente se definirá en las variables xf, yf dentro de su código. | + | 2 4.5 |
- | * Utilizar los sensores ultrasónicos para rodear los obstáculos en el camino del robot. | + | 3 5 |
- | * Crear una rejilla de ocupación (probabilística) con resolución de 0.25x0.25m^2 por celda que cubra todo un escenario de 10x10m^2. | + | </code> |
- | * 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//. | + | Se debe generar una trayectoria con b-splines, calculando que el tiempo total de ejecución dependa de la distancia entre el punto inicial y el final de la trayectoria (permitir 5 segundos por metro entre el inicio y el fin de la trayectoria). |
- | * El programa será probado por el profesor en un escenario de 10x10m2 en V-REP, sin mostrárselo a los estudiantes. | + | Adicionalmente, el robot debe intentar esquivar obstáculos utilizando sus sensores ultrasónicos en caso de no poder ejecutar limpiamente la trayectoria. |
- | Enviar un archivo .py por equipo, con el nombre ApellidosNombresTarea2.py a [[https://www.dropbox.com/request/LkBV2KhaydRSzwAnZcZ0|este enlace]]. | + | |
+ | [[https://www.dropbox.com/sh/tmdjki8iqnjascj/AABaaegpZtHdmbvIjoiSFM9Ba?dl=0|Convocatoria Concurso de Robótica UAQ]] | ||
+ | |||
+ | [[https://www.dropbox.com/s/sewlfcrbaowe11w/RoboticaMovil.pdf?dl=0|Temario y criterios de evaluación (Licenciatura)]] | ||
+ | |||
+ | === Aviso: No habrá sesión presencial el 30/01/2020 === | ||
+ | |||
+ | Ejercicio para el 30/01: modificar el código de trajectory.m para obtener el movimiento de dos marcos de referencia. | ||
+ | |||
+ | Descripción | ||
+ | |||
+ | Considere tres marcos de referencia en el plano (2D): {W} es el mundo, {B} es un robot omnidireccional (puede moverse en cualquier dirección y rotar sobre su eje) y {C} es un sensor ultrasónico. | ||
+ | |||
+ | El origen de {B} coincide con el centro de rotación del robot, y el eje $^B X$ apunta hacia el frente del robot. El sensor se encuentra en la parte frontal derecha del robot, de modo que las coordenadas de su origen expresadas en {B} son $^B p = [0.5 ~~ -0.3]^T$. El sensor ultrasónico en cuestión apunta hacia la derecha del robot, por lo que el ángulo entre {B} y {C} es $\theta = -\pi/2$. | ||
+ | |||
+ | Escriba un programa en MATLAB, con el toolbox RVC de Peter Corke, que obtenga las trayectorias de posición, velocidad y aceleración basadas en polinomios de quinto orden para el robot y para su sensor. Solamente genere las trayectorias del robot, y obtenga las del sensor respecto a {W} aplicando transformaciones homogéneas. Las únicas restricciones de la trayectoria son (a) que trace un hexágono y (b) que durante el recorrido desde su origen hasta su destino, el robot realice una rotación total sobre su eje de $2 \pi$. | ||
+ | |||
+ | Almacene las posiciones y orientaciones del robot y sensor como transformaciones homogéneas en SE(2) y cree una animación del movimiento. | ||
+ | |||
+ | {{ :ejercicio.png?400 |}} | ||
=== Información útil para el curso === | === Información útil para el curso === | ||
Line 45: | Line 45: | ||
Herramientas de robótica, visión y control de Peter Corke [[http://petercorke.com/wordpress/toolboxes/robotics-toolbox|RVC toolbox]] | Herramientas de robótica, visión y control de Peter Corke [[http://petercorke.com/wordpress/toolboxes/robotics-toolbox|RVC toolbox]] | ||
- | * Simulador V-REP (utilizar la edición pro EDU para el curso) [[http://www.coppeliarobotics.com/downloads.html|V-REP]] | + | * Simulador Coppelia Sim (antes V-REP) (utilizar la edición pro EDU para el curso) [[http://www.coppeliarobotics.com/downloads| Coppelia Sim]] |
- | * [[http://www.coppeliarobotics.com/helpFiles/en/remoteApiFunctionsPython.htm#simxGetObjectPosition|API remota para Python de V-REP]] | + | * [[http://www.coppeliarobotics.com/helpFiles/en/remoteApiFunctionsPython.htmn|API remota para Python de CoppeliaSim]] |
- | * [[http://www.coppeliarobotics.com/helpFiles/en/remoteApiConstants.htm#operationModes| Constantes para la API remota de V-REP ]] | + | * [[http://www.coppeliarobotics.com/helpFiles/en/remoteApiConstants.htm| Constantes para la API remota de CoppeliaSim ]] |
Distribución de Python Anaconda [[https://www.anaconda.com/download|Anaconda]] | Distribución de Python Anaconda [[https://www.anaconda.com/download|Anaconda]] | ||
Line 59: | Line 59: | ||
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. | 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 | doi: 10.1109/100.388294 | ||
+ | |||
+ | Para exploración con robot terrestre, revisar: | ||
+ | https://www.dropbox.com/s/3wanjixn6jj69al/yamauchi.pdf?dl=0 | ||
+ | |||
+ | 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 | ||
+ |