User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
roboticamovil [2019/03/12 18:23]
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)]]+Entrega19/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íneaseparando 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. +Ejemplo de archivo 
-  * Utilizar los sensores ultrasónicos para rodear los obstáculos en el camino ​del robot. + 
-  * Un programa en Python ​por equipo. +<​code>​ 
-  * El programa será probado por el profesor ​en un escenario ​de 15x15m2 en V-REPsin mostrárselo a los estudiantes. +0 0 
-Enviar ​un archivo .py por equipocon el nombre NombreequipoTarea1.py a [[https://​www.dropbox.com/​request/​IvqHqt1RYEsyCKE9DAZd|este enlace]]+1 2.
-/* +2 4.
-=== Tarea 1 (Maestría) === +3 5 
-Entrega: 11 de marzo antes de las 23:​59. ​ +</code> 
-  * Implementación del algoritmo “bug” para buscar fuentescon 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. +Se debe generar una trayectoria con b-splinescalculando 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). 
-  * A partir ​de los v(t) 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+Adicionalmenteel robot debe intentar esquivar obstáculos utilizando sus sensores ultrasónicos en caso de no poder ejecutar limpiamente la trayectoria
-  * 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. +[[https://www.dropbox.com/​sh/tmdjki8iqnjascj/AABaaegpZtHdmbvIjoiSFM9Ba?​dl=0|Convocatoria Concurso ​de Robótica UAQ]] 
-Enviar un archivo .py por equipo, con el nombre ApellidosNombresTarea1.py a [[https://​www.dropbox.com/​request/NQcP9bqlu3kc5NGTu5hh|este enlace]]. + 
-*/ +[[https://​www.dropbox.com/​s/​sewlfcrbaowe11w/RoboticaMovil.pdf?​dl=0|Temario y criterios de evaluación (Licenciatura)]] 
-=== Tarea 2 (Maestría) ​=== + 
-Entrega25 de marzo antes de las 23:59 +=== Aviso: No habrá sesión presencial el 30/​01/​2020 ​=== 
-  * Implementación del algoritmo “bug” ​para buscar fuentes, con el robot Pioneer p3dx+ 
-  * La ubicación ​de la fuente se definirá ​en las variables xfyf dentro de su código+Ejercicio para el 30/01modificar el código ​de trajectory.para obtener ​el movimiento de dos marcos de referencia
-  * 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.25x0.25m^por celda que cubra todo un escenario de 10x10m^2. +Descripción 
-  * 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 la medición. + 
-  * Utilizando matplotlibpygame o cualquier otra alternativa disponible en la distribución Anaconda, cree una visualización ​de la rejilla de ocupación, preferentemente ​en (casitiempo real+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
-  * 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. +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$
-Enviar un archivo .py por equipo, con el nombre ApellidosNombresTarea2.py a [[https://www.dropbox.com/​request/​LkBV2KhaydRSzwAnZcZ0|este enlace]].+ 
 +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éneasLas únicas restricciones ​de la trayectoria son (a) que trace un hexágono y (b) que durante el recorrido desde su origen hasta su destinoel 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(2y cree una animación del movimiento
 + 
 +{{ :ejercicio.png?​400 ​|}}
  
 === Información útil para el curso === === Información útil para el curso ===
Line 40: 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 54: 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 ​
 +