Daniel Ivan Zamorano Acosta

Anuncio
 cenidet
Centro Nacional de Investigación y Desarrollo Tecnológico
Departamento de Ingeniería Mecatrónica
TESIS DE MAESTRÍA EN CIENCIAS
Visión Estereoscópica y Estimación de Pose para el
Posicionamiento de un Brazo Robótico
Presentada por:
Ing. en Electrónica Ángel Ernesto Gómez Sánchez
Ing. en Electrónica Daniel Iván Zamorano Acosta
Como requisito para la obtención del grado de:
Maestría en Ciencias en Ingeniería Mecatrónica
Directores de tesis:
Dr. José Ruiz Ascencio
Dr. Juan Manuel Rendón Mancha
Cuernavaca, Morelos
30 de abril de 2008
cenidet
Centro Nacional de Investigación y Desarrollo Tecnológico
Departamento de Ingeniería Mecatrónica
TESIS DE MAESTRÍA EN CIENCIAS
Visión Estereoscópica y Estimación de Pose para el
Posicionamiento de un Brazo Robótico
Presentada por:
Ing. en Electrónica Ángel Ernesto Gómez Sánchez
Ing. en Electrónica Daniel Iván Zamorano Acosta
Como requisito para la obtención del grado de:
Maestría en Ciencias en Ingeniería Mecatrónica
Directores de tesis:
Dr. José Ruiz Ascencio
Dr. Juan Manuel Rendón Mancha
Jurado:
Dr. Alejandro Rodríguez Palacios – Presidente
Dr. Moisés González García – Secretario
Dr. José Ruiz Ascencio – Vocal
Dr. Juan Manuel Rendón Mancha – Segundo Vocal
Cuernavaca, Morelos
30 de abril de 2008
CONTENIDO
Lista de figuras ........................................................................................................................................v Lista de tablas......................................................................................................................................viii Simbología............................................................................................................................................... ix Abreviaturas y acrónimos ................................................................................................................ xv Prefacio................................................................................................................................................... xvi 1. Visión Robótica ............................................................................................................................. 1 1.1 Antecedentes ...................................................................................................................................................... 1 1.1.1 Visión Robótica en el CENIDET ..................................................................................................... 1 1.2 Planteamiento del problema....................................................................................................................... 2 1.2.1 Objetivos ...................................................................................................................................................... 3 1.2.2 Alcances y limitaciones........................................................................................................................ 3 1.3 Estado del Arte................................................................................................................................................... 4 1.3.1 Primeros trabajos en visión ............................................................................................................... 4 1.3.2 Trabajos en visión actuales............................................................................................................... 6 1.4 Conclusiones del capítulo 1 .................................................................................................................. 8 2. Calibración de cámaras ............................................................................................................. 9 2.1 Geometría proyectiva en 2D ................................................................................................................... 10 2.1.1 Representación homogénea de líneas y puntos ................................................................ 10 2.1.2 Grados de libertad ............................................................................................................................... 11 2.1.3 Geometría proyectiva en 1D y 2D .............................................................................................. 12 2.1.4 Intersección de líneas Y puntos unidos por rectas ........................................................... 13 2.1.6 Líneas al infinito .................................................................................................................................... 14 i 2.1.7 Principio de dualidad.......................................................................................................................... 14 2.1.8 Cónicas ...................................................................................................................................................... 14 2.2 Modelo de una Cámara.............................................................................................................................. 16 2.2.1 Modelo de cámara Pinhole ............................................................................................................. 16 2.2.2 Traslación de un punto principal.................................................................................................. 20 2.2.4 Matriz de calibración .......................................................................................................................... 21 2.2.5 Rotación y traslación en 3-D.......................................................................................................... 22 2.2.6 Matriz de cámara.................................................................................................................................. 23 2.2.7 Cámara proyectiva finita................................................................................................................... 23 2.2.8 Cámara proyectiva .............................................................................................................................. 24 2.3 Transformaciones proyectivas en 2D................................................................................................. 24 2.3.1 Transformaciones de puntos ......................................................................................................... 24 2.3.2 Transformación de líneas ................................................................................................................ 25 2.3.3 Transformación de cónicas ............................................................................................................ 26 2.3.4 Jerarquía de transformaciones..................................................................................................... 26 2.4 Estimación de una homografía y cálculo de la matriz de cámara P ................................. 30 2.4.1 Solución homogénea ......................................................................................................................... 31 2.4.2 Algoritmo de transformación lineal directa............................................................................. 33 2.4.3 Configuraciones degeneradas...................................................................................................... 34 2.4.4 Solución a partir de líneas y otras entidades........................................................................ 34 2.4.6 Solución no homogénea .................................................................................................................. 35 2.4.7 Solución mínima ................................................................................................................................... 36 2.4.8 Solución sobre-determinada .......................................................................................................... 36 ii 2.5 Resultados de la calibración de cámaras ........................................................................................ 37 2.26 Patrón de calibración........................................................................................................................... 37 2.27 Fijación de las cámaras ..................................................................................................................... 38 2.28 Proceso de calibración ....................................................................................................................... 40 2.29 Obtención de la matriz de cámara............................................................................................... 45 2.6 Conclusiones del capítulo 2 ............................................................................................................... 47 3. Recuperación de coordenadas en tres dimensiones .......................................................48 3.1 Pruebas de algoritmos de procesamiento de imágenes ......................................................... 48 3.1.1 Procesamiento digital de imágenes usando Matlab......................................................... 48 3.2 Recuperación de coordenadas en 3D usando cámaras fijas ............................................... 53 3.2.1 Resultados para cámaras FIJAS................................................................................................. 55 3.3 Recuperación de coordenadas en 3D usando estimación de pose.................................. 56 3.3.1 Resultados para estimación de pose........................................................................................ 61 3.4 Conclusiones del capítulo 3 ............................................................................................................... 64 4. El Robot PUMA y su control .......................................................................................................65 4.1 Estructura mecánica del robot puma.................................................................................................. 65 4.1.1 Espacio de trabajo............................................................................................................................... 67 4.2 Construcción de la 4ta articulación ....................................................................................................... 67 4.2.1 Funcionamiento del servomotor................................................................................................... 69 4.3 Rediseño de las tarjetas de control para el robot PUMA ........................................................ 70 4.3.1 Funcionamiento de la tarjeta de control .................................................................................. 72 4.4 Adaptación de los programas de la PC y del microcontrolador para su uso con las
nuevas tarjetas ........................................................................................................................................................ 74 4.5 Aplicación de un controlador PID sobre el Robot PUMA ........................................................ 76 iii 4.5.1 Ajustes del controlador PID............................................................................................................ 78 4.6 Conclusiones del capítulo 4 ............................................................................................................... 79 5. Resultados.........................................................................................................................................80 5.1 Interfaz gráfica en matlab.......................................................................................................................... 80 5.1.1 Descripción del programa ............................................................................................................... 81 5.1.2 Modo de operación de la interfaz................................................................................................ 83 5.2 Prueba del sistema de control del robot y el sistema de visión. ......................................... 86 5.2.1 Pruebas de la cinemática inversa del robot con su efector final.......... 87 5.3 Resultados del modo cámaras fijas .................................................................................................... 89 5.4 Resultados del modo estimación de pose....................................................................................... 94 6. Conclusiones....................................................................................................................................99 6.1 Objetivos cubiertos ....................................................................................................................................... 99 6.2 Aportaciones...................................................................................................................................................100 6.3 Trabajos futuros............................................................................................................................................100 Bibliografía .......................................................................................................................................... 102 ANEXO .................................................................................................................................................. 104 A. Imágenes del sistema completo............................................................................................................104 B. Circuito final de la tarjeta de control....................................................................................................105 iv LISTA DE FIGURAS
Capítulo 1
Figura 1-1: Shakey de Artificial Intelligence Center y SRI International. ............................. 5
Capítulo 2
Figura 2-1: Representación de puntos en el espacio 1D................................................... 11
Figura 2-2: Geometría proyectiva en 1D ........................................................................... 12
Figura 2-3: Geometría proyectiva en 2D ........................................................................... 13
Figura 2-4: Esquema de cámara oscura ........................................................................... 16
Figura 2-5: Esquema de una cámara CCD ....................................................................... 17
Figura 2-6: Esquema simplificado de una cámara ............................................................ 18
Figura 2-7: Modelo Pinhole simplificado............................................................................ 18
Figura 2-8: Esquema simplificado de cámara ................................................................... 19
Figura 2-9: Triángulos semejantes .................................................................................... 20
Figura 2-10: Sistema de coordenadas de la imagen ( x, y ) y de la cámara ( xcam, ycam )...... 20
Figura 2-11: Transformación euclidiana entre el marco coordenado del mundo y la
cámara............................................................................................................................... 23
Figura 2-12: Distorsión originada por una trasformación de afinidad plana. ..................... 30
Figura 2-13: Trasformación proyectiva entre líneas .......................................................... 30
Figura 2-14: Patrón de calibración..................................................................................... 38
Figura 2-15: Soportes ........................................................................................................ 39
Figura 2-16: Fijación de los soportes................................................................................. 39
Figura 2-17: Fijación de las cámaras a los soportes ......................................................... 40
Figura 2-18: Imágenes para la calibración de cámaras fijas. ............................................ 41
Figura 2-19: Resultados de la calibración, puntos reales y calculados. ............................ 45
v Capítulo 3
Figura 3-1: Diagrama con los casos fundamentales en el procesamiento de imágenes. . 49
Figura 3-2: Valores de RGB en un LED. ........................................................................... 50
Figura 3-3: Tres LEDs en una escena, su extracción y sus centroides encontrados........ 51
Figura 3-4: Estructura del programa detector de tres LEDs y recuperación de sus
coordenadas en 3D. .......................................................................................................... 52
Figura 3-5: Rayos de proyección en cada imagen. ........................................................... 54
Figura 3-6: Tres LEDs frente a dos cámaras fijas calibradas............................................ 55
Figura 3-7: Ilustración geométrica de tres puntos en el espacio. ...................................... 57
Figura 3-8: Imagen del objetivo para la estimación de pose. ............................................ 63
Figura 3-9: Gráfica de la solución obtenida para la estimación de pose. .......................... 64
Capítulo 4
Figura 4-1: Eslabones, articulaciones y motores del brazo. .............................................. 66
Figura 4-2: Espacio de trabajo (vista superior y lateral). ................................................... 67
Figura 4-3: Diseño de la 4ta articulación. ........................................................................... 68
Figura 4-4: Diseño final de la 4ta articulación.................................................................... 68
Figura 4-5: Servomotor y cámara usados en la 4ta articulación. ...................................... 69
Figura 4-6: Funcionamiento de un servomotor.................................................................. 70
Figura 4-7: Interfaz construida para el control del robot. ................................................... 72
Figura 4-8: Etapa de adquisición de datos. ....................................................................... 73
Figura 4-9: Diagrama de flujo para el programa de la PC2. .............................................. 74
Figura 4-10: Diagrama de flujo del programa del PIC. ...................................................... 75
Figura 4-11: Diagrama de flujo de la interrupción programada en el PIC. ........................ 76
Figura 4-12: Movimiento cicloidal (S) y su velocidad (S’) y aceleración (S’’). ................... 78
vi Capítulo 5
Figura 5-1: Interfaz gráfica mostrando el modo de operación de dos cámaras fijas. ........ 81
Figura 5-2: Diagrama de flujo del programa de la interfaz de usuario............................... 82
Figura 5-3: Modo de operación.......................................................................................... 83
Figura 5-4: Interfaz gráfica mostrando el modo de operación de cámara en mano. ......... 84
Figura 5-11: Configuración del manipulador plano XY. ..................................................... 88
Figura 5-12: Proyección en el plano formado por el 2 do y 3er eslabón. .......................... 89
Figura 5-13: Lazo de control usado en el sistema de visión y control del robot ................ 90
Figura 5-14: a) Cámaras fijas y objeto buscado, b) Vista superior del sistema de ejes
sobre el robot, c) Origen sobre del sistema coordenado................................................... 90
Figura 5-15: Posición inicial del robot................................................................................ 91
Figura 5-16: Interfaz gráfica final mostrando el modo de cámaras fijas. ........................... 93
Figura 5-17: Acercamiento al efector final sobre el LED. .................................................. 93
Figura 5-18: Triángulos azul y cian con los puntos de sus vértices. ................................. 94
→
→
Figura 5-19: Plano de la cámara y vectores de dirección c1 , c 2 ..................................... 95
Figura 5-21: Acercamiento al efector final sobre el objetivo de prueba............................. 98
vii LISTA DE TABLAS
Capítulo 2
Tabla 2-1: Puntos para la calibración de la cámara 1 ....................................................... 42
Tabla 2-2: Puntos para la calibración de la cámara 2 ....................................................... 42
Tabla 2-3: Resultados de pruebas para P1 ....................................................................... 44
Tabla 2-4: Resultados de pruebas para P2 ....................................................................... 44
Capítulo 3
Tabla 3-1: Resultados de la localización de coordenadas espaciales de los tres LEDs ... 56
Tabla 3-2: Pruebas de la estimación de pose ................................................................... 62
Capítulo 4
Tabla 4-1: Especificaciones del robot................................................................................ 66
Tabla 4-2: Características principales del servomotor....................................................... 69
Tabla 4-3: Constantes utilizadas en los controladores. ..................................................... 79
Capítulo 5
Tabla 5-1: Valores de los parámetros del robot................................................................. 88
Tabla 5-2: Resultados de las pruebas con el sistema de dos cámaras fijas ..................... 92
Tabla 5-3: Resultados de las pruebas de estimación de pose .......................................... 97
viii SIMBOLOGÍA
1D
Una dimensión.
2D
Dos dimensiones.
3D
Tres dimensiones.
x
Coordenada cartesiana abscisa.
y
Coordenada cartesiana ordenada.
R1
Espacio euclidiano unidimensional.
R2
Espacio euclidiano bidimensional.
R3
Espacio euclidiano tridimensional.
x
Símbolo remarcado representa un vector columna.
T
Transpuesta de un vector o matriz.
x , x′
Puntos en la imagen.
xT
Transpuesta de vector columna.
a, b, c, d , e, f , k
Constantes generalizadas.
Ρ1
Espacio proyectivo unidimensional.
Ρ2
Espacio proyectivo bidimensional.
l
Vector columna de una recta.
x1 , x2 , x3
Coordenada arbitraria generalizada.
X
Punto en el mundo representado por un vector homogéneo
( x, y , z ,1)T .
w
Factor de escalamiento para coordenadas homogéneas.
×
Producto cruz o producto vectorial.
i
Vector unitario en la dirección del eje x.
j
Vector unitario en la dirección del eje y.
k
Vector unitario en la dirección del eje z.
C
Matriz de coeficientes.
c
Vector de coeficientes.
xi
i-ésimo punto de una serie de puntos.
l∞
Línea al infinito.
ix xi
i-ésima coordenada abscisa del i-ésimo punto.
yi
i-ésima coordenada ordenada del i-ésimo punto.
C
Centro de proyección.
P
Punto en el espacio.
f
Distancia focal o distancia del centro de proyección al plano
de la cámara.
X ,Y , Z
Coordenada “x”, “y”, “z” de un punto en el espacio P .
I
Matriz identidad de dimensión 3 × 3.
P
Matriz homogénea de 3 × 4 llamada matriz de cámara.
pij
Elemento de la matriz de cámara.
xcam
Coordenada de un punto en la cámara (abscisa).
ycam
Coordenada de un punto en la cámara (ordenada).
K
Matriz de calibración.
px
Coordenada del punto principal de la cámara (abscisa).
py
Coordenada del punto principal de la cámara (ordenada).
X cam
Puntos del mundo representado por un vector homogéneo y
localizado en el origen del sistema coordenado de la
cámara.
mx
El número de píxeles por unidad de distancia en
coordenadas de imagen en la dirección “x”.
my
El número de píxeles por unidad de distancia en
coordenadas de imagen en la dirección “y”.
αx
Longitud focal en términos de las dimensiones de los pixeles
en la dirección “x”.
αy
Longitud focal en términos de las dimensiones de los pixeles
en la dirección “y”.
x0
Punto principal en términos de las dimensiones de los
pixeles en la dirección “x”.
y0
Punto principal en términos de las dimensiones de los
pixeles en la dirección “y”.
x s
Parámetro de oblicuidad entre los ejes “x”, “y” de los pixeles.
%
X
Vector no homogéneo representando las coordenadas de
un punto en el marco coordenado del mundo.
%
X
cam
Vector que representa un punto en el marco coordenado de
la cámara.
R
C~
Matriz de rotación de 3 × 3 .
Coordenadas del centro de la cámara en el marco
coordenado del mundo.
M
Matriz no singular de 3 × 3 producto de K y R .
H
Matriz de transformación.
h
Función invertible en Ρ 2 .
h( xi )
Función invertible en Ρ 2 del i-ésimo punto.
ε
Variable de grado de isometría.
HE
Matriz de transformación isométrica.
s
Factor de escalada isotrópico utilizada en las similaridades
(transformaciones proyectivas).
t
Vector de traslación.
tx
Traslación en la dirección “x”.
ty
Traslación en la dirección “y”.
Hs
Matriz de transformación de similaridad.
A
Matriz no singular que representa la afinidad.
HA
Transformación de afinidad.
R(θ )
Matriz de rotación en el ángulo θ .
R(φ )
Matriz de rotación en el ángulo φ .
D
Matriz Diagonal.
λ1
Factor de escalamiento en la rotación en “x”.
λ2
Factor de escalamiento en la rotación en “y”.
HP
Matriz de transformación proyectiva.
vT
Vector de escalamiento de transformaciones proyectivas.
v
Factor de escalamiento de transformaciones proyectivas.
xi h
Vector de 9 elementos hechos a partir de los elementos de
la matriz de transformación H .
h jT
j-ésimo renglón de la matriz de transformación H .
hi
i-ésimo elemento de h .
Ai
Matriz cuadrática de coordenadas de puntos para la
solución del sistema de transformación lineal directa.
wi′
Factor de escalamiento de coordenadas homogéneas.
n
Coeficiente generalizado.
W
Factor de escala arbitrario.
p
Vector que contiene los elementos de la matriz P .
ρ
Factor de escala arbitrario de puntos en la imagen.
pi
i-ésimo punto en el sistema coordenado de la cámara.
a, b, c
Constante generalizada, distancia de un cateto del triángulo
objetivo.
p1 , p2 , p3
Puntos conocidos del espacio del triángulo de pruebas.
s1
Distancia del centro de perspectiva al punto p1 del triángulo.
s2
Distancia del centro de perspectiva al punto p2 del triángulo.
s3
Distancia del centro de perspectiva al punto p3 del triángulo.
q1
Punto p1 del triángulo proyectado en la imagen.
q2
Punto p2 del triángulo proyectado en la imagen.
q3
Punto p3 del triángulo proyectado en la imagen.
ui
i-ésima coordenada del i-ésimo punto qi (abscisa).
vi
i-ésima coordenada del i-ésimo punto qi (ordenada).
ji
i-ésimo vector unitario del centro de perspectiva al i-ésimo
punto pi observado del triángulo.
α
Ángulo opuesto al cateto a .
β
Ángulo opuesto al cateto b .
γ
Ángulo opuesto al cateto c .
u
Variable generalizada proporciona la relación entre s2 y s1 .
xii v
Variable generalizada proporciona la relación entre s3 y s1 .
T
Vector de traslación que es la distancia del centro de
proyección hasta el punto p1 .
tx
Coordenada componente del vector T en la dirección “x”.
ty
Coordenada componente del vector T en la dirección “y”.
tz
Coordenada componente del vector T en la dirección “z”.
p 'i
i-ésimo punto en el sistema coordenado del mundo.
rij
ij-esimo elemento de la matriz de rotación.
S
Función de posición.
S’
Función de velocidad.
S’’
Función de aceleración.
τ
Constante de tiempo.
T
Tiempo total de movimiento.
Kp
Constante proporcional.
Ki
Constante integral.
Kd
Constante derivativa.
θ
Vector de los ángulos de las articulaciones del robot.
θn
n-ésimo ángulo del n-ésimo eslabón del robot.
p
Vector de la coordenada espacial deseada.
px
Coordenada componente del vector p en la dirección “x”.
py
Coordenada componente del vector p en la dirección “y”.
pz
Coordenada componente del vector p en la dirección “z”.
ai
i-ésimo desplazamiento sobre el eje coordenado “x”.
di
i-ésimo desplazamiento sobre el eje coordenado “z”.
αi
i-ésimo ángulo de giro sobre el eje coordenado “x” del iésimo eslabón.
θi
i-ésimo ángulo de giro sobre el eje coordenado “z” del iésimo eslabón.
P1i
i-ésimo punto del triángulo de la primera solución (método
xiii de Grunert).
P2i
i-ésimo punto del triángulo de la segunda solución (método
de Grunert).
→
ci
i-ésimo vector perpendicular al planos de la solución
obtenida (triángulo de la primera y segunda solución).
a'
Distancia en pixeles del cateto a .
b'
Distancia en pixeles del cateto b .
c'
Distancia en pixeles del cateto c .
ra ' −b '
Relación entre los catetos a ' y b ' .
rb ' −c '
Relación entre los catetos b ' y c ' .
rc '− a '
Relación entre los catetos c ' y a ' .
xiv ABREVIATURAS Y ACRÓNIMOS
CCD
Charge-Coupled-Device.
CENIDET
Centro Nacional de Investigación y Desarrollo Tecnológico.
CIL
Computational Imaging Lab.
CNAD
Centro Nacional de Actualización Docente.
CVC
Centro de Visión por Computador.
EMVA
Association of European Machine Vision Companies.
GDL
Grados de libertad.
LED
Light-Emitting Diode.
NHTE
Núcleo Híbrido de Transición de Estados.
PC
Personal Computer.
PC1
Computadora que controla al sistema de visión.
PC2
Computadora que controla al robot.
PIC
Controlador de Interfaz Periférico.
PID
Proporcional Integral Derivativo.
PUMA
Programmable Universal Manipulator for Assembly.
PWM
Pulse-Width Modulation.
RGB
Red, Green, Blue.
UAB
Universidad Autónoma de Barcelona.
UPF
Universitat Pompeu Fabra.
Vcd
Voltaje de corriente directa.
xv PREFACIO
La visión robótica es un campo joven multidisciplinario, ya que engloba
conocimientos de diversos campos, como son: la robótica, la visión artificial y el
control. Este campo avanza en forma rápida y frecuentemente aparecen nuevos
resultados, dando a conocer nuevas y mejores técnicas de visión, para
aplicaciones cada vez más complicadas y exigentes.
En los primeros años de la robótica móvil, el enfoque utilizado para calcular y
controlar los movimientos del robot, se basaba en el conocimiento completo del
ambiente donde se movía. Entre las características principales podemos destacar
que no se tenía contemplada la aparición de objetos no modelados (Cazorla, Otto
y Sáez 2002).
Hoy en día el control inteligente en robots tiene como objetivo el poder realizar
tareas en un ambiente cada vez menos estructurado y variante, respondiendo
apropiadamente a obstáculos y objetivos cuya posición es variable y desconocida.
Para ello es necesario incorporar sensores más adecuados para percibir el
ambiente, conocerlo y poder interactuar en él.
La visión es un sentido muy poderoso pero a la vez complicado, otorga gran
cantidad de información acerca del entorno y da pauta a una interacción
inteligente con éste, proporcionando además la identificación de la posición y de
la relación entre los objetos.
Entre las formas más comunes de visión robótica está la cámara fija que puede
incluir al robot dentro de la escena y la cámara montada sobre o cerca del efector
terminal (“ojo en mano”). El primer paso a realizar al implementar un sistema de
visión robótica es la calibración de la cámara que será su sensor de percepción
del entorno.
Este trabajo de investigación contribuye a la asimilación de técnicas de visión
artificial y de robótica en el CENIDET, haciendo la aportación de un sistema físico
compuesto de un brazo robótico tipo PUMA (Programmable Universal Manipulator
for Assembly), con un sistema de visión y la implementación de un algoritmo para
calibración de cámaras. Esto constituirá una base para futuros trabajos en estas
áreas.
Para el desarrollo de esta investigación se aprovechó el trabajo realizado en el
2005, “Construcción de un brazo robótico de tres grados de libertad (GLB) y su
control mediante el Núcleo Híbrido de Transición de Estados”, como plataforma
experimental, desarrollando algunas modificaciones para la adaptación al nuevo
sistema de visión.
xvi La mayor parte de los programas usados fueron elaborados en Matlab R2006b de
Mathworks ®, con la ayuda de las herramientas de adquisición y procesamiento
de imágenes. También fue necesaria la utilización de otros softwares como son:
SolidWorks de SolidWorks Corporation ®, para la elaboración en 3D de piezas a
construir; Protel DXP 2004, de Altium ®, necesario para la elaboración de circuitos
electrónicos impresos y esquemáticos; MPLAB de Microchip Technology Inc,
usado en la programación de los microcontroladores del robot; Turbo C++ de
Borland ®, donde se reprogramó al brazo robótico un control PID (Proporcional
Integral Derivativo).
Para presentar este trabajo de tesis, el documento se divide en las siguientes
partes:
El capítulo 1 menciona antecedentes en el campo de robótica y visión artificial,
en el CENIDET y en otros centros de investigación en el mundo. Se presenta el
planteamiento del problema, los objetivos, el alcance del proyecto y las
limitaciones de éste. También se aborda el estado del arte en visión robótica.
En el capítulo 2 se muestra la teoría básica respecto a la calibración de cámaras,
se abordan los temas de geometría proyectiva y modelos de cámaras, se
muestran además los resultados obtenidos en la calibración de cámaras, como
requisito mínimo para desarrollar este sistema de visión.
El capítulo 3 trata el tema de recuperación de coordenadas en tres dimensiones,
aprovechando la calibración de las cámaras y aplicando los métodos de cámaras
fijas y estimación de pose. Además, se muestra la técnica de procesamiento de
imágenes usada para la localización de un objeto, que funcionará como “blanco”
para posicionar el efector final del robot.
En el capítulo 4 se muestran las características mecánicas y eléctricas del robot,
las adaptaciones necesarias que se le hicieron en la parte mecánica, eléctrica, de
programación y de control para que funcione con el sistema de visión.
En el capítulo 5 se presenta la integración de los sistemas de visión y robótico,
las pruebas finales hechas y los resultados obtenidos usando los métodos de
cámaras fijas y estimación de pose.
El capítulo 6 presenta los objetivos cubiertos, las aportaciones, las limitantes y
los trabajos futuros derivados de esta investigación.
xvii CAPÍTULO 1
1. VISIÓN ROBÓTICA
La aplicación de la visión artificial en sistemas robóticos, llamado “visión robótica”, es
una disciplina que va adquiriendo desde hace unas décadas un desarrollo muy
significativo. Computadoras más veloces y el crecimiento en el desarrollo de sistemas
robóticos, hacen posible la implementación de métodos de visión desarrollados
teóricamente décadas atrás, sobre sistemas robóticos actuales.
En este trabajo se usaron dos métodos de visión: “Visión estereoscópica” y “Estimación
de pose” con el fin de localizar un objeto en el espacio y posicionar el efector final de un
brazo robótico sobre dicho objeto.
En las siguientes secciones se presentan trabajos de visión robótica, desarrollados en
el CENIDET (Centro Nacional de Investigación y Desarrollo Tecnológico); se describen
el problema, objetivos y alcances de este trabajo de tesis y el estado del arte de la
visión robótica.
1.1 ANTECEDENTES
1.1.1 VISIÓN ROBÓTICA EN EL CENIDET
La visión robótica en el CENIDET es un campo en el cual se ha incursionado en
departamentos como Ciencias Computacionales, en el área de Inteligencia Artificial y
en el departamento de Mecatrónica.
En el caso del departamento de mecatrónica se desarrollaron trabajos como:
“Construcción de un brazo robótico de tres GDL y su control mediante el núcleo híbrido
de transición de estados” (Villalobos y Ramírez 2005), donde se realizó la construcción
de un brazo robótico de tres grados de libertad tipo PUMA como plataforma para probar
la eficiencia de la metodología del Núcleo Híbrido de Transición de Estados (NHTE)
como controlador de una planta no lineal. Este brazo se utilizó para anexarle una
cámara en su efector final e implementar algoritmos de calibración de cámaras,
detección de objetos en imágenes y cálculo de sus coordenadas en 3D, para llevar a
cabo el control de sus movimientos, obteniendo con esto un prototipo de visión robótica
real en el CENIDET.
1 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Por parte del grupo de inteligencia artificial se realizaron tesis como: “Diseño de un
sistema de calibración automática para un sistema de visión robótica modular” (Pérez
Ramírez 2002), donde se aborda el tema de calibrar un sistema modular de visión
robótica, estando el sistema de visión, el robot y el sistema de calibración en módulos
que no están directamente ligados, esto se desarrolló en un sistema computacional
donde al seleccionar un punto en una imagen éste era enviado al sistema de referencia
del robot para que el brazo se moviera hacia ese punto. En la simulación, la cámara no
estaba montada en el robot, además, la matriz de calibración de la cámara y los
parámetros del robot se supusieron conocidos.
En trabajos como: “Detallador de tareas para procesos de Visión Robótica” (López
Solórzano 2003) y “Esquema para la integración de Sistemas de Visión Robótica”
(Peralta Abundez 2003), fueron abordados temas como la integración entre sistemas
de visión artificial por computadora y sistemas de control de robots articulados.
1.2 PLANTEAMIENTO DEL PROBLEMA
La problemática a resolver es la calibración de cámaras, necesaria para extraer
información métrica a partir de imágenes bidimensionales del mundo en tres
dimensiones. Aunque existen técnicas para inferir esta información desde imágenes
captadas por cámaras no calibradas, estas técnicas limitan la posibilidad de realizar
aplicaciones efectivas en visión, tal como interacción en ambientes, seguimiento y
reconstrucción en tres dimensiones, los cuales se basan en el conocimiento de la
traslación y rotación de la cámara (Aracena Pizarro, Campos y Clésio 2005).
Los procesos de calibración proporcionan una matriz que contiene la información de
rotación, traslación y escala de la cámara, ésta es llamada matriz de cámara.
La matriz de cámara contiene 11 parámetros que representan una transformación lineal
del mundo real a la cámara, es decir, traslada cada punto del mundo real a un punto en
una imagen, sin embargo el proceso inverso no es posible, puesto que se pierde una
dimensión (profundidad) (Zisserman y Hartley 2003), de tal manera, que es necesario,
a partir del conocimiento de la matriz de cámara, aplicar métodos como visión
estereoscópica y estimación de pose para recuperar dicha dimensión.
El problema se resume al cálculo de los 11 parámetros de la matriz de cámara y la
recuperación de coordenadas en 3D a partir de los métodos de visión estereoscópica y
estimación de pose.
2 Capítulo 1 Visión Robótica
1.2.1 OBJETIVOS
OBJETIVO GENERAL
Usar la visión estereoscópica provista por dos cámaras calibradas y la estimación de
pose de una cámara calibrada montada sobre el robot, para localizar un punto en el
espacio y usar esta información dentro de un lazo de control que lleve el efector final de
un brazo robótico tipo PUMA al punto final deseado.
OBJETIVOS PARTICULARES
i)
ii)
iii)
iv)
v)
vi)
vii)
Diseño y construcción de una articulación de al menos un grado de libertad
adicional para el eslabón terminal del brazo PUMA.
Construcción de un eslabón terminal con base para cámara e índice
posicional.
Implementar el método de calibración directa.
Implementar dos métodos de recuperación de coordenadas en 3D: visión
estereoscópica (un par de cámaras fijas) y estimación de pose (cámara en
mano).
Reconocer y localizar un blanco (objetivo) en una imagen; un LED en caso
de visión estereoscópica y 3 LEDs en caso de estimación de pose,
controlando todas las variables posibles (iluminación, control de la escena,
color, etc.) para facilitar la tarea al sistema de visión.
Resolver la localización espacial del blanco aplicando el método de visión
estereoscópica y realizar la aproximación del eslabón final al blanco.
Realizar desplazamientos para localizar el blanco, resolver la localización
espacial del blanco aplicando el método de estimación de pose y realizar la
aproximación del eslabón final al blanco.
1.2.2 ALCANCES Y LIMITACIONES
Los alcances de este trabajo de tesis de maestría son los siguientes:
•
•
•
Asimilación de las técnicas básicas de visión artificial en un ambiente
estructurado.
Estudio de algunos modelos de cámara y asimilación de las técnicas básicas de
calibración.
Conocer superficialmente la cinemática y dinámica del robot tipo PUMA.
3 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
•
•
•
•
Instrumentación del brazo con una articulación y un eslabón terminal que porte
una cámara y un índice de posición.
Desarrollo de
la secuencia de control de posición y algoritmo de
calibración con ayuda de Matlab.
Programación de dicha secuencia y procedimiento de calibración.
Evaluación experimental del sistema.
Entre las limitaciones que se presentaron durante el desarrollo de la investigación se
encuentran:
• Sólo se aplicó un método de calibración de cámaras, llamado calibración directa,
se usó sólo este método ya que presenta poca complejidad en la resolución de
sus ecuaciones.
• La falta de herramienta y equipo para la construcción de la cuarta articulación
ocasionó deficiencias simétricas, que se reflejaron en el cálculo de la cinemática
inversa del robot.
• No se desarrolló el control del robot en la plataforma de MatLab, debido a la
limitante del tiempo para el desarrollo de la investigación.
• El estado mecánico del robot fue la limitante más significativa para la evaluación
del sistema, ya que el modelo dinámico que lo representaba no fue el correcto y
ocasionó problemas en su control y por consiguiente errores de posición.
1.3 ESTADO DEL ARTE
1.3.1 PRIMEROS TRABAJOS EN VISIÓN
Muchas han sido las investigaciones hechas décadas atrás en trabajos relacionados
con visión, calibración de cámaras estereoscópicas, estimación de pose para el caso
de una sola cámara y reconstrucción en tres dimensiones, dichas investigaciones
aportan múltiples métodos y formalismos matemáticos útiles para la resolución de los
problemas tratados en este trabajo de tesis.
A finales de los 60s el Artificial Intelligence Center y SRI International reportaron el
desarrollo de un robot móvil llamado Shakey, dotado con una limitada habilidad para
percibir y modelar ambientes, podía realizar tareas planeadas, buscar rutas y
reacomodar objetos simples (Fu, González y Lee 1987).
4 Capítulo 1 Visión Robótica
Figura 1-1: Shakey de Artificial Intelligence Center y SRI International.
Los primeros trabajos en procesamiento automático de imágenes se hicieron en la
década de los 70s por gente como: Hans Moravec, Gerald J. Sussman. Aunque aun
no existía la robótica o visión computacional tal cual, ya aparecían las primeras
aplicaciones industriales y se hacía investigación en robótica, imágenes médicas y
aéreas (Hayet 2007).
En 1973 Bolles y Paul de Stanford mostraron un sistema retroalimentado con visión,
con un brazo robótico y una computadora PDP-10, para el ensamblado de bombas de
agua de automóviles (Fu, González y Lee 1987).
Los problemas de recursos de computación limitados, hacían difíciles de realizar los
sueños de los pioneros, la noción de “dificultad” de los problemas a resolver entre
máquinas y humanos era diferente, lo que es fácil para humanos (reconocer caras,
moverse acoplando sensores y motorización) no lo es para las máquinas.
A finales de los 70s David Marr propone una dirección en cuanto a la visión artificial:
abandonar toda búsqueda de modelización
simbólica de los procesos de
reconocimiento de patrones y reconstrucción y propone una teoría inspirada
5 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
completamente en estudios sobre la visión humana, algoritmos reactivos basados en
comportamientos elementales (Hayet 2007).
En los años 80s y 90s, abordaban el tema de calibración de cámaras, análisis y
reconstrucción 3D, investigaciones como: “Camera Self-Calibration: Theory and
Experiments” (Faugera, Luong y Maybank 1992), “A Guided Tour Through Multiview
Relations” (Moons 1998), “Camera Calibration Using Line Correspondences” (R.
Hartley 1993), se enfocaron en la búsqueda de mejores métodos para el cálculo de los
coeficientes de la “matriz de cámara”, que contiene la información de rotación,
traslación y escala de la cámara, y que establece la correspondencia entre el sistema
de coordenadas en tres dimensiones del mundo físico y del sistema visual
(coordenadas de una imagen en dos dimensiones), estos estudios se basaron en el
modelo de cámara “Pinhole”.
Otro tema de investigación importante fue el estudio de reconstrucciones en 3D
abordando el problema de encontrar un punto en el espacio a partir de imágenes
provenientes de cámaras con pose o calibración conocida, para el caso de dos
cámaras calibradas o visión estereoscópica el proceso requiere la intersección en el
espacio de dos rayos, éste método es comúnmente llamado “Triangulación” (Hartley y
Sturm 1997).
En el 2003, Richard Hartley y Andrew Zisserman, presentan el libro “Multiple View
Geometry in Computer Vision”, el cual se tomó como base teórica de esta tesis,
mostrado en el Capitulo 2, para el estudio de geometría proyectiva, transformaciones
en 2D y 3D, estudio de modelos de cámaras, calibración de cámaras donde se “obtuvo
la matriz de cámara” y las bases de la reconstrucción en 3D.
1.3.2 TRABAJOS EN VISIÓN ACTUALES
Actualmente, un sistema de visión robótica es una tecnología que integra aplicaciones
informáticas, ópticas y electrónicas capaces de dotar del sentido de la vista a máquinas
y robots, que así pueden percibir su entorno y reaccionar según unas normas exigidas.
La adquisición de imágenes y su análisis automático, sin necesidad de establecer
contacto físico alguno, en cualquier momento y lugar, permite controlar procesos
industriales con gran eficiencia y total seguridad.
El cometido de un sistema de visión artificial es dotar a las máquinas del “sentido de la
vista” para que puedan captar el aspecto y las cualidades de un objeto o escena (color,
luminosidad, forma y tamaño).
Un sistema de visión artificial captura imágenes individuales o secuencias de vídeo,
que luego son procesadas informáticamente con el fin de analizar y medir una o varias
características del objeto en cuestión. Toda esta información debe facilitar la toma de la
decisión más adecuada en un proceso productivo.
6 Capítulo 1 Visión Robótica
Los componentes básicos de un sistema de visión artificial se describen a continuación.
La cámara capta la imagen, la computadora, provista de una tarjeta de vídeo y del
software adecuado, digitaliza y procesa la señal visual. Se requiere también una
iluminación apropiada para la escena y el trabajo encomendado. Actualmente existe
una gran variedad de los componentes básicos que integran un sistema de visión
artificial. Muchos de estos elementos esenciales pueden combinarse y configurar el
sistema más adecuado a cada necesidad (Banespyme 2006).
El sistema robótico puede ser definido desde diversos puntos de vista:
Con independencia respecto a la definición de "robot":
"La Robótica es la conexión inteligente de la percepción a la acción"...
(Banespyme 2006)
En base a su objetivo:
"La Robótica consiste en el diseño de sistemas. Actuadores de locomoción,
manipuladores, sistemas de control, sensores, fuentes de energía, software de calidad,
todos estos subsistemas tienen que ser diseñados para trabajar conjuntamente en la
consecución de la tarea del robot"... (Banespyme 2006)
Tomando esta última definición, el sistema robótico consta de:
•
•
•
•
•
•
•
Estructura mecánica
Transmisiones
Sistema de accionamiento (actuadores)
Sistema sensorial (sensores)
Elementos terminales
Sistema de control (controlador)
Alimentación
La función del controlador es gobernar el trabajo de los actuadores (los dispositivos que
originan el movimiento) y las transmisiones (modificadores del movimiento). La
alimentación proporciona la energía necesaria para todo el sistema. Además de estos
tres subsistemas, los robots de segunda generación incorporan sensores que reciben
la señal de realimentación procedente de los actuadores pasando la información al
controlador, que debe calcular la corrección del error. El entorno proporciona también
información que reciben los sensores y se envía de nuevo al controlador para hacer los
ajustes necesarios para la realización de la tarea (González Fernández 2003).
Existen diversos portales en internet que contienen información relevante respecto a
visión y robótica actual como son: Machine Vision Portal, con noticias y una guía de
productos y también Machine Vision Online, que presenta una gran biblioteca de
artículos técnicos y descripciones de aplicaciones industriales. Las revistas
7 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
especializadas aportan muchos datos de interés: The Journal of Electronic Imaging y
Vision Systems Design e incluso Machine Vision Tech Group, de la Society of
Manufacturing Engineers (SME), que cuenta con un activo foro de discusión e
intercambio de información.
Algunos departamentos universitarios, centrados en la investigación básica y aplicada,
apuestan fuerte por el tema, como el Centro de Visión por Computador (CVC, de la
UAB), el Computational Imaging Lab (CILab, de la UPF) y el Grupo de Automática,
Robótica y Visión Artificial (Escuela Politécnica Superior de la UA).
Muchas empresas ofrecen su gama de productos y aplicaciones, como National
Instruments, DALSA Coreco, The Imaging Source Europe y The Computer Vision
Industry. Entre las empresas, DataPixel, expertos en visión 3D, óptica, electrónica e
ingeniería de software y DCM Sistemes, especializados en iluminadores para visión
artificial. Para cerrar esta lista parcial, Association of European Machine Vision
Companies (EMVA), que reúne las empresas y las asociaciones del sector.
1.4 CONCLUSIONES DEL CAPÍTULO 1
En éste capítulo se presentó y detalló el problema de nuestro tema de investigación,
así como los objetivos, alcances y las limitaciones del mismo. En el estado del arte
presentado en la sección anterior se mostraron algunos trabajos relacionados con la
solución del problema, en particular el libro “Multiple View Geometry in Computer
Vision”, de donde se obtuvo la base teórica del tema de calibración y el estudio de la
geometría proyectiva.
El primer paso para encontrar la solución al problema de calibración, fue el estudio del
modelo de la cámara y su representación matemática, el cual se muestra en el
siguiente capítulo.
Los métodos de visión estereoscópica y estimación de pose se usaron para la
recuperación de la información en 3D de un objeto en el espacio aprovechando el
conocimiento de la calibración de las cámaras, explicándose más a detalle en el
capítulo 3.
8 CAPÍTULO 2
2. CALIBRACIÓN DE CÁMARAS
El primer paso para desarrollar un sistema de visión robótica real es el de calibración
de cámaras, con la calibración de cámaras se obtienen los parámetros internos
(intrínsecos) y externos (extrínsecos) de la cámara. El proceso de calibración de
cámara, es necesario para poder extraer información métrica a partir de imágenes en
2D del mundo 3D. El proceso de calibración de cámara abre la posibilidad de realizar
aplicaciones efectivas en visión, tal como el reconocimiento, seguimiento y
reconstrucción 3D, los cuales se basan en el conocimiento de la calibración y pose de
la cámara (Aracena Pizarro, Campos y Clésio 2005).
Para comprender la técnica de calibración y los métodos de recuperación de
coordenadas utilizados, es necesario tener conocimiento de la geometría proyectiva,
pues conceptos como coordenadas homogéneas y modelos de cámaras tienen su
fundamento en ella.
Las secciones de este capítulo proporcionan conceptos, fundamentos,
representaciones, terminologías y notaciones que serán usadas a lo largo de este
documento, como parte central para el análisis, comprensión e implementación de las
técnicas de calibración y recuperación de coordenadas en 3D.
En la primera sección de este capítulo se abordan conceptos para la representación de
las diferentes entidades geométricas (punto, línea y cónica), así como la transformación
proyectiva en 1D y 2D (una dimensión y dos dimensiones respectivamente). Esta
sección es una introducción a la geometría proyectiva.
En la sección dos, se presentan de forma general el esquema de cámara Pinhole, su
funcionamiento básico y el modelo matemático. También se presentan algunas
cuestiones matemáticas relevantes para comprenderlo y entenderlo mejor e ir
presentando de forma gradual un modelo más completo de la cámara en la que se
desarrollará un análisis matemático de una transformación proyectiva, hasta llegar a
obtener un modelo de la “matriz de calibración” y sus diferentes casos típicos.
En la tercera sección de este capítulo, se presentan con mayor detalle conceptos y
desarrollos para las transformaciones proyectivas en dos dimensiones. También se
presentan las transformaciones de líneas, puntos, cónicas, así como las jerarquías de
transformaciones. En esta sección se estudian las transformaciones proyectivas y su
descomposición.
9 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
En la cuarta sección se presentan los conceptos aplicados para comprender, realizar y
obtener la calibración de una cámara. Se indica el cálculo y estimación de una
homografía, así como algunas de sus configuraciones posibles para el cálculo de una
posible solución a partir de líneas y otras entidades geométricas (puntos, cónicas). En
ésta sección se obtienen los fundamentos básicos para poder realizar la calibración de
cámara, obteniendo la solución en diferentes enfoques, la homogénea, la mínima y la
sobre determinada.
En la última sección se presentan la metodología empleada y los resultados obtenidos
en la calibración de las cámaras con las que se trabajaron para el desarrollo del
proyecto.
2.1 GEOMETRÍA PROYECTIVA EN 2D
Esta sección introduce los principales conceptos geométricos y la notación que se
requiere para entender el material presentado en éste capítulo.
Algunos de estos conceptos son familiares, como la formación de puntos o la
representación de líneas, mientras que otras son más complejas. Estos conceptos
serán planteados en el caso planar o 2D porque así son más fácilmente visualizados.
Comenzaremos por describir la representación de puntos, líneas y cónicas en
coordenadas homogéneas y cómo estas entidades se dibujan bajo transformaciones
proyectivas.
2.1.1 REPRESENTACIÓN HOMOGÉNEA DE LÍNEAS Y PUNTOS
Un punto en un plano puede ser representado por un par coordenado ( x, y ) en R 2 . Se
considerará la proyección entre espacios vectoriales y se representarán tales
proyecciones como matrices. El producto de una matriz y un vector es otro vector, esto
lleva a la distinción entre vectores columnas y vectores renglones, ya que una matriz
puede ser multiplicada por un vector columna por la derecha y por la izquierda por un
vector renglón. Las entidades geométricas por defecto serán representadas por
vectores columna. Un símbolo remarcado x siempre representa un vector columna y
su transpuesta es el vector x T . De acuerdo con esta convención, un punto en el plano
será representado por el vector columna ( x, y ) . Por lo que se escribirá x = ( x, y ) .
T
T
Una recta puede ser expresada por una ecuación de la forma ax + by + c = 0 , donde los
coeficientes a, b y c pueden tener diferentes valores, permitiendo representar así
diferentes líneas. De este modo, una línea puede ser representada por un vector
(a, b, c ) T. La correspondencia de las líneas no es uno a uno, ya que las ecuaciones
10 Capítulo 2 Calibración de cámaras
ax + by + c = 0 y (ka )x + (kb ) y + kc = 0 representa a la misma línea, esto es para cualquier
valor de k diferente de cero. Si la relación entre dos vectores es un factor, que al ser
multiplicado por uno de ellos obtenemos el otro vector, se consideran a estos vectores
equivalentes. Un vector equivalente bajo este tipo de relación es conocido como vector
T
homogéneo. Cualquier vector particular (a, b, c ) es un representativo de la clase
equivalente. Una serie de vectores de clases equivalentes en R 3 , a excepción del
T
vector (0,0,0) , forman el espacio proyectivo Ρ 2 .
Un punto x = ( x,y ) está situado sobre una recta l = (a, b, c)T si y solo si ax + by + c = 0 .
T
Esto puede ser escrito en términos de un producto interno de vectores representantes
T
T
de los puntos, como: ( x, y,1)( a, b, c ) = ( x, y,1) l = 0 , donde el punto (x, y ) en R 2 es
representado como un vector de tres elementos (3-vector) al agregar al final la
coordenada 1. Nótese que para cualquier valor diferente de cero para la constante k y
la línea l , la ecuación ( kx, ky, k ) l = 0 si y solo si ( x, y,1) l = 0 . Por consiguiente es
normal considerar la serie de vectores (kx, ky, k ) para cualquier valor de k ≠ 0 como
T
una representación del punto ( x,y ) en R 2 . Así como las líneas, los puntos pueden ser
T
representados por vectores homogéneos. Un vector homogéneo arbitrario de la forma
T
T
en R 2 .
x = ( x1, x 2, x3) representa al punto x1 , x 2
x3
x3
(
)
2.1.2 GRADOS DE LIBERTAD
Para representar un punto en el espacio R 2 se requiere proporcionar dos valores,
llamados coordenadas x y y , así también para representar una recta de la forma
(ax + by + c = 0) se define un par de parámetros independientes dados por las relaciones
entre los coeficientes {a : b : c} . Entonces los grados de libertad son el número mínimo
de parámetros que se requiere para especificar un punto, una recta o cualquier otra
entidad geométrica sin considerar los valores de sus coeficientes.
Figura 2-1: Representación de puntos en el espacio 1D.
11 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
2.1.3 GEOMETRÍA PROYECTIVA EN 1D Y 2D
Para continuar, se estudiará el caso particular de 1D dimensión y así entender el
concepto fundamental de la geometría proyectiva. Se puede observar que para
representar un punto X en R1 se requiere sólo de un coeficiente. En la figura 2-2 se
muestra de manera gráfica la representación de este punto. Una forma de representar
un punto en coordenadas homogéneas es agregando al final una coordenada más,
T
teniendo como resultado un punto X = ( x, w ) en R 2 para un plano proyectivo Ρ1 . Con
la geometría proyectiva se logra la representación de un punto en un plano proyectivo.
Una forma de visualizar esto, es suponiendo un punto como origen del que parten
líneas en todas direcciones. En la figura 2-2 se muestra gráficamente esta idea.
Figura 2-2: Geometría proyectiva en 1D.
La geometría proyectiva en 2D es un caso generalizado de la geometría proyectiva en
1D. Con la diferencia de que en éste, los puntos en R 2 son representados por tres
T
coeficientes x = ( x, y, w ) para un plano proyectivo P 2 .
En la figura 2-3 se observa la idea de profundidad en los puntos, se puede ver que los
vectores cuya relación es un coeficiente k ≠ 0 que los multiplica, son equivalentes y
representan al mismo punto en coordenadas homogéneas.
12 Capítulo 2 Calibración de cámaras
Figura 2-3: Geometría proyectiva en 2D.
2.1.4 INTERSECCIÓN DE LÍNEAS Y PUNTOS UNIDOS POR RECTAS
Dadas dos líneas l = ( a, b, c ) y l ′ = ( a′, b′, c′ ) en R 2 ,
queremos encontrar su
intersección. Se define el vector x = l × l ′ , donde × es el producto vectorial o producto
cruz. Por la identidad del triple producto escalar, l ⋅ ( l × l ′ ) = l ′ ⋅ ( l × l ′ ) = 0 tenemos que
T
T
l T x = l ′T x = 0 . De esta forma, si x es la representación de un punto, entonces x se
encuentra en la línea l y en la línea l ′ .
Por lo tanto, la intersección de dos líneas l y l ′ es un punto x = l × l ′ .
Por ejemplo si se desea determinar la intersección de las líneas x = 1 y y = 1. Se tiene
que la línea x = 1 es equivalente a − x + 1 = 0 , su representación homogénea es
T
l = ( −1, 0,1) , la línea y = 1 es equivalente a − y + 1 = 0 , su representación homogénea
es l ′ = ( 0, −1,1) , si aplicamos la relación x = l × l ′ tenemos que:
T
j k ⎤ ⎡1⎤
⎡i
⎢
x = l × l ′ = ⎢ −1 0 1 ⎥⎥ = ⎢⎢1⎥⎥
⎢⎣ 0 −1 1 ⎥⎦ ⎢⎣1⎥⎦
13 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Una expresión para una línea que pasa a través de dos puntos x y x ′ puede ser
derivada de un análisis similar al anterior, definiendo a la línea como l = x × x ′ .
2.1.6 LÍNEAS AL INFINITO
Los puntos x = ( x1, x 2, x3) tales que x3 ≠ 0 corresponden a puntos finitos en R 2 . Los
T
puntos con la última coordenada x3 = 0 son conocidos como puntos ideales, o puntos al
T
infinito. Estos puntos pueden ser escritos como ( x1, x 2,0) y están sobre una línea
singular llamada línea al infinito, se representa con el vector l∞ = (0, 0,1)T .
2.1.7 PRINCIPIO DE DUALIDAD
El principio de dualidad dice:
A cada teorema de la geómetra proyectiva bidimensional le corresponde un teorema
dual, el cual es derivado intercambiando los roles de puntos y líneas en el teorema
original.
Por ejemplo la ecuación l T x = 0 , implica que x T l = 0 . El principio de dualidad puede ser
trasladado a conceptos como el de intersección de dos líneas y observar que es dual al
de líneas que unen a dos puntos.
2.1.8 CÓNICAS
La cónica es una de las entidades geométricas importantes cuya representación en
coordenadas no homogéneas es:
ax 2 + bxy + cy 2 + dx + ey + f = 0
Homogenizando al hacer las siguientes sustituciones: x α x1
x3
ax 21 + bx1 x2 + cx 2 2 + dx1 x3 + ex2 x3 + fx 2 3 = 0
y expresada en forma matricial:
14 y y α x2
x3
tenemos:
(2.1)
Capítulo 2 Calibración de cámaras
x T Cx = 0
(2.2)
donde la matriz de coeficientes C está dada por:
b / 2 d / 2⎤
⎡ a
⎢
c
e / 2 ⎥⎥
C = ⎢b / 2
⎢⎣ d / 2 e / 2
f ⎥⎦
(2.3)
Note que la matriz de coeficientes de la cónica C es simétrica. Como en el caso de la
representación homogénea de líneas y puntos, sólo las proporciones de los elementos
de la matriz son importantes, puesto que si a C se le multiplica por un escalar diferente
de cero éste no afecta a la ecuación superior. Así C es la representación homogénea
de una cónica.
Suponga que desea construir una cónica que pase por una serie de puntos xi . ¿Para
definir a una cónica y que esta sea única, cuántos puntos son necesarios? De la
ecuación 2.1 cada punto xi aporta una restricción a los coeficientes de la cónica,
puesto que la cónica pasa a través de ( xi , yi ) entonces:
T
ax 2 i + bxi yi + cy 2 i + dxi + eyi + f = 0
(2.4)
Esta restricción se puede escribir como:
(x
Donde c = ( a b c d
e
2
i
xi yi
y 2i
xi
yi 1) c = 0
f ) , si agrupamos las restricciones de cinco puntos
T
tenemos:
⎡ x 21
⎢ 2
⎢x 2
⎢ x 23
⎢ 2
⎢x 4
⎢ x2
⎣ 5
x1 y1
x2 y2
y 21
y 22
x1
x2
x3 y3
x4 y4
y 23
y 24
x3
x4
x5 y5
y 25
x5
15 y1 1⎤
⎥
y2 1⎥
y3 1⎥ c = 0
⎥
y4 1⎥
y5 1⎥⎦
(2.5)
Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
La ecuación anterior muestra una cónica determinada completamente por cinco puntos
en cualquier posición en general.
2.2 MODELO DE UNA CÁMARA
Es importante conocer el concepto básico de la cámara PINHOLE y de la cámara CCD
que en la actualidad es la tecnología comúnmente utilizada para las cámaras digitales
ya sea para cámaras de video, fotográficas o WebCam's. La cámara es el sensor que
permite realizar una transformación entre el mundo tridimensional (3D) y una imagen
bidimensional (2D). En esta sección se comenzará con un modelo simple de cámara
que es la cámara Pinhole básica. Los modelos desarrollados están principalmente
diseñados para cámaras con sensor tipo CCD (charge-coupled-device), que se
considera ideal y que no existe distorsión radial. A continuación se irán desarrollando
los conceptos básicos, así como su modelo matemático.
2.2.1 MODELO DE CÁMARA PINHOLE
En la figura 2-4 se presenta un esquema de la cámara oscura. Este esquema
representa de forma básica la cámara Pinhole, la cual mediante un orificio muy
pequeño C en una pared deja entrar la luz externa que es proyectada en una pared
interior de la cámara oscura. El resultado en esta cámara es una imagen invertida del
mundo exterior sobre un plano que se encuentra en el interior de ésta.
Figura 2-4: Esquema de cámara oscura.
El modelo de cámara oscura puede ser considerado para ser utilizado como modelo de
una cámara normal CCD, como el esquema que se muestra en la figura 2-5, en la que
16 Capítulo 2 Calibración de cámaras
un lente es el encargado de dejar pasar la luz como el pequeño orificio del esquema
anterior y tenemos como la parte posterior de la cámara un sensor tipo CCD que es el
encargado de recibir la luz del exterior y convertirla a valores de voltajes.
La cámara CCD es un sensor de imagen que utiliza elementos semiconductores
fotosensibles en forma de arreglos matriciales. Los sensores activos de este arreglo
son distribuidos en píxeles individuales. Las cámaras CCD son dispositivos que poseen
una muy baja deformación geométrica de la imagen, una muy buena sensibilidad a la
luz y una muy buena resolución llegando típicamente a los 400,000 pixeles. El tiempo
de captura de la imagen esta típicamente en el rango de 1/60s y 1/10000s.
Si nos fijamos en la figura 2-5, podemos ver que la imagen en el CCD está invertida,
pero mediante procesamiento electrónico las cámaras digitales nos entregan una
imagen derecha, es decir el plano de la imagen que nosotros vemos está en forma
normal y sin inversión. Con esto podemos representar de una forma más simplificada el
modelo anterior suponiendo un plano entre la lente y mundo real lo que nos dará una
proyección del mundo real sobre una imagen bidimensional en forma no invertida tal
como se obtiene en una cámara normal. Esta suposición nos simplificará el modelo de
la cámara. Esta se muestra de manera gráfica en el esquema de la figura 2-6.
Figura 2-5: Esquema de una cámara CCD.
17 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 2-6: Esquema simplificado de una cámara.
Figura 2-7: Modelo Pinhole simplificado.
A la proyección de puntos que pasan por un centro de proyección C se le conoce como
proyección central y es mostrada en la figura 2-7, donde la línea de proyección del
punto P pasa por un centro de proyección.
Considérese una proyección central de puntos en el espacio sobre un plano. Dejando
que el centro de proyección sea el origen de un sistema de coordenadas cartesianas
considérese el plano z = f , que es llamado el plano de la imagen o plano focal. Bajo el
modelo de la cámara Pinhole, un punto en el espacio con coordenadas P = ( X , Y , Z )
T
es proyectado a un punto en el plano de la imagen donde una línea une el punto P con
el centro de proyección a través del plano de la imagen. Esto se puede ver en la figura
18 Capítulo 2 Calibración de cámaras
2-8. Se tomará el modelo simplificado haciendo la consideración ya antes mencionada
quedando un esquema que se muestra en la figura 2-9.
Por triángulos semejantes, se puede observar que el punto ( X , Y , Z ) es proyectado al
T
( fX Z , fY Z )
T
punto
sobre el plano de la imagen.
( X ,Y , Z ) a
T
(
fX
Z
, fY
)
T
Z
(2.6)
Si el mundo y puntos de la imagen son representados por vectores homogéneos,
entonces la proyección es simplemente expresada como una función lineal entre estas,
los vectores en coordenadas homogéneas y pueden ser escritos en términos de una
multiplicación de matrices como:
⎛X⎞
⎜ ⎟
⎜Y ⎟
⎜Z ⎟α
⎜ ⎟
⎜1⎟
⎝ ⎠
⎛ fX ⎞ ⎡ f
⎜ ⎟ ⎢
⎜ fY ⎟ = ⎢
⎜ Z ⎟ ⎢
⎝ ⎠ ⎣
f
⎛X⎞
0⎤ ⎜ ⎟
⎜Y ⎟
0⎥⎥⎜ ⎟
Z
1 0⎥⎦⎜⎜ ⎟⎟
⎝1⎠
(2.7)
también puede ser escrita como diag ( f , f ,1)[I | 0] , donde diag( f , f ,1) es una matriz
diagonal y [ I | 0] representa a una matriz compuesta por un bloque de 3 × 3 (la matriz
identidad) más un vector columna de ceros.
Si se introduce la notación X para los puntos en el mundo representados por un vector
T
homogéneo ( X , Y , Z ,1) , x para los puntos de la imagen representados por un vector
homogéneo vector-3, y P para una matriz homogénea de 3 × 4 definida como
P = diag ( f , f ,1)[I | 0] llamada matriz de cámara, podemos escribir la ecuación 2.7 de
forma compacta como x = PX .
Figura 2-8: Esquema simplificado de cámara.
19 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 2-9: Triángulos semejantes.
Figura 2-10: Sistema de coordenadas de la imagen (
x, y )
y de la cámara (
xcam, ycam ).
2.2.2 TRASLACIÓN DE UN PUNTO PRINCIPAL
En la ecuación 2.6 se asume que el origen de las coordenadas en la imagen está en el
punto principal. En la práctica esto no es así, en general la proyección es:
(x, y, z )T α
⎛⎜ fx + p , fy + p ⎞⎟
x
y
z
⎝ z
⎠
T
Donde ( px , p y )T son las coordenadas del punto principal, figura 2.10, por lo que
podemos reescribir las ecuaciones en coordenadas homogéneas como:
20 Capítulo 2 Calibración de cámaras
⎛X ⎞
⎜ ⎟
⎜Y ⎟
⎜Z ⎟α
⎜ ⎟
⎜1⎟
⎝ ⎠
⎛ fX + Zp x ⎞ ⎡ f
⎜
⎟ ⎢
⎜ fY + Zp y ⎟ = ⎢
⎜
⎟ ⎢
Z
⎝
⎠ ⎣
px
f
py
1
⎛X⎞
0⎤⎜ ⎟
⎜Y ⎟
0⎥⎥⎜ ⎟
Z
0⎥⎦⎜⎜ ⎟⎟
⎝1⎠
(2.8)
2.2.4 MATRIZ DE CALIBRACIÓN
Ahora si se define,
⎡f
K = ⎢⎢
⎢⎣
f
px ⎤
p y ⎥⎥
1 ⎥⎦
(2.9)
Entonces la ecuación 2.8 puede ser expresada de forma compacta como:
x = K [ I | 0] Xcam
(2.10)
La matriz K es llamada la matriz de calibración de cámara. Xcam es el punto en el
mundo representado por un vector homogéneo ( X , Y , Z ,1) y asume que estos puntos
T
se encuentran localizados en el origen del sistema de coordenadas Euclidianas con el
eje principal de la cámara, orientado en línea recta hacia el eje Z.
En la matriz K se supone que las coordenadas de la imagen están en coordenadas no
homogéneas y tienen una escala igual para ambos ejes de direcciones x y y . En el
caso de las cámaras CCD, existe la posibilidad de que los pixeles no sean cuadrados,
además si las coordenadas de la imagen son medidas en pixeles, esto tendrá el efecto
de introducir factores de escala diferentes en cada dirección. Si el número de píxeles
por unidad de distancia en coordenadas de imagen son mx y m y en las direcciones x y
y respectivamente, entonces la transformación desde las coordenadas del mundo a
las coordenadas de píxeles se obtiene al multiplicar la matriz de la ecuación 2.9 por un
factor diag (mx , m y ,1) , así la forma general de la matriz de calibración de cámara es:
⎡α x
K = ⎢⎢
αy
⎣⎢
x0 ⎤
y0 ⎥⎥
1 ⎦⎥
(2.11)
Donde α x = fmx y α y = fm y representan la longitud focal en términos de las
dimensiones de los pixeles en las direcciones x y y respectivamente. De manera
21 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
similar x0 = mx p x y y0 = m y p y es el punto principal en términos de las dimensiones de
los pixeles.
De forma general se considera a la matriz de calibración de cámara de la siguiente
forma:
⎡α x s
K = ⎢⎢
αy
⎢⎣
x0 ⎤
y0 ⎥⎥
1 ⎥⎦
(2.3.4.4)
El parámetro agregado s es conocido como parámetro de oblicuidad y se refiere al
ángulo que existe entre los ejes en las direcciones x y y de los pixeles.
2.2.5 ROTACIÓN Y TRASLACIÓN EN 3-D
En general, los puntos en el espacio serán expresados en términos de un marco
diferente de coordenadas Euclidianas, conocido como el marco coordenado del mundo.
Dos marcos coordenados son relacionados por una rotación y una traslación. Ver figura
% es un 3-vector no homogéneo que representa las coordenadas de un punto
2-11. Si X
% representa el mismo punto en el marco
en el marco coordenado del mundo, X
cam
% = R( X
%− C%) , donde C~ representa las
coordenado de la cámara, entonces X
cam
coordenadas del centro de la cámara en el marco coordenado del mundo y R es la
matriz de rotación de 3 × 3 representando a la orientación del marco coordenado de la
cámara. Esta ecuación puede ser escrita en coordenadas homogéneas como:
X cam
⎛X⎞
⎜ ⎟
⎡ R − RC ⎤ ⎜ Y ⎟ ⎡ R − RC ⎤
X
=⎢
=
1 ⎥⎦ ⎜ Z ⎟ ⎢⎣ 0
1 ⎥⎦
⎣0
⎜ ⎟
⎝1⎠
(2.12)
Escribiendo de forma compacta queda expresada como:
x = KR[ I | −C%]X
(2.13)
Donde x está ahora en el marco coordenado de la imagen. Ésta es la proyección
general dada por una cámara Pinhole. Se puede observar que el modelo de la cámara
Pinhole está representado por P = KR[ I | −C~ ] . A menudo es conveniente hacer
explicito el centro de la cámara y en lugar de eso representar el mundo como una
% = R( X
%− C%) , en este caso la matriz P es la matriz de
transformación de imagen X
cam
cámara.
22 Capítulo 2 Calibración de cámaras
Figura 2-11: Transformación euclidiana entre el marco coordenado del mundo y la cámara.
2.2.6 MATRIZ DE CÁMARA
En general la matriz de cámara pinhole P representa la transformación de puntos de
un marco coordenado del mundo real a un marco coordenado en la imagen como
x = PX y está compuesta por:
⎡ p11
P = ⎢⎢ p21
⎢⎣ p31
p12
p22
p13
p23
p32
p33
p14 ⎤
p24 ⎥⎥
p34 ⎥⎦
Dentro de esta matriz de cámara están contenidos los parámetros:
Internos (Intrínsecos) K α x ,α y , s , p x , p y y externos (extrínsecos) R, C .
2.2.7 CÁMARA PROYECTIVA FINITA
Una matriz de cámara P = KR[ I | −C~ ] donde la matriz de calibración de cámara es de la
forma:
⎡α x s
K = ⎢⎢
αy
⎢⎣
x0 ⎤
y0 ⎥⎥
1 ⎥⎦
en el que fue agregado el factor s que es el factor de inclinación, este parámetro
normalmente es cero, es llamada cámara proyectiva finita. Una cámara proyectiva finita
23 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
tiene 11 grados de libertad. Este es el mismo número de grados de libertad que tiene
una matriz 3 × 4, definiendo un factor de escala arbitrario ( p34 − 1) , es decir está
definida salvo un escalar. La submatriz KR de 3 × 3 del lado izquierdo es una matriz no
M . Por lo que
P
puede ser redefinida como
singular llamada
~
−1
P = M [ I | M p4 ] = KR[ I | −C ] . Donde M = KR puede ser descompuesta en los valores
de K y R utilizando la descomposición RQ . La descomposición RQ separa una matriz
en el producto de una matriz triangular superior y una matriz ortogonal.
2.2.8 CÁMARA PROYECTIVA
Una cámara proyectiva general está representada por una matriz de 3 × 4 arbitraria
homogénea de rango 3 y tiene 11 grados de libertad. El rango tres es un requisito
necesario para esta matriz, si el rango es menor a 3 entonces proyectará a una línea o
punto y no un plano; en otras palabras no proyectará a una imagen 2D.
2.3 TRANSFORMACIONES PROYECTIVAS EN 2D
En esta sección se estudian las transformaciones proyectivas en 2D, así como los
modelos de transformación para las diferentes entidades geométricas (puntos, líneas,
cónicas). Dichas transformaciones son estudiadas y modeladas con una matriz de
transformación H . Estos modelos proporcionan una representación matemática
apropiada para el cálculo computacional.
2.3.1 TRANSFORMACIONES DE PUNTOS
La geometría es el estudio de las propiedades invariantes de las entidades geométricas
bajo un grupo de transformaciones. Desde este punto de vista, la geometría proyectiva
en 2D es el estudio de las propiedades del plano proyectivo Ρ 2 que es invariante bajo
un grupo de transformaciones conocidas como proyectividades.
Definición: Una proyectividad es una función invertible h de Ρ 2 en sí mismo tal que
tres puntos cualesquiera x1 , x2 y x3 se encuentran en una línea si y solo si h( x1 ) ,
h( x2 ) , h( x3 ) también se encuentran en un línea.
Las proyectividades forman un grupo, puesto que la inversa de una proyectividad forma
también una proyectividad. Una proyectividad es también llamada una transformación
proyectiva o una homógrafia, estos términos son sinónimos.
24 Capítulo 2 Calibración de cámaras
En la definición anterior, proyectividad se definió en términos de un concepto
geométrico libre de coordenadas de un punto que se encuentran sobre una línea. Es
posible obtener un equivalente de la definición de proyectividad, que resulta lo siguiente
resulta:
Teorema: Una transformación h : Ρ 2 a Ρ 2 es una proyectividad si y solo si existe una
matriz no singular H tal que para cualquier punto en Ρ 2 representado por un vector x
se cumple que h( x ) = Hx .
Para interpretar este teorema, cualquier punto en Ρ 2 es representado como x , un 3vector homogéneo, y Hx como una transformación o función lineal de coordenadas
homogéneas. El teorema no será demostrado completamente, solamente se mostrará
que cualquier transformación lineal de coordenadas homogéneas es una proyectividad.
Demostración: Sean x1 , x2 y x3 puntos situados en la línea l . Así l T xi = 0 para
i=1,...,3. Sea H una matriz no singular de 3 × 3. Podemos verificar que lH −1 Hxi = 0 . De
esta manera, todos los puntos Hxi están sobre la línea H −1 xi , y la colinealidad es
preservada por la transformación.
Una transformación proyectiva plana es una transformación lineal en coordenadas
homogéneas representada por una matriz de 3 × 3 :
⎛ x1′ ⎞ ⎡ h11
⎜ ⎟ ⎢
⎜ x2′ ⎟ = ⎢h21
⎜ x′ ⎟ ⎢ h
⎝ 3 ⎠ ⎣ 31
h12
h22
h32
h13 ⎤⎛ x1 ⎞
⎜ ⎟
h23 ⎥⎥⎜ x2 ⎟
h33 ⎥⎦⎜⎝ x3 ⎟⎠
(2.14)
o más brevemente x ′ = Hx .
La matriz H puede ser cambiada por una multiplicación por un factor arbitrario de
escala diferente de cero sin alterar la transformación proyectiva, por lo que se dice que
H es una matriz homogénea.
2.3.2 TRANSFORMACIÓN DE LÍNEAS
Si los puntos xi están situados sobre la línea l , entonces la transformación de los
puntos xi′ = Hxi bajo una transformación proyectiva, se encuentran sobre la línea
l ′ = Hl . De esta manera los puntos que se encuentran sobre la línea se mantienen,
dado que l ′T xi′ = l T H −1 Hxi = 0 . Éste da la regla de transformación para líneas.
Dada una trasformación de puntos x ′ = Hx una línea es trasformada como:
25 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
l ′ = H −1l
(2.15)
Una forma alternativa es l ′T = l T H −1 .
2.3.3 TRANSFORMACIÓN DE CÓNICAS
Dada la transformación de puntos x ′ = Hx la ecuación de la cónica se transforma en:
T
x T Cx = x ′T ⎡⎣ H −1 ⎤⎦ CH −1 x ′
x T Cx = x ′T ⎡⎣ H −T ⎤⎦ CH −1 x′
(2.16)
en una forma cuadrática x ′T C ′x ′ , con C ′ = H −T CH −1 , es la regla de las transformaciones
de cónicas.
2.3.4 JERARQUÍA DE TRANSFORMACIONES
En esta sección se describen características importantes de una transformación
proyectiva y algunas de sus propiedades geométricas. Se presentan las
transformaciones en orden de complejidad comenzando por la más particular, la
isometría, y generalizando sucesivamente hasta llegar a la transformación proyectiva.
La jerarquía de las transformaciones es:
• Isometrías
• Similaridades
• Transformaciones afines o afinidades
• Transformaciones proyectivas
• Descomposición de una transformación proyectiva
• Invariantes
A continuación se explica más a detalle cada una de las transformaciones.
26 Capítulo 2 Calibración de cámaras
Isometrías
Las isometrías son transformaciones del plano R 2 que preservan la distancia
Euclidiana (iso = similar, metric = medida). Una isometría es representada como:
⎛ x′ ⎞ ⎡ε cos θ
⎜ ⎟ ⎢
⎜ y′ ⎟ = ⎢ ε sin θ
⎜1⎟ ⎢ 0
⎝ ⎠ ⎣
− sin θ
cos θ
t x ⎤⎛ x ⎞
⎜ ⎟
t y ⎥⎥⎜ y ⎟
1 ⎥⎦⎜⎝ 1 ⎟⎠
0
(2.17)
donde ε = ±1. Si ε = 1 la isometría preserva la orientación y es una transformación
euclidiana (una composición de traslación y rotación). Si ε = −1 entonces la isometría
tiene una orientación invertida.
La transformación euclidiana modela el movimiento de un objeto rígido.
Una transformación euclidiana planar puede ser escrita en una forma compacta como:
⎡R
x′ = H E x = ⎢ T
⎣0
t⎤
1⎥⎦
(2.18)
donde R es una matriz de rotación de 2× 2 y t es un 2-vector de traslación.
En esta transformación las características preservadas o invariantes son: la distancia
(entre dos puntos), el ángulo (entre dos líneas) y el área.
Similaridades
Una similaridad es una isometría compuesta con un factor de escala isotrópico. En el
caso de una transformación Euclidiana compuesta con un escalamiento la similaridad
tiene la siguiente representación matricial:
⎛ x′ ⎞ ⎡ s cos θ
⎜ ⎟ ⎢
⎜ y′ ⎟ = ⎢ s sin θ
⎜1⎟ ⎢ 0
⎝ ⎠ ⎣
− s sin θ
s cos θ
0
t x ⎤⎛ x ⎞
⎜ ⎟
t y ⎥⎥⎜ y ⎟
1 ⎥⎦⎜⎝ 1 ⎟⎠
(2.19)
que puede ser escrita de forma compacta como:
⎡ sR t ⎤
x′ = H s x = ⎢ T
⎥
⎣ 0 1⎦
27 (2.20)
Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Donde el escalar s representa el escalamiento isotrópico. Las características
invariantes son los ángulos entre líneas, paralelismo, relación entre longitudes,
relación entre áreas.
Transformaciones afines o afinidades
Una afinidad es una transformación lineal no singular seguida por una traslación. Ésta
tiene la representación matricial:
⎛ x′ ⎞ ⎡ a11
⎜ ⎟ ⎢
⎜ y′ ⎟ = ⎢a21
⎜1⎟ ⎢ 0
⎝ ⎠ ⎣
a12
a22
0
t x ⎤⎛ x ⎞
⎜ ⎟
t y ⎥⎥⎜ y ⎟
1 ⎥⎦⎜⎝ 1 ⎟⎠
(2.21)
o en bloques queda de la forma:
⎡ A t⎤
x′ = H A x = ⎢ T
⎥
⎣0 1⎦
(2.22)
donde A es una matriz no singular de 2 × 2.
Las características invariantes de esta transformación son el paralelismo, la relación de
longitudes de segmentos de líneas, la relación entre áreas.
Una forma de entender los efectos geométricos de la componente lineal A de una
afinidad, es la composición de dos transformaciones fundamentales, llamadas rotación
y escalamiento no isotrópico. La matriz de afinidad A puede siempre ser
descompuesta como:
A = R(θ ) R(−φ ) DR(φ )
(2.23)
donde R(θ ) y R(φ ) son las rotaciones para θ y φ respectivamente, y D es una matriz
diagonal:
⎡λ 0 ⎤
D=⎢ 1
⎥
⎣ 0 λ2 ⎦
Por lo tanto, la matriz de afinidad A es el producto de una rotación ( φ ); un
escalamiento por λ1 y λ2 en la dirección x y y respectivamente; una rotación de
regreso (por − φ ); y finalmente otra rotación (por θ ). La única diferencia entre la
afinidad y una similaridad, es el escalamiento no isotrópico. La esencia de una afinidad
28 Capítulo 2 Calibración de cámaras
es este escalamiento en direcciones ortogonales, orientada por un ángulo particular. En
la figura 2-13, se ve un ejemplo de esto.
Transformaciones proyectivas
Una transformación proyectiva plana es una transformación lineal en coordenadas
homogéneas representada por una matriz 3× 3 :
⎛ x1′ ⎞ ⎡ h11
⎜ ⎟ ⎢
⎜ x2′ ⎟ = ⎢h21
⎜ x′ ⎟ ⎢ h
⎝ 3 ⎠ ⎣ 31
h12
h22
h32
h13 ⎤⎛ x1 ⎞
⎜ ⎟
h23 ⎥⎥⎜ x2 ⎟
h33 ⎥⎦⎜⎝ x3 ⎟⎠
o de forma compacta x ′ = Hx .
Ésta en general, es una transformación lineal no singular de coordenadas
homogéneas. Ésta generaliza una transformación de afinidad, que es la composición
de una transformación lineal no singular de coordenadas no homogéneas y una
traslación. Se puede representar como:
⎡A
x′ = H P x = ⎢ T
⎣v
t⎤
v ⎥⎦
(2.24)
T
donde el vector v = (v1 , v2 ) , es un factor de escalamiento para x y y respectivamente.
No siempre es posible tener el factor de escala v de la matriz con valor igual a uno
porque puede tener también valor de cero.
La característica invariante más importante es la relación cruz de cuatro puntos
colineales: una relación de longitudes sobre una línea es invariante bajo las afinidades,
pero no bajo las proyectividades. Sin embargo, una relación de relaciones o relación
cruz de longitudes sobre una línea es una descripción invariante.
Descomposición de una transformación proyectiva
Una transformación proyectiva puede ser descompuesta en una cadena de
trasformaciones, donde cada matriz en la cadena representa una transformación de
más alta jerarquía que la matriz anterior.
⎡ sR t ⎤ ⎡ K
H = HS H AHP = ⎢ T ⎥ ⎢ T
⎣ 0 1⎦ ⎣0
29 t⎤ ⎡ I
1⎥⎦ ⎢⎣v T
t⎤ ⎡ A
=
v ⎥⎦ ⎢⎣v T
t⎤
v ⎥⎦
(2.25)
Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
donde A es una matriz no singular dada por A A = sRK + tv T , y K es una matriz
triangular superior normalizada con det K = 1 . Esta descomposición es válida solo si
v ≠ 0 , y es única si s es positivo.
Figura 2-12: Distorsión originada por una trasformación de afinidad plana.
Figura 2-13: Trasformación proyectiva entre líneas.
2.4 ESTIMACIÓN DE UNA HOMOGRAFÍA Y CÁLCULO DE LA MATRIZ DE
CÁMARA P
En esta sección se abordará el problema de la estimación de la homografía, el presente
contexto será tomado para el cálculo de algunas transformaciones o de otras entidades
matemáticas basadas en mediciones de alguna naturaleza. Esta definición es un tanto
vaga, tendremos que hacerla más concreta, por lo que a continuación que se irán
presentando diferentes casos de estudio.
30 Capítulo 2 Calibración de cámaras
Homografía en 2D: Dados una serie de puntos xi en el plano proyectivo Ρ 2 y una
correspondiente serie de puntos x ′ también en Ρ 2 , se determina la transformación
proyectiva que toman cada uno de los puntos xi en x′ . En la práctica, los puntos xi y
x ′ , son puntos situados en dos imágenes o en la misma imagen, cada imagen es
considerada como un plano proyectivo Ρ 2 .
Consideraremos una serie de correspondencias xi ↔ xi′ entre dos imágenes. El
problema es el cálculo de una matriz H de 3 × 3 tal que Hxi = xi′ para cada valor de i .
La primera cuestión es, cuántos puntos de correspondencia xi ↔ xi′ son necesarios
para calcular la matriz de transformación H . La matriz de transformación H contiene 9
constantes de entrada, pero si definimos el límite de escala, el total de grados de
libertad en una transformación proyectiva son 8. Por otra parte, cada correspondencia
punto a punto cuenta para un par de restricciones, puesto que para cada punto xi , en
la primera imagen los dos grados de libertad del punto de la segunda imagen
corresponden a la transformación del punto Hxi . Un punto en 2D tiene dos grados de
libertad correspondientes a las componentes x y y , cada una de las cuales puede ser
especificada separadamente. En otro caso, el punto es especificado como un vector-3
homogéneo, que también tienen dos grados de libertad. Como consecuencia
solamente son necesarios cuatro puntos para especificar completamente las
restricciones de H .
Dicho lo anterior, podemos continuar con la solución de la matriz de transformación H .
2.4.1 SOLUCIÓN HOMOGÉNEA
Para determinar H se da un conjunto de correspondencias de cuatro puntos en 2D,
xi ↔ xi′ . La transformación está dada por la ecuación xi = Hxi′ . Ésta es una ecuación
que tiene vectores homogéneos; estos vectores-3 xi y Hxi′ no son iguales, pero
tienen la misma dirección con diferente magnitud. Este vector puede ser expresado en
términos de un producto cruz como:
xi′ × Hxi = 0
(2.26)
ésta forma permitirá obtener y deducir una simple solución lineal para H .
Si el i-ésimo renglón de H está representado por hiT , entonces podremos escribir:
31 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
⎡ h1T xi ⎤
⎢
⎥
Hxi = ⎢h 2T xi ⎥
⎢ h 3T xi ⎥
⎣
⎦
(2.27)
escribiendo xi′ = ( xi′, yi′, wi′) , el producto cruz puede ser expresado explícitamente como:
⎡ yi′h3T xi − wi′h 2T xi ⎤
⎢
⎥
xi′ × Hxi = ⎢ wi′h1T xi − xi′h3T xi ⎥
⎢ xi′h 2T xi − yi′h1T xi ⎥
⎣
⎦
(2.28)
puesto que h jT xi = x T i x j para j =1,…,3 , tenemos:
⎡ 0T
⎢
T
⎢ wi′x i
⎢ − yi′xT i
⎣
− wi′xT i
0T
xi′xT i
yi′xT i ⎤ ⎛ h1 ⎞
⎥⎜ ⎟
− xii′ xT i ⎥ ⎜ h 2 ⎟ = 0
0T ⎥⎦ ⎜⎝ h3 ⎟⎠
(2.29)
la ecuación tiene la forma Ai h = 0 . Donde Ai es una matriz de 3 × 9, y h es un vector-9
hecho de los valores internos de la matriz H .
⎡ h1 ⎤
⎡ h1
⎢ 2⎥
h = ⎢ h ⎥ , H = ⎢⎢ h4
⎢ h3 ⎥
⎢⎣ h7
⎣ ⎦
h2
h5
h8
h3 ⎤
h6 ⎥⎥
h9 ⎦⎥
(2.30)
con hi como el i-ésimo termino de h . Hay que notar tres cosas importantes relativas a
estas ecuaciones, que son:
1. La ecuación Ai h = 0 es una ecuación lineal con h de incógnita. La matriz de
elementos de Ai es cuadrática, en ella se conocen las coordenadas de los
puntos.
2. Puesto que las ecuaciones de tres por tres, ecuación 2.29, solamente dos de
ellas son linealmente independientes, usualmente se omite la tercera ecuación.
32 Capítulo 2 Calibración de cámaras
Entonces el conjunto de ecuaciones queda como:
⎡ 0
⎢ T
⎣ wi′x i
T
− wi′x
0T
T
⎛ h1 ⎞
yi′x i ⎤ ⎜ 2 ⎟
⎥ h =0
− χ i′xT i ⎦ ⎜⎜ 3 ⎟⎟
⎝h ⎠
T
i
(2.31)
Ésta será escrita como Ai h = 0 que es una matriz de 2× 9 .
3. En la ecuación se mantiene, para cada punto xi , la representación en
T
coordenadas homogéneas como ( xi′, yi′, wi′ ) . Un caso es cuando wi′ = 1 , que
significa que las coordenadas ( xi′, yi′ ) están medidas en la imagen.
Cada correspondencia dada, genera dos ecuaciones
correspondencias tenemos Ai h = 0 , donde A es:
⎡ 0
⎢ w′x
⎢ 1 1
⎢ 0
A=⎢
⎢ w2′ x2
⎢ 0
⎢
⎢⎣ w3′ x3
0
w1′ y1
0
w2′ y2
0
w3′ y3
0
w1′w1
0
w2′ w2
0
w3′ w3
− w1′x1
0
− w2′ x2
0
− w3′ x3
0
− w1′ y1
0
− w2′ y2
0
− w3′ y3
0
− w1′w1
0
− w2′ w2
0
− w3′ w3
0
independientes,
y1′x1
− x1′x1
y2′ x2
− x2′ x2
y3′ x3
− x3′ x3
y1′ y1
− x1′ y1
y2′ y2
− x2′ y2
y3′ y3
− x3′ y3
con
cuatro
y1′w1 ⎤
− x1′w1 ⎥⎥
y2′ w2 ⎥
⎥ (2.32)
− x2′ w2 ⎥
y3′ w3 ⎥
⎥
− x3′ w3 ⎥⎦
Con la cual se busca un valor diferente de cero para h .
2.4.2 ALGORITMO DE TRANSFORMACIÓN LINEAL DIRECTA
{
}
Dados n ≥ 4 correspondencias de puntos de 2D a 2D xi ↔ xi′ , se determina la matriz
{
}
de la homografía en 2D tal que xi ↔ Hxi′ .
Algoritmo
{
}
1. Para cada correspondencia xi ↔ xi′ se determina la matriz A . En general
solamente las primeras dos columnas necesitan ser usadas.
2. Se ensamblan las n matrices Ai de 2 × 9 dentro de una matriz A de 2n × 9 .
33 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
3. Se obtiene la SVD (Singular value decomposition) de A . El vector singular
corresponde al valor más pequeño es la solución de h . Específicamente, si
A = UDV T con la matriz D con los elementos positivos, arreglados en orden
descendente. Entonces h es la última columna de V .
4. La matriz H es determinada a partir de h .
2.4.3 CONFIGURACIONES DEGENERADAS
Si se considera la solución mínima de una homografía, que es calculada usando cuatro
correspondencia de puntos, y suponiendo que tres de los puntos x1 , x2 , x3 son
colineales y si la correspondencia los puntos x1′ , x2′ , x3′ también son colineales
entonces la homografía no está suficientemente restringida y existirá una familia de
homografías que transformen de x1 a x1′ , por otra parte si los correspondientes puntos
x1′ , x2′ , x3′ no son colineales, entonces H no puede ser transformación de xi a xi′ ,
puesto que en transformación proyectiva conserva la colinealidad. No obstante el
conjunto de las ocho ecuaciones homogéneas obtenidas de 2.31. Debe tener una
solución diferente de cero, dando origen a una matriz H . Cuando se tiene una familia
de soluciones para la matriz H , es decir, que no tiene una solución única se le conoce
como Configuración degenerada.
Por lo tanto, si una transformación H tiene rango 1, quiere decir que:
1. Hay una dependencia lineal en sus renglones
2. Esta transformación realizará proyecciones en 2D a 1D, esto es, de un plano a
una línea.
2.4.4 SOLUCIÓN A PARTIR DE LÍNEAS Y OTRAS ENTIDADES
Los desarrollos antes presentados son exclusivamente de homografías calculadas a
partir de correspondencias de puntos. Sin embargo un desarrollo similar puede ser
empleado para el cálculo de homografías a partir de correspondencias de líneas.
Comenzando desde la transformación de línea li = H T li′ , podemos deducir una
ecuación matricial de la forma Ah = 0 . De modo semejante, una homografía puede ser
determinada a partir de correspondencias entre cónicas.
Por lo tanto una homografía puede ser determinada por correspondencias de:
1. Puntos
34 Capítulo 2 Calibración de cámaras
2. Líneas
3. Cónicas
4. Combinación de líneas y puntos, etc.
Suponiendo que se tienen correspondencias de puntos Xi ↔ xi entre puntos en 3D y
puntos en 2D de una imagen y se desea encontrar una matriz de cámara P de 3 × 4 tal
que xi = PXi para toda i. Los puntos en 3D son homogéneos por lo que son vectores
de 4 elementos ( X , Y , Z ,W )
T
y será W = 1 .
Tal como se hizo para el cálculo de una homografía se puede utilizar la relación:
⎡ 0T
⎢
T
⎣ wi X i
− wi XT i
0T
⎛ P1 ⎞
yi XT i ⎤ ⎜ 2 ⎟
⎥ P
− xi XT i ⎦ ⎜⎜ 3 ⎟⎟
⎝P ⎠
(2.33)
quedando expresada de la forma AP = 0 , donde A es una matriz de 2n × 12 . La matriz
de proyección P es calculada por la solución del conjunto de ecuaciones Ap = 0 ,
donde p es el vector que contiene los elementos de entrada de la matriz P .
2.4.6 SOLUCIÓN NO HOMOGÉNEA
Suponiendo que los vectores xi y su correspondiente xi′ son vectores homogéneos se
plantean las matrices de transformación. Para el caso de la matriz de cámara las
correspondencias serán representadas como xi ↔ Xi , donde xi son los puntos en la
imagen 2D y Xi son los puntos del mundo real 3D. En el caso de la matriz de cámara,
generalmente, el plano proyectivo no se encuentra a una distancia unitaria del origen.
Es decir una transformación dada por xi = PXi donde xi representa un punto en la
imagen representado por el vector (ρxi , ρyi , ρ ) y está dada como:
T
⎡ ρxi ⎤ ⎡ p11
⎢ ρy ⎥ = ⎢ p
⎢ i ⎥ ⎢ 21
⎢⎣ ρ ⎥⎦ ⎢⎣ p31
p12
p13
p22
p32
p23
p33
35 ⎡X ⎤
p14 ⎤ ⎢ i ⎥
Y
p24 ⎥⎥ ⎢ i ⎥
⎢Z ⎥
p34 ⎥⎦ ⎢ i ⎥
⎣1⎦
(2.32)
Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
⎡ ρxi ⎤ ⎡ p11 X i + p12Yi + p13 Z i + p14 ⎤
⎢ ρy ⎥ = ⎢ p X + p Y + p Z + p ⎥
22 i
23 i
24 ⎥
⎢ i ⎥ ⎢ 21 i
⎢⎣ ρ ⎥⎦ ⎢⎣ p31 X i + p32Yi + p33 Z i + p34 ⎥⎦
(2.33)
Para tener un vector homogéneo, dividimos ambos lados de la ecuación lineal entre el
último elemento, quedando como:
⎡ p11 X i + p12Yi +
⎢
⎡ xi ⎤ ⎢ p31 X i + p32Yi +
⎢ y ⎥ = ⎢ p21 X i + p22Yi +
⎢ i⎥ ⎢ p X + p Y +
32 i
⎢⎣ 1 ⎥⎦ ⎢ 31 i
1
⎢
⎣
p13 Z i + p14 ⎤
p33 Z i + p34 ⎥
⎥
p23 Z i + p24 ⎥
p33 Z i + p34 ⎥
⎥
⎥
⎦
(2.34)
Al despejar las ecuaciones e igualar a cero, quedan expresadas como:
p11 X i + p12Yi + p13 Z i + p14 + xi p31 X i + xi p32Yi + xi p33 Z i + xi p34 = 0
p21 X i + p22Yi + p23 Z i + p24 + yi p31 X i + yi p32Yi + yi p33 Z i + yi p34 = 0
(2.35)
éste par de ecuaciones se obtiene por casa i-ésimo punto de correspondencia entre
xi ↔ Xi .
2.4.7 SOLUCIÓN MÍNIMA
La matriz P tiene 12 términos, e ignorando el factor de escala, tiene 11 grados de
libertad, entonces es necesario tener 11 ecuaciones para resolver el sistema para P .
Dado que de cada punto de correspondencia se obtienen dos ecuaciones, se requiere
un mínimo de 5½ correspondencias para resolver P . El ½ indica que del sexto punto
se usa solamente una de las ecuaciones, se necesita únicamente conocer la
coordenada x (o alternativamente la y ) del sexto punto de la imagen.
Dado el número mínimo de correspondencias, la solución es exacta al resolver Ap = 0
dónde A en este caso es una matriz de 11×12 . En general A será de rango 11.
2.4.8 SOLUCIÓN SOBRE-DETERMINADA
Si por ruido en las coordenadas del punto no son exactas y se tiene n ≥ 6
correspondencias de puntos, entonces no obtendrá una solución exacta para la
36 Capítulo 2 Calibración de cámaras
ecuación Ap = 0 . Como en la estimación de la homografía una solución para P podría
ser obtenida mediante la minimización del error algebraico o geométrico.
La aproximación del error se da, minimizando
Ap
sujeto a normalización de
restricciones. Las posibles restricciones son:
1.
p = 1;
2.
pˆ 3 = 1 , donde p̂3 es el vector ( p31 , p32 , p33 ) .
T
Así que el error en las posiciones de los puntos genera error en P , y al utilizar más de
6 puntos y resolver por mínimos cuadrados mejoramos la precisión de P .
2.5 RESULTADOS DE LA CALIBRACIÓN DE CÁMARAS
En esta sección se mencionan los resultados obtenidos en la calibración de las
cámaras Logitech 1 y 2. Se enumeraron debido a que cada cámara a pesar de ser el
mismo modelo, tienen parámetros intrínsecos distintos. Se muestra el patrón utilizado,
los programas elaborados y las imágenes obtenidas y utilizadas.
2.26 PATRÓN DE CALIBRACIÓN
El patrón de calibración, fue construido mediante dos placas de cristal de 25x30 cm,
colocadas a 90˚ entre ellas, para formar así los ejes X , Y y Z. Se usó una cuadrícula
en blanco y negro, cada cuadro mide 2cm de ancho y alto, de esta manera conocemos
la posición de cada punto (intersección de un cuadro negro con uno blanco) y su
distancia en centímetros con respecto a un punto de referencia seleccionado como se
muestra en la figura 2-14.
37 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 2-14: Patrón de calibración.
2.27 FIJACIÓN DE LAS CÁMARAS
Para llevar a cabo la calibración de estas cámaras, fue necesario fijarlas en la escena
donde se encuentra el brazo robótico, de esta manera los parámetros que se obtengan
no cambiarán, a menos que se muevan las cámaras de lugar. Se construyó un soporte
tubular para cada una de las cámaras de forma que el robot quedara aproximadamente
equidistante y centrado entre cada uno de los soportes. Estos soportes fueron
realizados con tubos galvanizados de ½”, un par de rieles que permiten una movilidad
en sentido horizontal. Estos soportes son ajustables en altura y de manera horizontal
para permitir una mejor colocación de las cámaras y tener así una mejor visión del área
de trabajo. El la figura 2-15 se muestra la estructura final de los soportes de las
cámaras fijas para la calibración en el área de trabajo y la distribución que tienen con
respecto al robot. En la figura 2-16 se muestra cómo se colocaron los tubos sobre los
rieles y la forma en que se aseguraron para garantizar su firmeza y rigidez. En la figura
2-17 se muestra la forma de fijar las cámaras a los soportes (tubos).
38 Capítulo 2 Calibración de cámaras
Figura 2-15: Soportes
Figura 2-16: Fijación de los soportes
39 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 2-17: Fijación de las cámaras a los soportes
2.28 PROCESO DE CALIBRACIÓN
Una vez fijadas las cámaras se procedió a tomar las imágenes correspondientes a
cada cámara, donde se incluyó en la escena el patrón de calibración y la parte final del
brazo robótico. Las imágenes obtenidas se muestran en la figura anexa 1.
Enseguida se procedió a obtener los parámetros de calibración como se indica en
siguiente procedimiento.
Primeramente, se obtuvieron las imágenes desde las cámaras del patrón de calibración
usando el software Matlab a una resolución de 1280x960 pixeles, después se procedió
a convertir la imagen a escala de grises, para luego convertirla a blanco y negro.
La imagen en blanco y negro define de manera más clara las intersecciones de los
cuadros negros y blancos, facilitando la búsqueda de las coordenadas en pixeles de los
puntos requeridos para la calibración, posteriormente se localizaron dichos puntos, esto
se hizo seleccionando 6 puntos en el patrón, de los cuales se conoce la posición en el
plano cartesiano en el marco de referencia seleccionado, las coordenadas en pixeles
de estos puntos se buscaron manualmente en la imagen del patrón.
Una vez obtenidas las correspondencias entre los puntos de la imagen y los puntos
conocidos en el mundo real, es decir que xi ↔ Xi , las coordenadas de cada punto son
sustituidas en el sistema de ecuaciones
p11 X i + p12Yi + p13 Z i + p14 + xi p31 X i + xi p32Yi + xi p33 Z i + xi p34 = 0
p21 X i + p22Yi + p23 Z i + p24 + yi p31 X i + yi p32Yi + yi p33 Z i + yi p34 = 0
40 Capítulo 2 Calibración de cámaras
Éste sistema es resuelto en Matlab, de esta manera se obtiene la matriz P con los 11
parámetros que contienen la información de rotación y traslación de las cámaras, así
como los parámetros intrínsecos de éstas.
Para la calibración de las cámaras Logitech 1 y 2 se trabajó con las imágenes que
fueron pasadas por el proceso antes descrito para obtener al final las imágenes en
blanco y negro que se muestran en la figura 2-18.
Figura 2-18: Imágenes para la calibración de cámaras fijas.
Utilizando la expresión 2.32:
⎡ ρxi ⎤ ⎡ p11
⎢ ρy ⎥ = ⎢ p
⎢ i ⎥ ⎢ 21
⎢⎣ ρ ⎥⎦ ⎢⎣ p31
p12
p13
p22
p32
p23
p33
⎡X ⎤
p14 ⎤ ⎢ i ⎥
Y
p24 ⎥⎥ ⎢ i ⎥
⎢Z ⎥
p34 ⎥⎦ ⎢ i ⎥
⎣1⎦
Se prosigue a plantear el sistema de ecuaciones para P de la cámara Logitech 1 con
las correspondencias que se muestran en la tabla 2-1, para la cámara 2 se presentan
los puntos de correspondencias en la tabla 2-2.
41 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Tabla 2-1: Puntos para la calibración de la cámara 1.
PUNTOS
1
2
3
4
5
6
Coordenadas en el mundo real
(cm) X Y Z
[8,0,20]’
[12,0,18]’
[14,0,4]’
[0,14,4]’
[0,14,16]’
[0,8,20]’
Coordenadas en la imagen
(pixeles) x y
[177,20]’
[94,58]’
[48,454]’
[603,442]’
[602,109]’
[461,24]’
Tabla 2-2: Puntos para la calibración de la cámara 2.
PUNTOS
1
2
3
4
5
6
Coordenadas en el mundo real
(cm) X Y Z
[14,0,6]’
[8,0,14]’
[10,0,22]’
[0,12,18]’
[0,14,14]’
[0,14,2]’
Coordenadas en la imagen
(pixeles) x y
[406,579]’
[446,468]’
[424,383]’
[613,422]’
[632,471]’
[633,596]’
Resolviendo para la parte derecha:
⎡ ρxi ⎤ ⎡ p11 X i + p12Yi + p13 Z i + p14 ⎤
⎢ ρy ⎥ = ⎢ p X + p Y + p Z + p ⎥
22 i
23 i
24 ⎥
⎢ i ⎥ ⎢ 21 i
⎢⎣ ρ ⎥⎦ ⎢⎣ p31 X i + p32Yi + p33 Z i + p34 ⎥⎦
y dividiendo entre la tercera coordenada se obtiene:
⎡ p11 X i + p12Yi +
⎢
⎡ xi ⎤ ⎢ p31 X i + p32Yi +
⎢ y ⎥ = ⎢ p21 X i + p22Yi +
⎢ i⎥ ⎢ p X + p Y +
32 i
⎢⎣ 1 ⎥⎦ ⎢ 31 i
1
⎢
⎣
p13 Z i + p14 ⎤
p33 Z i + p34 ⎥
⎥
p23 Z i + p24 ⎥
p33 Z i + p34 ⎥
⎥
⎥
⎦
y finalmente se obtienen un par de ecuaciones con 11 incógnitas por cada
correspondencia de puntos {xi ↔ xi′} de la forma:
p11 X i + p12Yi + p13 Z i + p14 + xi p31 X i + xi p32Yi + xi p33 Z i + xi p34 = 0
p21 X i + p22Yi + p23 Z i + p24 + yi p31 X i + yi p32Yi + yi p33 Z i + yi p34 = 0
42 Capítulo 2 Calibración de cámaras
y que al sustituir para las 6 correspondencias se tiene:
p11 X 1 + p12Y1 + p13 Z1 + p14 + x1 p31 X 1 + x1 p32Y1 + x1 p33 Z1 + x1 p34 = 0
p21 X 1 + p22Y1 + p23 Z1 + p24 + yi p31 X 1 + y1 p32Y1 + y1 p33 Z1 + y1 p34 = 0
p11 X 2 + p12Y2 + p13 Z 2 + p14 + x2 p31 X 2 + x2 p32Y2 + x2 p33 Z 2 + x2 p34 = 0
p21 X 2 + p22Y2 + p23 Z 2 + p24 + y2 p31 X 2 + y2 p32Y2 + y2 p33 Z 2 + y2 p34 = 0
p11 X 3 + p12Y3 + p13 Z 3 + p14 + x3 p31 X 3 + x3 p32Y3 + x3 p33 Z 3 + x3 p34 = 0
p21 X 3 + p22Y3 + p23 Z 3 + p24 + y3 p31 X 3 + y3 p32Y3 + y3 p33 Z 3 + y3 p34 = 0
p11 X 4 + p12Y4 + p13 Z 4 + p14 + x4 p31 X 4 + x4 p32Y4 + x4 p33 Z 4 + x4 p34 = 0
p21 X 4 + p22Y4 + p23 Z 4 + p24 + y4 p31 X 4 + y4 p32Y4 + y4 p33 Z 4 + y4 p34 = 0
p11 X 5 + p12Y5 + p13 Z 5 + p14 + x5 p31 X 5 + x5 p32Y5 + x5 p33 Z 5 + x5 p34 = 0
p21 X 5 + p22Y5 + p23 Z 5 + p24 + y5 p31 X 5 + y5 p32Y5 + y5 p33 Z 5 + y5 p34 = 0
p11 X 6 + p12Y6 + p13 Z 6 + p14 + x6 p31 X 5 + x6 p32Y5 + x6 p33 Z 5 + x6 p34 = 0
p21 X 6 + p22Y6 + p23 Z 6 + p24 + y6 p31 X 5 + y6 p32Y5 + y6 p33 Z 5 + y6 p34 = 0
El sistema de ecuaciones obtenida son resueltas con el software Matlab, arrojando los
siguientes resultados:
⎡− 11.4232 3.0281 − 1.7370 845.0457⎤
P1 = ⎢⎢ − 0.2809 0.0108 − 12.2788 682.7313⎥⎥
⎢⎣ − 0.0041 − 0.0061 − 0.0033
1.0000 ⎥⎦
⎡− 8.9560 8.0475 − 2.1397 511.9978⎤
1.6843 − 11.7688 584.1860⎥⎥
P2 = ⎢⎢ 1.3889
⎢⎣− 0.0043 − 0.0010 − 0.0033
1.0000 ⎥⎦
Donde P1 y P2 corresponden a la cámara 1 y 2 respectivamente.
Una vez obtenidas las P' s fue necesario comprobar si la matriz obtenida podía hacer la
transformación de puntos en el mundo real a puntos en la imagen, para ello se elaboró
un programa en Matlab donde dado un punto [X , Y , Z ]' , se obtuviera una coordenada
en pixeles [x, y ]' , de acuerdo a xi = PXi , arrojando los siguientes resultados, los que
se muestran en las tablas 2-3 y 2-4 para la cámara 1 y 2 respectivamente. En la figura
2-19. Se presentan los resultados en la imagen, los puntos de color verde representan
las coordenadas reales en la imagen y los puntos de color rojo son los puntos
calculados.
43 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Tabla 2-3: Resultados de pruebas para
Coordenadas X Y Z
cm
Coordenadas
calculadas (pixeles)
P1 .
Coordenadas
reales (pixeles)
Error
ex
ey
[4,0,6]’
[819,631]’
[821,629]’
[8,0,10]’
[788,597]’
[790,596]’
[12,0,16]’
[2,0,18]’
[4,0,2]’
[0,2,2]’
[0,4,6]’
[0,8,12]’
[0,4,20]’
[0,12,22]’
[757,538]’
[848,495]’
[815,673]’
[864,671]’
[886,637]’
[931,587]’
[904,481]’
[987,483]’
[758,537]’
[850,494]’
[817,670]’
[866,668]’
[888,637]’
[931,587]’
[905,481]’
[988,484]’
Tabla 2-4: Resultados de pruebas para
Coordenadas X Y Z
cm
Coordenadas
calculadas (pixeles)
2
2
2
1
1
2
2
2
2
0
1
1
1
1
3
3
0
0
0
1
P2 .
Coordenadas
reales (pixeles)
Error
ex
ey
[4,0,6]’
[481,539]’
[480,538]’
[8,0,10]’
[449,512]’
[450,511]’
[12,0,16]’
[2,0,18]’
[4,0,2]’
[0,2,2]’
[0,4,6]’
[0,8,12]’
[0,4,20]’
[0,12,22]’
[413,461]’
[489,402]’
[483,580]’
[528,569]’
[544,533]’
[578,479]’
[539,382]’
[613,377]’
[413,460]’
[488,405]’
[482,577]’
[526,567]’
[542,532]’
[576,479]’
[538,385]’
[614,377]’
44 1
1
1
1
0
1
1
2
2
2
1
1
1
3
3
2
1
0
3
0
Capítulo 2 Calibración de cámaras
Figura 2-19: Resultados de la calibración, puntos reales y calculados.
2.29 OBTENCIÓN DE LA MATRIZ DE CÁMARA
Para el método de estimación de pose se requiere tener el conocimiento de la matriz de
cámara K , esta matriz contiene la información de los parámetros internos de la
cámara. La estimación de pose consiste básicamente en determinar la matriz P a partir
de tres puntos conocidos. Los parámetros intrínsecos de la cámara siempre se
45 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
mantienen, y cuando la cámara se mueve lo que cambia son sus parámetros
extrínsecos, es decir, la rotación y traslación.
Los parámetros internos de la cámara son los únicos que permanecen constantes sin
importar que la cámara cambie de posición una vez que la cámara es calibrada. Para
poder recupera la matriz de parámetros intrínsecos (matriz de calibración K ) hay que
observar que la matriz de cámara P representa la trasformación de puntos del marco
de referencia del mundo al marco coordenado de la imagen como xi = PXi .
Escribiendo más a detalle, se encuentra expresada como:
x = KR[ I | −C%]X
Donde R es la matriz de rotación. Vemos que en general P = KR[ I | −C%] . A menudo es
conveniente no hacer explícito el centro de la cámara, y en lugar de eso representar la
matriz de cámara como P = K [ R | −t ] . Donde t = RC~ es la traslación.
La submatriz KR de 3 × 3 del lado izquierdo es una matriz no singular llamada M . Por
lo que P puede ser definida como P = M [ I | M −1 p34 ] = KR[ I | −C~ ] . Donde M = KR puede
ser descompuesta en los valores de K y R utilizando la factorización QR . La
factorización QR separa una matriz en el producto de una matriz triangular superior y
una matriz ortogonal.
Utilizando la matriz de cámara de la cámara 1:
⎡− 11.4232 3.0281 − 1.7370 845.0457⎤
P1 = ⎢⎢ − 0.2809 0.0108 − 12.2788 682.7313⎥⎥
⎢⎣ − 0.0041 − 0.0061 − 0.0033
1.0000 ⎥⎦
se obtiene la matriz M ,que está compuesta por :
⎡− 11.4232 3.0281 − 1.7370
M = ⎢⎢ − 0.2809 0.0108 − 12.2788
⎢⎣ − 0.0041 − 0.0061 − 0.0033
Aplicando la factorización QR con Matlab se tiene:
0.0196 ⎤
⎡− 0.8347 0.5504
⎢
R = ⎢ 0.2106
0.3518 − 0.9121⎥⎥
⎢⎣ − 0.5089 − 0.7571 − 0.4096⎥⎦
46 ⎤
⎥
⎥
⎥⎦
Capítulo 2 Calibración de cámaras
Y finalmente la matriz de calibración K :
⎡1386.1 30.2 525.3⎤
K = ⎢⎢ 0
1383.1 641.0⎥⎥
⎢⎣ 0
0
1 ⎥⎦
2.6 CONCLUSIONES DEL CAPÍTULO 2
En este capítulo se estudió los conceptos básicos de la geometría proyectiva, que se
uso en la calibración de cámaras, gracias a este estudio se obtuvieron los11
parámetros de la matriz P que contienen la información de rotación y traslación de las
cámaras, así como los parámetros intrínsecos de éstas. Al final del capítulo se
mostraron los resultados obtenidos y la metodología usada para encontrar la matriz de
cámara y la matriz de calibración.
Una vez que se tienen las cámaras calibradas, es necesario recuperar la información
tridimensional del objeto buscado, esto se muestra en el capítulo 3, aplicando el
método de visión estereoscópica y estimación de pose.
47 CAPÍTULO 3
3. RECUPERACIÓN DE COORDENADAS EN TRES
DIMENSIONES
Una vez que se tienen cámaras calibradas, es necesario recuperar, de manera
automática, la información métrica de un objeto, es decir, sus coordenadas (x, y, z ) , a
partir de imágenes bidimensionales.
La información métrica se usó dentro del lazo de control para posicionar el efector final
del robot PUMA sobre el objeto.
Se usó el método de triangulación para el caso de dos cámaras fijas y estimación de
pose para una sola cámara, los objetos fueron elegidos para su fácil detección por las
cámaras, el objeto elegido fue un LED de color rojo para dos cámaras fijas y 3 LEDs
formando un triángulo para el método de estimación de pose, el cual se explica en la
sección 3.1 y 3.2.
En la sección 3.3 se expone la solución al problema de triangulación, el procedimiento
que se usó para encontrarla y los resultados obtenidos en pruebas realizadas.
La sección 3.4 muestra el algoritmo usado con el que se abordó el problema de
estimación de pose, las pruebas hechas al sistema con este algoritmo y los resultados
obtenidos de dichas pruebas.
3.1 PRUEBAS DE ALGORITMOS DE PROCESAMIENTO DE IMÁGENES
En esta actividad se realizó el procesado de imágenes tomadas por las cámaras, con el
fin de localizar las coordenadas x y y en pixeles del objeto, se muestra también las
características de las imágenes, los métodos de procesamiento usados en los
resultados obtenidos.
3.1.1 ANÁLISIS DE IMÁGENES USANDO MATLAB
El análisis de imágenes, generalmente es dividido en dos amplias categorías: métodos
donde la entrada es una imagen y la salida es también una imagen y métodos donde la
entrada es una imagen y la salida son atributos extraídos de esa imagen. La figura 3-1
muestra el diagrama con los pasos fundamentales en el procesamiento de imágenes,
no quiere decir que todos los pasos se apliquen en una imagen, más bien muestra los
48 Capítulo 3 Recuperación de coordenadas en 3D
procesos que podemos aplicar a las imágenes para diferentes propósitos y
posibilidades con distintos objetivos, por ejemplo, mejoramiento de la información
gráfica para la interpretación humana; o procesamiento de sus datos para
almacenamiento, transmisión y representación de la percepción de maquinas
autónomas (Gonzalez y Woods 2002).
El primer paso para el procesado de las imágenes es su adquisición, existen diferentes
dispositivos que producen imágenes digitales, en nuestro caso se usaron cámaras
digitales con sensores CCD, a una resolución de 640x480 pixeles. Con la herramienta
de adquisición de imágenes de Matlab ® se obtuvieron imágenes a color,
representadas por componentes de tres intensidades, de acuerdo al modelo RGB24
(rojo, verde y azul con niveles de 0 a 255), también conocido como color verdadero a
24-bits (Nixon y Aguado 2002).
El uso de imágenes a color, es motivado por el hecho de que el color es un poderoso
descriptor, que simplifica la identificación de objetos y extracción de la escena de los
mismos (Gonzalez y Woods 2002). Aprovechando esta característica de las imágenes
a color, se decidió usar LEDs de color rojo, como objeto a ser identificado y ubicado y
usar esa información en la recuperación de sus coordenadas en el espacio en tres
dimensiones.
El siguiente paso es el procesado de los colores, donde se separó la componente en
rojo, en la que se buscaron niveles mayores a 180 en cada pixel y con diferencias en
niveles mayores a 110 con las otras componentes, figura 3-2, de acuerdo a esta regla
se formó una nueva imagen.
Figura 3-1: Diagrama con los casos fundamentales en el procesamiento de imágenes.
49 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
La nueva imagen es procesada de nuevo, aplicando un proceso de segmentación, en
el cual se buscan las áreas marcadas por los tres LEDs (de color blanco en la nueva
imagen), figura 3-3, identificando su posición en la imagen y obteniendo su centroide en
coordenadas (x,y) para cada LED, de esta manera se obtienen los atributos de interés
de la imagen original que son las coordenadas de cada LED en el plano de la imagen.
Matlab ® ofrece herramientas para procesamiento digital de imágenes, Image
Processing Toolbox y adquisición de imágenes, Image Acquisition Toolbox, los cuales,
son una colección de funciones en código Matlab para la solución a problemas de estas
áreas, la figura 3-4 muestra el diagrama con las funciones y las secuencias usadas
para llevar a cabo el procesado de las imágenes.
Figura 3-2: Valores de RGB en un LED.
50 Capítulo 3 Recuperación de coordenadas en 3D
Figura 3-3: Tres LEDs en una escena, su extracción y sus centroides encontrados.
51 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 3-4: Estructura del programa detector de tres LEDs y recuperación de sus coordenadas en 3D.
52 Capítulo 3 Recuperación de coordenadas en 3D
3.2 RECUPERACIÓN DE COORDENADAS EN 3D USANDO CÁMARAS
FIJAS
Es posible recuperar la información geométrica de un punto en el espacio
determinando su posición en dos imágenes tomadas por cámaras calibradas, este
proceso requiere la intersección de dos rayos en el espacio, este método se conoce
como triangulación (Hartley y Sturm 1997).
Cada imagen tiene asociada una matriz de cámara P1 y P2 , y X es un punto
[ X R , YR , Z R ]T en centímetros, en el espacio en 3D que es visible en las dos imágenes y
proyectado en cada imagen como (Hartley y Sturm 1997):
x1 = P1 X
x 2 = P2 X
El problema de triangulación consiste en encontrar la intersección de las dos líneas en
el espacio. En la figura 3-5 se muestran los rayos de proyección en el espacio 3D
definido por x1 y C1 para la imagen 1 y x 2 y C2 para la imagen 2, donde x1 , x 2 son la
proyección del punto X sobre cada imagen y C1 , C2 son los centros de las cámaras.
Uno de los métodos más comunes para la solución al problema de triangulación es la
triangulación lineal. Conociendo que x = PX , se escriben las coordenadas
T
homogéneas x = ρ (x, y,1) , donde ( x, y ) son las coordenadas en pixeles en la imagen
y ρ es un factor de escala desconocido. Denotando Pi , donde i = 1,2,3; son los
renglones de la matriz P , entonces estas matrices pueden ser escritas de la siguiente
manera:
T
ρx = P1T X , ρy = P2T X , ρ = P3T X
Eliminando ρ usando la tercera ecuación, se llega a:
xP3 X = P1 X
T
T
yP3 X = P2 X
T
T
De las dos imágenes se obtienen un total de 4 ecuaciones con X como incógnita, las
cuales se pueden escribir en la forma AX = B (Hartley y Sturm 1997).
53 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
⎡ x1 − p11, 4 ⎤ ⎡( p11,1 − x1 p13,1 )
⎢ y − p1 ⎥ ⎢( p1 − y p1 )
2, 4 ⎥
2 ,1
1
3,1
⎢ 1
=⎢
⎢ x2 − p 21, 4 ⎥ ⎢( p 21,1 − x2 p 2 3,1 )
⎢
⎥ ⎢
⎣ y 2 − p 2 2, 4 ⎦ ⎣( p 2 2,1 − y 2 p 2 3,1 )
( p1
( p1
( p2
( p2
− x1 p13, 2 )
2 , 2 − y1 p13, 2 )
1, 2
( p1
( p1
) ( p2
) ( p2
1, 2
− x 2 p 2 3, 2
2, 2
− y 2 p 2 3, 2
− x1 p13,3 ) ⎤
⎥⎡ X R ⎤
2 , 3 − y1 p13, 3 ) ⎥ ⎢
YR ⎥⎥
⎢
⎥
)
−
2
x
p
1, 3
1
3, 3
⎥ ⎢⎣ Z R ⎥⎦
−
2
y
p
2,3
1
3, 3 ) ⎦
1, 3
Donde:
⎡( p11,1 − x1 p13,1 )
⎢( p1 − y p1 )
2 ,1
1
3,1
A=⎢
⎢( p 21,1 − x 2 p 2 3,1 )
⎢
⎣( p 2 2,1 − y 2 p 2 3,1 )
( p1
( p1
( p2
( p2
− x1 p13, 2 )
2 , 2 − y1 p13, 2 )
1, 2
1, 2
− x 2 p 2 3, 2
2, 2
− y 2 p 2 3, 2
( p1
( p1
) ( p2
) ( p2
− x1 p13,3 ) ⎤
⎥
2 , 3 − y1 p13, 3 ) ⎥
⎥
1, 3 − x1 p 2 3, 3 )
⎥
2 , 3 − y1 p 2 3, 3 ) ⎦
1, 3
⎡ x1 − p11, 4 ⎤
⎢ y − p1 ⎥
1
2, 4 ⎥
B=⎢
⎢ x2 − p 21, 4 ⎥
⎢
⎥
⎣ y2 − p 2 2, 4 ⎦
⎡X ⎤
X = ⎢⎢ Y ⎥⎥
⎢⎣ Z ⎥⎦
Resolviendo el sistema de ecuaciones en Matlab, se obtiene el valor de [ X R , YR , Z R ]T del
punto en el espacio.
Figura 3-5: Rayos de proyección en cada imagen.
54 Capítulo 3 Recuperación de coordenadas en 3D
3.2.1 RESULTADOS PARA CÁMARAS FIJAS
Aplicando los pasos mostrados en la figura 3-4, para la recuperación de las
coordenadas en la imagen y en el espacio en 3D, se construyó una base con un patrón
de medidas conocidas, donde se realizaron desplazamientos de los tres LEDs, de esta
manera fue posible medir los desplazamientos de los LEDs, respecto al centro de
calibración y comparar los resultados arrojados por el programa en Matlab ®.
Figura 3-6: Tres LEDs frente a dos cámaras fijas calibradas.
La figura 3-6, muestra la colocación de las cámaras, la convención de los ejes y la base
sobre la que se realizaron los desplazamientos.
Fue necesario calibrar cada cámara en esa posición de acuerdo a la teoría mostrada
en el capítulo 2, para la obtención de su matriz de cámara P1 y P2 , obteniendo los
siguientes resultados:
0.2280
641.3354⎤
⎡− 25.9219 − 2.3479
⎢
P1 = ⎢ − 4.3614 − 9.1373 − 21.7797 743.9219⎥⎥
⎢⎣ − 0.0091 − 0.0182
0.0005
1.0000 ⎥⎦
55 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
⎡− 21.2801 12.9573 − 0.8376 578.7588⎤
P2 = ⎢⎢ − 7.7119 − 4.1176 − 21.5954 649.5631⎥⎥
⎢⎣− 0.02101 − 0.0103 − 0.0010
1.0000 ⎥⎦
Una vez calibradas las cámaras se realizaron desplazamientos de los LEDs en rangos
de 2cm en el plano xy arrojando los resultados mostrados en el cuadro 3-1.
Tabla 3-1: Resultados de la localización de coordenadas espaciales de los tres LEDS.
Centro de los LEDs
en imagen 1
[x, y] pixeles
Centro de los LEDs
en imagen 2
[x, y] pixeles
1
[641.5023,695.8605]
2
Coordenada calculada
Coordenada real
[X, Y, Z] cm
[X, Y, Z] cm
[578.9136,613.5342]
[ 0.0461, 0.0611, 1.9717]
[0,0,2]
[705.7438,720.4070]
[701.4657,623.2864]
[-0.0211, 6.0862, 2.0407]
[0,6,2]
3
[566.4408,736.9562]
[644.1043,653.4559]
[ 5.8401, 5.8398, 2.0577]
[6,6,2]
4
[269.5185,721.9400]
[306.3822,692.4791]
[15.6049,-2.1847, 2.2067]
[16,-2,2]
5
[575.7365,672.7642]
[433.5523,603.9024]
[-0.0495,-8.3218, 1.7064]
[0,-8,2]
6
[696.6018,669.9262]
[530.7636,588.1802]
[-5.9159,-5.9716, 1.6564]
[-6,-6,2]
7
[820.1474,767.5843]
[888.4126,641.4783]
[-0.1883,13.9730, 1.9770]
[0,14,2]
8
[734.6464,680.5429]
[599.1905,592.9000]
[-5.7688,-1.6852, 1.7811]
[-6,-2,2]
9
[722.8273,652.1399]
[504.3430,571.9845]
[-9.7295,-10.0151,1.6859]
[-10,-10,2]
10
[629.5826,660.0781]
[446.6214,588.3132]
[-3.9754,-10.2555,1.7006]
[-4,-10,2]
Prueba
3.3 RECUPERACIÓN DE COORDENADAS EN 3D USANDO ESTIMACIÓN
DE POSE
El problema de la estimación de pose es básicamente el poder determinar la pose
(Rotación y Traslación) de la cámara a partir de tres puntos conocidos en el espacio
3D, para esto se realizó la construcción de un triángulo equilátero de 5cm en donde a
cada vértice se le colocó un led rojo. En este momento los parámetros internos de la
cámara ya son conocidos y serán utilizados para la solución de este problema. El
método empleado es conocido como la solución de Grunert (1841) (Haralick 1994).
En el proceso de calibración se determinaron los parámetros internos (α x , s, x0,α y , y0 ) y
los externos (R, T). Los parámetros internos no cambian con la posición de la cámara,
56 Capítulo 3 Recuperación de coordenadas en 3D
pero no sucede lo mismo con los parámetros externos, ya que estos parámetros fueron
calculados con respecto a un marco de referencia conocido (patrón de calibración) y si
la cámara cambia de posición estos parámetros también cambian, por lo que hay que
volver a calcularlos para un nuevo marco de referencia.
Este problema se presenta cuando la cámara se encuentra colocada sobre robots
móviles, o como es nuestro caso al ser colocada sobre el efector final del brazo
robótico tipo PUMA, a este tipo de configuración se le llama cámara en mano.
A continuación se muestra el planteamiento usado por Grunert. En la figura 3-7 se
ilustra el problema.
Figura 3-7: Ilustración geométrica de tres puntos en el espacio.
sean:
p1 , p2 y p3
⎛ xi ⎞
⎜ ⎟
; pi = ⎜ yi ⎟; i = 1,2,3.
⎜z ⎟
⎝ i⎠
tres puntos de un triángulo conocido, cuya posición en el espacio se desconoce y sus
dimensiones están dadas por:
a = p2 − p3
b = p1 − p3
c = p1 − p2
Ahora, hacemos que el origen del sistema coordenado de la cámara sea el centro de
perspectiva y que el plano de proyección de la imagen esté a una distancia f . Y si los
puntos proyectados en la imagen de p1 , p2 y p3 son q1 , q2 y q3 respectivamente.
57 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
⎛ ui ⎞
⎟;
⎝ vi ⎠
( qi ) = ⎜
i = 1, 2,3
Los vectores unitarios desde el centro de perspectiva a los puntos observados
p1 , p2 y p3 están dados por:
ji
⎛ xi ' ⎞
1
⎜ '⎟
y ;
'2
'2
2 ⎜ i ⎟
xi + yi + f ⎜ ⎟
⎝ f ⎠
i = 1, 2,3
El centro de perspectiva con los tres puntos del triángulo forma un tetraedro. Los
ángulos que se forman del centro de perspectiva y los lados opuestos a, b y c son
α , β y γ respectivamente y están dados por:
cos α = j2 ⋅ j3
cos β = j1 ⋅ j3
cos γ = j1 ⋅ j2
Si las distancias de los puntos p1 , p2 y p3 al centro de perspectiva son s1 , s2 y s3
respectivamente, para determinar la posición de los puntos p1 , p2 y p3 con respecto
al marco de referencia de la cámara, es suficiente determinar las distancias s1 , s2 y s3
respectivamente dado que:
pi = si ji ; i = 1, 2,3
nos darán las coordenadas de los puntos con respecto al marco de referencia de la
cámara.
La solución propuesta es una aplicación de la ley de cosenos para los ángulos
α , β y γ . Aplicando esta ley tenemos:
s2 + s3 − 2s2 s3 cos α = a 2
(3.1)
s1 + s3 − 2s1s3 cos β = b 2
(3.2)
s1 + s2 − 2s1s1 cos γ = c 2
(3.3)
2
2
2
2
2
2
58 Capítulo 3 Recuperación de coordenadas en 3D
si
s2 = us1 ;
s3 = vs1
(3.4)
y las sustituimos en las ecuaciones 3.1, 3.2, 3.3, entonces:
(
)
s1 u 2 + v 2 − 2uv cos α = a 2
2
(
)
s1 1 + v 2 − 2u cos β = b 2
2
(
)
s1 1 + u 2 − 2u cos γ = c 2
2
(3.5)
(3.6)
(3.7)
Igualando la ecuación 3.5 con 3.6 y la ecuación 3.6 con 3.7, se obtiene el siguiente
sistema de ecuaciones:
u2 +
b2 + a 2 2
2a 2
a2
v
−
2
uv
cos
α
+
u
cos
β
−
=0
b2
b2
b2
(3.8)
u2 −
c2 2
c2
b2 − c2
v
+
2
v
cos
β
−
2
u
cos
γ
+
=0
b2
b2
b2
(3.9)
De la ecuación 3.8 se puede obtener una expresión para u 2 que queda de la siguiente
forma:
u2 = −
b2 − a2 2
a2
2a 2
+
−
+
v
uv
v
2
cos
α
cos
β
b2
b2
b2
Esta expresión para u 2 puede ser sustituida en la ecuación 3.9 para obtener una
expresión para u :
⎛ a2 − c2 ⎞ ⎛ a2 − c2 ⎞
a2 − c2
⎜
⎟
⎟
1
2
cos
β
+
+1
v 2 ⎜⎜
−
−
v
⎟ ⎜
b2
b 2 ⎟⎠
b2
⎝
⎝
⎠
u=
2(cos γ − v cos α )
(3.10)
y esta ecuación es sustituida nuevamente en la ecuación 3.8 para obtener un polinomio
de cuarto orden en v , de la forma:
A4 v 4 + A3v 3 + A2 v 2 + A1v + A0 = 0
(3.11)
Al encontrar las raíces de este polinomio se obtiene una solución para v que puede ser
sustituida en 3.10 y resolver para u . Teniendo los valores de u y v pueden ser
sustituidas en 3.5, 3.6 o 3.7 y obtener la solución para s1 , la cual será la solución para
59 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
la posición de nuestro origen al centro de perspectiva de la cámara. Con este
procedimiento se tienen 4 soluciones de las cuales dos de ellas son complejas y las
otras dos son reales, existe la incertidumbre de cuál de las soluciones reales es la que
corresponde a nuestro problema ya que ambas son totalmente válidas.
Para las ecuaciones anteriores los valores que se propusieron para a , b y c son de
5cm, que son las medidas del triángulo que se utilizó en estas pruebas.
La solución para s1 es la distancia del centro de proyección hasta el punto p1 del
triángulo el cual es considerado como el origen de nuestro nuevo marco de referencia,
T
lo que nos da como resultado el vector de traslación T = ⎡⎣t x , t y , t z ⎤⎦ .
Por el momento sólo falta determinar la orientación de este nuevo marco de referencia,
este problema puede ser planteado como sigue. Dadas las coordenadas de tres puntos
en el sistema coordenado del espacio 3D se requiere determinar una matriz de rotación
(R ) y un vector de traslación (T ) que satisfaga la siguiente ecuación:
pi = Rpi + T ;
'
⎛ xi ⎞
⎜ ⎟
donde pi = ⎜ yi ⎟;
⎜z ⎟
⎝ i⎠
i = 1,2,3
(3.12)
i = 1,2,3 , son los puntos en 3D en el sistema coordenado de la
⎛ x 'i ⎞
⎜ ⎟
cámara y p 'i = ⎜ y 'i ⎟;
⎜ z' ⎟
⎝ i⎠
i = 1,2,3 , son los puntos en 3D en el sistema coordenado del
mundo.
Con objeto de poder resolver este problema linealmente se expresa la matriz de
rotación como:
⎡ r11
R = ⎢⎢r21
⎢⎣r31
r12
r22
r32
r13 ⎤
r23 ⎥⎥
r33 ⎥⎦
Las incógnitas en la matriz de rotación no son independientes y cumplen con:
r112 + r122 + r132 = r212 + r222 + r232 = r312 + r322 + r332 = 1
60 Capítulo 3 Recuperación de coordenadas en 3D
r13 = r21r32 − r22 r13
r23 = r12 r31 − r11r32
(3.13)
r33 = r11r22 − r12 r21
Y si los tres vértices del triángulo son coplanares, podemos asumir que zi' = 0 para
i = 1,2,3 .
La ecuación 3.12 puede ser escrita como:
xi = r11 xi' − r12 yi' + t x
yi = r21 xi' − r22 yi' + t y
i = 1,2,3
(3.14)
zi = r31 xi' − r32 yi' + t z
que escrito en termino de matrices queda expresada como:
AX = B
donde:
⎡ x1'
⎢
⎢0
⎢0
⎢ '
⎢ x2
A=⎢0
⎢
⎢0
⎢ x'
⎢ 3
⎢0
⎢
⎣0
0
0
0
x
y
'
2
0
0
0
0
1
0
0
0
'
2
x
0
'
2
y
0
0
x 2'
0
x 2'
0
0
1
0
y 3'
0
0
0
0
1
0
0
x
'
3
'
3
0
0
0
1
0
0
0
x 3'
y 3'
0
0
0⎤
⎥
0⎥
1⎥
⎥
0⎥
0⎥
⎥
1⎥
0⎥
⎥
0⎥
⎥
1⎦
tx
ty
tz
y i'
0
0
0
0
1
0
0
'
1
'
1
0
0
0
1
'
1
'
1
0
0
y
[
x
y
y
X = r11 r12
r21 r22
B = [x1
z1
y1
x2
r31 r32
y2
z2
x3
y3
]
T
z3 ]
T
3.3.1 RESULTADOS PARA ESTIMACIÓN DE POSE
Este procedimiento se implementó en MATLAB y se realizaron pruebas del algoritmo.
Estas consistieron en tomar una imagen a nuestro triángulo de pruebas (objetivo) con
la cámara montada sobre el servomotor, para luego introducir la información de las
coordenadas en pixeles al algoritmo descrito y determinar la distancia a la que se
encuentra el objetivo. La imagen del objetivo se muestra en la figura 3-8.
61 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
En la figura 3-9 se pueden observar las dos soluciones que proporciona el algoritmo, la
solución que está dada por el triángulo azul es las que se acerca más al valor real y en
este caso la proporcionó el valor más pequeño de las soluciones de v .
Algunos resultados obtenidos se muestran en la Tabla 3-2. En esta tabla se muestran
los puntos de los vértices del triángulo de pruebas en pixeles ( qi ) que se utilizaron. Se
utilizó al final el valor más pequeño de v obtenido de las raíces de la ecuación 3.11
para calcular la distancia de los puntos en 3D en el sistema coordenado del mundo
( pi ) en centímetros. Para estas pruebas se supuso que el plano de la cámara es
paralelo al plano del objetivo lo cual hace que la distancia a la que se encuentra la
cámara del objetivo es constante en su coordenada Z en el marco de referencia de la
cámara, por lo que se hace solamente una comparación en la coordenada Z de las
soluciones obtenidas. En la última columna se muestra la distancia que hay entre el
objetivo y la cámara.
En los puntos en 3D en el sistema coordenado del mundo ( pi ) de cada corrida puede
observarse que hay diferencias en los valores de la coordenada z de cada punto. Esto
es debido a que los planos de la cámara y objetivo no se encuentran completamente
paralelos, esto hace notar que la inclinación entre estos planos afecta a las soluciones
obtenidas del método Grunert (1841).
Tabla 3-2: Pruebas de la estimación de pose.
Coordenadas de los Vértices en pixeles
( qi )
Puntos en 3D en el sistema coordenado del
mundo
( pi )
Prueba
q1
q2
q3
[u, v ] pixel [u, v ] pixele [u, v ] pixele
es
s
s
p1
[x, y, z ] cm
[-2.76, 2.25
,20.32]
1
[179,134]
[422,129]
[305,342]
[-2.93, 2.39,
21.51]
[-2.59, 2.64,
30.00]
2
[230,158]
[296,154]
[317,303]
[-2.68, 3.74,
31.12]
3
[105,14]
[189,35]
[233,272]
[-3.42, 3.73,
16.42]
[-3.78, 4.12,
18.18]
62 p2
[x, y, z ] cm
[2.17
,2.50,
21.58]
[2.17
,2.50,
21.58]
[2.25,
2.74,
29.84]
[2.25,
2.74,
29.84]
[1.27,
3.81,
18.44]
[1.18,
3.55,
Raíz
utilizada
de la
ecuació
n 3.11
p3
[x, y, z ] cm
Distanci
a del
objetivo
Real
v
Z cm
[-0.29, -1.96,
21.77]
1.06
20
[-0.27, -1.85,
20.51]
0.95
20
[-0.05, -1.63,
31.16]
1.03
30
[-0.05, -1.63,
31.12]
0.99
30
[-1.56, -0.42,
18.74]
1.09
18
[-1.56, -0.42,
18.74]
0.99
18
Capítulo 3 Recuperación de coordenadas en 3D
[-3.13, 3.57,
27.80]
4
[203,116]
[382,128]
[284,280]
[-3.24, 3.69,
28.73]
[3.12, 0.77,
19.57]
5
[482,208]
[497,59]
[680,203]
[4.10, 1.02,
25.72]
17.15]
[1.80,
3.40,
29.10]
[1.70,
3.22,
27.54]
[4.03,
4.27,
23.18]
[3.75,
3.96,
21.57]
[-0.98, -0.88,
29.06]
1.03
27
[-0.98, -0.87,
28.99]
0.99
27
[7.69, 0.97,
21.82]
1.17
25
[7.84, 0.99,
22.25]
0.91
25
Figura 3-8: Imagen del objetivo para la estimación de pose.
63 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 3-9: Gráfica de la solución obtenida para la estimación de pose.
3.4 CONCLUSIONES DEL CAPÍTULO 3
En éste capítulo, se mostró la solución al problema de recuperación de coordenadas en
3D, con el método de visión estereoscópica y con el de estimación de pose, las
pruebas de los métodos consistieron en colocar un objeto sobre una cuadrícula con
medidas conocidas, haciendo movimientos frente a las cámaras calibradas, las
coordenadas del objeto sobre la imagen se encontraron de manera automática
mediante un procesado de la imagen, una vez conocidas dichas coordenadas y
aplicando las ecuaciones correspondientes a cada método se logró obtener la
coordenada x, y y z del objeto.
Fue complicado obtener un error exacto, en lo que refiere a la posición real y a la
calculada, debido a que se midió la posición real a mano y el trazado de la cuadrícula
se hizo de la misma forma.
La información métrica del objeto obtenida en este capítulo, se usó para indicarle al
robot la posición final a la que debe llegar, sólo fue necesario transformar las
coordenadas cartesianas x, y y z a coordenadas angulares, que son las que usa el
robot para posicionarse, a manera de ir ensamblando el sistema de visión robótica, sólo
queda conocer el control del robot, esto se muestra en el siguiente capítulo.
64 CAPÍTULO 4
4. EL ROBOT PUMA Y SU CONTROL
En este capítulo se presenta una breve reseña del trabajo hecho en (Villalobos y
Ramirez 2005), este robot se utilizó para anexarle una cámara en su efector final e
implementando algoritmos de calibración de cámaras, detección de objetos en
imágenes y cálculo de sus coordenadas en 3D, para llevar a cabo el control de sus
movimientos, obteniendo con esto un prototipo de visión robótica real en el CENIDET.
En la sección 4.1 se muestran las características mecánicas y espacio de trabajo del
robot PUMA, mismas que se estudiaron para poder construir y montar una cuarta
articulación con base para una cámara.
La sección 4.2 presenta la construcción de la 4ta articulación y el tipo de control que se
realizará sobre ella.
La sección 4.3 presenta el rediseño de las tarjetas de adquisición de datos y potencia
para el control del robot.
Con los cambios en las tarjetas de control, fue necesaria la reprogramación de la PC
que controla al robot y de los microcontroladores, esto se muestra en la sección 4.4.
Debido a modificaciones en la estructura mecánica del robot y en el sistema electrónico
del control, se adapto el control PID (Proporcional-Integral-Derivativo) que se hizo en
(Villalobos y Ramirez 2005), esto se presenta en la sección 4.5.
4.1 ESTRUCTURA MECÁNICA DEL ROBOT PUMA
La mayor parte del brazo está hecho de aluminio debido a su baja densidad y buenas
propiedades mecánicas. El cuerpo y el eje del hombro, figura 4-1, son piezas
sometidas a mayores esfuerzos y están hechas de acero buscando una mayor rigidez
en la estructura. La tabla 4-1 define los movimientos de las articulaciones.
65 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 4-1: Eslabones, articulaciones y motores del brazo.
Tabla 4-1: Especificaciones del robot.
Estructura mecánica
Articulado Vertical
Número de ejes
Rango de Movimiento
3
Eje 1, Cintura
330°
Eje 2, Hombro
310°
Eje 3, Codo
Máximo radio de operación
Sensores de realimentación
310°
331mm
Encoders ópticos incrementales en cada eje, 500
cuentas/revolución, señales cuadradas desfasadas 90°, con
alimentación de 5Vcd a 40mA, modelo HP HEDS-9100
Motores Pittman ® de 1090 rpm a 24Vcd con reducción
5:9:1, modelo GM9234C212-R3
Actuadores
Reducción por poleas:
Cintura
12.5:1
Hombro
12.5:1
Codo
Transmisión
Carga máxima
Peso del brazo
5:1
Caja de engranes, poleas y bandas dentadas
0.250 Kg
17 Kg.
66 Capítulo 4 El Robot PUMA y su control
4.1.1 ESPACIO DE TRABAJO
La longitud de los eslabones y los grados de rotación de las articulaciones son las
dimensiones que determina el espacio de trabajo del brazo. La figura 4-2 muestra
algunas dimensiones y el alcance del robot antes de anexarle una 4ta articulación.
Figura 4-2: Espacio de trabajo (vista superior y lateral).
El estudio de estas dimensiones ayudo a resolver la cinemática inversa del robot,
mostrada en el capítulo 5.
4.2 CONSTRUCCIÓN DE LA 4 TA ARTICULACIÓN
En esta sección se presenta el prototipo construido para la cuarta articulación, en la
que se montó la cámara para su uso con el método de estimación de pose; Se
enumeran las consideraciones hechas para ello y se muestra el prototipo construido.
Tanto la cámara como el motor que se usaron se eligieron de acuerdo a las
restricciones de espacio y fuerza que tiene el brazo robótico.
Durante el acopio de componentes, se eligió usar un servo motor que además de tener
poco peso, ofreciera la fuerza necesaria para mover a la cámara junto con su montura
e índice posicional.
La cámara se eligió en este caso, considerando su peso y que su foco estuviera
simétricamente localizado sobre su eje vertical, de esta manera, se evitaba el hecho de
calcular dicho centro y es más fácil localizar el centro de la cámara con respecto al
punto de referencia a usar.
67 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
El material de construcción de la montura de la cámara y de la estructura que soportara
a esta y al motor fue aluminio, ya que es un material ligero, económico, de fácil
adquisición y fácil de trabajar.
El diseño elegido para construir esta articulación se muestra a continuación en la figura
4-3, donde se puede observar que el movimiento de la articulación es de manera
horizontal, debido a que ya se cuenta con dos movimientos verticales, en el brazo y
antebrazo y solo uno horizontal en la cintura del robot y se piensa que este movimiento
ayudará a localizar de manera más exacta el objeto buscado, ya que el servomotor
permite movimientos hasta de un grado de resolución, así una vez localizado en la
línea vertical y aproximado en la horizontal mediante los movimientos de la cintura, el
índice posicional es girado de manera que se efectúe un contacto no brusco de éste
sobre el objeto.
Figura 4-3: Diseño de la 4 ta articulación.
Figura 4-4: Diseño final de la 4ta articulación.
68 Capítulo 4 El Robot PUMA y su control
4.2.1 FUNCIONAMIENTO DEL SERVOMOTOR
El movimiento de la cuarta articulación se llevo a cabo con un servomotor de la marca
Hitec ®, modelo HS-311. Se le realizaron pruebas de funcionamiento y par de fuerza
para garantizar su funcionamiento.
El servomotor puede ser llevado a posiciones angulares específicas al enviar una señal
codificada. Siempre que la señal exista en la línea de entrada, el servomotor mantendrá
la posición angular del engranaje. Cuando la señal cambia, la posición angular cambia.
En la práctica, se usan servomotores para posicionar superficies de control como el
movimiento de palancas, pequeños ascensores y timones. Éstos también se usan en
juguetes de radio control, títeres y por supuesto en robots.
Los servomotores son sumamente útiles en robótica. Los motores son pequeños, como
se observa la figura 4-5, tienen internamente una circuitería de control y es sumamente
poderoso para su tamaño. El servomotor HS-311 de Hitec ® tiene una fuerza promedio
de 3kg/cm a una alimentación de 4.8 Vcd. Su potencia es proporcional a la carga
mecánica. Un servomotor, por consiguiente, no consume mucha energía. También
puede ver los 3 alambres de conexión externa, uno es para alimentación 5Vcd (rojo),
conexión a tierra GND (negro) y el alambre amarillo es el de la señal de control. Se
presentan las características principales en la tabla 4-2.
Tabla 4-2: Características principales del servomotor.
Torque 4.8-6v
Velocidad 4.8-6v
Tamaño 4.8-6v
Peso 4.8-6v
3.0 - 3.7 kg.
0.19 - 0.15 segundos
40 x 20 x 37mm
43 g.
Figura 4-5: Servomotor y cámara usados en la 4ta articulación.
69 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
La fuerza motriz del servomotor tiene algunos circuitos de control y un potenciómetro
(una resistencia variable) esta es conectada al eje central del servomotor. Este
potenciómetro permite a la circuitería de control, supervisar el ángulo actual del
servomotor. Si el eje está en el ángulo correcto, entonces el motor está apagado. Si el
circuito sensa que el ángulo no es el correcto, el motor girará en la dirección adecuada
hasta llegar al ángulo correcto. El eje del servomotor es capaz de llegar alrededor de
los 180 grados, en algunos llega a los 210 grados, pero varía según el fabricante. Un
servomotor se usa normalmente para controlar un movimiento angular de entre 0 y 180
grados.
El cable de control se usa para comunicar el ángulo. El ángulo está determinado por la
duración de un pulso que se aplica al alambre de control. El servomotor requiere ser
alimentado por un pulso cada 20 milisegundos. La longitud del pulso determinará los
giros de motor. Por ejemplo, un pulso de 1.5 ms., hará que el motor se torne a la
posición de 90 grados (llamado la posición neutra). Si el pulso es menor de 1.5 ms.,
entonces el eje se acercará a los 0 grados. Si el pulso es mayor de 1.5ms, el eje se
acercará a los 180 grados (figura 4-6). La duración del pulso tiene un rango de 0.6 mS
a 2.4 mS, dado que el servomotor toma una duración de 400 uS para un recorrido de
40 grados. El servomotor es lineal a lo largo de todo su recorrido. Tomando en cuenta
lo anterior ser realizó una tarjeta de control para éste dispositivo la cual se muestra en
la siguiente sección.
Figura 4-6: Funcionamiento de un servomotor.
4.3 REDISEÑO DE LAS TARJETAS DE CONTROL PARA EL ROBOT PUMA
Las tarjetas construidas en “Construcción de un brazo robótico de tres GDL y su control
mediante el núcleo híbrido de transición de estados” (Villalobos y Ramirez 2005),
presentan deficiencias al momento de probar los controladores del robot, esta cuestión
70 Capítulo 4 El Robot PUMA y su control
nos impidió hacer pruebas con la cuarta articulación montada en el robot y pruebas de
posición del efector final. Es por ello, que fue necesaria la construcción de nuevas
tarjetas de control y ofrecer una solución a las siguientes deficiencias.
•
•
•
•
•
•
•
•
El valor de encoder que envía el PIC a la PC que controla al robot, que
llamaremos PC2 lo hace en dos partes de cuatro bits, debido a esto, la PC2
recibe la parte alta en un tiempo y la parte baja en otro tiempo y
correspondiente a otro conteo. Esto se hace debido a que el puerto paralelo se
maneja con sólo 5 bits de entrada.
La solución que se presenta, es usar el puerto en forma bidireccional a 8 bits de
datos, configurándolo vía software, de esta manera se recibe el valor del conteo
del encoder en forma completa y correspondiente al tiempo de lectura.
Este mismo puerto de datos es usado por la PC2 para enviarle el valor de PWM
al PIC a 8 bits.
La etapa de potencia de los motores basada en el puente H LMD18200, tiene
limitaciones en el manejo de corriente y es propensa a quemarse en caso de
que falle el movimiento de alguna articulación, por el exceso de corriente
requerida por los motores.
La solución fue, construir una interfaz de potencia más robusta a partir de
transistores TIP101 y TIP106 que proporciona hasta 15 amperes de corriente.
El robot solo tiene controladas dos articulaciones, cintura y hombro, faltando por
controlar el codo.
La solución es sintonizar un controlador para la ésta última articulación.
Y por último fue necesario agregar la interfaz controladora del servomotor, de la
cuarta articulación.
Otro cambio necesario para el mejoramiento de la interfaz fue el del microcontrolador,
anteriormente se usó el PIC16F84 de Microchip Technology Inc, la nueva tarjeta usa el
PIC16F877A de Microchip Technology Inc, se decidió este cambio para aumentar la
cantidad de puertos de entrada y salida digitales y hacer más compacto al sistema, ya
que este último dispositivo cuenta con un generador de señal PWM que alimenta al
controlador del motor, este cambio sustituyó al generador de PWM SG3524N y a un
arreglo R-2R usado como convertidor digital analógico para alimentar al PWM, a un
buffer 74HC541 y una compuerta inversora 74HC14, además, este cambio mejoró la
calidad de la señal de PWM e hizo posible la modificación de su frecuencia vía
software, para futuras aplicaciones.
La interfaz construida se muestra en la figura 4-7 y en el anexo B se muestra el
diagrama del circuito empleado.
71 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 4-7: Interfaz construida para el control del robot.
4.3.1 FUNCIONAMIENTO DE LA TARJETA DE CONTROL
En la etapa de adquisición de datos, constituida principalmente por un PIC16F877, se
reciben mediante una interrupción, los pulsos generados por los encoders de los
motores, de aquí mismo son enviados a la de control cada 4ms para calcular la señal
de control, que a su vez regresa cada 20ms el valor de PWM que el PIC tendrá que
generar y enviar a la etapa de potencia, como se muestra en la figura 4-8.
72 Capítulo 4 El Robot PUMA y su control
Figura 4-8: Etapa de adquisición de datos.
Las pruebas hechas a esta parte de la tarjeta fueron:
1. Verificación de la entrada de los pulsos a los PIC´s en los pines 33 y 34,
midiendo con un osciloscopio en dichos pines.
2. Verificación del envío del dato del PIC a la PC2, imprimiendo en pantalla dicho
valor.
3. Verificación de que el valor generado de PWM es el que la PC2 envió al PIC,
midiendo con un osciloscopio en el pin 17.
En la etapa de potencia, constituida principalmente por transistores TIP101 y TIP106,
se recibe la señal de PWM y de dirección del motor, con niveles de voltaje de 0 a 5V.
La señal de PWM, es amplificada a 12V y enviada a los motores. La señal de dirección
la envía la PC2 y solo nos indica el sentido de giro del motor.
Las pruebas hechas a esta parte de la tarjeta fueron:
1. Verificación de la entrada de la señal de PWM proveniente del PIC midiendo con
un osciloscopio en los puentes de aislamiento.
2. Verificación de la entrada de la señal de dirección proveniente de la PC2
midiendo con un osciloscopio en los puentes de aislamiento.
3. Se retiraron los puentes de aislamiento, ver figura 4-7, y se colocó un motor de
CD en la salida de cada etapa de potencia, se colocaron niveles de voltaje de 0
73 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
a 5V en cada pin para verificar que el motor se accionara e hiciera el cambio de
dirección, con 0V entrega la máxima salida y con 5V la salida mínima.
Para controlar la 4ta articulación se utilizó el PIC16F873, el cual cuenta con generador
de PWM y comunicación serial, se envió mediante una interfaz serial RS232 el valor
de ángulo requerido, el PIC generó la señal de PWM y se colocó el servomotor a la
salida del PIC, se comprobó que el ángulo enviado fue el ángulo de salida, en el anexo
B se muestra el diagrama del circuito.
4.4 ADAPTACIÓN DE LOS PROGRAMAS DE LA PC Y DEL
MICROCONTROLADOR PARA SU USO CON LAS NUEVAS TARJETAS
Debido al cambio en las tarjetas de control del robot, fue necesaria la adaptación de los
programas de la PC2 y del microcontrolador, para el manejo de un bus bidireccional de
8 bits, en la figura 4-9 se muestra el diagrama de flujo usado para el cambio del
programa en la PC2.
Figura 4-9: Diagrama de flujo para el programa de la PC2.
74 Capítulo 4 El Robot PUMA y su control
Al inicio, el programa espera a recibir las coordenadas puerto serie desde la PC donde
están conectadas las cámaras, a la que se llamará PC1, una vez recibidas, lee el valor
de los encoders para conocer la posición de las articulaciones, luego ejerce la ley de
control para establecer el valor de la señal PWM y el sentido de giro de los motores,
esto se envía al PIC que genera la señal de PWM que alimentará a los motores. El
valor de los encoders es leído constantemente hasta que la articulación llegue a su
posición final en ese momento la PC2 al motor, a la que se llamará PC2, enviará una
señal via puerto serie a la PC1 para avisarle que el robot se posicionó en la
coordenada deseada.
El programa del PIC se muestra en la figura 4-10 y en la figura 4-11 el diagrama de
flujo de la interrupción que genera el conteo del encoder de los motores.
Figura 4-10: Diagrama de flujo del programa del PIC.
75 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 4-11: Diagrama de flujo de la interrupción programada en el PIC.
El programa constantemente verifica los puertos del PIC RB7 y RB6 por los cuales la
PC2 le indica si va a escribir valor de PWM o leer datos del encoder. Estos puertos se
activan con un 1 lógico, si esto sucede con RB7 el programa entra a una rutina de
envío de valor actual del encoder, si fue el puerto RB6 el activo, se recibe el valor para
generar la señal de PWM que será enviada al motor.
La interrupción programada se activa en el momento que se mueve una articulación y
empieza a incrementar o decrementar una variable que contiene la cuenta del encoder,
después, regresa de la interrupción y es enviada esta cuenta a la PC2.
4.5 APLICACIÓN DE UN CONTROLADOR PID SOBRE EL ROBOT PUMA
Después de terminada la tarjeta de adquisición de datos y potencia fue necesario
probar un control para posición del robot; la base de dicho control fue un PID
programado en (Villalobos y Ramirez 2005), al cual se le hicieron los siguientes
ajustes:
1. Se programó un generador de trayectoria cicloidal variable (Angeles 2003), e
independiente en cada articulación, ya que el generador de trayectoria anterior
solo realiza un movimiento de 0˚ a 90˚ y viceversa.
2. La nueva rutina de generación de trayectoria, considera la posición inicial del
robot como ángulo 0˚ y desde este ángulo parte a cualquier ángulo pedido,
permitido en el movimiento del robot y de esa nueva posición pasa a cualquier
otro ángulo requerido y así sucesivamente.
3. Se reprogramó el modo de adquisición de valores de los encoders,
anteriormente se adquirían datos en dos paquetes de 4 bits (nible alto y bajo)
que posteriormente son reagrupados para recuperar el valor original;
76 Capítulo 4 El Robot PUMA y su control
actualmente esto se realiza en un solo paso, de forma que se adquieren los
datos desde el puerto paralelo en un solo paquete de 8 bits.
4. Se programaron un par de puertos seriales, uno para recibir ángulos de la PC1,
este tiene una velocidad de comunicación de 115200 baudios y otro para enviar
el ángulo de posición de la cuarta articulación a una velocidad de 19200
baudios.
5. Se ajustaron las constantes del controlador PID, para un mejor funcionamiento
del robot con la nueva dinámica.
Para la generación de las trayectorias se utilizó un movimiento cicloidal (Angeles
2003), esta función produce un movimiento suave (S), una velocidad (S’) y aceleración
(S’’) cero al inicio y final del intervalo, esto ayuda a evitar esfuerzos en los motores de
las articulaciones del robot.
La función cicloidal está definida por:
s (τ ) = τ −
1
sin( 2πτ )
2π
La respuesta de esta señal se puede ver en la figura 4-12, en la cual se puede observar
la posición (S), la velocidad (S’) y la aceleración (S’’).
Para utilizar esta función como generador de trayectoria variable, en la que se pudiera
cambiar el valor del ángulo final y el tiempo que transcurrirá para llegar a este punto, se
tomó en cuenta la velocidad de operación típica del robot que es de 30°/seg.
Tomando en cuenta esta velocidad se propuso una velocidad de 18°/seg (90° en 5
seg).
La constante de tiempo
τ
para la generación de la trayectoria se calculo como:
T = abs (angulo ) *
τ=
t
T
angulo = angulo _ nuevo − angulo _ old
77 5 .0
90.0
Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 4-12: Movimiento cicloidal (S) y su velocidad (S’) y aceleración (S’’).
donde
T = tiempo total del movimiento
ángulo = ángulo la trayectoria a generar
ángulo_n = ángulo que se desea
ángulo_old = ángulo anterior
la posición en función del tiempo se generó con la siguiente ecuación:
position(t ) = angulo *
PI
PI * t ⎞
⎛
* ⎜1.0 − cos
⎟
360.0º ⎝
T ⎠
Las ecuaciones anteriores se programaron para cada articulación de manera
independiente, para dar la posición de un ángulo variable a cada articulación.
4.5.1 AJUSTES DEL CONTROLADOR PID
Las tarjetas servoamplificadoras desarrolladas en (Villalobos y Ramirez 2005) son
alimentadas por una fuente de 24 Vcd lo que para ellos es equivalente a 255 cuentas
digitales, para compensar cargas constantes tales como la fricción y la inercia debido a
la masa de la articulación, es aplicada a la salida del controlador una constante de 8 V78 Capítulo 4 El Robot PUMA y su control
(85 cuentas digitales) para compensar la sona muerta del actuador. Ademas la
máxima salida del controlador esta limitada por software a 18.8 Vcd (200 cuentas
digitales).
cd
Al rediseñar y contruir nuevas tarjetas servoamplificadoras las características del
controlador fueron afectadas, ya que la alimentación de la nueva etapa de potencia es
con 12 Vcd, de tal forma que el nivel de voltaje para compezar la zona muerta también
cambio siendo de aproximadamente 2 Vcd (40 cuentas digitales) y la máxima salida del
controlador esta limitada a 11.7 Vcd (250 cuentas digitales).
Todas éstas modificaciones al programa y a la tarjeta de potencia hacen que tengan
que ser reajustadas las constantes de los controladores de las articulaciones, dicho
ajuste se realizó de manera manual hasta tener una buena respuesta en velocidad y
posición en el movimiento del robot. Teniendo un valor final de las constantes del
controlador para cada articulación de:
Tabla 4-3: Constantes utilizadas en los controladores.
Kp
5.00
Cintura
Ki
0.0001
Kd
0.01
Kp
4.0
Hombro
Ki
0.001
Kd
0.0
Kp
2.0
Codo
Ki
0.01
Kd
0.2
4.6 CONCLUSIONES DEL CAPÍTULO 4
Fue necesario el conocimiento del robot para poder probar los métodos de visión
estereoscópica y estimación de pose en el robot, debido a problemas en las tarjetas de
control del robot y a la adición de una nueva articulación se rediseñaron y construyeron
nuevas tarjetas de control, esta actividad no fue programada en los alcances de la
tesis, ya que el robot se suponía funcional, además fue necesario darle un
mantenimiento mecánico, ya que cada articulación presentaban problemas de
movimiento, estos ajustes causaron cambios en la dinámica del robot y fue necesario
además un reajuste en el control y su reprogramación.
Una vez resueltos los problemas adicionales a esta investigación, se procedió a
realizar pruebas que validaran al sistema completo, esto se muestra en el capítulo 5.
79 CAPÍTULO 5
5. RESULTADOS
Una vez completo el sistema de visión robótica, es decir, se tienen probados los
métodos de calibración, detección de objetos y el control del robot, fue necesario
realizar pruebas de integración, en este capítulo se presentan los resultados a dichas
pruebas.
Como parte de la automatización del proceso de: detección, cálculo de coordenadas,
conversión de coordenadas y control del robot, fue necesario elaborar una interfaz en la
plataforma de Matlab R2006b ® que uniera todas estas partes, en la sección 5.1 se
presenta el programa desarrollado y sus funciones.
Una vez terminada la interfaz gráfica fue posible probar el funcionamiento del sistema,
en la sección 5.2 se muestran la manera en que se hicieron las pruebas y los
resultados obtenidos.
En la sección 5.3 y 5.4 se exponen los resultados para los métodos de cámaras fijas y
estimación de pose, respectivamente.
5.1 INTERFAZ GRÁFICA EN MATLAB
El programa desarrollado se elaboró en Matlab R2006b ® usando las herramientas de
procesamiento de imágenes, adquisición de imágenes y desarrollo de interfaces
gráficas GUIDE y tiene como finalidad la selección del modo de operación del sistema,
su visualización y solución de los algoritmos de procesamiento de imágenes, la
localización 3D del objeto y el cálculo de los ángulos de las articulaciones, necesarios
para que el efector final del robot se posicione sobre el objeto buscado.
La interfaz gráfica, figura 5-1, tiene como función principal hacer que el usuario final
visualice y seleccione cualquiera de los modos de operación del sistema. Dependiendo
del modo seleccionado se activarán los botones y controles necesarios para su uso y
se visualizará el resultado para cada uno de ellos, en la sección 5.1.2 se muestra la
descripción de cada cuadro y botón de la interfaz.
80 Capítulo 5 Resultados
Figura 5-1: Interfaz gráfica mostrando el modo de operación de dos cámaras fijas.
5.1.1 DESCRIPCIÓN DEL PROGRAMA
El flujo de control del programa desarrollado se muestra en el siguiente diagrama de
flujo, figura 5-2.
81 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 5-2: Diagrama de flujo del programa de la interfaz de usuario.
82 Capítulo 5 Resultados
5.1.2 MODO DE OPERACIÓN DE LA INTERFAZ
En el menú desplegable de modo de operación figura 5-3, se elige cualquiera de los
tres modos de operación: Dos cámaras fijas, cámara en mano y movimiento manual.
Figura 5-3: Modo de operación.
Modo 1. Dos cámaras fijas
En este modo se activan las ventanas de visualización cámara 1 y 2, mostrado en la
figura 5-1, y se desactivan los controles deslizantes para el movimiento manual y el
botón inicio y se activa el botón parar.
Se toman dos imágenes, una con cada cámara y se buscan las coordenadas x y y del
objeto en cada una de ellas, se resuelve el método de triangulación y se obtienen las
coordenadas x,y y z del objeto, se convierten estas coordenadas en ángulos mediante
la cinemática inversa y se envían vía puerto serie a la PC2. Constantemente se repite
esta operación, haciendo posible un seguimiento del objeto siempre y cuando se
encuentre dentro del área de trabajo del robot, hasta que se presione el botón parar.
Modo 2. Cámara en mano
Este modo activa la ventana de visualización cámara 3, mostrado en la figura 5-4, y
desactiva los botones de inicio y los controles deslizantes y activa el botón de paro.
Se toma una imagen con la cámara a 45° y se buscan al objeto, si no se encuentra el
objeto a la vista, se hace otra toma a 90° y si de igual forma no se encuentra al objeto
se hace otra toma a 135°, cuando el objeto es encontrado se toman sus coordenadas x
y y de cada LED del triángulo, se resuelve el método de estimación de pose, se
obtienen las coordenadas x, y y z del objeto y se envían al la PC2 que controla al robot
vía puerto serie.
83 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 5-4: Interfaz gráfica mostrando el modo de operación de cámara en mano.
Modo3. Movimiento manual
Este modo activa las ventanas cámara 1 y 2, ver figura 5-1, para visualizar el
movimiento del robot y se activan los controles deslizantes. Envía a la PC2 vía puerto
serie constantemente, cada coordenada en ángulos correspondiente a cada control
deslizante, estos están delimitados en un rango de 0 a 180 grados.
Ventanas de visualización.
La interfaz cuenta con tres ventanas figura 5-5, para mostrar las imágenes tomadas por
las cámaras, nombradas cámara 1, 2 y 3, estas se activarán dependiendo del modo de
trabajo seleccionado.
84 Capítulo 5 Resultados
Figura 5-5: Ventana de visualización de las imágenes de las cámaras
Botón inicio
Inicializa el modo seleccionado y se mantiene desactivado hasta que se presione el
botón parar.
Figura 5-6: Botón inicio
Botón parar
Detiene el modo elegido y regresa al inicio del programa y se mantiene desactivado
hasta que el botón inicio es presionado.
Figura 5-7: Botón parar
Controles deslizantes
Consta de 4 controles deslizantes figura 5-8, uno para cada articulación, cada uno tiene
un rango de operación de 0 a 180, que son los grados en los que se moverá cada
articulación, este valor será enviado a la PC2.
85 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 5-8: Controles deslizantes
Cuadro de texto de posición calculada
Estos cuadros, figura 5-9, muestran el resultado de las coordenadas calculadas en los
modos de dos cámaras fijas y cámara en mano.
Figura 5-9: Cuadros de texto
Las coordenadas X, Y y Z para la posición calculada del objeto y Cintura, Hombro,
Codo y Efector final, se usan para el cálculo del ángulo de cada articulación.
5.2 PRUEBA DEL SISTEMA DE CONTROL DEL ROBOT Y EL SISTEMA DE
VISIÓN.
Antes de realizar pruebas sobre el sistema de visión completo, es necesario resolver la
cinemática inversa del robot. Como se mostró en el capítulo 3, el método de cámaras
fijas y el de estimación de pose nos entregan coordenadas X, Y y Z en el plano
cartesiano, del objeto buscado y en el capítulo 4, se mostró que el control del robot
hace referencia a coordenadas polares, en ángulos, para cada articulación, entonces, a
partir de la cinemática inversa convertiremos las coordenadas cartesianas a polares.
86 Capítulo 5 Resultados
5.2.1 Pruebas de la cinemática inversa del robot con su efector final.
El objetivo del problema cinemático inverso consiste en encontrar los valores que
T
deben adoptar las coordenadas (ángulos) del robot θ = [θ1 ,θ 2 ...,θ n ] para que su
extremo se posicione y oriente según una determinada localización espacial.
El procedimiento se basa en encontrar suficiente número de relaciones geométricas en
las que intervendrán las coordenadas del extremo del robot, sus coordenadas
articulares y las dimensiones físicas de sus elementos (Barrientos 1997).
En la figura 5-10, se muestra la configuración del robot y en la tabla 5-1 las los valores
de sus parámetros, el dato de partida es la coordenada espacial p = ( p x , p y , p z ), dada
por el objeto localizado.
El robot posee una estructura planar, quedando este plano definido por el ángulo de la
primera variable articular θ1 , ver figura 5-11, correspondiente a la cintura del robot.
El valor de θ1 se obtiene como (Barrientos 1997):
⎛ py
⎝ px
θ1 = tan −1 ⎜⎜
⎛ p 2 + p 2 −d 2
⎞
3
x
y
⎟⎟ − tan −1 ⎜
⎜⎜
d3
⎠
⎝
⎞
⎟
⎟⎟
⎠
Figura 5-10: Configuración del robot.
87 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Tabla 5-1: Valores de los parámetros del robot.
Eslabón
ai
αi
di
θi
1
0cm
90°
35cm
θ1*
2
15cm
0°
0cm
θ 2*
3
22cm
0°
16cm
θ 3*
*Variable
Figura 5-5: Configuración del manipulador plano XY.
Para encontrar los ángulos θ 2 ,θ 3 , se considera el plano formado por él 2 do y 3er eslabón
del brazo, ver figura 5-12. Bajo esta consideración, se obtiene la siguiente expresión:
p x + p y − d 3 + p z − a 2 − a3
2
cos θ 3 =
2
2
2
2
2
2 a 2 a3
y por lo tanto, θ 3 esta dado por:
⎛ 1 − cos θ 2
3
⎜ cos θ 3
⎝
θ 3 = tan −1 ⎜
⎞
⎟
⎟
⎠
del mismo modo, se obtiene θ 2 :
⎛
θ 2 = tan −1 ⎜⎜
pz
⎜ px 2 + p y 2 − d32
⎝
88 ⎞
⎟ − tan −1 ⎛⎜ a3 sen(θ 3 ) ⎞⎟
⎜ a + a cos θ ⎟
⎟⎟
3
3 ⎠
⎝ 22
⎠
Capítulo 5 Resultados
Las ecuaciones obtenidas se programaron en Matlab y las coordenadas p = ( p x , p y , p z )
son la posición del objeto encontrado por el sistema de visión, de esta manera se
obtiene el ángulo de cada articulación para que el efector final se posicione sobre él.
Figura 5-62: Proyección en el plano formado por el 2
do
y
3er eslabón.
5.3 RESULTADOS DEL MODO CÁMARAS FIJAS
Para realizar las pruebas del control del robot y el sistema de visión fue necesario
elaborar el lazo de control que se muestra en la figura 5-13.
En el sistema de visión, en los modos de cámaras fijas y cámara en mano, se busca el
objeto, se calcula su coordenada p = ( p x , p y , p z ), se resuelve la cinemática inversa del
robot y envían los ángulos obtenidos vía puerto serie. La PC2 recibe dichos ángulos y
genera una trayectoria para cada articulación, dependiendo de la posición inicial del
robot, colocando así el efector final sobre el objeto y manteniéndolo en esa posición.
Para la ejecución de este modo de operación del sistema, se fijaron las cámaras como
se muestra en la figura 5-14 a); en esta posición se calibraron, tomando como
coordenada (0,0,0 ) el origen del hombro del robot, ver figura 5-14 c); de esta forma, el
objeto p = ( p x , p y , p z ) encontrado por el sistema de visión hace referencia a ese origen,
ver figura 5-14 b).
89 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 5-7: Lazo de control usado en el sistema de visión y control del robot.
a)
b)
c)
Figura 5-8: a) Cámaras fijas y objeto buscado, b) Vista superior del sistema de ejes sobre el robot, c)
Origen sobre del sistema coordenado.
90 Capítulo 5 Resultados
Para realizar las pruebas de validación del sistema de visión con dos cámaras fijas se
colocó al robot en la posición mostrada en la figura 5-14, partiendo de esta posición el
robot se mueve hacia el objeto localizado, de acuerdo a las coordenadas recibidas.
Figura 5-9: Posición inicial del robot.
En la tabla 5-2 se muestran 20 posiciones diferentes del objeto, sus coordenadas
p = ( p x , p y , p z ), calculadas, el ángulo calculado y el ángulo al que llegó el robot para
cada articulación:
91 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Tabla 5-2: Resultados de las pruebas con el sistema de dos cámaras fijas
Corrida
POSICIÓN CALCULADA
ÁNGULO CALCULADO
POSICIÓN EN ÁNGULOS DEL ROBOT
X
Y
Z
CINTURA
HOMBRO
CODO
Efector final
CINTURA
HOMBRO
CODO
Efector final
1
22
33
-3
35
-95
-10
90
34.99
-94.99
-9.98
90
2
30
13
-6
8
-145
63
90
7.98
-144.8
63.22
90
3
29
-2
-14
-16
-167
69
90
-16.05
-166.89
69.24
90
4
29
15
-8
12
-148
61
90
11.99
-147.98
61.04
90
5
12
30
-8
53
-149
63
90
53
-148.99
62.88
90
6
18
24
-21
40
-158
38
90
39.99
-156.56
38.33
90
7
23
20
5
28
-132
77
90
27.99
-131.77
76.85
90
8
26
22
4
23
-122
56
90
22.99
-121.91
55.35
90
9
11
27
-9
56
-164
79
90
55.99
-164.2
79.23
90
10
1
29
-22
76
-162
40
90
76
-161.94
40.32
90
11
31
-6
-20
-26
-150
31
90
-25.99
-150.14
30.09
90
12
24
23
-16
28
-146
36
90
27.93
-145.69
36.14
90
13
27
-8
-16
-27
-172
68
90
-26.97
-171.76
69
90
14
32
15
0
7
-125
49
90
6.97
-125.33
48.59
90
15
13
13
-26
60
-210
72
90
59.99
-209.95
72.43
90
16
6
29
-17
66
-164
57
90
66
-164.5
57.6
90
17
22
21
-26
30
-135
39
90
30.01
-134.2
-9.71
90
18
19
31
-11
40
-129
24
90
40
-129.2
23.28
90
19
20
17
-15
33
-180
79
90
33
-180.02
79.52
90
20
32
9
-15
-1
-146
40
90
-0.89
-145.97
39.39
90
En la figura 5-16, se muestra la interfaz gráfica final funcionando en el modo de dos
cámaras fijas, mostrando la posición final del robot y en la figura 5-17 se muestra un
acercamiento del efector final al objeto.
92 Capítulo 5 Resultados
Figura 5-10: Interfaz gráfica final mostrando el modo de cámaras fijas.
Figura 5-11: Acercamiento al efector final sobre el LED.
93 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
5.4 RESULTADOS DEL MODO ESTIMACIÓN DE POSE
La implementación del método de Grunert (Haralick 1994), que se presentó en el
capítulo 3 cuenta con cuatro posibles soluciones de las cuales dos son soluciones
complejas y dos son soluciones reales. De las soluciones reales solamente una de
ellas corresponde a la orientación del objetivo, aunque ambas cumplen
matemáticamente con las ecuaciones de Grunert.
Las soluciones reales pueden ser vistas en la figura 5-17, donde se ven dos triángulos
uno “azul” y otro “cian” y cada uno representa una de las posibles orientaciones del
objetivo.
De las dos soluciones anteriores se conocen los puntos de los vértices de cada
triángulo, denominados P11, P12 y P13 para el primer triángulo (azul) y P21, P22 y P23
para el segundo triangulo (cian), donde estos puntos están en el marco de referencia
de la cámara, es decir tomando a la cámara como el origen de ese sistema
coordenado; esto se puede observar en la figura 5-18.
Figura 5-12: Triángulos azul y cian con los puntos de sus vértices.
Para determinar la solución correcta de entre los dos planos, se calculó la distancia
entre los puntos q1 , q2 y q3 que son las proyecciones perspectivas en el plano de la
cámara de los puntos Pi1, Pi2 y Pi3, donde i = 1,2. Se denomina “ c’ ” a la distancia
entre q1 y q2, “ a’ ” a la distancia entre q2 y q3 y “ b’ ” a la distancia entre q3 y q1;
estas distancias están en píxeles y son un indicativo del paralelismo entre el plano de la
94 Capítulo 5 Resultados
cámara y el plano del objetivo (triangulo de pruebas), si los planos se encuentran
paralelos las distancias a’, b’, c’ serán iguales y máximas.
Teniendo en cuenta a lo anterior, para saber cuál de las dos soluciones es la correcta
basta con colocar el plano de la cámara paralelo al plano del objetivo (triángulo azul o
cian), además de orientar a la cámara en la dirección del vector perpendicular a ellos
→
→
( c1 y c 2 respectivamente); con esto se garantiza el paralelismo y que además la
cámara pueda ver al objetivo. Estos puntos no son alcanzables, en general, por el
manipulador, así que sólo se realiza una aproximación a ellos.
El punto de intersección que va del centro de perspectiva (C) al vector de dirección del
plano (ci , i= 1,2 ) tendrá una distancia proporcional al ángulo de inclinación del plano
del objetivo, entre mayor sea este ángulo, mayor será la distancia a la que se
encontrarán los puntos. Si la distancia es muy grande llegará a una posición a la que el
manipulador no podrá alcanzar.
Para resolver esta situación se plantea posicionar el robot a un 20% del centro de
perspectiva C y el vector normal del plano (ci), estos puntos se denominan PUNTO1 y
PUNTO2 para el plano 1 y 2 respectivamente, esto se observa en la figura 5-19.
→
Figura 5-13: Plano de la cámara y vectores de dirección
95 →
c1 , c 2 .
Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Con este movimiento se pretende mejorar la relación de las distancias de los puntos
proyectados en el plano de la imagen, es decir, que las distancias entre los puntos se
hicieran más similares entre ellas. Si en lugar de mejorar, la relación empeora,
sabemos que la solución correcta es la otra, es decir, la relación entre los catetos del
triángulo está dada por:
a'
b'
b'
=
c'
c'
=
a'
ra '− b ' =
rb '− c '
rc ' − a '
Considerando que nuestro triángulo de pruebas es equilátero, la relación que hay entre
cada uno de sus catetos tiende a 1. Lo que se busca al colocar la cámara en la
posición del punto PUNTO1 o PUNTO2 es hacer que las relaciones entre los catetos
del triangulo sean lo más cercano a 1, sí el triángulo tiene una inclinación, esta afectará
a la posición de sus puntos proyectados sobre el plano de la cámara y por consiguiente
a la relación de las distancias de estos puntos (q1, q2 y q3). Se propone hacer un
movimiento hacia cualquiera de las opciones P1 o P2 y si se descubre que fue
equivocado, se entrega como resultado la otra solución.
El procedimiento anterior fue programado con el fin de comprobar su efectividad al
determinar la solución correcta de las dos que el método de Grunert nos entrega. Los
resultados no fueron favorables pues se encontraron las siguientes limitaciones que
impidieron demostrar su efectividad:
1. El movimiento propuesto tiene la finalidad de colocar la cámara paralela al plano
del objetivo y colineal al vector perpendicular al plano del objetivo, los puntos
localizados para dicha prueba son PUNTO1, PUNTO2. Si estas posiciones se
encuentran fuera del área de trabajo del robot, no serán alcanzadas, por lo que
no podemos realizar el procedimiento.
2. En caso de que la posición de prueba (PUNTO1, PUNTO2) se encuentre en el
área de trabajo del robot, existe otra limitante. Los movimientos realizados por
las articulaciones para alcanzar una posición deseada cambian el ángulo de
orientación de la cámara y para poder orientar la cámara en la dirección al vector
normal al plano (ci , i= 1,2) se requiere que el efector final realice movimientos
en dos grados de libertad y sólo se cuenta con uno.
En conclusión, para ubicar al objetivo de pruebas se utilizó siempre la solución más
cercana al centro de la cámara por seguridad del robot, de la cámara y de la cuarta
articulación.
Para realizar las pruebas de sistema de estimación de pose se colocó al robot en la
posición mostrada en la figura 5-15, partiendo de esta posición el robot se mueve hacia
el objeto localizado, de acuerdo a las coordenadas recibidas. En la tabla 5-3 se
96 Capítulo 5 Resultados
muestran 20 posiciones diferentes del objeto, sus coordenadas
p = ( p x , p y , p z ),
calculadas, el ángulo calculado y el ángulo al que llegó el robot para cada articulación:
Tabla 5-3: Resultados de las pruebas de estimación de pose.
Coordenadas
calculadas
Ángulos calculados
Posición alcanzada por el robot
PRUEBA
X
Y
Z
Cintura
Hombro
Codo
Servomotor
Cintura
Hombro
Codo
Servomotor
1
19
30
15
39
-131
16
90
38.673
-130.02
16.93
90
2
39
19
-18
3
-114
-10
90
3.105
-116
-10.3
90
3
40
4
-18
-16
-116
-10
90
-16.069
-115.84
-10.64
90
4
36
-5
-15
-27
-110
-18
90
-27.658
-110.06
-18.18
90
5
38
6
-14
-11
-112
-10
90
-11.081
-111.5
-10.53
90
6
26
19
-13
21
-152
53
90
20.795
-152.78
52.62
90
7
31
20
-8
14
-125
27
90
13.923
-125.77
26.4
90
8
37
9
-15
6
-113
-10
90
-7.115
-113.13
-285
90
90
9
37
6
-15
-11
-114
-10
90
-11.413
-113.36
-10.08
10
37
6
-17
-11
-170
-10
90
-10.837
-117.29
-10.37
90
11
29
18
-16
15
-140
28
90
14.446
-139.23
27.604
90
90
12
24
24
-18
28
138
18
90
27.736
-139.43
-18.81
13
22
22
-12
31
-157
62
90
31.407
-156.95
62.96
90
14
12
28
-9
53
-158
-72
90
51.963
-151.93
8.68
90
15
11
27
-18
56
-166
56
90
55.979
-166
55.95
90
16
11
28
-13
56
-162
66
90
56.448
-355
68.23
90
17
12
35
-12
52
-122
10
90
50.952
-121.95
10.37
90
18
18
31
-12
41
-132
26
90
41.365
-131.55
25.33
90
19
17
27
-21
43
-146
22
90
45-153
-146.37
21.11
90
20
36
19
-7
6
-101
-10
90
6.151
-102.26
-10.44
90
En la figura 5-20, se muestra la interfaz gráfica funcionando en el modo de estimación
de pose y en la figura 5-21 se muestra la imagen vista por la cámara en un
acercamiento al objeto, la posición final del robot.
97 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
Figura 5-20: Interfaz gráfica mostrando el método de estimación de pose.
Figura 5-14: Acercamiento al efector final sobre el objetivo de prueba.
98 CAPÍTULO 6
6. CONCLUSIONES
En este capítulo se exponen las conclusiones y comentarios finales de la investigación.
En este trabajo de tesis se implementó un sistema de visión robótica con dos
algoritmos distintos de calibración de cámara, probados mediante la aplicación a un
robot tipo PUMA (Programmable Universal Manipulator for Assembly), el cual fue
acondicionado para este fin, como parte del trabajo.
La calibración de las cámaras arrojó el resultado deseado, que fue la matriz de cámara
P, se logró la implementación de un algoritmo con el que a partir de la imagen de un
patrón de calibración se obtuvo dicha matriz.
Para verificar que la matriz de cámara fue la correcta, se hizo una transformación de
puntos del mundo real en 3D al plano de la imagen, se eligieron puntos conocidos del
patrón de calibración y aplicando la relación x=PX, donde x, es la coordenada en
pixeles P, la matriz de cámara y X es el punto conocido en el mundo real; el resultado
de esta transformación fueron coordenadas en que diferían en aproximadamente 3
pixeles respecto a las elegidas en las imágenes, tomando en cuenta que la búsqueda
del pixel se hizo en forma manual, esto quiere decir que la elección de las coordenadas
x y y del punto en la imagen se hizo tomando un promedio de los pixeles que rodeaban
a ese punto.
Es importante señalar en este punto que la calibración se hace fuera de línea, es decir,
los datos se ingresan al algoritmo de manera manual y sólo se hace una vez, siempre y
cuando no se muevan las cámaras en el caso de cámaras fijas.
Los parámetros internos y externos contenidos en la matriz de cámara, fueron
utilizados directamente en el método de visión estereoscópica, no así para el método
de estimación de pose, donde fue necesaria una descomposición RQ, con el fin de
obtener estrictamente los parámetros internos de la cámara, necesarios para resolver
el algoritmo de este método.
6.1 OBJETIVOS CUBIERTOS
Al término del trabajo de tesis se logró cumplir con los siguientes objetivos:
1. Se resolvió el problema principal de la tesis, que fue la calibración de cámaras
para extraer información métrica a partir de imágenes bidimensionales del
99 Visión estereoscópica y estimación de pose para el posicionamiento de un brazo robótico
mundo en tres dimensiones, determinando los parámetros internos y externos de
las cámaras.
2. Se usaron los métodos de visión estereoscópica provista por dos cámaras
calibradas y estimación de pose de una cámara calibrada, para localizar un
punto en el espacio y se usó esta información dentro de un lazo de control que
llevó el efector terminal de un brazo robótico tipo PUMA al punto final deseado.
3. Se construyó una articulación con base para cámara de un grado de libertad
adicional para el eslabón terminal del brazo PUMA.
4. Se reconoció y localizó un blanco (objetivo) mediante el procesamiento de una
imagen.
5. Se realizó la aproximación del eslabón terminal al blanco.
6.2 APORTACIONES
Las aportaciones hechas con la conclusión de esta investigación fueron las siguientes:
• Un sistema de visión robótica físico compuesto de un brazo robótico tipo PUMA,
con un sistema de visión y la implementación de un algoritmo para calibración
de cámaras.
• La construcción de una 4ta articulación al robot.
• El diseño y construcción de tarjetas electrónicas de control más robustas y de
más fácil mantenimiento respecto a las anteriores cuyas deficiencias se
muestran en el capítulo 4.
• Este proyecto sentará las bases para el trabajo conjunto de dos líneas de
investigación del CENIDET: Robótica y visión artificial, asimilando las técnicas
necesarias para realizar la implementación real (no simulación) de sistemas de
robótica inteligente.
6.3 TRABAJOS FUTUROS
Los trabajos futuros relacionados con esta investigación se listan a continuación:
1. La optimización de los códigos hechos en Matlab®, para minimizar el tiempo en
procesado de las imágenes y poder así hacer control del robot en tiempo real y
poder hacer seguimiento de trayectorias del objeto.
2. El rediseño de la 4ta articulación, anexándole un segundo grado de libertad, con
el fin de mejorar la precisión del método de estimación de pose.
3. Utilizar otros tipos de controladores para el robot, con el fin de mejorar el
resultado obtenido en la posición final, ya que el actual presenta deficiencias a
100 Capítulo 6 Conclusiones
perturbaciones mecánicas y no compensa el efecto de la gravedad, metiendo
oscilaciones en las articulaciones que dependen de dicha compensación, codo y
hombro.
4. Mejorar la forma de medición para el establecimiento del sistema de referencia y
evitar agrandar errores.
101 BIBLIOGRAFÍA
Angeles, Jorge. 2003. Fundamentals of Robotic Mechanical Systes, Theory, Methods, and
Algorithms. s.l. : Edit. Springer-Verlag New Cork, 2003.
Aracena Pizarro, Diego, Campos, Pedro and Clésio, Luís T. 2005. Comparación de técnicas
de calibración de cámaras digitales. http://www.scielo.cl/pdf/rfacing/v13n1/art07.pdf. [Online]
2005.
Banespyme. 2006. Visión artificial.
ww.banespyme.org/imagesWeb/ArchivoMultimedia/Documentacion/24/visionartificial.pdf.
[Online] 2006.
Barrientos, Antonio. 1997. Fundamentos de Robótica. s.l. : Universidad Politécnica de Madrid,
1997.
Berthold, Klaus and Horn, Paul. 1986. Robot Vision. 1986.
Cazorla, Miguel Ángel, Otto, Colomina and Sáez, Juan Manuel. 2002. Robótica para las
ingenierías en informática en la universidad de Alicante.
http://www.dccia.ua.es/~jmsaez/Publicaciones/PublicacionesDocentes/Rob%F3tica%20JENUI
%202002.pdf. [Online] 2002.
FAIRCHILD SEMICONDUCTOR. Hoja de especificaciones de TIP101 y TIP106.
http://www.ortodoxism.ro/datasheets/fairchild/TIP101.pdf. [Online].
Faugera, Olivier D, Luong, Quang-Tuan and Maybank, Stephen J. 1992. Camera SelfCalibration: Theory and Experiments. European Conference on Computer Vision, pp. 321-334.
Fu, K.S., González, R. C. and Lee, C. S. G. 1987. Robotics: Control, sensing, vision and
intelligence. s.l. : MacGraw-Hill Book Company, 1987.
González Fernández, Víctor R. 2003. Introducción a la Robótica.
http://cfievalladolid2.net/vieja/tecno/cyr_01/robotica/. [Online] 2003.
Gonzalez, Rafael C. and Woods, Richard E. 2002. Digital Image Processing. s.l. : Prentice
Hall, 2002.
Hartley, R. 1993. Camera Calibration Using Line Correspondences. DARPA93, pp. 361-366.
Hayet, J.B. 2007. Visíon robótica : introducción.
www.cimat.mx:88/~jbhayet/CLASES/VISIONROB/intro.pdf. [Online] 2007.
López Solórzano, Juan Gabriel. 2003. Detallador de tareas para procesos de Visión Robótica.
Cuernavaca, Morelos : CENIDET, 2003.
Microchip Technology Inc. Hoja de especificaciones de PIC16F877A. [Online]
http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf.
102 Moons, Theo. 1998. A Guided Tour Through Multiview Relations. Lecture Notes in Computer
Science, p. 304.
National Semiconductor. Hoja de especificaciones del puente H LMD18200. [Online]
http://www.national.com/pf/LM/LMD18200.html.
Nixon, Mark S. and Aguado, Alberto S. 2002. Feature Extraction in Computer Vision and
Image Processing. Great Britain : Planta Tree, 2002.
Peralta Abundez, Edson Ignacio. 2003. Esquema para la integración de Sistemas de Visión
Robótica. Cuernavaca, Morelos : CENIDET, 2003.
Pérez Ramírez, Agustín 2002. Diseño de un sistema de calibración automática para un
sistema de visión robótica modular. CENIDET. Cuernavaca, Morelos : s.n., 2002.
Haralick, Robert M. 1994. Review and Analysis of solutions of the Three Point Perspective
Pose Estimation Proble. Internacional Journal of Computer Vision.
The MathWorks. Tutorial de interfaces graficas con Matlab. MATLAB and Simulink for
Technical Computing. [Online] http://www.mathworks.com/matlabcentral/.
Hartley, Richard and Sturm, Peter. 1997. Triangulation. Computer Vision and Image
Understanding: CVIU, pp. 146--157.
Villalobos, David Jiménez y Ramirez, Juan Carlos. 2005. Construcción de un brazo robótico
de tres gdl y su control mediante el núcleo híbrido de transición de estados. Cuernavaca,
Morelos : CENIDET, 2005.
Zisserman, Andrew y Hartley, R. 2003. Multiple View Geometry in Computer Vision. s.l. :
Cambridge University Press, 2003.
103 ANEXO
A. IMÁGENES DEL SISTEMA COMPLETO
104 B. CIRCUITO FINAL DE LA TARJETA DE CONTROL
26
27
Circuito de conexión entre PIC16F877A y puerto paralelo de la PC
LPT1_CINTURA
D Connector 25
VSS
VSS
VDD
VDD
2
1
D 7 _ C IN
12
31
1K
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
MCLR/VPP
VCC R1_CIN
D 6 _ C IN
1
15pF
D 5 _ C IN
OSC1/CLKI
OSC2/CLKO
19
20
21
22
27
28
29
30
D 4 _ C IN
13
14
X1_CIN
C2_CIN
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
GIRO_CIN
D 3 _ C IN
C1_CIN
15pF
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
15
16
17
VEL_CIN
18
23
24
25
26
D 2 _ C IN
2
3
4
5
6
7
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
D 1 _ C IN
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
D 0 _ C IN
33
E1_CIN
34
E2_CIN
35
SW11
36
SW12
37
38
39
40
1
14
2
15
3
16
4
17
5
18
6
19
7
20
8
21
9
22
10
23
11
24
12
25
13
PIC_CINTURA
D0_CIN
D1_CIN
D2_CIN
D3_CIN
D4_CIN
D5_CIN
D6_CIN
D7_CIN
8
9
10
VCC
11
32
C3_CIN
100pF
PIC16LF877A-I/P
Circuito de la etapa de potencia
VCC
RP7
180
VEL_CIN
8
IN1
IN2
IN3
IN4
IN5
IN6
IN7
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
GND
COM
16
15
14
13
12
11
10
3
3
D1
SALIDA
TIP106-1
1 PNP
TIP101-1
NPN
1
2
ULN-CIN
1
2
3
4
5
6
7
RP6
2 .2 K
2.2K 2.2K
2
RP1
RP3
180
RP4
180
RP5
2 .2 K
100pF
CP1
100pF
GIRO_CIN
CP2
VCC
RP2
D2
D3
RP8
4.7K
CP3
47pF
9
ULN2003A
12V
3
3
2
2
RP9
2 .2 K
TIP106-2
1 PNP
TIP101-2
NPN
1
D5
D6
12V
105 RP11
4.7K
17
16
Conexion a motores
RP10
180
D4
1
9
2
10
3
11
4
12
5
13
6
14
7
15
8
CP4
47pF
Descargar