ICM3833 Tarea02

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 2

Pontificia Universidad Católica de Chile

Escuela de Ingenierı́a
Departamento de Ingenierı́a Mecánica y Metalúrgica
ICM 3833 Robótica 2019-2

Tarea #02
Entrega: Jueves, 26 de septiembre de 2019 a las 17:00 horas en secretarı́a de Inge-
nierı́a Mecánica. Se aceptarán tareas atrasadas hasta 24 horas después
del plazo con una penalización de un punto.

Instrucciones: Indicar claramente en la parte superior de la tarea número de horas usa-


das en resolver la tarea y personas con las que se colaboró. No seguir
estas instrucciones tendrán una penalización en la nota de la tarea. Fun-
damentar todas sus respuestas. Citar todas las fuentes usadas. Ejercicios
enumerados con un cı́rculo son individuales y deben ser resueltos sin co-
laboración alguna. En el resto de los casos definición de colaboración en
el programa del curso. Todo código (comentado) debe entregarlo en su
repositorio del curso (Git) el mismo dı́a.

Parte 1: Generación de Trayectorias


1. (20 pts) Trayectorias y Cinemática Directa:
Implementar una función en Python que determine la trayectoria (posición) seguida de
un herramienta (dada por una transformación en la punta de un manipulador) mediante
los ángulos reales que se obtuvieron. Mostrar un ejemplo graficando la trayectoria final
para el brazo cuando sostiene un lapiz para un set de angulos de cada articulación.

2. (20 pts) Trayectorias Suaves:


Implementar una función en Python que mediante una trayectoria de puntos (en 3D)
encuentre una trayectoria más suave ajustando un polinomio de un grado determinado.
La entrada de la función es la lista de puntos y el grado de polinomio a ajustar, y la
salida debe ser una lista de puntos 3D (con la trayectoria suavizada). Recuerde que cada
coordenada (X, Y, Z) puede separarla y ajustar un polinomio en cada caso. Mostrar
un ejemplo graficando la posición en 3D.

1
Parte 2: Visión por computadora
3. (20 pts) Coordenadas en el espacio de trabajo:
Basado en la siguiente imagen (LINK) encontrar la proyección que le permita calcular
las coordenadas en el espacio de trabajo del “brazo” del curso (considerar el eje de
referencias del brazo en la base). Graficar en la misma imagen unos 10 cuadrados rojos
(de 5cm) en el espacio de trabajo en que el brazo puede tomarlos.
Hint: cv2.imread(), cv2.findHomography() y cv2.perspectiveTransform().

4. (30 pts) Segmentación Cubos:


Basado en las siguientes imágenes (LINK) encontrar cuantos cubos se encuentran en
cada imagen. En cada caso identificar la posición y ángulo (0 − 90◦ ) de cada cubo (en
coordenadas de la imagen).
Hint: cv2.cvtColor(), cv2.inRange(), cv2.bitwise and() y cv2.findContours()

5. (BONO: 10 pts) Calibración Cámara:


Basado en un set de imágenes de prueba (LINK) encontrar la función de calibración
que permita rectificar las imágenes y eliminar el efecto de distorsión de los lentes. En
esta parte para la calibración puede usar código disponible en internet (citar) pero debe
comentar cada parte de su uso con su propias palabras. Rectificar todas las imágenes
y subirlas a su directorio en Bitbucket (Tareas/Tarea2/BONO imgs).
Hint: cv2.findChessboardCorners(), cv2.calibrateCamera() y cv2.undistort()

También podría gustarte