Está en la página 1de 336

Control de robots manipuladores

usando información visual:


Aplicación a la estimación del
movimiento del objeto

TESIS DOCTORAL

Por
Carlos Pérez Vidal

División de Ingenierı́a de Sistemas y Automática


Departamento de Ingenierı́a de Sistemas Industriales
Universidad Miguel Hernández

Elche, 2008
UNIVERSIDAD MIGUEL HERNÁNDEZ
DEPARTAMENTO DE INGENIERÍA DE SISTEMAS INDUSTRIALES
DIVISIÓN DE INGENIERÍA DE SISTEMAS Y AUTOMÁTICA
Escuela Politécnica Superior de Elche

CONTROL DE ROBOTS MANIPULADORES USANDO


INFORMACIÓN VISUAL: APLICACIÓN A LA
ESTIMACIÓN DEL MOVIMIENTO DEL OBJETO.

Autor:
Carlos Pérez Vidal

Director:
Dr. Óscar Reinoso Garcı́a
Universidad Miguel Hernández

Elche, 2008
Tribunal

Presidente:

Vocal:

Vocal:

Vocal:

Vocal secretario:

Calificación de la tesis:................................
AUTORIZACIÓN DE PRESENTACIÓN DE LA TESIS DOCTORAL

Director: Dr. Óscar Reinoso Garcı́a

Tı́tulo de la Tesis: Control de robots manipuladores usando información visual: Apli-


cación a la estimación del movimiento del objeto.

Autor: Carlos Pérez Vidal.

Departamento: Departamento de Ingenierı́a de Sistemas Industriales.

Como director de la tesis reseñada certifico que ha sido realizada bajo mi dirección por
D. Carlos Pérez Vidal en el Departamento de Ingenierı́a de Sistemas Industriales de la
Universidad Miguel Hernández y autorizo su presentación de acuerdo con lo dispuesto
en el artı́culo 8 del R.D. 778/1998, de 30 de abril, por el que se regula el tercer ciclo
de estudios universitarios.

Elche, a martes 29 de abril de 2008.

Fdo.: D. Óscar Reinoso Garcı́a.


DEPARTAMENTO DE INGENIERÍA DE SISTEMAS INDUSTRIALES

Óscar Reinoso Garcı́a, Profesor Titular de Universidad y Director del Departamen-


to de Ingenirı́a de Sistemas Industriales de la Universidad Miguel Hernández,

Certifica

Que el trabajo realizado por D. Carlos Pérez Vidal titulado “Control de robots
manipuladores usando información visual: Aplicación a la estimación del
movimiento del objeto”, ha sido dirigido por mi, realizado en el Departamento de
Ingenierı́a de Sistemas Industriales y se encuentra en condiciones de ser leı́do y defen-
dido como Tesis Doctoral ante el correspondiente tribunal en la Universidad Miguel
Hernández.

Lo que firmo para los efector oportunos en Elche, a martes 29 de abril de 2008.

Fdo.: D. Óscar Reinoso Garcı́a.

DEPARTAMENTO DE INGENIERÍA DE SISTEMAS INDUSTRIALES


Campus de Elche. Avda de la Universidad S/N - 03202 ELCHE
Tel.: 96 665 89 80, Fax: 96 665 89 79
.

A Cristina
Agradecimientos

El desarrollo de la presente Tesis Doctoral no hubiera sido posible sin un


conjunto de personas a las que en este momento, al finalizar esta etapa
de mi vida, me gustarı́a dar un especial reconocimiento y agradecer su
contribución, de una u otra forma, a este trabajo.
Al director de esta tesis, Oscar Reinoso, por sus consejos y crı́ticas cons-
tructivas. A mis compañeros de la Universidad Miguel Hernández, del De-
partamento de Ingenierı́a de Sistemas Industriales y del Área de Ingenierı́a
de Sistemas y Automática.
También quiero dar las gracias a Marta y Mari Carmen de Silica (Avnet) y
a Eduardo Fernández (Subdirector del Instituto de Bioingenierı́a de la Uni-
versidad Miguel Hernández) por su colaboración a la hora de proporcionar
material de vital importancia para esta investigación.
Al Dr. Roque Saltarén de la Universidad Politécnica de Madrid por iniciar-
me en el mundo de la investigación donde hasta el momento me encuentro
gratamente atrapado. A David Úbeda y José Antonio Martı́nez, siempre
dispuestos a echar ese cable necesitado.
A Gabriel Aldea y Marilyn Ann Berry Seymour por su inestimable ayuda y
sus ánimos para llegar a este punto. Al Dr. Yohannes Kassahun y a Jose de
Gea del Deutsche Forschungszentrum für Künstliche Intelligenz por hacer
mi estancia en Bremen tan grata y por la ayuda prestada en cuestiones
prácticas de implementación.
A Daniel Mateu de Bifuca S.A. por sus consejos y colaboración en temas
electrónicos, tanto relacionados con esta tesis como en otros proyectos, a
Ricardo Morales por su ayuda con el robot cartesiano y a todos mis amigos
con los que durante un tiempo he perdido un poco el contacto.
A mis compañeros de fatigas J. M. Azorin, J. M. Sabater y Nicolás Garcı́a,
con los que tantas aventuras he vivido.
A mi compañero y gran amigo, el Dr. Luis Gracia. Sin él esta tesis no
hubiera sido posible, gracias Luis.
Finalmente, me gustarı́a dar las gracias a las personas más importantes de
mi vida, a las que han disfrutado y sufrido conmigo la decisión de dedicarme
en exclusiva a realizar esta tesis: a toda mi familia, en especial a mis padres,
por todo lo que han hecho por mi y a Cristina, mi mujer, por transmitirme
su pasión por la vida.
A todos los que por despiste (disculpadme) me puedo haber olvidado.

Carlos Pérez Vidal


Resumen

El control visual es un tema de investigación mutidisciplinar debido a que


engloba conocimientos de diversas áreas como: la robótica, el control, la
electrónica y la visión por computador. Las técnicas de control visual son
útiles en un gran número de aplicaciones y son utilizadas para controlar
diferentes sistemas. Sin embargo, existen muchos problemas sin resolver
que hacen que el control visual no se extienda a gran escala en la indus-
tria. Una de las mayores limitaciones es la baja velocidad a la que estos
sistemas pueden trabajar. Esta Tesis Doctoral contribuye a incrementar las
prestaciones de los sistemas de control visual acelerando la respuesta de los
mismos.
Para conseguirlo se presenta el modelado e identificación de un robot dise-
ñado especı́ficamente para este tipo de aplicaciones. El robot desarrollado
es un cartesiano de tres grados de libertad y en esta tesis se presenta un
modelo de gran detalle que permite simular su comportamiento con gran
fidelidad antes de realizar experimentos reales.
Una de las grandes novedades aportadas por esta tesis es el diseño de un
nuevo filtro de predicción llamado Fuzzy Mix of Filters (FMF). Este fil-
tro presenta una mejora con respecto a los filtros clásicos habitualmente
utilizados en los esquemas de control visual.
En este documento se muestra también un novedoso esquema de control que
tiene en cuenta el retardo de adquisición y procesamiento de la cámara. Este
esquema supone una mejora considerable con respecto al utilizado hasta el
momento.
Esta tesis presenta una importante componente experimental. Se presta
especial atención a la implementación del filtro FMF diseñado de forma to-
talmente original. La implementación del esquema de control y la adquisi-
ción/procesamiento de la imagen se realiza en un dispositivo electrónico
especı́fico (una FPGA) con objeto de acelerar el tiempo de cálculo.
Abstract

Visual servoing is a multidisciplinary research issue because it evolves the


knowledge of different areas such as: robotics, control theory, electronics
and computer vision. Visual servoing techniques are useful in many appli-
cations and are used to control different systems. However, there are a lot
of unsolved problems that cause the non extending of visual servoing wide-
ly in industry. One of the greatest limitations is the low speed at which
these systems perform. This PhD Thesis contributes to the increase of the
benefits of the visual control systems by accelerating their response.
In order to obtain this objective, the modeling and identification of a robot
designed specifically for this type of applications is carried out. The devel-
oped robot is a cartesian robot of three degrees of freedom and this research
presents a detailed model that allows the behaviour simulation before real
experiments execution.
One of the contributions of this thesis is the design of a new prediction filter
called Fuzzy Mix of Filters (FMF). This filter presents an improvement with
respect to the classic filters in visual servoing schemes.
This document also presents a novel control scheme that considers the
delay of the camera acquisition and processing. This scheme represents a
considerable improvement with respect to the scheme used up till.
This thesis has an important experimental component. Special attention to
the implementation of FMF filter is given. The implementation of the con-
trol scheme and the acquisition/processing of the image is performed in an
specific electronic device (an FPGA) in order to accelerate the computation
time.
Resum

El control visual es una temàtica d’investigació multidisciplinar per que


engloba coneixements de diverses àrees com son: la robòtica, el control, la
electrònica y la visió per ordinador. Les tècniques de control visual son útils
en una gran quantitat d’aplicacions i son utilitzades per a controlar dife-
rents sistemes. D’una altra banda existeixen gran quantitat de problemes
sense resoldre que fan que el control visual no es s’estenga a gran escala
a la industria. Una de les majors limitacions es la baixa velocitat a la
que aquestos sistemes poden treballar. Aquesta Tesi Doctoral contribueix
a incrementar les prestacions dels sistemes de control visual accelerant la
seva resposta.
Per aconseguir-ho es presenta el modelatge i identificació de un robot dis-
senyat especı́ficament per a aquest tipus de aplicacions. El robot desenvolu-
pat es un cartesià de tres graus de llibertat i a aquesta tesi es presenta un
model de gran detall que permet simular el seu comportament amb gran
fidelitat abans de realitzar experiments reials.
Una de les grans novetats aportades en aquesta tesi es el disseny de un
nou filtre de predicció anomenat Fuzzy Mix of Filters (FMF). Aquest filtre
presenta una millora respecte als filtres clàssics habitualment utilitzats en
els esquemes de control visual.
A aquest document es mostra també un novador esquema de control que
té en compte el retard d’adquisició i processament de la càmera. Aquest
esquema suposa una millora considerable respecte al utilitzat fins ara.
Aquesta tesi presenta una important component experimental. Es posa es-
pecial atenció a la implementació del filtre FMF dissenyat de forma total-
ment original. La implementació del esquema de control i la adquisició/pro-
cessament de la imatge es realitza en un dispositiu especı́fic (una FPGA)
amb l’objectiu d’accelerar el temps de càlcul.
Índice general

I Tesis 1
1. Introducción 3
1.1. Control visual de robots . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Motivación y objetivo de la Tesis . . . . . . . . . . . . . . . . . . . . . 4
1.3. Marco de la tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4. Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5. Contribuciones aportadas . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5.1. Publicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2. Arquitectura del control visual 11


2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2. Información Visual para el Control . . . . . . . . . . . . . . . . . . . . 13
2.2.1. Visión Monocular . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2. Visión Estéreo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3. Sistema con Cámaras Redundantes. . . . . . . . . . . . . . . . . 16
2.3. Control Visual Cinemático . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1. Control Visual Cinemático basado en imagen . . . . . . . . . . . 18
2.3.2. Control Visual Cinemático basado en posición . . . . . . . . . . 23
2.3.3. Control Visual Cinemático Hı́brido . . . . . . . . . . . . . . . . 26
2.4. Control Visual Dinámico . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5. Control Visual por estimación del modelo de interacción . . . . . . . . 30
2.6. Planificación de Trayectorias para el Control Visual . . . . . . . . . . . 31

3. Plataforma de pruebas para algoritmos de control visual 35


3.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2. Diseño del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.2. Medidas de seguridad . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3. Descripción del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4. Modelado del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4.1. Modelo del motor de inducción . . . . . . . . . . . . . . . . . . 39
3.4.2. Modelo del convertidor y del controlador . . . . . . . . . . . . . 44
3.4.3. Modelo mecánico . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.5. Determinación y Causalidad Computacional del sistema . . . . . . . . . 50
3.6. Identificación de los parámetros . . . . . . . . . . . . . . . . . . . . . . 50

i
II ÍNDICE GENERAL

3.7. Resultados experimentales y validación . . . . . . . . . . . . . . . . . . 52


3.8. Modelo reducido de Matlab/Simulink . . . . . . . . . . . . . . . . . . . 53
3.9. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4. Estimación de la posición de un objeto 61


4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2. El filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2.1. Antecedentes. El método de mı́nimos cuadrados. . . . . . . . . . 63
4.2.2. Estimación óptima y predicción del estado. . . . . . . . . . . . . 66
4.2.3. Nomenclatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3. Los filtros estacionarios . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.1. Introducción a los filtros de estado estacionario . . . . . . . . . 69
4.3.2. El filtro alpha-beta . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.3.3. El filtro alpha-beta-gamma . . . . . . . . . . . . . . . . . . . . . 73
4.3.4. Una aproximación al filtrado de estado estacionario . . . . . . . 75

5. El FMF o Fuzzy Mix of Filters 79


5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2. Análisis de los filtros de estado estacionario . . . . . . . . . . . . . . . . 80
5.2.1. Referencias básicas . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2.2. Referencias adicionales . . . . . . . . . . . . . . . . . . . . . . . 85
5.2.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.3. El FMF (Fuzzy Mix of Filters) . . . . . . . . . . . . . . . . . . . . . . . 90
5.3.1. Dinámica del bote de una pelota . . . . . . . . . . . . . . . . . 90
5.3.2. Experimentos simulados . . . . . . . . . . . . . . . . . . . . . . 99
5.3.3. Experimentos reales . . . . . . . . . . . . . . . . . . . . . . . . 100
5.3.4. Coste computacional . . . . . . . . . . . . . . . . . . . . . . . . 102
5.3.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6. Implementación en tiempo real 105


6.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.2. El FMF de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.2.2. Trasfondo teórico del FMF . . . . . . . . . . . . . . . . . . . . . 108
6.2.3. El algoritmo hRT FMF . . . . . . . . . . . . . . . . . . . . . . . 112
6.2.4. Simulaciones del hRT FMF . . . . . . . . . . . . . . . . . . . . 115
6.3. Implementación del Hard RT FMF . . . . . . . . . . . . . . . . . . . . 123
6.3.1. Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
6.3.2. Hardware utilizado . . . . . . . . . . . . . . . . . . . . . . . . . 123
6.3.3. Programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6.3.4. Análisis del tiempo de ejecución . . . . . . . . . . . . . . . . . . 124
6.3.5. Código fuente del RT FMF . . . . . . . . . . . . . . . . . . . . 128
6.3.6. Comparativa: PC-MATLAB vs FPGA-VHDL . . . . . . . . . . 130
6.3.7. Análisis del coste computacional . . . . . . . . . . . . . . . . . . 136
6.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
ÍNDICE GENERAL III

7. Control visual dinámico de robots 143


7.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7.2. Descripción de los esquemas de control . . . . . . . . . . . . . . . . . . 145
7.3. Error de estado estacionario en los esquemas de control . . . . . . . . . 149
7.4. Simulación y comportamiento de los esquemas de control . . . . . . . . 152
7.4.1. Condiciones ideales . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.4.2. Condiciones reales . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.5. Resultados experimentales . . . . . . . . . . . . . . . . . . . . . . . . . 162
7.5.1. Experimentos de control de unidad pan/tilt . . . . . . . . . . . 162
7.5.1.1. Plataforma experimental . . . . . . . . . . . . . . . . . 162
7.5.1.2. Adquisición de la imagen y extracción de caracterı́sticas
(procesado) . . . . . . . . . . . . . . . . . . . . . . . . 164
7.5.2. Experimentos de control de robot cartesiano . . . . . . . . . . . 167
7.5.2.1. Configuración de la plataforma . . . . . . . . . . . . . 169
7.5.2.2. Experimentos con el disco giratorio . . . . . . . . . . . 172
7.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

8. Conclusiones y trabajos futuros 177


8.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
8.2. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

II Anexos 181
A. Glosario 183

B. Equipos utilizados 187


B.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
B.2. Cámara TMC-6740GE de JAI/PULNIX . . . . . . . . . . . . . . . . . 188
B.3. Tarjeta Spartan3E starter kit board . . . . . . . . . . . . . . . . . . . . 189
B.4. Tarjeta Nallatech Ballynuey 3 . . . . . . . . . . . . . . . . . . . . . . . 190
B.5. Micro cámara VGA VL6524 . . . . . . . . . . . . . . . . . . . . . . . . 191
B.6. Servomotores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
B.7. PTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
B.8. Cámara USB-uEYE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
B.9. Robot Cartesiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

C. La información visual 199


C.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
C.2. Procesamiento y control de datos de video . . . . . . . . . . . . . . . . 200
C.2.1. Adaptación de niveles de tensión . . . . . . . . . . . . . . . . . 201
C.2.2. Esquema electrónico . . . . . . . . . . . . . . . . . . . . . . . . 201
C.2.3. Datos experimentales . . . . . . . . . . . . . . . . . . . . . . . . 203
C.2.4. Módulo: I2 Cv1 7 . . . . . . . . . . . . . . . . . . . . . . . . . . 203
C.2.5. Resultados experimentales . . . . . . . . . . . . . . . . . . . . . 206
C.2.6. Adquisición de datos del sensor CMOS . . . . . . . . . . . . . . 207
IV ÍNDICE GENERAL

C.2.7. Módulo: Ordenar Info-datos v1 . . . . . . . . . . . . . . . . . . 210


C.2.8. Procesado de datos . . . . . . . . . . . . . . . . . . . . . . . . . 212
C.2.9. Módulo: Coordenadas-Cam coord v1 3 . . . . . . . . . . . . . . 212
C.2.10. Módulo: Mov Servos-Control Servos v1 2 . . . . . . . . . . . . . 215
C.2.11. Módulo: Com Serie-RS232 v1 3 . . . . . . . . . . . . . . . . . . 220

D. El filtro de Kalman discreto 223


D.1. Ecuaciones del filtro de Kalman discreto . . . . . . . . . . . . . . . . . 224
D.2. Régimen Permanente del Filtro de
Kalman Discreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
D.3. Casos Lı́mite del Filtro de Kalman Discreto . . . . . . . . . . . . . . . 234
D.4. Función de Transferencia del Filtro de Kalman Discreto . . . . . . . . . 234
D.5. Suavizado de la estimación
(Optimal Smoothing/Retrodiction) . . . . . . . . . . . . . . . . . . . . 235
D.6. Estimación Futura o Predicción (Prediction) . . . . . . . . . . . . . . . 237
D.7. Estimación con Medidas Fuera de Secuencia (FK con medidas retrasadas)238
D.8. Comparación del Filtro de Kalman Discreto con Otros algoritmos . . . 239
D.9. Otras Variantes Similares al Filtro de Kalman Discreto (Filtros Predic-
tivos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
D.10.Estimación de la velocidad usando KF . . . . . . . . . . . . . . . . . . 240
D.11.Inicialización de filtros recursivos . . . . . . . . . . . . . . . . . . . . . 248

E. Analisis de las ecuaciones del modelo 251


E.1. Compatibilidad del Sistema . . . . . . . . . . . . . . . . . . . . . . . . 252
E.2. Introducción a la causalidad . . . . . . . . . . . . . . . . . . . . . . . . 252
E.3. Método de Marcado de las Ecuaciones . . . . . . . . . . . . . . . . . . 253

F. El robot cartesiano 257


F.1. Estructura mecánica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
F.2. Variadores de frecuencia . . . . . . . . . . . . . . . . . . . . . . . . . . 258
F.2.1. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
F.3. Estructura general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
F.4. Interfaz USS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
F.5. Tarjeta de comunicaciones . . . . . . . . . . . . . . . . . . . . . . . . . 284

Bibliografı́a 285

Índice alfabético 300


Índice de figuras

1.1. DLR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2. DFKI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1. Visión monocular con una cámara colocada en el efector final y mirando
hacia el objeto, eye-in-hand. . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2. Visión monocular con una cámara mirando hacia el objeto y hacia el
robot manipulador, eye-to-hand. . . . . . . . . . . . . . . . . . . . . . . 15
2.3. Visión estéreo con las cámaras colocadas en el efector final y mirando
hacia el objeto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4. Visión estéreo con las cámaras mirando hacia el objeto y hacia el robot
manipulador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5. Control Visual Cinemático. . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6. Control Visual Cinemático basado en la imagen. . . . . . . . . . . . . . 19
2.7. Sistema de coordenadas del mundo, cámara e imagen (centrales y late-
rales). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.8. Control Visual Cinemático basado en la posición. . . . . . . . . . . . . 24
2.9. Caracterı́sticas de la imagen del objeto para el control visual basado en
la posición, donde Fw es el sistema de coordenadas del mundo, Fc el de
la cámara, Fo el del objeto y Fc∗ el deseado. . . . . . . . . . . . . . . . 25
2.10. Control Visual Dinámico. . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.11. Control Visual Dinámico basado en imagen. . . . . . . . . . . . . . . . 29
2.12. Control Visual Dinámico basado en posición. . . . . . . . . . . . . . . . 30

3.1. Diseño del robot usando herramientas informáticas. . . . . . . . . . . . 38


3.2. Arquitectura mecánica del sistema (representación del robot). . . . . . 40
3.3. Robot cartesiano obtenido (1). . . . . . . . . . . . . . . . . . . . . . . . 41
3.4. Robot cartesiano obtenido (2). . . . . . . . . . . . . . . . . . . . . . . . 42
3.5. Robot cartesiano obtenido (3). . . . . . . . . . . . . . . . . . . . . . . . 43
3.6. Controlador del motor de inducción. Rectificador, filtro e inversor PWM
(elementos incluidos en los drivers 1FK6). . . . . . . . . . . . . . . . . 45
3.7. Diagrama de control V/Hz. Esquema basado en el modelo de estado
estacionario del motor. . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.8. Respuesta del par motor (eje ξ). . . . . . . . . . . . . . . . . . . . . . . 54
3.9. Respuesta del par motor (eje ψ). . . . . . . . . . . . . . . . . . . . . . 55
3.10. Respuesta del par motor (eje ζ) para movimiento ascendente. . . . . . . 55
3.11. Respuesta del par motor (eje ζ) para movimiento descendente. . . . . . 56

v
VI ÍNDICE DE FIGURAS

3.12. Respuesta del robot cartesiano (eje ξ). . . . . . . . . . . . . . . . . . . 56


3.13. Respuesta del robot cartesiano (eje ψ). . . . . . . . . . . . . . . . . . . 57
3.14. Respuesta del robot cartesiano (eje ζ) para movimiento ascendente. . . 57
3.15. Respuesta del robot cartesiano (eje ζ) para movimiento descendente. . 58
3.16. Esquema de simulink del modelo del robot. Eje ξ. . . . . . . . . . . . . 58
3.17. Esquema de simulink del modelo del robot. Eje ψ. . . . . . . . . . . . . 59
3.18. Esquema de simulink del modelo del robot. Eje ζ. . . . . . . . . . . . . 59
3.19. Comportamiento del modelo Simulink frente a la respuesta real (eje ξ). 59
3.20. Comportamiento del modelo Simulink frente a la respuesta real (eje ψ). 60
3.21. Comportamiento del modelo Simulink frente a la respuesta real (eje ζ). 60

4.1. Aplicación tı́pica del filtro de Kalman en un esquema de control. . . . . 68

5.1. Modelado del bote de una pelota usando Stateflow de Matlab. . . . . . 92


5.2. Gráficas de posición y velocidad del modelo Stateflow mostrado en la
figura 5.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.3. Detalle de las zonas en las que se puede clasificar el comportamiento del
sistema bajo estudio (bote de una pelota contra el suelo). . . . . . . . . 93
5.4. Filtro Exl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.5. Filtro αβ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.6. Filtro αβγ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.7. Filtro Kv. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.8. Filtro Ka. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.9. Filtro Kj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.10. Trayectoria real y predicción de todos los filtros. . . . . . . . . . . . . . 95
5.11. Vista de detalle de la figura 5.10. . . . . . . . . . . . . . . . . . . . . . 95
5.12. Zoom1 mostrado en la figura 5.11 (leyenda mostrada en la misma figura). 96
5.13. Zoom2 mostrado en la figura 5.11 (leyenda mostrada en la misma figura). 96
5.14. Experimento real usando el robot descrito en el apartado 3 para coger
una pelota en el aire (control visual indirecto). Ver figura de Matlab
5.15 para observar el experimento realizado. . . . . . . . . . . . . . . . 101
5.15. Trayectoria real y predicción del filtro FMF para el experimento de la
figura 5.14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.16. Secuencia de imágenes del experimento realizado por el robot cartesiano
para coger la pelota en el aire. . . . . . . . . . . . . . . . . . . . . . . . 102

6.1. Soft real-time FMF usando 5 filtros diferentes (αβ, αβγ, Kv, Ka and
Kj). Solo las estimaciones obtenidas como combinación de más de un
filtro se incluyen en la salida final del filtro FMF. . . . . . . . . . . . . 109
6.2. Predictor FMF usando 4 filtros diferentes. Los filtros αβ y αβγ se usan
con diferentes dinámicas para poder adaptarse diferentes ı́ndices de man-
iobrabilidad. De esta forma se obtienen las versiones fast y slow de los
diferentes filtros (αβ fast , αβ slow , αβγ fast y αβγ slow ). . . . . . . . . . . . . 110
ÍNDICE DE FIGURAS VII

6.3. Hard-real time FMF usando solamente dos filtros (αβ y αβγ). Este
es el más rápido de los filtros FMF propuestos en esta tesis. Sólo las
estimaciones obtenidas como combinación de más de un filtro se incluyen
en la salida final del filtro FMF. . . . . . . . . . . . . . . . . . . . . . . 110
6.4. Función de pertenencia utilizada para la implementación del filtro hRT
FMF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.5. Error de predicción para la trayectoria (1). (Nr=103 ) . . . . . . . . . . 118
6.6. Error de predicción normalizado para la trayectoria (1). (Nr=10 3 ) . . . 118
6.7. Error de predicción normalizado para trayectoria (1). (Nr=10 4 ) . . . . 119
6.8. Error de predicción para la trayectoria (1) (inicialización TPD). . . . . 120
6.9. Error de predicción para la trayectoria (2). (Nr=2 · 103 ) . . . . . . . . . 120
6.10. Error de predicción para la trayectoria (2). (σv = 25m/s2 para el filtro
αβ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.11. Errores de predicción para la trayectoria (3). (Nr=103 ) . . . . . . . . . 121
6.12. Errores de predicción para la trayectoria (4). (Nr=5 · 103 ) . . . . . . . . 122
6.13. Implementación de un filtro de Kalman de estado estacionario. A1 propa-
ga Td=T. Latencia=T. A es la matriz continua del sistema. . . . . . . 126
6.14. Implementación de un filtro de Kalman de estado estacionario. A1 propa-
ga T≈Tcomp, A2 propaga 2T≈Tcomp+Td. Latencia=2T. . . . . . . . 127
6.15. Estructura de tipo pipe-line de la implementación de un filtro de Kalman
de estado estacionario en una FPGA. Las lı́neas discontı́nuas de tra-
zo grueso simbolizan los registros usados para segmentar. A1 propaga
T1+T2+T3, A2 propaga T1+T2+T3+Td. Latencia T1+T2+T3+Td. . 127
6.16. Estructura segmentada del filtro FMF utilizada para obtener los datos
mostrados en la tabla 6.2. El código VHDL de esta representación se
puede ver en la figura 6.18. Las lı́neas gruesas discontinuas representan
los registros de segmentado. A1v y A1a propagan T1+T2+T3, A2v y
A2a propagan T1+T2+...+T6+Td. Latencia=T1+T2+...+T6+Td. . . 129
6.17. Código fuente de MATLAB del filtro FMF para el caso (a). Para el caso
(b) serı́a muy similar, teniendo que introducir el producto de A2 para
una correcta propagación. . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.18. Código fuente en VHDL segmentado del filtro FMF para el caso (a).
El código del filtro no segmentado serı́a bastante similar a este pero
eliminando las sentencias if/elsif/else/end if; y cambiando las signals a
variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.19. Predicciones para la trayectoria (3) (ejecución PC-MATLAB del caso
(a): Tcomp  Td). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.20. Zoom de las predicciones para la trayectoria (3) (ejecución PC-MATLAB
del caso (a): Tcomp  Td). . . . . . . . . . . . . . . . . . . . . . . . . 133
6.21. Errores de predicción para la trayectoria (3) (ejecución PC-MATLAB
del caso (a): Tcomp  Td). . . . . . . . . . . . . . . . . . . . . . . . . 134
VIII ÍNDICE DE FIGURAS

6.22. Errores de predicción para la trayectoria (3). Comparativa entre los


datos obtenidos con la ejecución en la FPGA y la ejecución en MATLAB
(el error de implementación se calcula considerando que los valores de
estimación obtenidos en las simulaciones de MATLAB son los valores
exactos). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
6.23. Predicciones para la trayectoria (4) (ejecución PC-MATLAB del caso
(a): Tcomp  Td). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
6.24. Zoom de las predicciones para la trayectoria (4) (ejecución PC-MATLAB
del caso (a): Tcomp  Td). . . . . . . . . . . . . . . . . . . . . . . . . 135
6.25. Errores de predicción para la trayectoria (4) (ejecución PC-MATLAB
del caso (a): Tcomp  Td). . . . . . . . . . . . . . . . . . . . . . . . . 136
6.26. Errores para la trayectoria (4) en la implementación en la FPGA. . . . 136
6.27. Predicciones para la trayectoria (4) (ejecución PC-MATLAB del caso
(b): Tcomp ≈ Td). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.28. Zoom de las predicciones para la trayectoria (4) (ejecución PC-MATLAB
del caso (b): Tcomp ≈ Td). . . . . . . . . . . . . . . . . . . . . . . . . 137
6.29. Errores de predicción para la trayectoria (4) (ejecución PC-MATLAB
del caso (b): Tcomp ≈ Td). . . . . . . . . . . . . . . . . . . . . . . . . 138
6.30. Errores de predicción para la trayectoria (4). Comparativa entre los
datos obtenidos con la FPGA y los obtenidos con PC-MATLAB. . . . . 138
6.31. Predicciones para la trayectoria (4) (ejecución PC-MATLAB del caso
(b): Tcomp ≈ Td). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.32. Zoom de las predicciones para la trayectoria (4) (ejecución PC-MATLAB
del caso (b): Tcomp ≈ Td). . . . . . . . . . . . . . . . . . . . . . . . . 139
6.33. Errores de predicción para la trayectoria (4) (ejecución PC-MATLAB
del caso (b): Tcomp ≈ Td). . . . . . . . . . . . . . . . . . . . . . . . . 140
6.34. Errores de predicción para la trayectoria (4). Comparativa entre los
datos obtenidos con la FPGA y los obtenidos con PC-MATLAB. . . . . 140

7.1. Esquema de control visual propuesto en [38][41] con la reorganización


mostrada en [36]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
7.2. Esquema de control visual propuesto en [38][41] con la reorganización
habitual (mostrada en [147]). . . . . . . . . . . . . . . . . . . . . . . . 146
7.3. Nuevo esquema de control visual (se puede utilizar el predictor FMF en
lugar del KF). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
7.4. Detalle de las señales y bloques del nuevo esquema de control presentado
en la figura 7.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.5. Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4
con K=1, Th =0.04s. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
7.6. Detalle de la figura 7.5. Se observa claramente la diferencia entre las
respuestas y el error del esquema de Corke y el aportado en esta tesis. . 154
7.7. Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4
con K=10, Th =0.04s. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.8. Detalle en la zona de valores estacionarios de la figura 7.7. . . . . . . . 155
7.9. Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4
con K=1, Th =0.002s. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
ÍNDICE DE FIGURAS IX

7.10. Detalle en la zona de valores estacionarios de la figura 7.9. . . . . . . . 156


7.11. Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4
con xt (t) = 2 · cos(t · π/2) y ts (99 %)=0.5 segundos. . . . . . . . . . . . 157
7.12. Detalle de la figura 7.11. . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.13. Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4
con xt (t) = 2 · t y ts (99 %)=0.5 segundos. . . . . . . . . . . . . . . . . . 158
7.14. Detalle de la figura 7.13. En la parte superior se aprecia el detalle de
la zona inicial de la rampa (desde 0 a 2 segundos), mientras que en la
parte inferior se puede ver la zona final de la misma simulación (de 7 a
8 segundos), donde se aprecia la diferencia entre el error del esquema de
Corke y el propuesto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
7.15. Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4
con xt (t) = 2 y diferentes valores para ts (99 %). . . . . . . . . . . . . . 159
7.16. Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4
con xt (t) = 2 · t y ∆xRef = t. . . . . . . . . . . . . . . . . . . . . . . . . 160
7.17. Detalle de la figura 7.16 (ver diferencia en estado estacionario y error
del esquema de Corke). . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
7.18. Detalle de la figura 7.16 (ver transitorio inicial de las respuestas y error
del esquema de propuesto). . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.19. Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4
con xt (t) = 2 · cos(t · π/2) y ∆xRef = 2 · cos(t · π/2) − 2. . . . . . . . . . 161
7.20. Figura equivalente a la figura 7.5 considerando estimación no perfecta
y ruido en el sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.21. Detalle de la figura 7.20. . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.22. Figura equivalente a la figura 7.7 considerando estimación no perfecta
y ruido en el sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
7.23. Detalle de la figura 7.22. . . . . . . . . . . . . . . . . . . . . . . . . . . 164
7.24. Figura equivalente a la figura 7.9 considerando estimación no perfecta
y ruido en el sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
7.25. Detalle de la figura 7.24. . . . . . . . . . . . . . . . . . . . . . . . . . . 165
7.26. Plataforma experimental basada en [38] (pag. 309) para la comparación
entre implementaciones de algoritmos de predicción con Procesador Se-
cuencial y FPGA. La figura 7.27 muestra el disco con la caracterı́stica
visual, el motor y el driver. La figura 7.28 muestra el aspecto real de la
cámara montada en la unidad pan/tilt. . . . . . . . . . . . . . . . . . . 166
7.27. Disco giratorio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
7.28. Unidad pan-tilt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
7.29. Código parcial de VHDL para procesar la imagen y extraer el el centro
de masa del blob. El esquema implementado es el descrito en la figura
7.3 del capı́tulo 7. Se ha utilizado el filtro hRT FMF desarrollado en
esta tesis como algoritmo de predicción. . . . . . . . . . . . . . . . . . . 168
7.30. Código parcial de VHDL para cerrar el lazo de control con un regulador
proporcional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
7.31. Posición y velocidad del “pan” de la PTU (radianes). . . . . . . . . . . 169
7.32. Posición y velocidad del “tilt” de la PTU (radianes). . . . . . . . . . . 169
X ÍNDICE DE FIGURAS

7.33. Secuencia de imágenes para un experimento usando el sistema PTU-


VL6524. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
7.34. Descripción del experimento mostrado en la figura 7.33. . . . . . . . . . 171
7.35. Posición (m) y velocidad (m/s) del eje X. . . . . . . . . . . . . . . . . . 171
7.36. Posición (m) y velocidad (m/s) del eje Y. . . . . . . . . . . . . . . . . . 172
7.37. Representación de los elementos utilizados para los experimentos. Robot
cartesiano presentado en el capı́tulo 3, imagen adquirida por la cámara
USB-uEYE (ver anexo B) y procesada en un PC con las librerı́as OpenCV.173
7.38. Representación esquemática de los elementos utilizados para los exper-
imentos de control visual. Detalle de la figura 7.37. . . . . . . . . . . . 173
7.39. Configuración final del sistema. Turntable [38], cámara USB y efector
final del tobot cartesiano descrito en el capı́tulo 3. . . . . . . . . . . . . 174
7.40. Control de velocidad de bajo nivel (eje ξ). . . . . . . . . . . . . . . . . 174
7.41. Control de velocidad de bajo nivel (eje ψ). . . . . . . . . . . . . . . . . 175
7.42. Resultados experimentales usando el robot cartesiano y la tabla giratoria
(turntable). Coordenada ξ. . . . . . . . . . . . . . . . . . . . . . . . . . 176
7.43. Resultados experimentales usando el robot cartesiano y la tabla giratoria
(turntable). Coordenada ψ. . . . . . . . . . . . . . . . . . . . . . . . . . 176

B.1. Fotografı́a de la cámara TMC-6740GE de JAI/PULNIX. . . . . . . . . 188


B.2. Fotografı́a de la tarjeta Spartan3Ee de Xilinx. . . . . . . . . . . . . . . 189
B.3. Fotografı́a de la tarjeta Nallatech Ballynuey 3 utilizada junto con la
placa base asociada, la Spartan3E y el osciloscopio para medidas. . . . 191
B.4. Representación de la microcámara VL6524. . . . . . . . . . . . . . . . . 192
B.5. Microcámara VL6524 montada en placa de circuito impreso. . . . . . . 192
B.6. Placa de circuito impreso para adaptar la tarjeta de desarrollo Spar-
tan3E a las aplicaciones de control visual. . . . . . . . . . . . . . . . . 194
B.7. Montaje de la cámara sobre la unidad PTU y control realizado con FPGA.194
B.8. Fotografı́a del servomotor utilizado. . . . . . . . . . . . . . . . . . . . . 195
B.9. Pan Tilt Unit (PTU), representación funcional y sistema real de movimien-
to. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
B.10.Fotografı́a de la cámara USB-uEYE. . . . . . . . . . . . . . . . . . . . 196

C.1. Diagrama simplificado de las cámaras VL6524/VS6524. . . . . . . . . . 200


C.2. Representación de la electrónica implementada en el bus I2 C. . . . . . . 202
C.3. Detalle del primer byte de datos enviado al sensor CMOS con respecto a
la señal de reloj SCL. Se observa un nivel de tensión para el nivel lógico
alto de 2,52V. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
C.4. Detalle del primer byte de datos enviado al sensor CMOS. Se observa
un nivel de tensión para la confirmación de 2,26V. . . . . . . . . . . . . 204
C.5. Detalle de la salida del comparador-restador. Se observa como en la
lectura del 9◦ bit (bit ACK) se obtiene un cero lógico válido para la
FPGA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
C.6. Diagrama de flujo del I2 Cv1 7. . . . . . . . . . . . . . . . . . . . . . . . 205
C.7. Esquema del bloque I2 C. . . . . . . . . . . . . . . . . . . . . . . . . . . 206
ÍNDICE DE FIGURAS XI

C.8. Fragmento del código VHDL donde se genera el reloj scl x2 y del cual
se obtiene el reloj a 100 KHz. En él se genera una señal de reloj con
un ciclo de trabajo del 50 %, condición a tener en cuenta en este tipo
de protocolo de comunicación en el que es tan importante respetar los
tiempos de SCL para el envı́o de datos. . . . . . . . . . . . . . . . . . . 207
C.9. Captura de osciloscopio en donde se observa que la frecuencia de la señal
SCL es de 99,9996 KHz y su ciclo de trabajo es del 50 %. . . . . . . . . 208
C.10.CLK auxiliar de 24MHz. Captura realizada desde el osciloscopio en la
que se muestra la señal obtenida para el reloj auxiliar de 24 MHz uti-
lizado en el Starter Kit. . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
C.11.PCLK (reloj de pixel). Captura realizada desde el osciloscopio en la que
se muestra la señal obtenida para el reloj de pı́xel. . . . . . . . . . . . . 208
C.12.Esquema de temporización y consideraciones de la señal de sincronismo
horizontal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
C.13.Captura realizada desde el osciloscopio en la que se muestra la señal
obtenida para el sincronismo horizontal. . . . . . . . . . . . . . . . . . 209
C.14.Temporización y consideraciones de la señal de sincronismo vertical. . . 209
C.15.Captura realizada desde el osciloscopio en la que se muestra la señal
obtenida para el sincronismo vertical. . . . . . . . . . . . . . . . . . . . 210
C.16.Fotograma de salida para el formato VGA utilizando 30 fps. . . . . . . 210
C.17.Configuraciones para la codificación de información de pı́xel. Se puede
utilizar cualquiera de ellas, aunque cabe destacar que en las pruebas
realizadas se ha basado en el RGB 444 (zero padded). . . . . . . . . . . 211
C.18.Forma de onda para el reloj de pı́xel (PCLK). . . . . . . . . . . . . . . 211
C.19.Representación de las I/O del bloque ORDENAR INFO-datos v1. . . . 211
C.20.Criterio para establecer las coordenadas del objeto (n = 640, m = 480). 213
C.21.Ejemplo de umbralización. . . . . . . . . . . . . . . . . . . . . . . . . . 213
C.22.Diagrama de flujo de Cam coord v1 3. . . . . . . . . . . . . . . . . . . 214
C.23.Representación de las I/O del bloque COORDENADAS-Cam coord v1 3.215
C.24.Representación de la codificación de las coordenadas de un objeto. . . . 215
C.25.Criterio de signos a seguir para el control de los servomotores. . . . . . 216
C.26.Lazo cerrado de control. . . . . . . . . . . . . . . . . . . . . . . . . . . 216
C.27.Procesado de la información. . . . . . . . . . . . . . . . . . . . . . . . . 217
C.28.Detalle de un fotograma. Se observa la señal de sincronismo vertical con
respecto la de sincronismo horizontal. . . . . . . . . . . . . . . . . . . . 218
C.29.Detalle del sincronismo horizontal con medidas temporales junto con
sincronismo vertical para calcular los 480 pulsos. . . . . . . . . . . . . . 218
C.30.Captura en la que se muestra el detalle entre la señal de sincronismo
horizontal (color azul) y la de habilitación de vı́deo (color naranja). . . 218
C.31.Representación de las I/O del bloque MOV SERVOS-Control Servos v1.2219
C.32.Fragmento del código en donde se puede observar el funcionamiento del
pulso generado para cada servomotor en función del valor de las señales
lim PAN y lim TILT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
C.33.Representación de las I/O del bloque COM SERIE-RS232 v1.3. . . . . 221

D.1. Representación gráfica de muestras. . . . . . . . . . . . . . . . . . . . . 231


XII ÍNDICE DE FIGURAS

D.2. Desviación tı́pica del error de predicción (instantáneo y media). . . . . 243


D.3. Comparación del error de predicción real y del algoritmo (std) para Kv. 243
D.4. Detalle de la figura D.3. . . . . . . . . . . . . . . . . . . . . . . . . . . 244
D.5. Comparación del error de predicción real y del algoritmo (std) para Ka. 244
D.6. Detalle de la figura D.5. . . . . . . . . . . . . . . . . . . . . . . . . . . 245
D.7. Errores de predicción normalizados respecto al error de medida. . . . . 245

F.1. Instalación realizada en el cuadro eléctrico del robot. . . . . . . . . . . 261


F.2. Representación de un componente funcional (CF). . . . . . . . . . . . . 262
F.3. Representación de conectores con palabras de 16 y 32 bits. . . . . . . . 263
F.4. Valores y correspondencias del campo numérico de conectores. . . . . . 263
F.5. Representación de binectores. . . . . . . . . . . . . . . . . . . . . . . . 264
F.6. Representación de parámetros funcionales. . . . . . . . . . . . . . . . . 265
F.7. Enlace de dos componentes funcionales. . . . . . . . . . . . . . . . . . . 266
F.8. Enlace BICO posibles y no posibles. . . . . . . . . . . . . . . . . . . . . 266
F.9. Acoplamiento en serie de equipos SIMOREG/SIMOVERT (esclavos)
con un ordenador de jerarquı́a superior como maestro. . . . . . . . . . . 268
F.10.Estructura del telegrama. . . . . . . . . . . . . . . . . . . . . . . . . . 268
F.11.Asiganción del byte de dirección (ADR). . . . . . . . . . . . . . . . . . 269
F.12.Tiempo de ciclo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
F.13.Valores de pausa mı́nimos para diferentes velocidades de transmisión. . 270
F.14.Secuencia de emisión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
F.15.Topologı́a de bus USS. . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
F.16.Datos del cable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
F.17.Caracterı́sticas térmicas y eléctricas. . . . . . . . . . . . . . . . . . . . 272
F.18.Longitudes de cable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
F.19.Estructura del telegrama. . . . . . . . . . . . . . . . . . . . . . . . . . 273
F.20.Estructura de las partes PKW y PZD. . . . . . . . . . . . . . . . . . . 273
F.21.Parametrizada con una longitud variable de palabras. . . . . . . . . . . 274
F.22.Estructura de las parte de parámetros (PKW). . . . . . . . . . . . . . .

275
F.23.Indicativo de parámetro (PKE), 1 palabra. . . . . . . . . . . . . . . . 275
F.24.Indicativo de tarea (maestro → convertidor). . . . . . . . . . . . . . . . 276
F.25.Indicativo de respuesta (convertidor → maestro). . . . . . . . . . . . . 277
F.26.Número de fallo para indicativo de respuesta “tarea no realizable”. . . . 278
F.27.Tareas con valor de indice = 255. . . . . . . . . . . . . . . . . . . . . . 279
F.28.Estructura de la parte PZD. . . . . . . . . . . . . . . . . . . . . . . . . 279
F.29.Conexión de los cables de bus. . . . . . . . . . . . . . . . . . . . . . . . 280
F.30.Conexionado con las abrazaderas. . . . . . . . . . . . . . . . . . . . . . 282
F.31.Apantallado y compensación de equipotencial. . . . . . . . . . . . . . . 282
F.32.Conmutador S1 para la terminación del bus. . . . . . . . . . . . . . . . 283
F.33.Conexión del cable de bus bifilar en el regletero de bornes X103 (Kom-
pakt Plus). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
F.34.Tarjeta de comunicación CBP. . . . . . . . . . . . . . . . . . . . . . . . 284
Índice de tablas

3.1. Definición de constantes y variables en el modelo del motor. . . . . . . 45


3.2. Definición de constantes y variables en el modelo del robot. . . . . . . . 47
3.3. Valores de la identificación de parámetros de los motores . . . . . . . . 52
3.4. Valores de la identificación de parámetros del robot . . . . . . . . . . . 53

5.1. Clasificación del comportamiento del sistema y ponderaciones a priori . 98


5.2. Valores sub-óptimos de ponderación de los filtros (o valores a posteriori ). 98
5.3. Comparativa de coste computacional usando como referencia el filtro de
Kalman con modelo de velocidad constante. . . . . . . . . . . . . . . . 103

6.1. Utilización del dispositivo en la implementación de un filtro de Kalman


de estado estacionario (αβ) . . . . . . . . . . . . . . . . . . . . . . . . 125
6.2. Utilización del dispositivo en la implementación de un filtro FMF de dos
estimadores (esquema mostrado en la figura 6.3). . . . . . . . . . . . . 125
6.3. Coste computacional de los filtros en PC-MATLAB . . . . . . . . . . . 141
6.4. Comparativa de coste computacional usando un Intel Core 2 Duo (2,13GHz)
y una Spartan3E-FPGA (50MHz) . . . . . . . . . . . . . . . . . . . . . 141

7.1. Nomenclatura utilizada en los esquemas de control. . . . . . . . . . . . 147

xiii
XIV ÍNDICE DE TABLAS
Parte I

Tesis

1
CAPÍTULO 1

INTRODUCCIÓN

Introducción y marco de la Tesis, motivación de la misma y aportaciones realizadas.


En este capı́tulo también se presentan las publicaciones realizadas durante este periodo
de trabajo en el que se ha colaborado con la Universidad Politécnica de Valencia, el
Deutsches Zentrum für Luft- und Raumfahrt (DLR) y el Deutsches Forschungszentrum
für Künstliche Intelligenz (DFKI).

3
4 CAPÍTULO 1. INTRODUCCIÓN

1.1. Control visual de robots


Hoy en dı́a, los robots operan en ambientes altamente estructurados para contribuir
a la buena integración de éstos. Por otro lado, los robots tienen escasa aplicación en
tareas donde el ambiente de trabajo y la colocación de objetos no puede ser completa-
mente controlada, ésto es debido a la dificultad para obtener información del entorno
del robot. Estos robots industriales, generalmente tienen la gran desventaja de no poder
observar las tareas que realizan, además de requerir tiempos de puesta a punto altos
debido a la tediosa programación de las tareas a realizar.
La utilización de todo tipo de sensores y de la fusión entre ellos ha sido y es objeto
de gran interés en la investigación actual. Las aplicaciones que despiertan mayor interés
son aquellas en las que un manipulador o robot ha de interactuar con objetos móviles
con un perfil de movimiento desconocido o con objetos estáticos cuya localización no
se conoce con exactitud. Algunas aplicaciones de control visual se pueden encontrar en
[10][135][60][150][5][140].
La expresión realimentación visual se aplica a sistemas controlados con información
visual, los cuales hacen uso de una o varias cámaras para obtener información en
forma de imágenes, que es empleada como señal de realimentación para cerrar el lazo
de control. Cuando se usa realimentación visual, se deben extraer de las imágenes
capturadas algunas caracterı́sticas del objeto de interés que proporcionen suficiente
información para el control del robot. El término realimentación visual, se conoce
comúnmente como Visual Servoing, que podrı́a traducirse como Servo Control Visual.
Cuando se combina el control de un robot con el uso de cámaras, debe decidirse la
relación cinemática que ligará a ambos. Durante el control hay que tener en cuenta que
tanto los los sensores visuales como los objetos de interés pueden permanecer estáticos
o moverse.
En el primer caso, éstos se encuentran dispuestos en una ubicación fija y observan
la escena en la que deben estar perfectamente visibles tanto el robot como el objeto de
interés (configuración conocida como cámara-hacia-la-mano o eye-to-hand ).
En el caso de cámaras móviles, la configuración más habitual es aquélla en la que
éstas se encuentran unidas al efector final del robot. A esta disposición particular se le
da el nombre de configuración cámara-en-mano (eye-in-hand configuration). También
se puede encontrar una combinación de ambas eye-to-hand &eye-in-hand en [61][64].
Podemos clasificar los sistemas de control visual atendiendo a diferentes criterios,
en función de los lazos de control y de las señales existentes, en función del tipo de
procesamiento realizado para la imagen, etc. En el capı́tulo 2 podemos encontrar la
clasificación necesaria para poder centrar la temática de esta tesis.

1.2. Motivación y objetivo de la Tesis


La motivación fundamental de esta tesis ha nacido a partir de los trabajos reali-
zados en el Departamento de Ingenierı́a de Sistemas Industriales de la Universidad
Miguel Hernández relacionados con el control visual de manipuladores industriales.
Hasta el momento se han realizado diferentes esquemas de control visual indirecto sobre
distintos robots (Mitsubishi PA-10 y Fanuc LR Mate 200iB) dando lugar a varias pu-
1.3. MARCO DE LA TESIS 5

blicaciones ([64][63][144]). En estas implementaciones, se comprobaron las limitaciones


que estas técnicas tenı́an y que se resumen en su falta de velocidad [76].
En esta tesis como objetivo fundamental se propuso contribuir con los desarrollos
realizados a incrementar las prestaciones (velocidad) de los sistemas de control visual,
más concretamente en aquellos que utilizan la información visual directamente para
generar la acción de control de los actuadores (control visual directo).
Con este objetivo, se pensó en desarrollar un nuevo robot para poder trabajar con un
sistema abierto y no tener el lazo de control interno que tiene la arquitectura de control
visual indirecto. Se presenta por tanto, un robot cartesiano diseñado y construido en
el marco de realización de esta tesis [141][148].
La connotación de control visual directo o control visual de altas prestaciones
[41][38], tiene varios problemas asociados que se han de tratar. Uno de ellos está rela-
cionado con la velocidad del movimiento del objeto o de las caracterı́sticas. Si la ve-
locidad es elevada, el tiempo de adquisición de la imagen y el procesamiento son con-
siderables con respecto de la dinámica del objeto. Esto obliga a realizar una predicción
de la posición futura del mismo. A este tema se le ha dedicado buena parte de esta
tesis (ver capı́tulos 4 y 5).
Una vez realizado el diseño del mencionado robot, se ha comprobado que la conside-
ración popularmente aceptada de que los robots cartesianos tienen un comportamiento
lineal y desacoplado se cumple para dinámicas medias o poco exigentes, pero para
dinámicas con grandes velocidades y aceleraciones, el robot se comporta de una forma
no lineal y acoplada. Otra de las temáticas abordadas en esta tesis hace referencia al
control de este robot.
Por último, gran parte de los problemas encontrados en la realización de esta
tesis han venido de la mano de la implementación real de los conceptos anteriormente
planteados. Uno de los objetivos de este trabajo ha sido la obtención de una platafor-
ma integral de test que nos permita comprobar los resultados obtenidos en simulación.
Esta plataforma integral incluye no sólo al robot sino también los sensores (cámara,
encoders, finales de carrera, sistemas de seguridad, etc.), la adquisición y procesamien-
to de la información visual y el cálculo del controlador (realizado por una FPGA). En
el capı́tulo 6, podemos encontrar la implementación en tiempo real del controlador y
del procesamiento de la información del sensor de visión.

1.3. Marco de la tesis


La presente tesis se ha desarrollado durante un periodo de tiempo relativamente
grande (notar que las primeras publicaciones relacionadas con esta temática son de
comienzos de 2004 [149][146][145]), por lo que durante este tiempo se ha colaborado
en diferentes proyectos relacionados. Uno de ellos lleva por tı́tulo “Herramientas de
teleoperación colaborativa. Aplicación al control cooperativo de robots” DPI: 2004-
07433-C02-01 y está financiado por el Ministerio de Ciencia y Tecnologı́a. En este
proyecto se realizan tareas de control visual y se han usado algunos de los algoritmos,
las herramientas y los equipos que en esta tesis se describen.
La mayor parte de la investigación presentada en esta tesis se ha desarrollado
en el Departamento de Ingenierı́a de Sistemas industriales de la Universidad Miguel
6 CAPÍTULO 1. INTRODUCCIÓN

Hernández de Elche, pero parte de los desarrollos se han realizado en la Universidad


Politécnica de Valencia colaborando con el Dr. Luis Gracia y en los centros de investi-
gación en los que se han realizado estancias de mayor o menor duración, estableciéndose
fructı́feras relaciones investigadoras.

Figura 1.1: DLR. Figura 1.2: DFKI.

Los centros de investigación en los que se han realizado estancias para la investi-
gación y realización de experimentos son:

Institut für Robotik und Mechatronik (Deutsches Zentrum für Luft- und Raum-
fahrt - DLR ) en Weßling, cerca de Munich, Alemania.

Deutsches Forschungszentrum für Künstliche Intelligenz (DFKI) en Bremen, Ale-


mania.

1.4. Estructura del documento


Este documento esta dividido en 8 capı́tulos. En este primer capı́tulo se recogen
aspectos esenciales como son: la motivación y las contribuciones aportadas por esta
tesis y un listado de algunas de las publicaciones donde se han presentado dichas
aportaciones.
En el capı́tulo 2 se presenta la arquitectura y las caracterı́sticas de un sistema genéri-
co de control visual, realizando un estado del arte de las configuraciones empleadas en
y hasta la actualidad.
El capı́tulo 3 presenta el modelado e identificación de un robot cartesiano utilizado
para algunos de los experimentos de esta tesis. En concreto se presenta un análisis de
linealidad y acoplamiento de los robots cartesianos en general y un estudio particular
del robot empleado en este trabajo.
Una de las partes más importantes de esta tesis se desarrolla en los capı́tulos 4 y 5,
en los que se presenta un estudio de los filtros de Kalman de estado estacionario, las
aportaciones realizadas por reconocidos investigadores en este campo y se propone un
1.5. CONTRIBUCIONES APORTADAS 7

método novedoso para predecir la posición y/o la trayectoria con gran calidad (aunque
con un mayor coste computacional).
El capı́tulo 6 es uno de los capı́tulo de esta tesis que más problemas ha dado:
la implementación en hardware reconfigurable. La implementación real del sistema
de control visual abarca desde la adquisición de la imagen digital (a bajo nivel, ver
anexo C) y el procesamiento hasta la paralelización de tareas para poder cumplir las
restricciones de tiempo real, que en algunos casos pueden llegar a ser muy exigentes.
El capı́tulo 7 presenta un nuevo esquema de control visual. Este nuevo esquema
de control visual es comparado con uno de los más extendidos (presentado por Peter
I. Corke en [38]). De esta comparativa se desprende que el nuevo esquema de control
propuesto mejora sensiblemente el comportamiento (sobre todo cuando la velocidad
del robot es considerable). Este capı́tulo presenta gran parte de los experimentos de-
sarrollados en esta tesis.
Por último, el capı́tulo 8 presenta las conclusiones a las que se ha llegado tras la
realización de esta tesis y los trabajos futuros en los que se piensa trabajar o incluso
que ya se están realizando.

1.5. Contribuciones aportadas


Las principales aportaciones como consecuencia de los trabajos realizados dentro
del ámbito de esta Tesis Doctoral son las siguientes:

Se obtiene un modelo que refleja el comportamiento del robot cartesiano emplea-


do en algunos de los experimentos de esta tesis. Este modelo considera motores
de inducción trifásicos (en lugar de los más extendidos motores DC para este
tipos de robots), acoplamiento entre ejes y las no linealidades producidas por
la fricción. Estas consideraciones han derivado en varias publicaciones como son
[69], [141] y [148].

Tras hacer un análisis del estado del arte de los filtros de Kalman (incluyendo
los de estado estacionario) en el capı́tulo 4, se presenta un nuevo filtro de esti-
mación basado en lógica borrosa (fuzzy logic) que se explica en el capı́tulo 5. Este
nuevo filtro se ha llamado Fuzzy Mix of Filters o FMF y ha dado lugar a varias
publicaciones como son [147], [142] y [143].

Uno de los principales problemas del filtro FMF presentado en esta tesis es el
incremento de coste computacional con respecto de otros filtros considerados de
tiempo real. El capı́tulo 6 presenta la arquitectura de un procesador especialmente
diseñado para el cálculo del filtro FMF y que por lo tanto es capaz de realizar su
cómputo a una elevada frecuencia.

Una de las mayores aportaciones de esta tesis es la presentación de forma total-


mente novedosa de un esquema de control visual para la consideración del retardo
introducido por la adquisición y el procesado de la imagen. Este esquema de con-
trol supone una mejora considerable con respecto del esquema empleado hasta
el momento.
8 CAPÍTULO 1. INTRODUCCIÓN

Las publicaciones aportadas por esta tesis se pueden clasificar en dos grupos diferentes,
por una parte las derivadas directamente de la tesis y por otra las publicaciones en las
que esta tesis ha tenido una contribución en un grado significativo pero no único.

1.5.1. Publicaciones
1. Publicaciones directamente derivadas de esta tesis

- Object Trajectory Prediction. Application to Visual Servoing. Aut.: C. Pérez,


N. Garcı́a, O. Reinoso, J. M. Sabater and J. M. Azorı́n. European Control
Conference ECC’07. Kos, Greece 2-5 July 2007.
- Improvement of the visual servoing task with a new trajectory predictor.
The Fuzzy Kalman Filter. Aut.: C. Pérez, O. Reinoso, N. Garcı́a, J.M.
Sabater and J.M. Azorı́n. International Conference on Informatics in Con-
trol, Automation and Robotics (ICINCO 2007). Angers (France). 9-12 May,
2007.
- Modelling of a Direct Drive Industrial Robot. Aut.: C. Pérez, O. Reinoso,
N. Garcı́a, J. M. Sabater and L. Gracia. Publicado en Transactions on En-
gineering, Computing and Technology. Volume 17 December 2006. ISSN:
1305-5313. World Enformatika Society.
- Design, Modeling and Identification of a Cartesian Robot for Direct Visual
Servoing Applications. Aut.: C. Pérez, N. Garcı́a, O. Reinoso, J.M. Azorı́n
and R. Morales. The 6th IASTED International Conference on Visualiza-
tion, Imaging and Image Processing. 28 - 30 August de 2006. Palma de
Mallorca, Spain. ISBN: 0-88986-598-1.
- Robot Hand Tracking Using Adaptive Fuzzy Control. Aut.: C. Pérez, O.
Reinoso, N. Garcı́a, R. Ñeco, M. A. Vicente. International Conference on
Fuzzy Systems (Budapest 2004) IEEE Catalog Number: 04CH37542C ISBN:
0-7803-8354-0. Budapest (Hungary) 25-29 July 2004.
- Gripper tracking with trajectory prediction and adaptive fuzzy control.
Aut.: C. Pérez, O. Reinoso, N. Garcı́a, R. Ñeco, M. A. Vicente. World
Automation Congress (WAC-ISSCI) ISBN: 1-889335-20-7. Seville (Spain)
28 June - 1 July 2004.
- Robot hand visual tracking using an adaptive fuzzy logic controller. Aut.:
Carlos Pérez, Oscar Reinoso, M. Asunción Vicente. Journal of WSCG. IS-
BN: 80-903100-6-0. Plzen (Czech Republic). 2-6 February 2004

2. Publicaciones relacionadas con esta tesis

- Visual Control of Robots With Changes of Visibility in Image Features.


Aut.: N. Garcı́a, J.M. Azorı́n, J.M. Sabater, C. Pérez, R. Saltarén. IEEE
Latin America Transactions. March 2006, Vol. 4, Issue 1.
- The Visibility Problem in Visual Servoing. Aut.: C. Pérez, R. Morales, N.
Garcı́a, J.M. Azorı́n and J.M. Sabater. The 3rd International Conference
1.5. CONTRIBUCIONES APORTADAS 9

on Informatics in Control, Automation and Robotics (ICINCO 2006) 1 - 5


August de 2006. Setúbal, Portugal ISBN: 972-8865-60-0
- Continuous Visual Servoing Despite the Changes of Visibility in Image Fea-
tures. Aut.: N. Garcı́a, E. Malis, R. Aracil and C. Pérez. IEEE Transaction
on Robotics. Vol. 21, No. 6 December 2005. ISSN: 1552-3098.
- Image-based and intrinsic-free visual navigation of a mobile robot defined
as a global visual servoing task. Aut.: C. Pérez, N. Garcı́a, J.M. Azorı́n,
J.M. Sabater, L. Navarro. Second Internacional Conference on Informatics in
Control, Automation and Robotics. 14-17 septiembre de 2005 ICINCO 2005
Barcelona, Spain ISBN: 972-8865-30-9. Publicado en el libro: Informatics
in Control, Automation and Robotics II. Editores: Filipe, J.; Ferrier, J.L.;
Cetto, J.A.; Carvalho, M. (Eds.) 2007, XIV, 244 p., Hardcover ISBN-10:
1-4020-5625-7 ISBN-13: 978-1-4020-5625-3.
- Robust Image-Based Visual Servoing System Using a Redundant Architec-
ture. Aut.: R. Aracil, N. Garcı́a, C. Pérez, L. Payá, J.M. Sabater, J.M.
Azorı́n, L.M. Jimenez. 16th IFAC World Congress. Praha. July 4 - 8, 2005.
ISBN: 0-08-045108-X.
- Performance analysis of a continuous vision-based control system for the
navigation of a mobile robot. Aut.: R. Aracil, N. Garcı́a, C. Pérez, J.M.
Sabater, J.M. Azorı́n, O. Reinoso, R. Saltarén. 16th IFAC World Congress.
Praha. July 4 - 8, 2005 ISBN: 0-08-045108-X.
- Avoiding Visual Servoing Singularities using a Cooperative Control Archi-
tecture. Aut.: N. Garcı́a, C. Pérez, L. Payá, R.P. Ñeco, J.M. Sabater, J.M.
Azorı́n. Proceedings of the 1st International Conference on Informatics in
Control, Automation and Robotics (ICINCO 2004) I.S.B.N.: 972-8865-12-0
Setúbal, Portugal. August 24 - 25, 2004.
- Integration of eye-in-hand/eye-to-hand architectures for Visual Servoing of
Industrial Robot. Aut.: N. Garcı́a, R. Ñeco, J.M. Azorı́n, J.M. Sabater, C.
Pérez. Proceedings of the 3rd International Symposium on Robotics and
Automation. Toluca, México. Del 1 al 4 de Septiembre de 2002.
10 CAPÍTULO 1. INTRODUCCIÓN
CAPÍTULO 2

ARQUITECTURA DEL
CONTROL VISUAL

En este capı́tulo se estudian las diferentes arquitecturas de control visual y se hace


un análisis de los primeros y los actuales trabajos que se desarrollan al respecto. Se
plantean las configuraciones eye-in-hand y eye-to-hand, el control visual directo e in-
directo y el control visual basado en posición y en caracterı́sticas entre otros.

11
12 CAPÍTULO 2. ARQUITECTURA DEL CONTROL VISUAL

2.1. Introducción
La utilización de la visión por computador para controlar un robot se ha denomi-
nado en la literatura [82] como visual servoing, control visual de robots, siendo éste el
término anglosajón propuesto por Hill y Park [78]. La inclusión de la visión en sistemas
robóticos tiene como principal objetivo el aumento de la flexibilidad y la precisión de
estos sistemas. Uno de los primeros trabajos donde se utilizó la visión para el control
de robots fue presentado por Shirai e Inoue [173] hace más de tres décadas. El papel de
la visión por computador es el de ofrecer al robot el estado de su entorno de trabajo,
para que esta información pueda ser utilizada para su control. En el caso de robots
manipuladores, los cuales tratamos en este capı́tulo, encontramos en su entorno de
trabajo uno o varios objetos a manipular.
La información sobre el entorno de trabajo del robot se obtiene a través de la
imagen, información visual, que puede ser utilizada para el control de dos formas
distintas [82]. La primera de ellas se denomina Open-Loop-Robot-Control, control en
lazo abierto, y se basa en la separación de la parte relacionada con la visión de la parte
relacionada con el control del robot. La designación de control en lazo abierto surge
debido a la no utilización de información visual durante el movimiento, puesto que el
lazo de realimentación se cierra una sola vez al principio y queda abierto en el resto del
proceso. Podemos afirmar que según lo dicho, la posición inicial y la deseada del robot
se determina off-line a través de la información visual, sabiendo que el movimiento del
robot es “a ciegas” puesto que el control se realiza únicamente en base a los sensores
de articulación. Las posiciones iniciales y finales se determinan a través de algoritmos
de estimación de pose1 , siendo necesario calibrar la cámara y obtener el modelo del
objeto.
La segunda forma, la cual se denomina convencionalmente visual servoing, utiliza
directa o indirectamente en la ley de control la información visual. En este caso, se
utiliza habitualmente un control interno del robot, ası́ como la realimentación de las
variables de articulación para estabilizar el robot entorno a la acción del comando
que viene del anillo de visión. La gran mayorı́a de los sistemas existentes en la biblio-
grafı́a siguen esta segunda forma [82]. La utilización directa de la información visual
implica tener como variables controladas las coordenadas 2D del plano de la imagen;
en cuanto a la utilización indirecta de información visual, ésta implica la extracción
de caracterı́sticas relevantes del objeto a partir de las coordenadas 2D del plano de la
imagen. Como ejemplo de esta última tenemos la pose 3D del objeto respecto de la
cámara.
Las aplicaciones tı́picas del control visual de robots se pueden clasificar como:
Posicionamiento del robot o de su elemento terminal respecto a un determinado
objeto;
Seguimiento de un objeto en movimiento, manteniendo una relación constante
entre éste y el robot.
El objeto citado es parte fundamental del proceso, puesto que la formulación del
problema se obtiene dependiendo de cómo esté caracterizado este objeto a través de la
1
La pose es la posición y orientación del elemento en cuestión, i.e. las seis variables que lo definen.
2.2. INFORMACIÓN VISUAL PARA EL CONTROL 13

imagen. Es por tanto fundamental obtener información visual que caracterice el objeto,
siendo ésta utilizada para medir el error entre la posición actual del robot y la posición
deseada. Esta información visual, se puede obtener por una o más cámaras, que pueden
estar colocadas en el espacio (visualizando el objeto o el elemento terminal del robot)
o en el elemento terminal(visualizando el objeto).
La caracterización del objeto a través de la imagen se puede realizar:

Utilizando información bidimensional expresada directamente en las coordenadas


del plano de la imagen; o
Utilizando información tridimensional, en la que los modelos de la cámara y del
objeto son utilizados para determinar la pose del objeto respecto a las referencias
de la cámara, del robot o del mundo [82].

Actualmente esta caracterización puede englobar simultáneamente las dos formas


anteriores, para mejorar el rendimiento global del sistema. Éste último ha sido deno-
minado en la literatura como control visual hı́brido, hybrid visual servoing [73], siendo
el primer trabajo en esta área el presentado por Malis en [114].
Para utilizar las caracterı́sticas de la imagen del objeto como forma de controlar
robots, es necesario establecer una relación entre éstas y las coordenadas de la cámara
respecto a la referencia del mundo o del elemento terminal del robot. Esta relación,
modelo de interacción, ha sido el objetivo de la gran mayorı́a de los trabajos en el área
de control visual de robots, existiendo las tres formas indicadas anteriormente.
La literatura existente sobre el control visual de robots crece sustancialmente, a
lo largo de los años, entorno a los problemas relacionados con la cinemática de la ley
de control. En este tipo de control, control visual cinemático, el robot se considera
como un posicionador perfecto. En [82] este tipo de control se define como dynamic
look-and-move. En realidad el movimiento de un robot tiene no-linealidades asociadas,
siendo pues ventajoso tenerlas en consideración en la obtención de la ley de contol. Este
último tipo de control se denomina control visual dinámico [41][19][93][169][168][166],
pudiendo tenerse también en consideración problemas relacionados con el retraso ge-
nerado por el lazo de visión. Cuando el control visual dinámico calcula directamente
los comandos para los actuadores del robot, éste se denomina, direct visual servoing o
control visual directo [82][193].

2.2. Información Visual para el Control


En los robots manipuladores controlados por visión generalmente se utilizan medi-
das visuales obtenidas a través de caracterı́sticas de la imagen, o imágenes, de objetos
colocados en el espacio de trabajo del robot. La obtención de estas medidas depende
del número de cámaras utilizadas, de su configuración respecto al robot, de su cali-
bración y del conocimiento previo que se pueda obtener del entorno de trabajo donde
se encuentra el objeto. Teniendo también en cuenta lo descrito anteriormente, esta in-
formación puede obtenerse directamente (basándose en las caracterı́sticas de la imagen
del objeto en el plano) o indirectamente de la imagen (basándose en la estimación de
la pose, posición tridimensional del objeto respecto a las cámaras, y la estimación del
14 CAPÍTULO 2. ARQUITECTURA DEL CONTROL VISUAL

movimiento de la cámara). La utilización en conjunto de los dos tipos de información


visual descritas, permiten la obtención de varios grupos distintos de medidas del objeto.
Como se citó anteriormente, la información visual necesaria para el control visual de
robots manipuladores depende de dos factores fundamentales: el primero relacionado
con la parte fı́sica de la interacción entre las cámaras y el objeto, y el segundo con la
parte computacional necesaria para el procesamiento y la interpretación de la imagen
(o imágenes) capturadas.
El modelo de interacción entre las cámaras, el robot y el objeto que existe dentro
del espacio de trabajo del robot, como hemos visto anteriormente, depende de los
parámetros de la cámara y del conocimiento previo que se podrá obtener del entorno
de trabajo donde se encuentra el objeto. Existen algunas consideraciones al respecto:

El número de cámaras del sistema, permitiendo definir visión monocular (una


cámara) y visión estéreo (dos cámara ligadas rı́gidamente), y sistemas de cámara
redundantes;

La configuración de las cámaras respecto al robot, tal que existe un caso en el cual
las cámaras se encuentran ligadas rı́gidamente al elemento terminal del robot y
miran hacia el objeto (eye-in-hand). El otro caso serı́a en el cual las cámaras se
encuentran en el espacio y miran hacia el elemento terminal del robot y hacia el
objeto simultáneamente, eye-to-hand;

2.2.1. Visión Monocular


Un sistema de visión monocular utiliza solamente una cámara, que puede ser colo-
cada en el efector final del robot mirando hacia el objeto, o en el espacio mirando
simultáneamente hacia el efector final del robot y hacia el objeto. La principal ventaja
de este tipo de sistema es que minimiza el tiempo de procesamiento necesario para
extraer las informaciones visuales necesarias, siendo otra ventaja su coste. No obstante
tiene la desventaja de que no es posible determinar la profundidad, distancia entre
la cámara y el objeto, de forma exacta siendo necesaria su estimación utilizando un
modelo del objeto, o utilizando otro tipo de métodos durante el control.

Cámara colocada en el efector final y mirando hacia el objeto.


El sistema de visión monocular en el que una cámara se encuentra colocada en el
efector final del robot, eye-in-hand, y mirando hacia el objeto, ver Figura 2.1, tiene
la particularidad de ser la más común de las aplicaciones de control visual de robots
manipuladores. Sin embargo, es necesario determinar la matriz de transformación en-
tre la referencia del efector final y la referencia de la cámara. Este procedimiento se
puede realizar fácilmente ya que la cámara y el efector final del robot se encuentran
rı́gidamente ligados.
Con este tipo de configuración, las aplicaciones tı́picas son las de mantener un deter-
minado objeto dentro de la imagen., o mover el robot entre dos posiciones predefinidas
en la imagen. Como ejemplo de posiciones definidas en imágenes diferentes tenemos
el trabajo de Remazeilles [155], basado en una base de datos de imágenes (memoria
2.2. INFORMACIÓN VISUAL PARA EL CONTROL 15

Figura 2.1: Visión monocular con una cámara colocada en el efector final y mirando
hacia el objeto, eye-in-hand.

visual).

Cámara mirando hacia el robot manipulador y hacia el objeto.


Los sistemas en los que una cámara se encuentra mirando al robot manipulador
y al objeto, ver figura 2.2, eye-to-hand, fueron los primeros trabajos que surgieron
sobre el control visual de robots manipuladores [173]. Este tipo de sistemas requieren
calibración, ya que utilizan como variables a controlar la pose del objeto respecto a la
cámara o al efector final del robot. En este tipo de sistemas es necesario determinar la
posición del efector final del robot respecto a la cámara.

Figura 2.2: Visión monocular con una cámara mirando hacia el objeto y hacia el robot
manipulador, eye-to-hand.

2.2.2. Visión Estéreo


Un sistema de visión estéreo está constituido por dos cámaras ligadas rı́gidamente
con la finalidad de obtener dos imágenes del mismo objeto. Este sistema de visión es
bastante útil cuando se pretende obtener información tridimensional, por ejemplo de
un determinado objeto dentro del campo de visión del par estéreo. Respecto al sis-
tema de visión monocular, la utilización de visión estéreo facilita la obtención de la
16 CAPÍTULO 2. ARQUITECTURA DEL CONTROL VISUAL

profundidad, sin embargo penaliza el tiempo de procesamiento de las imágenes y el


coste del sistema. A continuación se presentan las configuraciones más habituales de
este sistema de visión, que son idénticas a las de la visión monocular, como son las
cámaras mirando hacia el objeto o mirando hacia el objeto y hacia el efector final del
robot simultáneamente.

Cámaras mirando hacia el objeto.


La utilización de un par estéreo ligado rı́gidamente al efector final, ver figura 2.3,
eye-in-hand, no es muy habitual, debido al hecho de que este tipo de sistemas están
asociados a un mayor volumen (respecto a la visión monocular) lo que dificulta otro
tipo de aplicaciones, tal como la manipulación de objetos. Con todo esto, la miniatu-
rización cada vez mayor de los sistemas de visión tiene a solucionar este obstáculo. La
utilización de este tipo de sistemas introduce algún otro problema que tiene que ver
con la pérdida de precisión de los algoritmos de reconstrucción tridimensional, puesto
que la distancia entre los ejes ópticos de las dos cámaras, “baseline” [192], de este tipo
de sistemas deberá ser pequeña.

Figura 2.3: Visión estéreo con las cámaras colocadas en el efector final y mirando hacia
el objeto.

Cámaras mirando hacia el robot manipulador y hacia el objeto.


Cuando las cámaras del par estéreo se colocan en un espacio local predefinido, ver
figura 2.4, eye-to-hand, los sistemas de visión más utilizados son los de par estéreo.
Ésto se debe al hecho de que en este caso no existe restricción de la “baseline” del par
estéreo que, cuando era colocado en el efector final, lo condicionaba. Ası́ se consigue
la longitud necesaria de la “baseline” del par estéreo para que los resultados de la
reconstrucción 3D sean precisos.

2.2.3. Sistema con Cámaras Redundantes.


Cuando se utilizan más de dos cámaras, los sistemas se definen como redundantes,
puesto que a partir de un par estéreo (dos cámaras) es posible reconstruir la información
tridimensional de un objeto que se encuentra en su campo de visión. La utilización
de este tipo de sistemas permite obtener información adicional sobre lo que se va a
2.3. CONTROL VISUAL CINEMÁTICO 17

Figura 2.4: Visión estéreo con las cámaras mirando hacia el objeto y hacia el robot
manipulador.

visualizar [54]. No obstante, el matching [54] entre las distintas imágenes de la escena
que se va a visualizar es un procedimiento complejo, pesado computacionalmente y
con costes más elevados. Como consecuencia de estos hechos, la utilización de estos
sistemas en el control visual de robots es poco frecuente. Se nota que en este tipo de
sistemas también se incluye la combinación de la visión estéreo y la visión monocular,
como es el caso, por ejemplo, de un robot con una cámara en el efector final y un par
estéreo que visualice el robot y el objeto.
Existen varios trabajos publicados, entre los cuales destacan:

El trabajo propuesto en [115], en el que se desarrolló un sistema eye-in-hand


multicámara para el control visual, de modo que se concluye que la estabilidad
del sistema global está asegurada por la estabilidad de cada subsistema;

El trabajo propuesto en [66], en el que se utilizaron tres cámaras para determi-


nar la pose del objeto a manipular. Posteriormente se realizó el control visual
utilizando una cámara en el efector final del robot mirando hacia el objeto;

La formulación teórica basada en sistemas multicámaras presentada en [163];

El sistema basado en tres cámaras propuesto en [103] para la manipulación de


objetos, demostró que la utilización de una cámara eye-to-hand mejora la pre-
cisión de la estimación del objeto, respecto a la utilización de un sistema estéreo
eye-in-hand con “baseline” pequeña;

El método propuesto en [205][206] para sistemas con cámaras redundantes, que


respeta la robustez del control [104][93][206][164][208];

La utilización de varias cámaras en paralelo para aumentar la frecuencia de


muestreo, [164].
18 CAPÍTULO 2. ARQUITECTURA DEL CONTROL VISUAL

Figura 2.5: Control Visual Cinemático.

2.3. Control Visual Cinemático


El término “control visual de robots”, visual servoing [82][78], surge en la literatura
para definir el control de robots en los que se cierra el lazo con la utilización de cámaras
para extraer información visual del espacio de trabajo del robot. Ası́, la señal para el
lazo de control se obtiene directa o indirectamente a partir de la información del plano
de la imagen. A través de la señal de referencia y de la información que proporciona la
cámara, ya procesada, el controlador proporcionará al robot una referencia en veloci-
dad para que este alcance dicha señal. La referencia en velocidad se puede definir en
coordenadas de articulación, velocidades articulares (joint velocities), o en coordenadas
cartesianas, torsor de velocidad (velocity screw ). El diagrama de la figura 2.5 muestra
la estructura del control visual cinemático (también conocido como control visual indi-
recto), donde se puede ver un lazo de control interior realimentado con las velocidades
de articulación del robot. A continuación se presentan las estructuras de control visual
cinemático existentes en la literatura, llamadas: control visual cinemático basado en
imagen, control visual cinemático basado en posición y control visual hı́brido. También
existe en la literatura [46][162] el denominado control visual basado en el movimiento,
donde se controlan los movimientos de la cámara. Este tipo de control visual se basa
en la medición de flujo óptico entre dos imágenes consecutivas, lo que permite realizar
el control sin conocimiento a priori del objeto.

2.3.1. Control Visual Cinemático basado en imagen


En el control visual cinemático basado en imagen, las caracterı́sticas de un deter-
minado objeto se extraen directamente de la imagen, sin que para ello sea necesario
interpretar esta. Apenas se utilizan algoritmos para la extracción de caracterı́sticas de
la imagen definida por los objetos, por ejemplo, a través de las siguientes primitivas
[52][29]: puntos, lı́neas y elipses. Un ejemplo más reciente de caracterı́sticas de la ima-
gen del objeto son sus momentos [185], siendo las esquinas los más utilizados en toda
la literatura.
Durante el control se calcula la diferencia entre las caracterı́sticas de la imagen
del objeto deseadas y las actuales, siendo esta diferencia la responsable de la acción
2.3. CONTROL VISUAL CINEMÁTICO 19

de control que moverá el robot hacia la posición deseada, ver figura 2.6.Haciendo un
primer análisis de lo expuesto en esta arquitectura de control tenemos las siguientes
caracterı́sticas:

No necesita del análisis de la interpretación de la imagen, necesaria para la recons-


trucción tridimensional del objeto, haciendo posible la disminución del periodo de
muestreo del control de visión y evitando los problemas de visión por computador
inherentes (calibración, sensibilidad y el ruido en la imagen e incertidumbres en
el modelo del objeto);

No es necesario el cálculo de la cinemática directa del robot [165], solamente


se necesita el jacobiano del robot y este puede estar dentro del lazo interno del
robot, separándose ası́ los problemas de singularidades.

La acción de control citada anteriormente, torsor de velocidad o velocidad de arti-


culaciones, se determina a través del error entre las caracterı́sticas reales de la imagen
del objeto y las deseadas, dando lugar a una matriz que establece el modelo de in-
teracción. Esta matriz se define como jacobiano de la imagen, image jacobian [82][75].
También se define en la literatura como feature jacobian [55], feature sensitivity matrix
[85], interaction matrix [31].

Figura 2.6: Control Visual Cinemático basado en la imagen.

Considerando el vector que representa las caracterı́sticas de la imagen del objeto


s, y un segundo vector que representa la posición y orientación de la cámara, rc , el
jacobiano de la imagen Ji se define como la derivada parcial del vector de caracterı́sticas
con respecto del sistema de coordenadas c rc (ver figura 2.7):

∂s
Ji = (2.1)
∂ c rc
El vector rc , tiene dimensión (6×1) donde las tres primeras coordenadas referencian
la posición de la cámara y las otras tres su orientación. Habitualmente la orientación se
define por los ángulos de rotación entorno a dos ejes de coordenadas de referencia de la
cámara. El vector de las caracterı́sticas de la imagen del objeto s, no tiene dimensión
20 CAPÍTULO 2. ARQUITECTURA DEL CONTROL VISUAL

Figura 2.7: Sistema de coordenadas del mundo, cámara e imagen (centrales y laterales).

fija y depende del problema y de cómo esté abordado. Ası́ pues, la matriz jacobiana
de la imagen puede ser cuadrada o no serlo. Se presenta a continuación el cálculo de la
matriz jacobiana de la imagen para el caso descrito anteriormente de visión monocular
con una cámara mirando al objeto. Si consideramos un punto genérico en el espacio
cartesiano, x3D :

x3D = P (xW , yW , zW ) (2.2)

La velocidad del punto x3D , respecto a una referencia en movimiento viene dada por:

ẋ3D = [−I3 S(x3D )] · v (2.3)

Considérese un punto m, en la imagen,


X
m = [x y]T = Z
Y T
Z
] (2.4)

Calculando la derivada del punto m respecto del tiempo, se obtiene su velocidad,

" #  
Ẋ·Z−X·Ż
 X
 Ẋ
1 1 0 −
ṁ = [ẋ ẏ]T = Z2 = · Z
Y ·  Ẏ  (2.5)
Ẏ ·Z−Y ·Ż Z 0 1 − Z
Z2 Ż

ṁ = −Jv (m) · ẋ3D (2.6)

 X

1 −1 0 Z
Jv (m) = Y (2.7)
Z 0 −1 Z

Sabiendo que x3D = Z · m̃ y utilizando las ecuaciones (2.3) y (2.6), se obtiene la


siguiente relación entre las velocidades de referencia en movimiento v, y el punto en la
imagen:

ṁ = −Jv (m) · [−I3 S(x)] · v (2.8)


2.3. CONTROL VISUAL CINEMÁTICO 21

 
vx
 vy 
   
− Z1 0 X 2
x · y − (1 + x ) y  vz 
ṁ = Z2 ·   (2.9)
0 − 1 Y
1 + y2 − x · y − x  ωx 
Z Z2  
 ωy 
ωz
Luego se puede concluir que:

ṁ = [Jv (m) J(v,ω) (m)] · v (2.10)


Reescribiendo (2.10) para el caso de una caracterı́stica de la imagen en un punto
descrito por sus coordenadas métricas x e y, se tiene la siguiente ecuación que corres-
ponde con la estructura de (2.1):
 
c − Z1 0 Zx x · y − (1 + x2 ) y
ṡ = Ji · ṙc = · c ṙc (2.11)
0 − Z1 Zy 1 + y 2 − x · y − x
Como se puede verificar, (2.11) depende del conocimiento de la coordenada Z del
punto, la profundidad, distancia entre la cámara y el objeto medida sobre el eje óptico
de ésta. Esta coordenada no puede ser medida directamente de una imagen (visión
monocular). En el caso de la visión estéreo la profundidad se puede calcular a través de
técnicas de reconstrucción 3D. En el caso de la visión monocular existen tres opciones
posibles para calcular Z [30]:

Considerar durante todo el control visual el valor de las caracterı́sticas en la


posición deseada constante y con valor igual a Z ∗ ;

Estimar numéricamente que su valor sea el mismo que el del jacobiano de la ima-
gen (2.11), durante el control visual, teniendo que utilizar el modelo respectivo;

Determinar la profundidad utilizando el modelo 3D del objeto, o a través del


movimiento de la cámara [96][177].

todas ellas con sus ventajas y desventajas [30].


Como se puede verificar en (2.11) la matriz jacobiana de la imagen, Ji no es cuadra-
da (2×6). En el caso presentado existen seis grados de libertad a controlar, las seis
componentes de la velocidad, c ṙc , ası́ pues se necesitan por lo menos tres puntos en
la imagen para realizar el control. En [167] Sequeira presentó las singularidades cine-
máticas de un robot planar para varias configuraciones de cámaras posibles. Cuando
el número de caracterı́sticas de la imagen del objeto sea mayor que el número de
grados de libertad a controlar, estaremos delante del caso de existencia de caracterı́sti-
cas redundantes. En [76] se presentó un estudio, comprobado experimentalmente, que
demostró que utilizando caracterı́sticas redundantes, la rapidez de convergencia y la
precisión del posicionamiento de la cámara mejoraban considerablemente. El jacobiano
de la imagen para un solo punto en la imagen se ha descrito en (2.11), y en el caso de
pretender utilizar más puntos, basta solamente con insertar las respectivas filas en la
matriz.
22 CAPÍTULO 2. ARQUITECTURA DEL CONTROL VISUAL

El lazo interno del robot, descrito en la figura 2.5, habitualmente recibe el nombre
de ley de control de articulación. Para establecer un perfil de velocidad c ṙc , es necesario
utilizar la matriz de transformación W , como se describe en (2.12).

c
ṙc = c W e · e ṙe (2.12)
La matriz de transformación, c W e , contiene la traslación, c te , y la rotación, c Re ,
entre la referencia de la cámara y la referencia del efector final:

    
c I3 S(c te ) c
R e o3 c
Re S(c te ) · c Re
We = = (2.13)
0 3 I3 03 c R e 03 c R e
La introducción de la matriz de transformación, c W e , obliga a la estimación de los
parámetros de la matriz de rotación, c Re , y del vector de traslación c te , que se han
obtenido manualmente.

En el caso del lazo interno reciben directamente las velocidades de articulación,


q̇, y es necesario conocer las relaciones entre éstas y las velocidades cartesianas del
efector final re . Esta relación se describe en (2.14) donde el jacobiano del robot, JR , es
calculado en referencia del efector final:

e
ṙe = e J R (q) · q̇ (2.14)
La relación existente entre las caracterı́sticas de la imagen del objeto y las coorde-
nadas del efector final, ası́ como las coordenadas de articulación se describen, respec-
tivamente, en (2.15) y en (2.16). La matriz jacobiana para el control visual basado en
imagen se define en (2.17). Estas ecuaciones se utilizan para construir la ley de control
visual.

ṡ = Ji · c W e · e ṙe (2.15)

ṡ = Ji · c W e · e J R · q̇ (2.16)

ṡ = J2D · q̇ (2.17)
El esquema de control clásico basado en imagen, fue presentado en [52], y se basó en
una regulación a cero del error entre las caracterı́sticas de la imagen en la posición
actual y la deseada. La estructura global del control se muestra en la figura 2.6, donde
en el bloque regulador se encuentra implementado un controlador PD [9], que funciona
con un tiempo de muestreo de 1 milisegundo (ms).
Las velocidades de articulación, q̇, necesarias para el movimiento del robot hacia una
posición predefinida de caracterı́sticas de imagen, s∗ , se generan en el bloque de control.
Para obtener el objetivo definido anteriormente, el error entre las caracterı́sticas de la
imagen deseadas y las actuales, e = s − s∗ , deberá ser cero. Ası́ mismo, en la posición
deseada, la velocidad de las caracterı́sticas de la imagen deberá ser cero, ṡ∗ = 0,
garantizándose ası́ que el robot manipulador detiene su movimiento. Ası́, la velocidad
2.3. CONTROL VISUAL CINEMÁTICO 23

del error entre las caracterı́sticas de la imagen y la velocidad de las caracterı́sticas de


la imagen, tiene la siguiente expresión:

ė = ṡ − ṡ∗ = ṡ (2.18)
Como se sugiere en [52], se impone un decrecimiento exponencial del error de las
caracterı́sticas de la imagen durante el control:

ė = −λ · e (2.19)
donde λ es una ganancia positiva, utilizada para aumentar o disminuir la velocidad
de decrecimiento citada anteriormente. A través de (2.16), (2.18) y (2.19), la ley de
control se define en [167]:

q̇ = −λ · Jˆ2D −1 · (s − s∗ ) (2.20)

Cuando el número de caracterı́sticas de la imagen es igual al número de variables


a controlar, es decir dim(s) = dim(q), la matriz jacobiana J2D es cuadrada, y su
inversa se podrá estimar en cada periodo de muestreo de visión. Cuando son utilizadas
las caracterı́sticas de la imagen redundantes, es decir dim(s) > dim(q), tendrá que
calcularse la pseudoinversa de la matriz J2D .
Durante el control, el error de las caracterı́sticas de la imagen disminuye y el de-
creciemiento exponencial definido en (2.19) se especificará como e para la matriz no
singular J2D [52]:

J2D · Jˆ2D −1 > 0 (2.21)

Como Jˆ2D −1 deberá calcularse para cada periodo de muestreo de visión y depende
de Z, la convergencia global del control no se verifica. Pero en una aproximación de la
posición deseada se podrá asegurar convergencia local, y el valor de Z en esa posición
será el que se utilice.

2.3.2. Control Visual Cinemático basado en posición


La extracción de caracterı́sticas del objeto en el plano de imagen respecto a la
referencia de la cámara o de cualquier otra referencia conocida en el espacio, utilizada
para controlar el robot, es la definición del control visual basado en posición o control
visual 3D. En la Figura 2.8 se muestra el control visual cinemático basado en la posición,
en el que las velocidades de articulación del robot se determinan por la ley de control
a través del error que existe, en cada iteración, entre la pose deseada y la actual.
Este tipo de control no se utiliza habitualmente ya que tiene dos desventajas fun-
damentales respecto al control visual basado en imagen.
La primera desventaja surge debido a la necesidad de estimar la pose respecto a la
cámara, lo que requiere información adicional sobre el modelo del objeto. La segunda
24 CAPÍTULO 2. ARQUITECTURA DEL CONTROL VISUAL

Figura 2.8: Control Visual Cinemático basado en la posición.

desventaja viene de la necesidad de calibrar la cámara y de ligar el par cámara/robot,


para garantizar un posicionamiento perfecto del sistema. Hay que decir que una cali-
bración precisa solamente es necesaria si la posición deseada se expresa en coordenadas
cartesianas. Si la posición deseada se determina enseñando al sistema, es decir, movien-
do el robot hacia la posición deseada y posteriormente estimando la pose, como en el
caso del control visual basado en imagen, no se necesita una calibración precisa [117].
La principal ventaja del control visual basado en posición es la separación entre las
fases de interpretación de la imagen adquirida y el control propiamente dicho, es decir
el control se realiza únicamente con información tridimensional, que se obtiene a través
de la imagen.
A continuación se presenta el modelo para la interacción entre el objeto (caracteri-
zado por su pose respecto a la cámara) y la cámara, es decir el jacobiano de la imagen.
Cabe decir que suponemos la obtención de una estimación perfecta de dicha pose. Co-
mo hemos dicho anteriormente, la pose del objeto se caracteriza por la rotación y la
traslación que existen entre la referencia del objeto y la de la cámara, c T0 (matriz de
transformación que incluye la rotación y la traslación). Esta caracterı́stica se puede
utilizar para el caso en que la cámara se encuentra colocada en el espacio mirando
hacia el robot y hacia el objeto, o cuando se encuentra en el efector final del robot
mirando hacia el objeto. En [166] se muestra otra posible opción para las caracterı́sti-
cas de la imagen basadas en la pose, es decir la pose actual de la cámara respecto a

su posición deseada, c Tc , y que se puede utilizar cuando la cámara se encuentra en el
efector final del robot y mirando hacia el objeto (ver figura 2.9). Debido a la necesidad
de garantizar una trayectoria lineal en el espacio cartesiano, [205][28], se ha utilizado la
caracterı́stica, c T0 , sin embargo, muchas de las caracterı́sticas definidas anteriormente
tienen comportamientos diferentes durante el control, y también en función de la posi-
ción de la cámara. Estos comportamiento diferentes fueron tratados por Cervera y
Martinet en [28].
Ası́ pues
 c

c R0 c t 0 T
T0 = ⇒s= c
t0 T c
u0 T θ) (2.22)
01×3 1
2.3. CONTROL VISUAL CINEMÁTICO 25

Figura 2.9: Caracterı́sticas de la imagen del objeto para el control visual basado en la
posición, donde Fw es el sistema de coordenadas del mundo, Fc el de la cámara, Fo el
del objeto y Fc∗ el deseado.

donde la rotación c R0 se expresa por el vector de rotación c u0 θ. Considerando el caso en


que una cámara se encuentra mirando hacia el objeto, el jacobiano de la velocidad de las
caracterı́sticas de la imagen (pose del objeto respecto a la cámara) y de las velocidades
de articulación se determina en dos fases. La primera respecto a la traslación y la
segunda respecto a la rotación.
El jacobiano de la imagen respecto a la traslación c t0 se define como:

c
ṫ0 = [−I3 S(c t0 )] · v (2.23)

Considerando la parte de la rotación, definida por el vector c u0 θ:

c
u̇0 θ = [03 Lω ] · v (2.24)
donde [110]:

θ  sinc(θ) 
c c
Lω ( u0 , θ) = I3 − · S( u0 ) + 1 − θ
· (S(c u0 ))2 (2.25)
2 2
sinc ( 2 )
y:

1 si θ = 0
sinc(θ) = sin(θ)
θ
si θ =
6 0
El jacobiano global utilizado para el control visual cinemático basado en posición, J 3D ,
para la caracterı́stica de la imagen c T0 , se define como:
 c   
ṫ0 −I3 S(c t0 )
ṡ = c = · v = J3D · v (2.26)
u̇0 θ 0 3 Lω
26 CAPÍTULO 2. ARQUITECTURA DEL CONTROL VISUAL

Utilizando una metodologı́a análoga a la que hemos utilizado para la derivación de la


ley de control visual basada en imagen, tenemos que la ley de control visual basada en
posición viene dada por:

q̇ = −λ · (Jˆ3D · c W e · e J R )−1 · (s − s∗ ) (2.27)

donde Jˆ3D es el jacobiano del control visual correspondiente (basado en posición), c W e


es la matriz de transformación entre el efector final y la cámara y e J R es el jacobiano
del robot expresado en el efector final.

2.3.3. Control Visual Cinemático Hı́brido


El control visual basado en imagen, como el visto en la sección 2.3.1, es robusto
a errores en el modelado de la cinemática del robot, de la cámara y de la forma
del objeto. Con todo esto, su dominio de estabilidad es local [77], existiendo en la
literatura un ejemplo de inestabilidad para un movimiento de rotación de 180◦ entorno
al eje óptico de la cámara [30]. Como intento para solucionar el problema de estabilidad
local, la comunidad cientı́fica ha buscado nuevas metodologı́as para el control visual
basadas en la construcción de modelos analı́ticos. Estas nuevas metodologı́as engloban
caracterı́sticas del control visual basado en imagen y del control basado en posición, y
como tal se denominan en la literatura como control visual hı́brido [44][73].
La primera metodologı́a de control visual hı́brido la propuso Malis [114][113], control
visual 2 21 D, y se basa en la utilización de seis caracterı́sticas de la imagen del objeto.
Las dos primeras se refieren a un punto de la imagen del objeto, la tercera se refiere
a la profundidad Z, y las tres coordenadas siguientes se refieren a la rotación entre la

posición actual y la deseada de la cámara, c Rc . A continuación se deduce el jacobiano
de la imagen para esta metodologı́a.
Si se incluye artificialmente, en la tercera coordenada del punto m, definida en la
ecuación (2.4), la variable z = ln(Z), se obtiene el vector de coordenadas métricas
extendido, me :
X
me = [x y z]T = Z
Y
Z
ln(Z)]T (2.28)

Calculando la derivada del punto me respecto del tiempo, se obtiene su velocidad:


     
Ẋ·Z−X·Ż
Z2 1 0 −X Ẋ
  1 Z
ṁe = [ẋ ẏ ż]T =  Ẏ ·Z−Y ·Ż
Z2  = ·  0 1 − YZ  ·  Ẏ  (2.29)
Z
Ż 0 0 1 Ż
Z

ṁe = −Lv (me ) · ẋ (2.30)

Utilizando las ecuaciones (2.3) y (2.30), se obtiene la siguiente relación entre las
velocidades de referencia en movimiento v, donde está colocada la cámara, y del punto
2.3. CONTROL VISUAL CINEMÁTICO 27

en la imagen:
 
− Z1 0 x
Z
x · y −(1 + x 2
) y
ṁe =  0 − Z1 y
Z
1 + y2 −x · y −x  · v (2.31)
1
0 0 −Z y x 0
donde Z se calcula a través de la expresión Z = ρ1 ·d1 ∗ , ρ1 = det(H)
nT ·m
y n = R·n∗ , H hace
referencia a la transformación entre la posición de la cámara en la posición actual y la
posición deseada. La matriz de rotación R y n∗ se obtiene a través de de la citada matriz
de homografı́a (n∗ es la normal, concepto usado por Malis en diferentes trabajos [110]).
La distancia d1 ∗ se obtiene de forma manual a través del posicionamiento del robot en
la posición deseada, no siendo necesaria una gran precisión en el valor estimado, ya
que éste tiene poca influencia en la estabilidad del sistema [114].
Luego podemos concluir que:

ṁe = [Lv (me ) L(v,ω) (me )] · v (2.32)


c∗
Es necesario incluir el vector uc θ que representa la rotación, de forma análoga a
lo expresado en la ecuación (2.24), para obtener ası́ el jacobiano de la imagen para el
control visual 2 21 D, J2 1 D :
2
   
ṁe Lv (me ) L(v,ω) (me )
ṡ = c∗ = ∗ · v = J2 1 D · v (2.33)
uc θ 0 Lω (c uc , θ) 2

El vector del error se define de la siguiente forma:


 
x − x∗
 y − y∗ 
e= 
 ln( Z∗ )  (2.34)
Z
c∗
uc θ
donde ZZ∗ = ρ1 · n∗T · m∗ , [114], se calcula a través de la matriz de homografı́a H.
Utilizando metodologı́a análoga a la utilizada para la derivación de las leyes de
control visual basadas en imagen y en la posición, tenemos que la ley de control visual
2 21 D viene dada por:

q̇ = −λ · (Jˆ2 1 D · c W e · e J R )−1 · e (2.35)


2

Después de ver los detalles de este primer método que desacopla el movimiento de
traslación y de rotación de la cámara, y que tiene como caracterı́stica una convergencia
global para las caracterı́sticas de la imagen del objeto deseadas, se pueden introducir
ahora otros métodos. En [49] Deguchi propuso un método que desacopla también la
traslación y la rotación para el caso de control visual basado en imagen, obtenida a
través de la ley de control. Otro método para separar los movimientos de traslación y
rotación del eje Z de los restantes ejes del movimiento de referencia de la cámara, lo
propusieron Corke y Hutchinson [42][44].Los tres métodos anteriores, en conjunto con
el control visual basado en la imagen fueron objeto de un estudio comparativo en [57].
Recientemente están siendo estudiados controladores basados en sistemas hı́bridos
(Hybrid Switched Systems) para el control visual de robots. Estos sistemas permiten la
28 CAPÍTULO 2. ARQUITECTURA DEL CONTROL VISUAL

conmutación entre controladores durante la ejecución de alguna tarea, para ası́ utilizar
las mejores caracterı́sticas de cada controlador en cada situación. Podemos encontrar
ejemplos de utilización de sistemas hı́bridos en [34][58][59][77][116].

2.4. Control Visual Dinámico


El control visual de robots manipuladores ha sido mayoritariamente abordado por la
comunidad cientı́fica en lo que respecta a la cinemática del movimiento del robot (con-
trol visual cinemático). Asumimos que la velocidad del efector final y las velocidades
articulares del robot se calculan a través de una ley de control visual. Estas velocidades
se utilizarán posteriormente como referencia de velocidad para un control de velocidad
interno, que es el responsable del movimiento del robot. La ley de control visual se
determina considerando que el robot es un posicionador perfecto. Se puede concluir,
por tanto, que este tipo de control visual, cinemático, no tiene en cuenta la dinámica
del robot, no siendo ası́ la mejor solución para movimientos rápidos. Considerando la
dinámica del robot, es posible proyectar otro tipo de controladores que calculan direc-
tamente la acción de control de las articulaciones del robot, de modo que éste realice
una determinada tarea utilizando información visual. Este tipo de control se define
como Control Visual Dinámico en contrapunto con el Control Visual Cinemático, visto
anteriormente. Tres razones para la utilización del control visual cinemático en la gran
mayorı́a de las soluciones propuestas e implementadas en la práctica se presentaron en
[82]:

1. El elevado tiempo de muestreo de realimentación del lazo de visión, en relación


al control visual dinámico en un problema complejo;

2. La mayorı́a de los robots industriales poseen una interfaz capaz de recibir veloci-
dades o incrementos de posición cartesianos, que simplifican la implementación
práctica de sistemas de control visual y los vuelve más triviales;

3. Existe separación entre las singularidades cinemáticas del robot y las singulari-
dades de la ley de control de visión, siendo tratadas las primeras en el lazo interno
de control del robot, implementado por el fabricante.

En la figura 2.10 se muestra el diagrama de bloques del Control Visual Dinámico. En


[82] este tipo de control se define también como Control Visual Directo, Direct Visual
Servo, pues las acciones de control se calculan directamente por la ley de control visual.
La utilización del control visual de tipo dinámico es un tema de gran interés en
la actualidad para la comunidad cientı́fica. Su desarrollo tiende a aumentar, debido al
hecho de que el tiempo de muestreo del lazo de visión tiende a disminuir, y también se
pretende mejorar los funcionamientos dinámicos del control visual de robots manipu-
ladores. A semejanza del control visual cinemático, el control visual dinámico también
puede ser definido en imagen y en posición, como se puede ver en las figuras 2.11 y
2.12, respectivamente.
A lo largo de los últimos años se han propuesto varias soluciones basadas en el
control visual dinámico. Hashimoto en [74] derivó una ley de control óptima, que
2.4. CONTROL VISUAL DINÁMICO 29

Figura 2.10: Control Visual Dinámico.

Figura 2.11: Control Visual Dinámico basado en imagen.

aplicó a un robot manipulador planar y a un robot PUMA, ambos en configuración


eye-in-hand. Kelly en [93] proyectó un controlador utilizando el jacobiano traspuesto
del robot, (the Jacobian transpose approach) [165], aplicado a un robot planar en
la configuración eye-to-hand, en el que es necesario determinar la orientaciónde la
cámara respecto a la referencia del mundo. Lefeberg [105] extendió el trabajo anterior
de Kelly, aplicando técnicas adaptables para solucionar el cálculo de la orientación de
la cámara. Zergeroglu [208] proyectó un controlador basado en técnicas back-stepping
para un robot manipulador planar en ambas configuraciones eye-in-hand y eye-to-hand.
Cheah [32] propuso un controlador, utilizando el jacobiano traspuesto del robot, para
el caso en que el vector de las fuerzas gravitatorias del robot es desconocido. En [56]
se aplicó un controlador óptimo, inverse optimal H control , a un robot manipulador
planar en configuración eye-in-hand. Kelly, en [94] propuso un nuevo controlador para
aplicarlo a un robot manipulador en configuración eye-in-hand. Se propusieron también
otros controladores dinámicos para aplicaciones en robótica móvil [160][161].
30 CAPÍTULO 2. ARQUITECTURA DEL CONTROL VISUAL

Figura 2.12: Control Visual Dinámico basado en posición.

2.5. Control Visual por estimación del modelo de


interacción
El modelo de interacción entre las caracterı́sticas de la imagen del objeto y del robot,
se puede obtener de forma analı́tica, es decir es posible obtener relaciones matemáticas
entre el movimiento de las citadas caracterı́sticas y de las articulaciones del robot,
ası́ como de los respectivos parámetros del modelo. La elección de las caracterı́sticas
tiene un papel importante en el modelo de interacción citado, es decir, en la obten-
ción a priori del jacobiano de la imagen, para utilizarlo en el control visual del robot
manipulador.
Para que el estudio basado en el conocimiento a priori del modelo analı́tico pueda
ser fiable es necesario conocer el sistema en su totalidad o con algunas incertidumbres
tratadas en la literatura [110][112], como son el modelo de la cámara, el modelo de la
cinemática del robot y el más importante, el jacobiano de la imagen. Podemos concluir,
por tanto, que realizando el control visual con este tipo de modelos, su funcionamiento
no se degrada con la presencia de errores. Respecto a los parámetros intrı́nsecos, éstos
se pueden estimar durante el control, como se propuso en [33]. No obstante, en [111]
Malis evolucionó este concepto de incertidumbres en el modelo, ya que introdujo el
control visual invariante respecto a los parámetros intrı́nsecos de la cámara.
Como es conocido, la calibración de robots y de cámaras es un trabajo complejo,
que requiere equipamientos y algoritmos especializados [8][158]. Por lo tanto, cuando
no se pretende o no es posible obtener a priori el modelo de interacción, es necesario
utilizar métodos de estimación a través de modelos, o el aprendizaje del propio modelo
de interacción. Estos métodos de estimación pueden ser utilizados antes o durante
la ejecución del control visual. La estimación del modelo de interacción también es
utilizada cuando el objeto a tratar es bastante complejo y dificil de caracterizar a
través de la información visual. El control visual de robots basado en estos métodos ha
sido denominado en la literatura como no-calibrado, uncalibrated visual servoing [73].
En el caso de la obtención del modelo de estimación a través de su conocimiento
a priori, las caracterı́sticas de la imagen utilizadas en los trabajos presentados por
la comunidad cientı́fica para estimar el modelo de interacción, son puntos del objeto.
2.6. PLANIFICACIÓN DE TRAYECTORIAS PARA EL CONTROL VISUAL 31

Cuando se utilizan otros tipos de caracterı́sticas, los métodos fallan debido a que los
modelos de estimación están basados en puntos. El estimador más utilizado para el
jacobiano es el de Broyden, el cual ha sido aplicado por Jägersand [84], Peipmeier
[138][139] y Hosoda [80][81]. Todos los métodos referenciados estiman el jacobiano en
la dirección de la posición deseada de las caracterı́sticas de la imagen, es decir, no se
estima el jacobiano en todo el espacio de las caracterı́sticas de la imagen. En [80] se
estima el modelo de interacción entre el robot y la imagen, teniendo como objetivo la
convergencia asintótica de las caracterı́sticas de la imagen para un valor deseado. Cabe
decir por tanto, que los parámetros del modelo estimado pueden no converger a los
valores reales. Ya en [81] el modelo del robot es conocido por la forma de incorporar
un control de fuerza en una estructura de control visual, en la que el jacobiano de la
imagen se estima en cada iteración del control. En [84] el problema del control visual
de robots se formula a través de un sistema de optimización no lineal por mı́nimos
cuadrados, resuelto por un método de Newton utilizando el estimador de Broyden para
el jacobiano, para mover el efector final del robot respecto a un objeto estático. En
[138][139] se utilizó un estudio similar para el caso en que el objeto esté en movimiento.
En [154][184] se utilizan filtros de Kalman para estimar el jacobiano de la imagen.
El modelo de interacción se puede obtener utilizando técnicas de aprendizaje, es
decir, a través de redes neuronales [26][95][123] y redes neuro-fuzzy [182][183]. El es-
tudio descrito en [123] no requiere el conocimiento de la cinemática del robot y de la
velocidad de la posición del objeto respecto del robot, no obstante es necesario realizar
pruebas en todo el espacio de trabajo del robot. En [26] para determinar la pose del
objeto respecto a la referencia del efector final se utiliza una red neuronal, realizándose
posteriormente el control respecto a la referencia citada. Este estudio necesita también
de un entrenamiento exhaustivo en la fase inicial, es decir antes de realizar el con-
trol. La red neuro-fuzzy utilizada en [182][183], se desarrolla para realizar movimientos
rápidos de la cámara cuando ésta está lejos de la posición deseada, y movimientos más
lentos cuando está cerca de la posición deseada. Este estudio necesita también de un
entrenamiento exhaustivo en su fase inicial, off-line.
Todos los métodos expuestos tienen la particularidad de no disponer de un modelo
analı́tico del jacobiano de la imagen, como se ha visto anteriormente.

2.6. Planificación de Trayectorias para el Control


Visual
La planificación de la trayectoria de las caracterı́sticas de la imagen del objeto, fue
una solución para el control visual de robots manipuladores presentada en [122], que
permite mejorar el empleo del control visual cinemático basado en imagen. La referencia
(trayectoria de la imagen en el plano) es seguida durante el control y generada off-line,
a través de las imágenes del objeto, inicial y deseada.
El método para generar la trayectoria de las caracterı́sticas de la imagen del objeto
se compone de tres partes distintas, pero al mismo tiempo ligadas entre sı́:
1. La primera parte se dedica a la inicialización del método, en el que a partir
de la imagen inicial y de la imagen deseada se obtiene la pose para inicializar el
32 CAPÍTULO 2. ARQUITECTURA DEL CONTROL VISUAL

método, es decir, la pose de la cámara en su posición inicial respecto a la posición


deseada;

2. La segunda parte consiste en un proceso iterativo en el que se genera un conjunto


de caracterı́sticas de la imagen del objeto que componen el camino a recorrer en
el plano de imagen;

3. La tercera y última parte consiste en construir una trayectoria a lo largo del


tiempo, compuesta por el conjunto de caracterı́sticas generado anteriormente.

Durante la fase de inicialización del método se obtienen las caracterı́sticas de la


imagen del objeto correspondientes a dos posiciones de la cámara, inicial y deseada.
La matriz de rotación y el vector de traslación entre el objeto y las posiciones ini-
cial/final de la cámara se calculan utilizando un método de estimación de la pose. La
inicialización termina con el cálculo de la pose inicial respecto a la deseada, a través
de las matrices de rotación y los vectores de traslación estimados anteriormente.
El proceso iterativo a través del cual se genera el conjunto de caracterı́sticas de la
imagen del objeto que componen el camino a recorrer en la imagen, se inicia con la
estimación de la pose en el instante de tiempo siguiente. Esta pose Υk+1 , se calcula a
través de la pose actual Υk , y una fuerza compuesta, F .

F (Υk )
Υk+1 = Υk + εk · , εk > 0 (2.36)
|| F (Υk ) ||

donde εk es un valor de escala positivo que toma el valor del incremento k.

F (Υk ) = Fa (Υk ) + Fr (Υk ) (2.37)

Esta fuerza está compuesta por la suma de dos fuerzas diferentes, una atractiva Fa ,
y otra repulsiva Fr . La fuerza atractiva minimiza la trayectoria y la fuerza repulsiva
evita que la trayectoria alcance los lı́mites de la imagen. Otro tipo de fuerza repulsiva,
para evitar lı́mites de articulación, se describe en [122].
Todas las poses siguientes, hasta que se alcance la pose deseada, se estiman a través
de un proceso recursivo que se inicia en la pose inicial. La fuerza atractiva toma su
mayor valor en el instante inicial, disminuyendo después hasta que se anula en la pose
final. El proceso recursivo termina cuando la fuerza atractiva toma un valor nulo,
significando esto que la pose actual se encuentra en la pose deseada. El resultado del
proceso iterativo es un vector de caracterı́sticas de la imagen del objeto, que contiene
los valores de las caracterı́sticas durante el camino desde la posición inicial hasta la
posición final.
La trayectoria final de las caracterı́sticas de la imagen del objeto a lo largo del
tiempo, sp , deberá ser continua y diferenciable, siendo escogida una función de clase
C 2 (función de segunda derivada continua). Esta función se construye interpolando el
2.6. PLANIFICACIÓN DE TRAYECTORIAS PARA EL CONTROL VISUAL 33

vector obtenido en el proceso iterativo, utilizando un tiempo de muestreo predefinido,


∆T = tk − tk−1 , y el tiempo final deseado para el control visual.

sp (t) = Ak · t3 + Bk · t2 + Ck · t + Dk (2.38)

en la que: (k + 1) · ∆T ≤ t ≤ (k) · ∆T .

La ley de control utilizada sigue el método original [122]:

−1 1 −1
q̇ = −λ · J2D · (ep ) + · J2D · (epp ) (2.39)
∆T

en la que: ep = sk − spk ; epp = spk − spk−1


Para completar la información contenida en este capı́tulo se pueden consultar las refe-
rencias [166][64][38][195].
34 CAPÍTULO 2. ARQUITECTURA DEL CONTROL VISUAL
CAPÍTULO 3

PLATAFORMA DE PRUEBAS
PARA ALGORITMOS DE
CONTROL VISUAL

En este capı́tulo se plantea el modelado y la identificación de un robot cartesiano


para su uso como plataforma de pruebas de los algoritmos de control visual directo
que se desarrollan en la presente tesis. Se opta por un robot cartesiano para poder
abordar determinados problemas del control (predicción de la trayectoria, esquema y
algoritmo de control, etc) evitando determinados aspectos de la dinámica de robots
seriales acoplados.
Este capı́tulo plantea un nuevo modelo para un robot cartesiano realizando las conside-
raciones necesarias para obtener una representación fidedigna del comportamiento del
sistema. El modelo obtenido es por tanto no lineal y acoplado, y se emplea para testear
los esquemas de control planteados en esta tesis (en el capı́tulo 7).

35
CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
36 CONTROL VISUAL

3.1. Introduction

El control vectorial es el método más común de control de los motores de inducción


trifásicos de potencia en la industria y es ampliamente utilizado por los drivers para
aplicaciones de altos requerimientos dinámicos [108][48]. En el caso de las maquinas
de inducción, el control de la orientación del flujo del motor (rotor flux oriented-RFO)
requiere un conocimiento preciso de al menos algunos de los parámetros del motor para
poder realizar un control satisfactorio [186]. Los parámetros necesarios para controlar
el robot dependen del esquema de control RFO utilizado.

Los parámetros del motor de inducción cambian con la temperatura, frecuencia


y saturación [152]. La consecuencia de la variación entre los parámetros utilizados
en el control y los reales del mismo es que la posición del flujo no coincidirá con la
asumida por el controlador. Esto provoca una pérdida de sincronismo entre el flujo
magnético y la posición del rotor. Para evitar esta situación es necesario disponer de
unos parámetros lo suficientemente precisos para el controlador [194].

Estos motores de inducción trifásicos han sido los actuadores utilizados en este
robot cartesiano. En este capı́tulo se presentan las fases desarrolladas para realizar el
modelado y la identificación.

El modelo obtenido en este capı́tulo, tiene en cuenta la dinámica del robot, los
comportamientos no lineales y el acoplamiento entre ejes para incrementar el ancho de
banda del lazo de control, en otras palabras, cuanto mayores son los requerimientos
dinámicos exigidos al robot, mejor ha de ser el modelo con el que se trabaje. En esta
tesis se presenta un modelo y una identificación de gran detalle del robot diseñado.

Tras el modelado, se realiza la identificación del robot y ambas son validadas me-
diante diferentes simulaciones y experimentos reales. Una vez se obtiene el modelo, se
puede diseñar un controlador no lineal para este robot [134].

Este capı́tulo está estructurado de la siguiente forma: La sección 3.2 se presenta


parte de la metodologı́a empleada para el diseño del robot, los accionamientos utilizados
y las medidas de seguridad adoptadas para un funcionamiento seguro. En la sección
3.3 se desciben el resto de elementos del robot, por ejemplo el sistema de control y
comunicaciones. En el apartado 3.4 podemos encontrar el modelado del robot, que
se divide en diferentes pasos: en los apartados 3.4.1 y 3.4.2 se presenta el modelo de
los accionamientos y los convertidores, mientras que en el apartado 3.4.3 se presenta
el modelo mecánico (cuyo análisis de compatibilidad y causalidad computacional se
realiza en el apartado 3.5).

En el apartado 3.6 se presentan los resultados de la identificación. El apartado 3.7


presenta los resultados de la comparación del modelo obtenido y el robot real, pero este
modelo es demasiado complejo para ser utilizado en el cálculo de un regulador. Por
ello, se plantea en el apartado 3.8 un modelo de Simulink que refleje el comportamiento
del sistema y que al mismo tiempo sirva para el ajuste del regulador a utilizar.
3.2. DISEÑO DEL ROBOT 37

3.2. Diseño del robot


3.2.1. Introducción
El robot ha sido diseñado usando la herramienta informática Mechanical Desktop.
En la figura 3.1 podemos encontrar algunas imágenes del proceso de diseño en su
fase final. Una vez se tiene este diseño en formato CAD, se pueden conocer datos de
gran importancia como la masa de los eslabones (que nos permite corroborar si la
suposición de par realizada para los accionamientos es correcta), posibles colisiones
de los eslabones, aceleraciones máximas alcanzables, etc. Los accionamientos en este
caso no disponen de reductor. Esta decisión se ha tomado debido a que los requisitos
dinámicos son elevados y se opta por un accionamiento directo sin reductor a pesar de
tener que usar motores de gran potencia/par para la aplicación (con el consiguiente
incremento de peso). En [126] se pueden encontrar detalles adicionales referentes al
diseño del robot cartesiano.

3.2.2. Medidas de seguridad


En nuestro caso, hemos de aplicar el real decreto RD1215/971 y nuestra máquina
o robot ha de tener el marcado CE2 .
Las medidas de seguridad se han cuidado mucho para cumplir la normativa aplicable
debido a que en el espacio de trabajo del robot puede existir presencia humana. Por lo
tanto, es necesario que el robot detecte la presencia de personas dentro de este espacio.
Para ello se han instalado barreras fotoeléctricas alrededor de todo el perı́metro del
robot (las barreras utilizadas son las 3RG7826-1CB1 de SIEMENS) y se ha instalado
una seta de emergencia para parar el movimiento del robot en cualquier momento.
Otra consideración importante realizada ha sido la seguridad del propio robot frente
a fallos de programación. Se han conectado finales de carrera redundantes en cada eje
de forma que el primero se lee desde el sistema de control y el segundo elimina la
tensión y activa el freno eléctrico (de los motores).

3.3. Descripción del robot


La estructura final del robot tiene unas dimensiones de 1690mm de de alto, 2310mm
de largo y 1400mm de ancho. Los accionamientos elegidos son motores de inducción
trifásicos sı́ncronos de la serie 1FK6 de SIEMENS con las siguientes caracterı́sticas
(ver figura 3.2): Para los ejes X (en adelante ξ) e Y (en adelante ψ): par con ω=0 de
16Nm, par nominal de 10.5Nm. Para el eje Z (en adelante ζ): par con ω=0 de 11Nm,
par nominal de 6Nm. Los drivers utilizados (variadores de frecuencia) son de la misma
1
Real Decreto 1215/1997, de 18 de julio por el que se establecen las disposiciones mı́nimas de
seguridad y salud para la utilización por los trabajadores de los equipos de trabajo. BOE núm. 188
de 7 de agosto de 1997.
2
Para obtener el marcado CE se ha de obtener la compatibilidad electromagnética del armario
de control (emitido por un organismo de certificación autorizado) y cumplir la seguridad eléctrica
(obteniendo también el certificado correspondiente).
CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
38 CONTROL VISUAL

Figura 3.1: Diseño del robot usando herramientas informáticas.


3.4. MODELADO DEL ROBOT 39

marca y pertenecen a la serie Simovert MasterDrives MC, en concreto se trata de los


6SE7022-1EP50 (para el eje ξ), 6SE7071-OTP50-Z (para el ψ) y 6SE7016-OTP50-Z
(para el ζ). El primero de ellos hace de rectificador para los demás, de esa forma
podemos abaratar el precio de los drivers. La elección de estos accionamientos va a
permitir el control desde una tarjeta con salidas analógicas.
El diseño de la estructura mecánica se presenta en [141] y [148]. En la figura 3.2
podemos encontrar el desglose de las variables utilizadas en el modelado. Para el con-
trol del robot se ha de emplear un sistema de control de ejes. Para realizar esta tarea
se puede usar un sistema basado en PC (con una tarjeta especı́fica por ejemplo tipo
DSPACE ) o una tarjeta electrónica de control autónoma (por ejemplo tipo PMAC ).
Para capturar la mayorı́a de las señales se ha utilizado la memoria RAM de los ac-
cionamientos, transfiriendo posteriormente los datos al ordenador vı́a Profibus DP.
El aspecto del robot implementado lo podemos ver en las figuras 3.3, 3.4 y 3.5. En
estas imágenes se aprecia el sistema de transmisión, los accionamientos, los drivers, el
armario de control, etc.

3.4. Modelado del robot


3.4.1. Modelo del motor de inducción
Desafortunadamente, en la vida real no siempre podemos encontrar parámetros
constantes o relaciones lineales entre variables. En los motores reales, el núcleo se
satura, lo que implica que el flujo ψm es una función de la corriente de magnetización
escalar im = |is + ir | .
Considerando ψs y ψr como los flujos a través del estator y del rotor, podemos
establecer las relaciones de ψm , ψ̇s , ψ̇r y las corrientes en el motor como:

ψs = Lsl · is + Lm · (is + ir ) = Lsl · is + ψm (3.1)


ψr = Lrl · ir + Lm · (is + ir ) = Lrl · ir + ψm (3.2)
ψ̇s = −Rs · is + us (3.3)
ψ̇r − j · ωr · ψr = −Rs · ir (3.4)

(La identificación de esos parámetros puede verse en la tabla 3.3 y la definición de los
mismos en la tabla 3.1).
Las corrientes se pueden calcular en función del flujo del estator y del rotor.

1
is = · (ψs − ψm ) (3.5)
Lsl
1
ir = · (ψr − ψm ) (3.6)
Lrl

Usando las ecuaciones de (3.1) a (3.6), el flujo principal ψm se puede expresar


mediante ψs y ψr :
CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
40 CONTROL VISUAL

Figura 3.2: Arquitectura mecánica del sistema (representación del robot).


3.4. MODELADO DEL ROBOT 41

Figura 3.3: Robot cartesiano obtenido (1).


CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
42 CONTROL VISUAL

Figura 3.4: Robot cartesiano obtenido (2).


3.4. MODELADO DEL ROBOT 43

Figura 3.5: Robot cartesiano obtenido (3).


CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
44 CONTROL VISUAL

ψs = Lsl · is + Lm · (is + ir ) (3.7)


ψr = Lrl · ir + Lm · (is + ir ) (3.8)

Despejando ψm , obtenemos la ecuación explı́cita del flujo principal:


 
1 1
· ψs − · ψr
Lsl Lrl
ψm =   (3.9)
1 1 1
+ +
Lm (im ) Lsl Lrl
En la expresión (3.9), el valor de la inductancia Lm es función de la corriente de
magnetización im , la cual puede ser calculada a partir de las corrientes instantáneas
del motor.
q
im = (isd + ird )2 + (isq + irq )2 (3.10)
La inducción variable viene determinada por la corriente de magnetización de acuer-
do con la ecuación (3.11), la cual ha demostrado ser una buena aproximación en la
práctica. Lmo es la inductancia cuando el motor no está saturado y imo es la corriente
cuando empieza a haber saturación. Por último, α es el factor para el cual la curva de
Lm empieza a decrecer en corrientes altas.



 Lmo im ≤ imo



Lm = Lmo 2 im > imo (3.11)

 1 1


 1 + α · Lmo · im · −
imo im

Las ecuaciones diferenciales (3.3) y (3.4), reflejan el comportamiento dinámico del


motor. En ellas, ψm aparece de forma implı́cita a través de las expresiones (3.5), (3.6),
(3.9), (3.10) y (3.11). El valor de ψm no puede ser expresado de forma explı́cita para
valores determinados de ψs y ψr , pero puede ser calculada de forma iterativa. Los pasos
son: primero asumir un determinado valor de Lm e insertarlo en la ecuación (3.9) para
calcular el valor de ψm . Después, calcular (3.5) y (3.6) para determinar is e ir . A
continuación, calcular la corriente de magnetización escalar im . Finalmente, se puede
calcular el valor de Lm usando la expresión (3.11). El valor exacto de ψm se alcanza
si éste valor es igual al valor del principio del bucle iterativo. Este subapartado se ha
desarrollado extrayendo información de [194] y no es una aportación de esta tesis.

3.4.2. Modelo del convertidor y del controlador


La función principal del convertidor es la de transformar la energı́a alterna de la
red eléctrica (tensión y frecuencia fijas) a los valores que se desean aplicar al motor.
Este proceso de transformación se puede dividir en tres pasos: conversión AC-DC
3.4. MODELADO DEL ROBOT 45

im Corriente de magnetización escalar


is Corriente del estator
ir Corriente del rotor
isq ,isd Corrientes instantáneas del estator
irq ,ird Corrientes instantáneas del rotor
im0 Corriente cuando empieza a haber saturación
Lsl ,Lrl Inductancia del estator y del rotor
Lm Inductancia equivalente del motor
Lm0 Inductancia del motor cuando todavı́a
no está saturado
ψs ,ψr Flujo magnético del estator y del rotor
ψm Flujo magnético equivalente del motor
o flujo principal
us Tensión de entrada aplicada
j Operador complejo
ωr Velocidad angular del rotor
α Factor para el cual Lm empieza a decrecer

Tabla 3.1: Definición de constantes y variables en el modelo del motor.

Figura 3.6: Controlador del motor de inducción. Rectificador, filtro e inversor PWM
(elementos incluidos en los drivers 1FK6).

Figura 3.7: Diagrama de control V/Hz. Esquema basado en el modelo de estado esta-
cionario del motor.
CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
46 CONTROL VISUAL

(rectificación), filtrado y conversión DC-AC (inversor). En la figura 3.6 podemos ver


una representación esquemática del controlador del motor de inducción [157].
El esquema de control V/Hz se basa en el modelo de estado estacionario del mo-
tor [157]. La filosofı́a del esquema de control consiste en mantener constante el flujo
magnético. Podemos ver en la figura 3.7 el esquema de control para motores de induc-
ción.

3.4.3. Modelo mecánico


Considérese el sistema mecánico de 3 grados de libertad que se puede ver en la figura
3.2, que representa su arquitectura constructiva. Dicho sistema tiene tres motores con
sus sistemas de transmisión por correa para conseguir los movimientos en cada eje.
Los motores están configurados en acoplamiento directo con las poleas dentadas de
la transmisión, lo que permite una dinámica de gran velocidad en los movimientos.
En la figura 3.2, se puede ver una representación del robot en la que se especifican
gráficamente las variables utilizadas para realizar el modelado. Los pares, ángulos,
rozamientos, masas, etc. están representados también en esta figura.
Se trata pues de una representación funcional de los elementos mecánicos de trans-
misión más importantes, obviándose los elementos estructurales que permiten la rigidez
mecánica de los eslabones. Las variables y constantes que se utilizarán en el modelo se
describen en la tabla 3.2.
Las consideraciones que se realizan para el modelado son:

Elasticidad de las correas de transmisión y flexión de los ejes nula;

Se desprecian los momentos de inercia de las poleas;

Se desprecian las tensiones a las que están sometidas las correas cuando no se
aplica par en las poleas (sólo afectan a las fuerzas de reacción que soporta la
estructura).

Cabe destacar que se ha querido incorporar al análisis las fricciones secas, que
son aquellas debidas a las fuerzas de interacción de elementos en contacto con un
movimiento relativo entre ellos, bien de rotación o de traslación. El motivo es que
debido a la robustez caracterı́stica del robot cartesiano, y su peso correspondiente,
dicha fricción no debe ser despreciable respecto a los pares motores generados en cada
eje.
Las expresiones del modelo del robot están divididas en dos grupos: ecuaciones
de sub-sistemas y relaciones inter-variables. Estas expresiones representan el compor-
tamiento dinámico completo del robot.
En la tabla 3.2 encontramos la descripción de las variables y constantes del modelo
(realmente, no todas las variables están reflejadas en esta tabla, por ejemplo ωξ1 no
se encuentra, pero en la ecuación (3.47) podemos ver la relación con otra variable
considerada en la tabla 3.2).
3.4. MODELADO DEL ROBOT 47

Πµξ , Πµψ , Πµζ Pares generados por los motores ξ, ψ y ζ respectivamente


que dan lugar al movimiento en cada uno de los ejes
θξ1 , θψ1 , θζ1 Ángulos girados por los motores ξ, ψ y ζ respectivamente
θξ2 , θψ2 , θζ2 Ángulos girados por las poleas ξ, ψ y ζ
respectivamente que dan lugar el movimiento en cada eje
Π1 , Π 2 , Π 3 Par de torsión aplicado a los muelles equivalentes de las
juntas Hooke existentes en las transmisiones de ξ, ψ y ζ
Φρξ1 , Φρψ1 , Φρζ4 Fuerzas de reacción en la estructura del pórtico para
compensar las fuerzas Φ1 , Φ2 , Φ3 que provocan el
movimiento del carro en cada uno de los ejes ξ, ψ y ζ
Φρξ2 , Φρξ3 Fuerzas de reacción horizontales en las poleas del eje ζ
Φρζ1 , Φρζ2 , Φρζ3 Fuerzas de reacción verticales que compensan el efecto
de la gravedad de las masas µξ , µψ , µζ
Rρξ , Rρψ , Rρζ Rozamientos (o fricciones) secos en la rotación de los ejes
debidos a las fuerzas de interacción entre elementos
Rλξ , Rλψ , Rλζ Rozamientos (o fricciones) secos en la traslación de los ejes
debidos a las fuerzas de interacción entre elementos
Φ1 , Φ 2 , Φ 3 Fuerzas transmitidas por las poleas a las correas de ξ, ψ y ζ
ξ, ψ, ζ Posición del robot en cada uno de los ejes ξ, ψ y ζ
µξ , µ ψ , µ ζ Masa del motor (sólo la parte que gira), patı́n (si procede),
junta Hooke y polea que acciona ξ, ψ y ζ respectivamente
µ2ψ , µ2ζ Masa del motor (sólo parte que no gira) que acciona
sobre ψ y ζ
µ4 Masa de la barra de desplazamiento vertical (eje ζ)
κρ Constante elástica de torsión de las juntas Hooke
βρ1 , βρ2 , βρ3 Coeficientes de fricción viscosa de rotación para los
motores ξ, ψ y ζ
βλ1 , βλ2 , βλ3 Coeficientes de fricción viscosa de desplazamiento lineal
para los ejes ξ, ψ y ζ
κρ1 , . . . , κρ6 Coeficientes de fricción seca en la rotación
κλ1 , . . . , κλ6 Coeficientes de fricción seca en el desplazamiento lineal
Φ1 , Φ 3 , Φ 2 Fuerzas transmitidas por las poleas y las correas de los ejes
ξ, ψ y ζ
ρΠ ,γ Radio de las poleas y aceleración de la gravedad
Yξ , Y ψ , Y ζ Momentos de inercia de los motores (de la parte que gira)
que accionan en ξ, ψ y ζ

Tabla 3.2: Definición de constantes y variables en el modelo del robot.


CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
48 CONTROL VISUAL

Ecuaciones de los sub-sistemas:

Πµξ = Yξ · ω̇ξ1 + βρξ · ωξ1 + Π1 (3.12)


Π1 = κρ · (θξ1 − θξ2 ) (3.13)
Rρξ = κρ1 · |Φρξ1 | + κρ2 · Φρζ1 (3.14)
Φ1 · ρΠ = aux(Π1 , Rρξ , ωξ2 ) (3.15)
Rλξ = κλ1 · |Φρψ1 | + κλ2 · |Φρζ2 + Φρζ3 + (µ2ψ + µ2ζ ) · γ + Φ3 | (3.16)
aux(−Φ1 , Rλξ , ςξ ) = (µψ + µ2ψ + µζ + µ2ζ + µ4 ) · ς˙ξ + βλξ · ςξ (3.17)
Πµψ = Yψ · ω̇ψ1 + βρψ · ωψ1 + Π2 (3.18)
Π2 = κρ · (θψ1 − θψ2 ) (3.19)
Rρψ = κρ3 · |Φρψ1 | + κρ4 · Φρζ2 (3.20)
Φ2 · ρΠ = aux(Π2 , Rρψ , ωψ2 ) (3.21)
Rλψ = κλ3 · (µζ + µ2ζ + µ4 ) · |ς˙ξ | + κλ4 · |Φρζ3 + µ2ζ · γ + Φ3 | (3.22)
aux(Φ2 , Rλψ , ςψ ) = (µζ + µ2ζ + µ4 ) · ς˙ψ + βλψ · ςψ (3.23)
Πµζ = Yζ · ω̇ζ1 + βρζ · ωζ1 + Π3 (3.24)
Π3 = κρ · (θζ1 − θζ2 ) (3.25)
Rρζ = κρ5 · |Φρξ2 | + κρ6 · Φρζ3 (3.26)
Φ3 · ρΠ = aux(Π3 , Rρζ , ωζ2 ) (3.27)
Rλζ = κλ5 · µ4 · |ς˙ξ | + κλ6 · µ4 · |ς˙ψ | (3.28)
 
aux (Φ3 − µ4 · γ), Rλζ , ςζ = µ4 · ς˙ζ + βλζ · ςζ (3.29)
Φρζ3 = µζ · γ (3.30)
Φρζ2 = µψ · γ (3.31)
Φρζ1 = µξ · γ (3.32)


$ if $ ≥ 0
|$| = (3.33)
−$ if $ < 0



 Π−R 



 si (ω > 0) o (ω = 0) y (Π > R)

Π+R 
aux(Π, R, ω) = (3.34)

 si (ω < 0) o (ω = 0) y (Π > −R)



 0

si (ω = 0) y (|Π| < R)

Las relaciones inter-variables comentadas anteriormente se pueden encontrar en las


expresiones desde (3.35) hasta (3.57).
En las ecuaciones (3.14), (3.16), (3.20), (3.22), (3.26) y (3.28) se utiliza la función
valor absoluto para independizar en la fricción seca el hecho de que el rozamiento se
3.4. MODELADO DEL ROBOT 49

Φρψ1 = Φ2 (3.46)
ωζ2 = θ̇ζ2 (3.35)
ωξ1 = θ̇ξ1 (3.47)
Φρξ2 = Φ3 (3.36)
ςζ = ζ̇ (3.48)
Φρξ3 = Φ3 (3.37)
ρΠ · θξ2 = ξ (3.49)
Φρξ4 = Φ3 (3.38)
ρΠ · θψ2 = ψ (3.50)
ωζ1 = θ̇ζ1 (3.39)
ρΠ · θζ2 = ζ (3.51)
ςψ = ψ̇ (3.40)
ρΠ · ωξ2 = ςξ (3.52)
ωψ2 = θ̇ψ2 (3.41)
ρΠ · ωψ2 = ςψ (3.53)
ωψ1 = θ̇ψ1 (3.42)
ρΠ · ωζ2 = ςζ (3.54)
ςξ = ξ˙ (3.43)
ρΠ · ω̇ξ2 = ς˙ξ (3.55)
ωξ2 = θ̇ξ2 (3.44)
ρΠ · ω̇ψ2 = ς˙ψ (3.56)
Φρξ1 = Φ1 (3.45)
ρΠ · ω̇ζ2 = ς˙ζ (3.57)

produzca a un lado u otro de la guı́a. La definición de esta expresión se encuentra en


(3.33).
En las ecuaciones (3.15), (3.17), (3.21), (3.23), (3.27) y (3.29) se utiliza una función
auxiliar aux (ver (3.34)) que recibe tres valores y devuelve otro. Los valores que se le
pasan son: la resultante (Π) de fuerzas ó pares (en mismo sentido de la velocidad) sobre
un elemento; la fricción seca (R) del elemento; y la velocidad (ω) (lineal ó angular)
del elemento. En esta ecuación (expresión 3.34) se refleja que, cuando hay movimiento
(V 6= 0) la fricción se opone a éste, y cuando no lo hay depende de que el par (en uno
u otro sentido) supere la fricción seca para que el valor devuelto sea no nulo.
En el análisis no hay singularidades estructurales, aunque existen 3 lazos alge-
braicos3 que se han roto suponiendo conocidas las fuerzas transmitidas a las correas
de cada eje.
El problema de dichas funciones, ver (3.33) y (3.34), es que están definidas a tramos
y por tanto son NO derivables, no pudiéndose obtener la aproximación lineal del sis-
tema.
Evidentemente, no serı́a lógico suponer que siempre nos encontramos en uno de los
tramos de las funciones, ya que implicarı́a velocidades ó fuerzas siempre en la misma
dirección, lo cual no tendrı́a mucho sentido en el robot tipo Pórtico.

No obstante, a pesar de lo anterior, existe una representación interna no lineal del


sistema, definida a tramos de forma parecida a como lo están las funciones anteriores.
Para obtenerla, habrı́a que resolver los tres lazos algebraicos de (3.15), (3.21) y (3.27),
que involucran a las fuerzas transmitidas a las correas de cada eje.

Por ejemplo, en el primer lazo se utilizarı́an (3.13), (3.14), (3.15) y (3.45) para des-
3
Estos lazos se pueden deber a dinámicas rápidas consideradas instantáneas respecto a las relevan-
tes del sistema o a las ligaduras introducidas al conectar subsistemas. Para más información consultar
anexo E.
CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
50 CONTROL VISUAL

pejar analı́ticamente la fuerza Φ1 , transmitida a la correa del eje ξ, que dependerá de


distintas variables (velocidades y posiciones angulares) y de hipótesis a verificar a pos-
teriori. Dichas hipótesis serı́an del estilo de: Φ1 > 0 para ωρ2 6= 0; (Φ1 < 0) y (Π1 > Rρξ )
para ωξ2 = 0; etc.

En cualquier caso, el resultado final de la representación interna resultarı́a de gran


aparatosidad y de muy difı́cil manejo. Para más detalles en referencia al modelado
mecánico del robot, podemos consultar [69]. Por tanto, para poder trabajar a nivel
práctico con este sistema (sobre todo en una fase de diseño del regulador) habrı́a que
reexpresar el modelo mediante incertidumbres aditivas y/o multiplicativas a partir de
las expresiones obtenidas.

3.5. Determinación y Causalidad Computacional del


sistema
La determinación del sistema se da cuando el número de ecuaciones es igual al
numero de incógnitas. En este caso:
Ecuaciones del sistema: ((3.12), ..., (3.32), (3.35), ..., (3.51)) → 38.
Variables del sistema: (θξ1 , θψ1 , θζ1 , θξ2 , θψ2 , θζ2 , ωξ1 , ωψ1 , ωζ1 , ωξ2 , ωψ2 , ωζ2 , Rρξ , Rρψ ,
Rρζ , Rλξ , Rλψ , Rλζ , Φ1 , Φ2 , Φ3 , ξ, ψ, ζ, ςξ , ςψ , ςζ , Πµξ , Πµψ , Πµζ , Π1 , Π2 , Π3 , Φρξ1 ,
Φρψ1 , Φρζ4 , Φρξ2 , Φρξ3 , Φρζ1 , Φρζ2 , Φρζ3 ) → 41 variables (38 incógnitas + 3 entradas
(Πµξ , Πµψ , Πµζ ) ).
Variables de salida: ξ, ψ, ζ.
Variables de estado:
θξ1 , θψ1 , θζ1 , θξ2 , θψ2 , θζ2 , ωξ1 , ωψ1 , ωζ1 , ωξ2 , ωψ2 , ωζ2 → 12.

Por lo tanto se trata de un sistema determinado de 38 ecuaciones y 38 incógnitas.


A continuación realizamos el análisis de la causalidad computacional (ver anexo E).
Para ello reescribimos las ecuaciones del modelo marcando las variables (ver ecuaciones
desde (3.58) hasta (3.101)).
En el análisis de la causalidad computacional no hay singularidades estructurales,
aunque existen 3 lazos algebraicos que se han roto suponiendo conocidas las fuerzas
transmitidas a las correas de cada eje.

3.6. Identificación de los parámetros


Existen gran cantidad de parámetros a identificar en este sistema. Algunos de ellos
se obtienen mediante caracterı́sticas mecánicas (como por ejemplo masas o momen-
tos de inercia), otros se obtienen mediante simple experimentación intentando aislar
el efecto fı́sico (como fricciones lineales) o simplemente son caracterı́sticas del fabri-
cante (caracterı́sticas de los motores o de los drivers que el fabricante proporciona con
gran precisión). Los restantes parámetros se obtienen mediante un simple algoritmo
de mı́nimos cuadrados con factor de olvido. Este conocido algoritmo presenta pro-
blemas de condicionamiento cuando las entradas varian lentamente, pero en nuestro
3.6. IDENTIFICACIÓN DE LOS PARÁMETROS 51

Πµξ = Yξ · [ω̇ξ1 ] + βρξ · ωξ1 + Π1 (3.58)


[Π1 ] = κρ · (θξ1 − θξ2 ) (3.59)
ωζ2 = [θ̇ζ2 ] (3.79)
[Rρξ ] = κρ1 · |Φρξ1 | + κρ2 · Φρζ1 (3.60)
[Φρξ2 ] = Φ3 (3.80)
[Φ1 ]∗ · ρΠ = aux(Π1 , Rρξ , ωξ2 ) (3.61) [Φρξ3 ] = Φ3 (3.81)
[Rλξ ] = κλ1 · |Φρψ1 | + κλ2 · |Φρζ2 + [Φρξ4 ] = Φ3 (3.82)
+Φρζ3 + (µ2ψ + µ2ζ ) · γ + Φ3 | (3.62) ωζ1 = [θ̇ζ1 ] (3.83)
aux(−Φ1 , Rλξ , ςξ ) = (µψ + µ2ψ + ςψ = [ψ̇] (3.84)
+µζ + µ2ζ + µ4 ) · [ς˙ ] + βλξ · ςξ
ξ (3.63) ωψ2 = [θ̇ψ2 ] (3.85)
Πµψ = Yψ · [ω̇ψ1 ] + βρψ · ωψ1 + Π2 (3.64)
ωψ1 = [θ̇ψ1 ] (3.86)
[Π2 ] = κρ · (θψ1 − θψ2 ) (3.65)
˙
ςξ = [ξ] (3.87)
[Rρψ ] = κρ3 · |Φρψ1 | + κρ4 · Φρζ2 (3.66)
ωξ2 = [θ̇ξ2 ] (3.88)
[Φ2 ]∗ · ρΠ = aux(Π2 , Rρψ , ωψ2 ) (3.67)
[Φρξ1 ] = Φ1 (3.89)
[Rλψ ] = κλ3 · (µζ + µ2ζ +
[Φρψ1 ] = Φ2 (3.90)
+µ4 ) · |ς˙ξ | + κλ4 · |Φρζ3 + µ2ζ · γ + Φ3 | (3.68)
aux(Φ2 , Rλψ , ςψ ) = ωξ1 = [θ̇ξ1 ] (3.91)
ςζ = [ζ̇] (3.92)
= (µζ + µ2ζ + µ4 ) · [ς˙ ψ ] + βλψ · ςψ (3.69)
ρΠ · θξ2 = [ξ] (3.93)
Πµζ = Yζ · [ω̇ζ1 ] + βρζ · ωζ1 + Π3 (3.70)
ρΠ · θψ2 = [ψ] (3.94)
[Π3 ] = κρ · (θζ1 − θζ2 ) (3.71)
ρΠ · θζ2 = [ζ] (3.95)
[Rρζ ] = κρ5 · |Φρξ2 | + κρ6 · Φρζ3 (3.72)
ρΠ · ωξ2 = [ςξ ] (3.96)
[Φ3 ]∗ · ρΠ = aux(Π3 , Rρζ , ωζ2 ) (3.73)
ρΠ · ωψ2 = [ςψ ] (3.97)
[Rλζ ] = κλ5 · µ4 · |ς˙ξ | + κλ6 · µ4 · |ς˙ψ | (3.74)
  ρΠ · ωζ2 = [ςζ ] (3.98)
aux (Φ3 − µ4 · γ), Rλζ , ςζ =
ρΠ · [ω̇ξ2 ] = ς˙ξ (3.99)
= µ4 · ς˙ζ + βλζ · ςζ (3.75) ρΠ · [ω̇ψ2 ] = ς˙ψ (3.100)
[Φρζ3 ] = µζ · γ (3.76) ρΠ · [ω̇ζ2 ] = ς˙ζ (3.101)
[Φρζ2 ] = µψ · γ (3.77)
[Φρζ1 ] = µξ · γ (3.78)
CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
52 CONTROL VISUAL

motor ξ motor ψ motor ζ

Rs 3.181 3.02 2.76


Rr 2.55 2.61 1.66
Lsl 0.031 0.029 0.016
Lrl 0.061 0.058 0.046
Lmo 1.01 1.07 0.88
imo 1.11 9.66 7.33
α 0.50 0.55 0.42
J 0.019 0.018 0.012

Tabla 3.3: Valores de la identificación de parámetros de los motores

caso funciona correctamente ya que se excitan las tres entradas del robot con un ruido
blanco. En [141] y [148] podemos encontrar una descripción de como se ha realizado
la identificación.
Tras la realización de estos experimentos, se han obtenido los datos que podemos ver
en las tablas 3.3 y 3.4 para el modelo de los motores y para el modelo del robot
respectivamente.

3.7. Resultados experimentales y validación


En esta sección se presentan algunos de los resultados obtenidos en los experimen-
tos. Una de las partes más importantes de este capı́tulo es la identificación del sistema
y la validación del modelado. En las figuras que se muestran, se puede ver la calidad
del modelo y de los parámetros obtenidos. El modelo representado por las ecuaciones
(3.12), ..., (3.57) con los parámetros de la tabla 3.2 refleja de forma fidedigna el com-
portamiento del sistema.
En las figuras 3.8, 3.9, 3.10 y 3.11 se muestra la respuesta del sistema real (motor)
y del modelo del par motor de ξ, ψ y ζ. Para obtener estas figuras se aplica un escalón
de 30 rpm en todos los casos (ωref =30 rpm, ver figura 3.7) y se gráfica el par motor
(de ξ, ψ y ζ).
En las figuras 3.12, 3.13, 3.14 y 3.15, se observa la respuesta real del robot y la
del modelo para varios experimentos. Para todos estos experimentos, se muestra la
velocidad angular de los motores ξ, ψ y ζ para un escalón de par de entrada y se
obtiene una gráfica de la respuesta real y la del modelo presentado en la sección 3.4.
En todas las figuras se aprecia la semejanza del modelo con el comportamiento del
robot.
En las figuras 3.8 a 3.15 podemos ver la precisión del modelo y de la identificación
obtenidas en los experimentos realizados. En esta figura, se ve que la respuesta del
modelo (no-lineal) es exactamente igual a la respuesta real. En figuras como 3.9 y 3.15
(respuesta del eje ξ), podemos ver que la respuesta del modelo no es exactamente igual
3.8. MODELO REDUCIDO DE MATLAB/SIMULINK 53

µξ , µ ψ , µ ζ = 65.32,36.15,12.75
Yξ , Y ψ , Y ζ = 0.316,0.169,0.054
µ2ψ , µ2ζ , µ4 = 0.324,0.152,0.846
κρ , ρΠ , γ = 0.01224,0.225,9.8
βρξ , βρψ , βρζ = 0.323,0.398,0.190
β1ξ , β1ψ , β1ζ = 0.368,0.267,0.124
βρξ , βρψ , βρζ = 0.248,0.356,0.127
βλξ , βλψ , βλζ = 0.357,0.159,0.258
κρ1 , κρ2 , κρ3 = 1.172,1.146,1.938
κρ4 , κρ5 , κρ6 = 1.143,1.112,1.287
κλ1 , κλ2 , κλ3 = 1.543,1.857,1.165
κλ4 , κλ5 , κλ6 = 1.745,1.254,1.098

Tabla 3.4: Valores de la identificación de parámetros del robot

a la respuesta real, pero en términos generales es aceptable. Las figuras 3.10, 3.11, 3.14
y 3.15 muestran los experimentos para el eje ζ (movimientos ascendente y descendente
del eslabón respectivamente tanto para par como para velocidad angular). Para este
eje se han realizado diversos experimentos para comprobar que el efecto de la gravedad
es tenido en cuenta por el modelo. Las figuras del modelo mostrado en las ecuaciones
(las figuras 3.8, ..., 3.15, se han obtenido usando DYMOLA/MODELICA).

3.8. Modelo reducido de Matlab/Simulink


El modelo presentado en este capı́tulo es muy detallado y como se puede ver en las
figuras desde 3.8 hasta 3.15 se obtiene una respuesta muy similar a la del sistema real.
Por tanto, el modelo es de gran precisión pero la dificultad (como tantas otras veces)
radica en la utilización del mismo para las simulaciones con reguladores reales (Notar
que las simulaciones mostradas se han realizado con DYMOLA/MODELICA).
En este apartado se presentan los diagramas de Matlab/Simulink de los ejes ξ, ψ
y ζ. Las figuras 3.16, 3.17 y 3.18 muestran estos esquemas de Simulink. Este modelo
equivalente simplificado4 se ha realizado para los tres ejes debido a que en los capı́tulos
5 y 7 se usa para simular un experimento en concreto y ajustar parámetros empı́ricos
respectivamente, ya que es mucho más sencillo hacer pruebas de ajuste sobre el modelo
en el ordenador que sobre el sistema real. Para más información en referencia al modelo
Simulink, ver [126].
En las figuras 3.19 y 3.20 se observa la respuesta del modelo obtenido en Simulink
frente a la respueta del sistema real. Con estas gráficas se puede validar el modelo
4
La simplificación con respecto del modelo matemático presentado radica en que los ejes están
desacoplados.
CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
54 CONTROL VISUAL

12
Real
Modelo
10

Par (Nm) 6

−2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Tiempo (segundos)

Figura 3.8: Respuesta del par motor (eje ξ).

Simulink presentado. Este modelo permite simular de forma sencilla el comportamiento


de un esquema de control antes de realizar experimentos reales.

3.9. Conclusiones
En este capı́tulo se presentan los resultados del estudio realizado sobre el modelo,
la identificación y la validación para el robot diseñado. En el trabajo descrito, se
considera un complejo modelo del robot que permite incrementar el ancho de banda
del controlador. Para velocidades y aceleraciones bajas o medias, la consideración del
robot de desacoplado y lineal es una buena aproximación de su comportamiento, pero
para aceleraciones/deceleraciones elevadas (recordar que los motores son de 16 Nm de
par máximo) se requiere un modelo que refleje el comportamiento no lineal y acoplado
que presenta el sistema para evitar vibraciones debidas a desajustes del regulador. Ésta
es la principal aprotación de este capı́tulo, ya que junto son las referecias [69], [141]
y [148] establecen el procedimiento para obtener un modelo de detalle de un robot
cartesiano ξψζ.
Una de las principales diferencias de los robots industriales en comparación con las
plataformas desarrolladas especı́ficamente para pruebas de laboratorio es la potencia de
los motores. Por lo general, los robots cartesianos diseñados para pruebas, suelen tener
pequeños accionamientos DC para los cuales no es necesario tener modelos muy com-
plejos. Además, estos pequeños accionamientos, no son capaces de desarrollar grandes
aceleraciones, por lo que la suposición de lineal y desacoplado es relativamente válida
para estos casos.
Por lo tanto, se presenta un modelo no lineal [202] y acoplado que satisface las
especificaciones requeridas para la aplicación a desarrollar:

No lineal porque se han considerado funciones no lineales y aparecen produc-


tos intervariables en el modelado. (Las ecuaciones: (3.14), (3.15), (3.16), (3.17),
(3.20), (3.21), (3.22), (3.23), (3.26), (3.27), (3.28) y (3.29) son no linelales. Las
3.9. CONCLUSIONES 55

6
Real
5 Modelo

3
Par (Nm)

−1

−2

−3
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45
Tiempo (segundos)

Figura 3.9: Respuesta del par motor (eje ψ).

0
Real
−0.5 Modelo

−1

−1.5

−2
Par (Nm)

−2.5

−3

−3.5

−4

−4.5

−5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6
Tiempo (segundos)

Figura 3.10: Respuesta del par motor (eje ζ) para movimiento ascendente.
CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
56 CONTROL VISUAL

−1 Real
−1.2 Modelo

−1.4

−1.6

−1.8
Par (Nm)

−2

−2.2

−2.4

−2.6

−2.8

−3
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45
Tiempo (segundos)

Figura 3.11: Respuesta del par motor (eje ζ) para movimiento descendente.

45

40

35

30
Velocidad (rpm)

25

20

15

10

0 Real
Modelo
−5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6
Tiempo (segundos)

Figura 3.12: Respuesta del robot cartesiano (eje ξ).


3.9. CONCLUSIONES 57

40

35

30

25
Velocidad (rpm)

20

15

10

0 Real
Modelo
−5
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45
Tiempo (segundos)

Figura 3.13: Respuesta del robot cartesiano (eje ψ).

10
Real
5
Modelo
0

−5

−10
Velocidad (rpm)

−15

−20

−25

−30

−35

−40

−45
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45
Tiempo (segundos)

Figura 3.14: Respuesta del robot cartesiano (eje ζ) para movimiento ascendente.
CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
58 CONTROL VISUAL

40

35

30

Velocidad (rpm) 25

20

15

10

0 Real
Modelo
−5
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45
Tiempo (segundos)

Figura 3.15: Respuesta del robot cartesiano (eje ζ) para movimiento descendente.

simvel
+
v To Workspace3

IGBT Inverter Vab Scope


Vdc
a dos bytes a valor normal + A
A
Ts.z+Ts
−K− PI −K− −K− iqref
den(z) is_abc r.p.m
Velocidad Alisador PI velocidadPar to Isq − B B
referencia idref wm −K−
m m
iabcr Iabc*
0 C
thetam
ioref Pulses pulses C
Id Iabc
Te
Machines
the Tm
Regulador de Measurement
Intensidad Demux
dq2abc Motor X

Velocidad
referencia1

Par to Isq2

3
simpar
To Workspace2

Powergui
−Discrete, tempo
Ts = 3.8e−005 s.
Clock To Workspace1 butter

Filter

Figura 3.16: Esquema de simulink del modelo del robot. Eje ξ.

ecuaciones: (3.30), (3.31) y (3.32) son cuasi lineales y por últino: (3.12), (3.13),
(3.18), (3.19), (3.24) y (3.25) son lineales).

Acoplado porque la aceleración en uno de los ejes modifica el rozamiento en los


otros, por lo tanto, el comportamiento de uno de los ejes depende de lo que estén
haciendo los otros (Este efecto está modelado por las ecuaciones: (3.14), (3.16),
(3.20), (3.22), (3.26) y (3.28).

Este modelo presenta una gran similitud de comportamiento comparado con el robot
real.
3.9. CONCLUSIONES 59

+
v
− Scope
IGBT Inverter Vab
Vdc
a dos bytes a valor normal + A A
Ts.z+Ts
−K− PI −K− −K− iqref
is_abc r.p.m
den(z)
B
Velocidad − B
Alisador PI velocidad Par to Isq idref
wm −K−
referencia m m
iabcr Iabc* thetam
0 C butter
ioref Pulses pulses C
Te
Id Iabc Machines
Tm
the Measurement Filter
Regulador de 1 Demux
dq2abc Intensidad Motor Y
Par Resistente

Par to Isq2

3 simpar

To Workspace2

Powergui tempo simvel


−Discrete,
Ts = 3.8e−005 s. Clock To Workspace1 To Workspace

Figura 3.17: Esquema de simulink del modelo del robot. Eje ψ.

+
v
− Scope
IGBT Inverter Vab
Vdc
a dos bytes a valor normal + A A
Ts.z+Ts
−K− PI −K− −K− iqref
is_abc r.p.m
den(z)
B
Velocidad − B
Alisador PI velocidad Par to Isq idref
wm −K−
referencia m m
iabcr Iabc* thetam
0 C butter
ioref Pulses pulses C
Te
Id Iabc Machines
Tm
the Measurement Filter
Regulador de 1 Demux
dq2abc Intensidad Motor Y
Par Resistente

Par to Isq2

3 simpar

To Workspace2

Powergui tempo simvel


−Discrete,
Ts = 3.8e−005 s. Clock To Workspace1 To Workspace

Figura 3.18: Esquema de simulink del modelo del robot. Eje ζ.

45

40

35

30
Velocidad (rpm)

25

20

15

10

5
Real
Modelo
0
0 0.1 0.2 0.3 0.4 0.5 0.6
Tiempo (segundos)

Figura 3.19: Comportamiento del modelo Simulink frente a la respuesta real (eje ξ).
CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
60 CONTROL VISUAL

40

35

30
Velocidad (rpm)

25

20

15

10

5
Real
Modelo
0
0 0.05 0.1 0.15 0.2 0.25 0.3
Tiempo (segundos)

Figura 3.20: Comportamiento del modelo Simulink frente a la respuesta real (eje ψ).

40

35

30
Velocidad (rpm)

25

20

15

10

5
Real
Modelo
0
0 0.05 0.1 0.15 0.2 0.25 0.3
Tiempo (segundos)

Figura 3.21: Comportamiento del modelo Simulink frente a la respuesta real (eje ζ).
CAPÍTULO 4

ESTIMACIÓN DE LA POSICIÓN
DE UN OBJETO

En este capı́tulo se realiza una introducción de la estimación óptima y la predicción


del estado prestando especial atención a los filtros de Kalman de estado estacionario.
Este tipo de filtro es una de las bases del filtro propio desarrollado de forma novedosa
como aportación en esta tesis y presentado en el capı́tulo 5.
La formulación presentada en este capı́tulo es de gran importancia en esta tesis, por
lo que se le ha prestado especial atención.

61
62 CAPÍTULO 4. ESTIMACIÓN DE LA POSICIÓN DE UN OBJETO

4.1. Introducción
El control visual es una de las posibles soluciones para controlar el movimiento de
un robot industrial en entornos no estructurados [82][38]. Esto es posible a través del
procesamiento de la imagen para cerrar el lazo de control y minimizar una función de
error determinada.
En el lazo de control (ver esquemas de control presentados en el capı́tulo 2), uno
de los bloques es el sistema de visión. Este bloque introduce un retardo de uno o dos
periodos de muestreo (en el mejor de los casos) de la señal de entrada, lo que supone
una limitación en la dinámica del sistema. Esta limitación hace que los sistemas de
control visual que no tratan especı́ficamente este retardo, trabajen a velocidades muy
bajas. En el capı́tulo 7 se aborda el problema de los retardos en el esquema de control,
mientras que en el presente tema se estudia el filtro de predicción a utilizar.
En este capı́tulo se hace un breve estudio del amplı́simo estado del arte de los filtros
de estimación de un objeto o caracterı́stica visual, prestando especial atención a un caso
particular del conocido filtro de Kalman. Posteriormente se presenta la formulación de
los filtros de Kalman de estado estacionario (ssKF) y por último se realiza un análisis
de los mismos, necesario para su utilización en un sistema borroso.
La predicción del estado (y por lo tanto la predicción de la posición y/o veloci-
dad de un móvil) ha sido y es objeto de diferentes investigaciones, que han dado
como fruto varios algoritmos extensamente conocidos. Algunos de ellos son: el filtro de
Kalman-Bucy, el predictor de Smith; predictores basados en redes neuronales; mode-
los de predicción forward e inversos; etc. De entre todos ellos, se ha elegido el filtro
de Kalman porque su uso está tan extendido que se puede considerar casi como un
algoritmo estándar de predicción.

4.2. El filtro de Kalman


Debido a los cambios en las tecnologı́as aeroespaciales, se hicieron necesarios me-
canismos de control de vuelo más avanzados. A finales de la década de los cincuenta
y principios de los sesenta, la “Air Forece Office of Scientific Research” (AFOSR) de
Estados Unidos, patrocinó varios proyectos de investigación en el área de automática
y teorı́a de control relacionada con la aviónica y los sistemas espaciales.
Cientı́ficos de diferentes disciplinas tenı́an la necesidad de mantener las condiciones
aerodinámicas mediante el procesamiento de diferentes señales continuas afectadas por
ruido en la medida.
La AFOSR dedicó muchos proyectos de investigación en este área, entre ellos los
concedidos al “Research Institute of Applied Science” (RIAS).
Uno de los programas de RIAS financiado por AFOSR, consistı́a en el desarrollo y
la aplicación de teorı́a de filtrado estadı́stico bajo la dirección del Dr. Rudolph Emil
Kalman y el Dr. Richard Bucy.
Por razones evidentes (actualmente el filtro de Kalman es uno de los más conocidos
y utilizados), esta invención revolucionó el campo de la estimación y tuvo un enorme
impacto en el diseño y desarrollo de sistemas para navegación. La técnica de Kalman y
Bucy, de combinar y filtrar información que provenı́a de múltiples fuentes (sensores),
4.2. EL FILTRO DE KALMAN 63

consiguió una precisión que constituyó el mayor avance en la tecnologı́a de guiado,


extendiéndose posteriormente a muchas otras disciplinas.
La eficacia del algoritmo de Kalman, fue llevada a la práctica, obteniendo un enorme
éxito. La “National Aeronautics and Space Administration” (NASA) empleó el filtro
de Kalman para resolver los problemas asociados con la determinación de las órbitas
de satélites. Rápidamente, el filtro se convirtió en una herramienta clave del programa
espacial.
Numerosas aplicaciones han hecho del algoritmo una parte importante en el fun-
cionamiento de sus sistemas como por ejemplo radares1 para seguimiento de misiles,
sistemas inerciales de guiado en aviones, submarinos, cohetes, el conocido GPS (Global
Positioning System), etc.

4.2.1. Antecedentes. El método de mı́nimos cuadrados.


Los antecedentes del desarrollo de la “teorı́a de estimación” están ligadas a los estu-
dios astronómicos en los que fue tratado el movimiento de planetas y cometas usando
datos que provenı́an de medidas telescópicas. El movimiento de estos cuerpos se puede
caracterizar completamente mediante seis coeficientes. Para determinar el valor de es-
tos coeficientes se realizó una estimación a partir de los datos medidos. Para resolver el
problema concerniente a la evolución orbital de los cuerpos planetarios, Karl Friedrich
Gauss (Alemania,1777-1855), con solo 18 años de edad, inventó en 1795 el método
de mı́nimos cuadrados. En el siglo XIX (como sucede hoy en dı́a) existı́an controver-
sias considerables referentes al inventor de dicho método. El conflicto surgió debido a
que Gauss no publicó su descubrimiento en el momento de su invención. En lugar de
eso, Adrien Marie Legendre (Francia, 1752-1833), inventó el método de forma inde-
pendiente y publicó los resultados en 1806 en su libro “Nouvelles mét hodes pour la
determination des orbites des comètes”. No fue hasta 1809, cuando Gauss publicó en
su libro “Theoria Motus Corporum Coelestium”, una descripción detallada del método
de mı́nimos cuadrados. Sin embargo, en este libro, Gauss mencionaba la discusión de
Legendre sobre el método: “Nuestro principio, del que he hecho uso desde el año 1795,
ha sido finalmente publicado por Legendre en el trabajo Nouvelles méthodes pour la de-
termination des orgibite des cometes, Paris, 1806, donde han sido explicadas algunas
otras propiedades de este principio, pero que por su brevedad, aquı́ se omitirán”. Es-
tas lı́neas comentando el libro de Legendre la enfadaron enormemente, quien con gran
indignación, escribió “Gauss, un hombre muy rico en descubrimientos deberı́a haber
tenido la decencia de no apropiarse del método de mı́nimos cuadrados”. Es interesante
destacar que Gauss sintió que estaba siendo eclipsado por Legendre y escribió a un
amigo diciendo, “Parece ser mi destino coincidir en casi todos mis trabajos teóricos
con Legendre. Primero en aritmética ..., y ahora, de nuevo en el método de mı́nimos
cuadrados, que está también expuesto en los trabajos de Legendre y de hecho, llevado a
cabo de una forma muy elegante”. Varios años despues, se han encontrado evidencias
suficientes para atribuir el método a Gauss.
Los estudios astronómicos que propiciaron el descubrimiento del método de mı́nimos
1
Gran cantidad de los artı́culos revisados y referenciados en esta tesis usan como sensor de posición
el radar, por lo que se nombra en diferentes secciones de esta tesis.
64 CAPÍTULO 4. ESTIMACIÓN DE LA POSICIÓN DE UN OBJETO

cuadrados (Least Squares Method) fueron descritos por Gauss en su “Teorı́a Motus”,
donde se puede leer: “Si las observaciones astronómicas y otras cantidades en las que
se basa el cálculo de órbitas fueran absolutamente correctas, los elementos deducidos de
tres o cuatro observaciones serı́an estrictamente precisos, y por tanto, si fuesen usadas
otras observaciones, deberı́an ser confirmadas pero no corregidas. Pero todas nuestras
medidas y observaciones no son más que aproximaciones a la realidad, y todas las
magnitudes que se derivan de éstas en nuestros cálculos, también deberán ajustarse a
la realidad lo mejor posible. Es decir, que la mayor parte de todos los cálculos realizados
concernientes a un fenómeno concreto, deben ser tan aproximados como sea posible a
la realidad. Esto no puede ser llevado a cabo de otra forma que no sea, mediante
una combinación adecuada de una cantidad mayor de observaciones que el número
absolutamente fundamental para la determinación de las cantidades desconocidas. Este
problema solo puede ser sobrellevado cuando ya se tiene un conocimiento aproximado
de la órbita, y será posteriormente corregido para satisfacer todas las observaciones
de la forma más precisa posible”. En las siguientes secciones se puede encontrar la
descripción y formulación de esta traducción literal del “Teorı́a Motus” de Gauss.

1. Gauss hace referencia al “número de observaciones que es absolutamente funda-


mental para la determinación de las cantidades desconocidas”. Este aspecto se
trata en la actualidad en la teorı́a de control como la “observabilidad del sistema”.

2. Gauss puntualiza que se requieren más observaciones de las dictadas por este
mı́nimo debido a la existencia de errores en las medidas, de forma que cuanto
mayor sea el número de medidas mejor se podrá corregir este error.

3. Puntualiza que las ecuaciones de movimiento deben ser conocidas de forma apro-
ximada, por lo que el conocimiento del modelo cobra especial relevancia. A su
vez ésto implica la linealización utilizando algún método determinado.

4. Gauss establece en su libro que el parámetro estimado debe satisfacer las observa-
ciones de la forma más precisa posible, lo que obliga a que los residuos (diferencias
entre los valores observados y los valores predichos) sean tan pequeños como sea
posible.

5. También hace referencia a la imprecisión o el error de las medidas e indica que


este error es desconocido, haciéndose necesaria la utilización de la teorı́a de la
probabilidad.

6. Finalmente, se refiere a una “combinación adecuada” de las observaciones, que


proporcionará la estimación más precisa. Esto condiciona la definición de la
estructura del procedimiento de estimación y la definición del criterio de fun-
cionamiento. Ambas son consideraciones fundamentales en las discusiones ac-
tuales sobre problemas de estimación.

Como ya se ha comentado, Gauss inventó y usó el método de mı́nimos cuadrados


como su técnica de estimación. Gauss sugirió que los valores más apropiados para los
parámetros desconocidos son los valores más probables: “... los valores más probables
4.2. EL FILTRO DE KALMAN 65

de las cantidades desconocidas, serán aquellos en los que la suma de los cuadrados de
las diferencias entre las observaciones actuales y los valores calculados, multiplicados
por números que miden el grado de precisión, sea mı́nimo”. La diferencia entre los
valores de las medidas observados y calculados es lo que se conoce generalmente como
“residuo” (yk −C·xk|k ), aunque en este documento se utiliza la innovación (yk −C·xk|k−1 )
cuando se aplique el filtro de Kalman. Este término aporta un concepto fundamental
en la utilización del filtro, ya que si la señal generada por esta variable es un ruido
blanco, el funcionamiento del filtro cumple con las especificaciones de diseño y se puede
considerar que la estimación está siendo correcta.
Supóngase que se concocen n medidas en distintos instantes discretos de tiempo,
(t1 , t2 , ..., tn ) que se denotan en cada instante tk como z(k). Supóngase que, de las
medidas, van a ser determinados los parámetros x(k), que guardan la siguiente relación:

z(k) = H(k)x(k) + w(k) (4.1)


donde el vector w(k) representa el error de las medidas para el instante de tiempo k.
Como se puede ver en la ecuación (4.1), se asume que la relación entre las medidas y
los parámetros x(k) es de tipo lineal, de este modo, se hace más explı́cita la suposición
que Gauss indicó en la cita anterior. Denótese x̂(n) como la estimación de x(n) basada
en las n medidas {z(1), z(2), ..., z(n)}. Entonces, el residuo asociado con la medida
k-ésima es

Inn(k) = z(k) − H(k)x̂(k) (4.2)


El método de mı́nimos cuadrados se centra en la determinación del valor más pro-
bable de x(n), que es x̂(n). Este valor está definido como el valor que minimiza la
suma de los cuadrados de los residuos. Por tanto, se puede elegir x(k) de forma que la
expresión 4.3 se minimice.
n
1X
L(n) = [z(k) − H(k)x(k)]T W(k)[z(k) − H(k)x(k)] (4.3)
2 k=0
Los elementos de las matrices W(k) se han de seleccionar para reflejar el grado de
confianza que se tiene en cada medida. Esta matriz es equivalente a la inversa de la
matriz de covarianza asociada al ruido de las medidas.
El filtro de Kalman puede ser visto como una solución computacionalmente más
eficaz por utilizar recursividad que el método de mı́nimos cuadrados. Gauss no sólo
expuso el método de mı́nimos cuadrados, sino que consideró la discusión del problema
de obtener la estimación “más probable”, anticipándose a técnicas más modernas.
Primero, es importante recalcar que planteó el problema desde un punto de vista
probabilı́stico y procuró definir la mejor estimación como el valor más probable. Se
dio cuenta de que los errores en las medidas son (o debı́an ser) independientes entre
ellos (caso habitual en la realidad), la función de densidad de probabilidad conjunta
de los residuos de las medidas, se podrı́an expresar como el producto de las funciones
de densidad de probabilidad individuales:
   
f r(0), r(1), ..., r(n) = f r(0) , f r(1) , ..., f r(n) (4.4)
66 CAPÍTULO 4. ESTIMACIÓN DE LA POSICIÓN DE UN OBJETO

También, argumentó que la densidad f (rk ) serı́a una densidad normal (gaussiana):
p
 |W(k)| [ 1 Inn(k)T W(k)Inn(k)]
f Inn(k) = ·e 2 (4.5)
(2π)n/2
aunque reconoció que nunca se obtienen errores de una magnitud infinita, y por tanto,
la ecuación (4.5) no es realista. Sin embargo, resolvió esta dificultad argumentando
lo siguiente: “La función encontrada no puede, es verdad, expresar rigurosamente las
probabilidades de los errores, ya que los errores posibles están, en todos los casos, confi-
nados entre ciertos lı́mites. La probabilidad de errores que exceden estos lı́mites deberı́a
ser siempre cero, mientras que nuestra fórmula siempre les da algún valor. Sin embar-
go, este defecto bajo el que toda función analı́tica debe, por su naturaleza, funcionar,
no es importante en la práctica debido a que el valor de nuestra función decrece rápi-
damente cuando Inn(k)T W(k)Inn(k) ha adquirido una magnitud considerable, tanto
que puede ser despreciada”.
La primera publicación que dio a conocer esta técnica fue desarrollada por Rudolph
Emil Kalman en 1960 con el tı́tulo: “A New Approach to Linear Filtering and Predic-
tion Problems”, Transactions of the ASME-Journal of Basic Engineering, Volume 82.
Series D. Pages 35 – 45. 1960. A partir de entonces, se han implementado múltiples
variantes del algoritmo original que se describe en el citada referencia (referencia [89]
de esta tesis) como por ejemplo, el Filtro de Kalman Extendido (Extended Kalman
Filter).

4.2.2. Estimación óptima y predicción del estado.


Para poder llevar a cabo el estudio de cualquier sistema fı́sico, primero, es nece-
sario realizar el modelado matemático que represente con relativa fidelidad el compor-
tamiento del sistema. Con ello, se intenta establecer la relación entre ciertas variables
de interés, las entradas y las salidas del sistema. Mediante el modelo matemático y las
herramientas proporcionadas por la “teorı́a de sistemas”, es posible extraer una valiosa
información en referencia a la respuesta del sistema.
Para observar el comportamiento del sistema, se realiza la medición de las señales
de salida que son combinación lineal de ciertas variables de interés (generalmente las
variables de estado o combinación de ellas). Estas señales de salida y las entradas al
sistema (conocidas), son la única información que se puede extraer directamente sobre
el comportamiento del sistema.
Existen tres razones básicas de por qué los sistemas determinı́sticos y la teorı́a de
control no proporcionan los medios suficientes para realizar un análisis de cualquier
sistema fı́sico:
1. Ningún modelo matemático de sistema es perfecto. Cualquier modelo únicamente
representa (con mayor o menor detalle y/o precisión) aquellas comportamientos
fı́sicos o quı́micos de interés que son útiles para el propósito de su estudio. De
hecho, si se pretende por ejemplo obtener un regulador, el modelo de sistema
usado debe permitir el diseño de un algoritmo computacionalmente realizable,
ha de ser lo más sencillo posible aunque no se trate de un modelo exacto (el efecto
de la realimentación negativa tiende a minimizar los errores de modelado), etc.
4.2. EL FILTRO DE KALMAN 67

2. Los sistemas no sólo están bajo la influencia de las entradas de control, sino que
también se encuentran afectados por perturbaciones (variables que no se pueden
modelar y que poseen propiedades estadı́sticas, i.e. no son deterministas).

3. Los sensores no proporcionan datos perfectos o exactos de la medida realizada


debido, entre otras razones, al ruido que afecta a la medida de estos sensores.

Se llega, por tanto, a la conclusión de que es una ingenuidad creer que se puede
asumir un conocimiento completo de todas las caracterı́sticas necesarias para realizar
una descripción perfecta de un sistema. Por tanto, ¿cómo se puede desarrollar el mode-
lo de un sistema teniendo en cuenta esas perturbaciones? y ¿cómo se puede realizar una
estimación óptima de las cantidades que son de interés a través de los datos afectados
por ruido procedentes de los sensores?. Una posible respuesta a estas dos preguntas
se puede encontrar en los modelos estocásticos y en el filtro de Kalman. Un filtro de
Kalman es sencillamente un algoritmo de procesamiento de datos recursivo y óptimo.
Se dice que es recursivo porque añade a los valores de entrada algún valor de salida
previo. Se dice que es óptimo porque se puede demostrar, que bajo determinadas cir-
cunstancias, es óptimo con respecto de un determinado criterio, por ejemplo la suma
de los errores al cuadrado.

El Filtro de Kalman utiliza las medidas disponibles para estimar el valor actual de las
variables de interés mediante el uso de:

1. El conocimiento del sistema y de las medidas.

2. La descripción estadı́stica del ruido del sistema (incertidumbre del modelo dinámi-
co) y de los errores de medida (ver figura 4.1).

3. La información disponible sobre las condiciones iniciales de las variables de in-


terés.

El filtro de Kalman es un algoritmo normalmente planteado en términos discre-


tos debido a que finalmente se implementa como unas lı́neas de código en el sistema
electrónico que está realizando la tarea de monitorización, control, etc.
En la figura 4.1, se puede observar un sistema genérico, con sus entradas y sensores
para medir las salidas o los estados del sistema. En ocasiones, las variables de interés
que describen el estado del sistema, no pueden medirse directamente, y es necesario
inferir sus valores disponiendo únicamente de los datos conocidos (i.e., es necesario
estimar el estado). Pero las medidas realizadas están afectadas por ruidos e impreci-
siones de los dispositivos. El filtro de Kalman combina todos los datos disponibles de
las medidas, más el conocimiento previo del ruido del sistema y de la medida, para
producir una estimación de las variables deseadas, de forma que el error es minimizado
estadı́sticamente. Conceptualmente, lo que intenta el filtro es obtener una estimación
“óptima” de las magnitudes deseadas, a través de los datos que provienen de un entorno
ruidoso (se realiza la distinción entre el ruido del proceso y el ruido de la medida). En
este sentido, “óptima” significa que se minimiza el error (e.g. la raı́z de la suma de los
errores al cuadrado).
68 CAPÍTULO 4. ESTIMACIÓN DE LA POSICIÓN DE UN OBJETO

Figura 4.1: Aplicación tı́pica del filtro de Kalman en un esquema de control.

En el anexo D se puede encontrar el análisis de algunos aspectos relacionados con


el filtro de Kalman incluyendo sus ecuaciones (las ecuaciones del filtro son: (D.1),
(D.2), (D.3), (D.4), (D.5) y (D.6)). Existe gran cantidad de bibliográfı́a disponible en
referencia al FK, pero en esta tesis se han querido clarificar algunos conceptos.

4.2.3. Nomenclatura
La relación entre un filtro predictivo y un modelo de sistema que represente el
comportamiento cinemático del objeto, es necesaria para llevar a cabo la tarea de
predecir su posición. De modo que ambas herramientas matemáticas se han de fusionar
para conseguir que los filtros predictivos queden perfectamente definidos y ası́, cumplir
con su objetivo.
De esta forma, si se considera un filtro de Kalman con modelo cinemático de ve-
locidad constante, podemos decir que tenemos un filtro “Kv” (aunque en parte de la
bibliografı́a presentada en esta tesis se puede encontrar referenciado como “FKv”). Si
el modelo considerado es de aceleración constante se tendrá un filtro “Ka” (o “FKa”)
y si el modelo es de jerk2 constante un “Kj” (o “FKj”).

4.3. Los filtros estacionarios


Los filtros de estado estacionario αβ/γ son casos particulares del filtro de Kalman.
Normalmente se utilizan cuando el cómputo de un FK es excesivo en una aplicación
concreta. En este apartado se describe una de las formas de obtener los filtros de estado
estacionario, denotados en este documento como ssKF.
2
El jerk es la derivada de la aceleración.
4.3. LOS FILTROS ESTACIONARIOS 69

4.3.1. Introducción a los filtros de estado estacionario


Muchas implementaciones del filtro de Kalman se realizan en plataformas embe-
bidas (en lugar de en PCs), en las cuales, la memoria y el coste computacional es una
consideración primordial. Si tanto el sistema subyacente como la covarianza del ruido
del proceso y de las medidas son invariantes en el tiempo, entonces, se puede sustituir
el filtro de Kalman (KF) variante en el tiempo por un filtro de Kalman de estado
estacionario (ssKF). Los ssKF a menudo funcionan mejor que los filtros variantes en el
tiempo, todo depende del sistema y de la covarianza de los errores. Al usar un filtro de
estado estacionario, se tiene la ventaja de no tener que calcular la covarianza del error
de estimación o ganancia del KF para cada iteración. Notar que un KF es un sistema
dinámico. El término “estado estacionario” en el contexto del KF significa que éste es
invariante en el tiempo; i.e. la ganancia del KF es estacionaria o constante.
Por lo tanto, en lugar de obtener la actualización de la ecuación de medida para
Pk , ésta junto con el cálculo de la ganancia de Kalman se simplifican considerándolas
constantes, por lo que se utiliza K∞ como ganancia de Kalman para todas las ite-
raciones. Para un sistema con varios estados, esta consideración ahorra un gran coste
computacional, especialmente si se tiene en cuenta que se evita la inversión de matrices.
El ssKF no es óptimo debido a que no se está utilizando la ganancia óptima de
Kalman en cada iteración (aunque se aproxima al caso óptimo a medida que el tiempo
tiende a infinito). El comportamiento de un ssKF en comparación con un KF puede
ser tan similar que hasta lleguen a confundirse para algunas aplicaciones prácticas. En
algunos casos las diferencias entre un filtro variante y otro invariante en el tiempo sólo
pueden ser detectadas mediante simulaciones o determinados resultados experimen-
tales.
Una forma de obtener la ganancia de un ssKF es mediante simulación numérica.
Simplemente con un programa de ordenador se puede ir propagando la ganancia de
Kalman y ver hacia qué valor converge a medida que las iteraciones aumentan. Otra
forma para obtener esta ganancia es manipular la ecuación del filtro de Kalman: Pk+ =
Pk− Kk (Hk Pk− +MkT ). Teniendo en cuenta la ecuación de la actualización de la covarianza
para un sistema invariante en el tiempo:


Pk+1 = F Pk+ F T + Q (4.6)
Sustituyendo el término Pk+ por la expresión: Pk+ = Pk− Kk (Hk Pk− + MkT ) se obtiene:


Pk+1 = F Pk− F T − F Kk HPk− F T − F Kk M T F T + Q (4.7)
Sustituyendo ahora el término Kk por la expresión: Pk+ = Pk− Kk (Hk Pk− + MkT ) se
obtiene:


Pk+1 = F Pk− F T −
− F (Pk− H T + M )(HPk− H T + HM + M T H T + R)−1 HPk− F T −
− F (Pk− H T + M )(HPk− H T + HM + M T H T + R)−1 M T F T + Q =
= F Pk− F T − F (Pk− H T + M )(HPk− H T + HM + M T H T + R) ×
× (HPk− + M T )F T + Q (4.8)
70 CAPÍTULO 4. ESTIMACIÓN DE LA POSICIÓN DE UN OBJETO

Si Pk− converge a un valor en estado estacionario, entonces Pk− = Pk+1



para un valor
de k grande y se puede renombrar a este valor como P∞ , lo que significa que se puede
escribir:

P∞ = F P ∞ F T −
− F (P∞ H T + M )(HP∞ H T + HM + M T H T + R)−1 ×
× (HP∞ + M T )F T + Q (4.9)

A esta expresión se la conoce con el nombre de ecuación algebraica de Riccati (ARE) o


mejor expresado, ya que es discreta: ecuación algebraica discreta de Riccati (DARE 3 ).
Una vez se tiene P∞ se puede sustituir por Pk− en la fórmula de la ganancia de Kalman
Pk+ = Pk− Kk (Hk Pk− + MkT ) y obtener la ganancia de estado estacionario de Kalman:

K∞ = (P∞ H T + M )(HP∞ H T + HM + M T H T + R)−1 (4.10)


Hay determinados sistemas para los cuales la ecuación de Riccati no converge a
ningún valor en el estado estacionario, es más, puede converger a valores diferentes
dependiendo de las condiciones iniciales P0 . Ésto han propiciado la aparición de gran
cantidad de publicaciones tanto en libros como en artı́culos [120][4][87][68][35].

4.3.2. El filtro alpha-beta


Esta sección presenta el filtro conocido como alpha-beta (o filtro αβ) [13], también
en ocasiones conocido como filtro f-g o filtro g-h [23]. El filtro αβ es un filtro de
Kalman de estado estacionario que se aplica a un sistema Newtoniano de dos estados
con medida de posición. Este es el tipo de problema de estimación que se produce
normalmente en los casos de seguimiento y por lo tanto es bien conocido y ha sido
ampliamente utilizado desde la invención del filtro de Kalman.
Supóngase un sistema dinámico Newtoniano de sólo dos estados (posición y veloci-
dad), sometido a un ruido de aceleración y teniendo en cuenta que la entrada es una
posición medida con ruido. Las ecuaciones del sistema y de la medida son:

   
1 T T2 /2 0
xk = · xk−1 + · wk−1
0 1 T
 
yk = 1 0 · xk + vk
0
wk−1 ∼ (0, σw2 )
vk ∼ (0, R) (4.11)

donde T es el periodo de muestreo, wk0 y vk son procesos de ruido blanco no correlados.


La ecuación del proceso se puede escribir como:
3
En la Toolbox de control de MATLAB se puede resolver esta ecuación usando el comando
dare(F T , H T , Q, HM + M T H T + R, F M ).
4.3. LOS FILTROS ESTACIONARIOS 71

 
1 T
xk = · xk−1 + wk−1
0 1
wk ∼ (0, Q)
 2 
T /2 0 0  
Q = E[wk wkT ] T2 /2 T =
T
 4 
T /4 T3 /2
= σw2 (4.12)
T3 /2 T2

Un filtro de Kalman de estado estacionario se puede obtener para este sistema usando
la expresión (notación especı́fica de estado estacionario):

P− = F P +F T + Q
K = P − H T (HP − H T + R)−1
x̂−
k = F x̂+
k−1
x̂+
k = x̂− −
k + K(yk − Hk x̂k )
+
P = (I − KH)P − (4.13)

Para este caso de dos estados y una entrada medida, se puede ver que K es una matriz
de dimensión 2 × 1, P − y P + son de 2 × 2. Se define su valor de estado estacionario
como:

 T  T
K = K1 K2 = α β/T
 − −

− P11 P12
P = − −
P12 P22
 + +

+ P11 P12
P = + + (4.14)
P12 P22

Los parámetros de la matriz K del filtro de Kalman definen los valores de α y β del
filtro alpha-beta. Se puede utilizar la ecuación (4.13) para expresar:

    −   −1

P11 −
P12 1   P11 −
P12 1
K = − − 1 0 − − +R =
P12 P22 0 P12 P22 0
1  − 
− T
= − P11 P12 (4.15)
P11 + R

La expresión P + de la ecuación (4.13) se puede escribir como:


72 CAPÍTULO 4. ESTIMACIÓN DE LA POSICIÓN DE UN OBJETO

      − 

P11 −
P12 K1   P11 P12−
− − = I− 1 0 − −
P12 P22 K2 P12 P22
 − −

(1 − K1 )P11 (1 − K1 )P12
= − − − (4.16)
(1 − K1 )P12 P22 − K2 P12
La expresión (4.13) de P − se puede reescribir en términos de P + de la siguiente forma:

P + = F −1 (P − − Q)F −T
 + +
    − −
  4  
P11 P12 1 −T P11 P12 T /4 T3 /2
+ + = − − − σw2 ×
P12 P22 0 1 P12 P22 T3 /2 T2
 
1 0
(4.17)
−T 1
Si se extraen los elementos que constituyen la matriz P + tenemos:

+ −
P12 = P12 + σw2 T3 /2 − P22

T
+ − 2 4 − +
P11 = P11 + σw T /4 − P12 T − P12 T
+ −
P22 = P22 + σw2 T2 (4.18)
Operando con los elementos Pij+ de las ecuaciones (4.16) y (4.18) y operando se obtiene:

− −
K1 P11 = 2TP12 − T2 P22−
+ T4 σw2 /4

K1 P12 = T2 P22

− T3 σw2 /2

K2 P12 = T2 σw2 (4.19)
Estas tres ecuaciones junto con las expresiones de K1 y K2 incluidas implı́citamente
− −
en la ecuación (4.15) se pueden resolver para las cinco incógnitas K1 , K2 , P11 , P12 y

P22 . Operando el resultado es:

1  2  √
2

K1 = − · λ + 8λ − λ + 4 · λ + 8λ
8
1  2 √
2

K2 = · λ + 4λ − λ · λ + 8λ
4T
− K1 σw2
P11 =
1 − K1
− K2 σw2
P12 =
1 − K1
 
− K1 K2 −
P22 = + P12 (4.20)
T 2
4.3. LOS FILTROS ESTACIONARIOS 73

donde λ es el ı́ndice de maniobra del objeto (también nombrado como r por otros
autores [136] o como ı́ndice de seguimiento del objeto [88]) y se define como:

σw2 T2
λ= (4.21)
R

Notar que λ proporciona un ratio de incertidumbre del movimiento frente a la incer-


tidumbre de la medida. A partir de estas expresiones y de la ecuación (4.16) se puede
ver que los elementos de la covarianza de la estimación del error de estado estacionario
a priori son:

+
P11 = K1 R
+
P12 = K2 R
 
− K1 K2 −
P22 = + P12 (4.22)
T 2

4.3.3. El filtro alpha-beta-gamma


Esta sección presenta el filtro alpha-beta-gamma (o filtro αβγ) [13], también en
ocasiones conocido como filtro f-g-h o filtro g-h-k [23]. El filtro αβγ es un filtro de
Kalman de estado estacionario que se aplica a un sistema Newtoniano de tres estados
con medida de posición. Este filtro es muy similar al αβ presentado en la sección
anterior, la diferencia radica en que el filtro αβγ es de un orden superior.
Supóngase un sistema dinámico Newtoniano de sólo tres estados (posición, veloci-
dad y aceleración), sometido a un ruido de aceleración y teniendo en cuenta que la
entrada es una posición medida con ruido. Las ecuaciones del sistema y de la medida
son:

   2 
1 T T2 /2 T /2
xk =  0 1 T  · xk−1 +  T  · wk−1
0

0 0 1 1
 
yk = 1 0 0 · xk + vk
0
wk−1 ∼ (0, σw2 )
vk ∼ (0, R) (4.23)

donde T es el periodo de muestreo, wk0 y vk son procesos de ruido blanco no correlados.


La ecuación del proceso se puede escribir como:
74 CAPÍTULO 4. ESTIMACIÓN DE LA POSICIÓN DE UN OBJETO

 
1 T T2 /2
xk =  0 1 T  · xk−1 + wk−1
0 0 1
wk ∼ (0, Q)
 2 
T /2  
Q =  T  E[wk0 wk0 T ] T2 /2 T 1 =
1
 4 
T /4 T3 /2 T2 /2
=  T3 /2 T2 T  σw2 (4.24)
T2 /2 T 1

Un filtro de Kalman de estado estacionario se puede obtener para este sistema usan-
do la ecuación: Pk+ = (I − Kk Hk )Pk− , de una forma similar a la que se dedujo el filtro
αβ en el apartado anterior. La ganancia del filtro de Kalman de estado estacionario y
la covarianza del error de estimación a posteriori son:

 T  T
K = K1 K2 K3 = α β/T γ/2T2
+
 + +

P11 P12 P13
P+ =  P12
+ +
P22 + 
P23 (4.25)
+ + +
P13 P23 P33

Los parámetros de la matriz K del filtro de Kalman definen los valores de α, β y γ del
filtro alpha-beta-gamma. La solución se puede obtener de la siguiente forma [70]:

α = 1 − s2
β = 2(1 − s)2
γ = 2λs (4.26)

donde λ es el ı́ndice de maniobra del objeto de la ecuación (4.21) y s es una variable


auxiliar. La variable s se define a través de las variables b, c, p, q y z de la siguiente
forma:
4.3. LOS FILTROS ESTACIONARIOS 75

λ
b = −3
2
λ
c = +3
2
b2
p = c−
3
3
2b bc
q = − −1
27 3
" p #1/3
q + q + 4p3 /27
z = −
2
p b
s = z− − (4.27)
3z 3

La covarianza del error en estado estacionario a posteriori se pude calcular como:

+
P11 = αR
+
P12 = βT/T
+
P13 = γR/2T2
+ 8αβ + γ(β − 2α − 4)
P22 = R
8T2 (1 − α)
+ β(2β − γ)R
P23 =
4T3 (1 − α)
+ γ(2β − γ)R
P33 = (4.28)
4T4 (1 − α)

La idea general de los filtros αβ y αβγ data de los años 40 [121][176][17]. En [23][13]
se puede encontrar un estudio de estos filtros y de aspectos relacionados con ellos. Un
filtro de Kalman de estado estacionario aplicado a un sistema Newtoniano con solo un
estado con medida de posición se llama filtro α [175].

4.3.4. Una aproximación al filtrado de estado estacionario


En esta sección se presenta una aproximación Hamiltoniana al filtro de estado esta-
cionario. Se asume que la correlación M entre el ruido del proceso y el ruido de la
medida es nula, lo cual simplifica la notación. La expresión de Riccati a priori de la
ecuación (4.8) se puede reescribir como [174]:

Pk+1 = F Pk F T − F Pk H T (HPk H T + R)−1 HPk F T + Q (4.29)


76 CAPÍTULO 4. ESTIMACIÓN DE LA POSICIÓN DE UN OBJETO

donde se ha suprimido el superı́ndice negativo para facilitar la notación. Se puede


utilizar el lemma de inversión de matrices planteado en (1.39) de [174] para escribir:

(HPk H T + R)−1 = R−1 − R−1 H(H T R−1 H + Pk−1 )−1 H T R−1 (4.30)

Sustituyendo ésta en la ecuación (4.29) se obtiene:

Pk−1 = F Pk F T − F Pk H T R−1 HPk F T +


= F Pk H T R−1 H(H T R−1 H + Pk−1 )−1 H T R−1 HPk F T + Q
(4.31)

Sacando factor común F y F T desde el principio y hasta el final de los tres primeros
términos al lado derecho se obtiene:

Pk−1 = F {Pk − Pk H T R−1 HPk +


+Pk H T R−1 H(H T R−1 H + Pk−1 )−1 H T R−1 HPk }F T + Q =
= F {Pk − Pk H T R−1 H[Pk − (H T R−1 H + Pk−1 )−1 H T R−1 HPk ]}F T + Q =
= F {Pk − Pk H T R−1 H(H T R−1 H + Pk−1 )−1 ×
×[(H T R−1 H + Pk−1 )Pk − H T R−1 HPk ]}F T + Q =
= F {Pk − Pk H T R−1 H(H T R−1 H + Pk−1 )−1 }F T + Q =
= F Pk [(H T R−1 H + Pk−1 ) − H T R−1 H]}(H T R−1 H + Pk−1 )−1 F T + Q =
= F (H T R−1 H + Pk−1 )−1 F T + Q =
= F Pk (H T R−1 H + Pk + I)−1 F T + QF −T F T =
= [F Pk + QF T (H T R−1 HPk + I)](H T R−1 HPk + I)−1 F T =
= [(F + QF T H T R−1 H)Pk + QF −T ](H T R−1 HPk + I)−1 F T (4.32)

Supóngase ahora que Pk puede factorizarse como:

Pk = Sk Zk−1 (4.33)

donde Sk y Zk−1 tiene la misma dimensión de Pk . Haciendo esta sustitución en la


ecuación (4.32) se obtiene:

Pk−1 = [(F + QF −T H T R−1 H)Sk + QF −T Zk ]Zk−1 (H T R−1 HSk Zk−1 + I)−1 F T =


= [(F + QF −T H T R−1 H)Sk + QF −T Zk ](H T R−1 HSk + Zk )−1 F T =
= [(F + QF −T H T R−1 H)Sk + QF −T Zk ](F −T H T R−1 HSk + F −T Zk )−1 =
−1
= Sk+1 Zk+1 (4.34)
4.3. LOS FILTROS ESTACIONARIOS 77

Esto muestra que:

Sk+1 = (F + QF −T H T R−1 H)Sk + QF −T Zk


−1
Zk+1 = F −T H T R−1 HSk + F −T Zk (4.35)
−1
Estas valores para Sk+1 y Zk+1 se pueden expresar como la siguiente ecuación:

    
Sk+1 F −T F −T H T R−1 H Zk
=
Zk+1 QF −T F + QF −T H T R−1 H Sk
 
Zk
= H (4.36)
Sk

Si la matriz de covarianza P es una matriz n × n, entonces H será una matriz 2n × 2n.


La matriz H de la ecuación anterior se llama matriz Hamiltoniana y tiene algunas
propiedades interesantes. Es una matriz symplectic, es decir, satisface la ecuación:

 
−1 −1 0 I
J HJ = H donde J = (4.37)
−I 0

Las matrices symplectic tienen las siguientes propiedades:

Ninguno de los valores propios de esta matriz es igual a cero.

Si λ es un valor propio de la matriz, 1/λ también lo es.

El determinante de la matriz siempre es igual a ±1.


78 CAPÍTULO 4. ESTIMACIÓN DE LA POSICIÓN DE UN OBJETO
CAPÍTULO 5

El FMF o Fuzzy Mix of Filters

En este capı́tulo se presenta un nuevo algoritmo (aportación de esta tesis) para


obtener la posición / trayectoria necesaria para la realización de la tarea de control
visual.
A este nuevo filtro de estimación se le ha llamado Fuzzy Mix of Filters o FMF debido
a que aplica técnicas fuzzy para combinar varios tipos de filtros y obtener la estimación
de posición, velocidad y aceleración del objeto. Si bien la combinación de filtros para
mejorar la predicción no es una novedad, la utilización de la técnica fuzzy no se habı́a
utilizado hasta el momento con esta finalidad, recurriendo en todos los casos a com-
plejos algoritmos.
La utilización de fuzzy para resolver la parte más compleja del filtro mediante reglas
hace del estimador presentado una herramienta potente y sencilla para la predicción.

79
80 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS

5.1. Introducción
Los filtros de estimación han sido objeto de estudio durante un gran periodo de
tiempo (sobre todo en los años 90). A continuación se presenta una revisión de los
artı́culos más destacados de la temática para poder tener una perspectiva global de
la misma. Estos artı́culos hacen una revisión de los filtros más relevantes y estudiados
para la realización de predicción de posición y trayectoria.

5.2. Análisis de los filtros de estado estacionario


Este apartado se divide en tres subsecciones distintas. La primera realiza un análisis
de las referencias básicas a tener en cuenta para la utilización de filtros. La segunda
profundiza en algunas referencias adicionales de interés para el filtro FMF diseñado.
Por último, la tercera plantea algunas conclusiones importantes (derivadas de estas
referencias) a tener en cuanta.

5.2.1. Referencias básicas


En [136], Painter et al. explican la evolución histórica del FK (filtro de Kalman)
y del alpha-beta (αβ). Se dice que originalmente el αβ era para implementaciones
continuas y que se diseñaba para criterios de respuesta del filtro (ancho de banda,
sobreoscilación, pulsación natural, etc.) e incluso da fórmulas de relación entre α y β y
esos parámetros de respuesta. Se plantea el diseño del filtro αβ con principios de ruido
blanco, al igual que en el FK, y se llega a los valores de α y β.

En [71], Gray et al. indican la existencia en la bibliografı́a de una serie de relaciones


óptimas entre los dos parámetros α y β: la de Benedict-Bordner (1962) [17] y la de
Kalata (1984) [88], que también se mencionan en otros artı́culos. Además ya utiliza
la relación denominada ı́ndice de seguimiento (Js) o tracking index , entre el ruido de
la ecuación de estado EE1 y la de la ecuación de salida ES (ambas en escalar: e.g. en
filtro Kv el ruido de aceleración y el de posición medida).
Igual que ocurre en otros artı́culos, se habla del radar (ej. ruido de medida del
radar) como sensor de la posición. Realmente el radar no serı́a un sensor genérico y
el motivo de utilizarlo es la revista concreta (en aplicaciones aeroespaciales el radar
se utiliza para detectar objetos que vuelan) y que para procesar la información de los
radares se emplean mucho estos filtros [70]. En este trabajo se cuantifica el rendimiento
o funcionamiento del filtro αβ respecto a distintos tipos de medida que representan
distintos tipos de trayectoria. Además plantea un calculo analı́tico de α, no numérico,
(parámetros β y gamma (g) vendrı́a marcados por las relaciones apuntadas en Kalata)
en función del Js.

En [127] Munu et al. usan unas fórmulas de partida de α y β que son función del
instante considerado. El artı́culo contempla que el tiempo de actualización (periodo
1
EE y ES son la ecuación de estado y la ecuación de salida y están definidas en las ecuaciones
(D.1) y (D.2) del anexo D.
5.2. ANÁLISIS DE LOS FILTROS DE ESTADO ESTACIONARIO 81

T) sea variable, y con unas fórmulas óptimas se establece el tiempo de actualización


(T) como la inversa de la raı́z (cuadrática y cúbica) del error residual normalizado
(estas fórmulas las toma/adapta de varias referencias). Además ya se apunta en este
artı́culo una combinación de filtros que durante las maniobras2 utilice el αβγ y cuando
no las hay el αβ, que dice suaviza mejor la información (lógico porque supone en la
EE velocidad constante, mientras que el αβγ contempla aceleraciones y por lo tanto es
más ruidoso). Este aspecto es de vital importancia en esta tesis, ya que se ha utilizado
como uno de loa pilares fundamentales del para el algoritmo FMF diseñado.

En [21] Blair indica que el filtro αβ estima bien si no hay maniobras, pero que
la estimación se degrada si hay maniobra, pudiéndose incluso perder el objeto para
maniobra larga. Mientras que el filtro αβγ se encuentra con el dilema de siempre: un
buen filtrado de ruido (de medida) viene dado por bajas ganancias (da por supuestas
las fórmulas óptimas de Kalata, en las que para un determinado α los otros parámetros
(uno o dos) ya quedan definidos), pero esto hace que cuando haya una maniobra no se
detecte bien (rápido).

En [180] Sudano diseña un filtro αβγ para minimizar la traza (suma de los elemen-
tos de la diagonal) de la covarianza en régimen permanente de la predicción (P∞ ). Es
decir al igual que en el FK se optimiza la ganancia para minimizar incertidumbre, pero
para régimen permanente (steady state) tanto de ganancia como de P (incertidumbre
de la predicción).

En [79] Hoffman y Blair obtienen los mismos parámetros óptimos αβγ de [180]
(artı́culo de cierta repercusión) pero el cálculo se realiza de forma más sencilla. En [6]
se vuelve a obtener lo mismo que en [180] y [79] pero de forma más sencilla aún y
verificando que la solución es estable con la tabla de Jury.

En [7] Arcasoy realiza el mismo cálculo que en [6] pero en este caso se contempla
un ruido de jerk de la EE esté correlado en el tiempo, es decir que el objetivo puede
maniobrar durante un tiempo relativamente grande.

En [25] Cao y Rhinehart expresan una idea en la que se insiste en muchos otros
trabajos: que el filtro αβ es un filtro con la misma intención que el FK (minimizar
incertidumbres según ruido, etc.) pero de complejidad y carga computacional menor.
El artı́culo presenta el auto-ajuste de un filtro de primer orden genérico (no planteado
como FK ni αβ).

En [90] y [91] Kawase et al. plantean una combinación del filtro αβ y una predicción
circular (en [90]) o elipsoidal (en [91]) que intenta superar la incapacidad del filtro αβ
para reflejar un comportamiento no lineal. En el caso de [91] se utiliza la transformada
de Hough general para detectar elipses. La innovación de las dos estimaciones, la del fil-
tro αβ y la de la predicción no lineal, se utiliza para ponderar de forma relativa ambas:
wαβ = innno−lineal /(innαβ + innno−lineal ). Además, paralelamente a la predicción no
2
Se considera que un objeto está realizando maniobras cuando su aceleración no es constante.
82 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS

lineal (circular/elipsoidal) se realiza una lineal (extrapolación lineal), y sólo cuando la


innovación de la lineal supera un lı́mite se calcula realmente la predicción no lineal, evi-
tando carga computacional. Mientras no se supere el umbral se utiliza la extrapolación
lineal (que además evita la posible singularidad de la otra). Hay una comparativa (en
[90] y [91]) que utiliza el valor eficaz (RMS) del error de predicción. De todas formas se
hace el mismo planteamiento de [109], utilizar la innovación como elemento de error de
predicción para ponderar (el filtro αβ y el predictor no lineal) y comparar resultados.
En simulación esto no es necesario ya que se tiene el valor real (medida sin ruido) por
lo que serı́a más correcto utilizar: erroralgoritmo = |x(k)real − x(k/k)estimada | sobre todo
para comparar los resultados (ya que para ponderar se entiende que en la situación real
el valor exacto del estado no se va a tener, y se deberá asumir el uso de la innovación).
La innovación Inn = y(k) − x(k/k − 1), compara medida actual con predicción que
se hace sin haber corregido todavı́a con la medida actual. Por lo que si no se filtra
la medida la secuencia de innovación realmente NO es nula. Seguramente en un caso
real no hay otra forma de evaluar el algoritmo de estimación pero desde luego no da
un valor exacto de lo bueno que es. Por ejemplo una EE ajustada perfectamente a
la realidad (implica en diseño K∞ = 0) nunca dará innovación nula si hay ruido de
medida y sin embargo la estimación teóricamente es perfecta.
El analizar la incertidumbre de la innovación (ruidoy(k) +W Q(k)W T +P (k−1/k−1))
para intentar tener en cuenta (y quitar) elementos de distorsión (ruido de medida, etc.)
tampoco lleva a una solución satisfactoria porque la incertidumbre P que se obtenga
es la que cree el algoritmo, que no tiene porqué coincidir con la real (porque Q no se
ajusta en general al tipo de movimiento real). Como elemento de comparación utiliza
el valor eficaz RMS del error de predicción. Dicha magnitud tendrá un valor en cada
instante k obtenido con la simulación de Monte Carlo con 80 (50 en [188]) ejecuciones.

En [92] Kawase et al. comparan una serie de filtros para dos trayectorias tipo: la
lı́nea recta y el movimiento sinusoidal. Los filtros que se comparan son: αβ, FK, FK en
2 etapas 3 [21], y el αβ combinado con predictor elipsoidal. Igual que antes utiliza equi-
vocadamente, en simulación, la innovación como medida comparativa del rendimiento.
Se diseñan los filtros con mismos valores de ruido supuestos, etc. Hay gráficas en las
que se analiza el error del filtro propuesto y los dos que lo componen en función de α
(β se calcula con la ecuación de Kalata (28)) para optimizar su valor. Como elemento
de comparación utiliza el valor eficaz RMS del error de predicción. Dicha magnitud
tiene un valor para cada instante k obtenido con la simulación de Monte Carlo a 50
ejecuciones.

En [97] Kolodziej y Singh presentan un filtro dinámico circular (delta-ypsilon) que es


como el αβ pero en coordenadas angulares, no lineales, lo que hace que el movimien-
to que suponga sea circular (no lineal). Delta es la ganancia de la posición angular
e ypsilon la de la velocidad angular. Este filtro juega el mismo papel del predictor
circular/elipsoidal de Kawase ([90], [91] y [92]) pero resulta más elegante. De hecho
3
En el artı́culo se dice que es un FK en 2 fases, mientras que se trata de un filtro derivado de
estos, que es el de la referencia [2]. Se trata de un filtro de velocidad (filtro αβ) combinado con uno
de aceleración (especı́fico escalar) con un switching.
5.2. ANÁLISIS DE LOS FILTROS DE ESTADO ESTACIONARIO 83

reconoce que el filtro dinámico circular combinado en paralelo con el αβ (el cual es
imprescindible para tramos rectos, ya que el otro es singular) es muy similar a la com-
binación propuesta por Kawase (predictor circular + filtro αβ). Dice que la diferencia
es que el predictor circular de Kawase supone velocidad constante sobre un arco pre-
determinado, mientras que aquı́ tanto la posición angular como la velocidad angular
son dinámicas y las ganancias que controlan su evolución se utilizan igual que las del
filtro αβ.

En [187] Tenne y Singh realizan un rápido análisis de estabilidad con la tabla de


Jury para el filtro αβγ y se realiza su diseño óptimo en base a un ı́ndice de coste que
pondera un ratio de ruido (reducción de los ruidos de entrada y medida), la respuesta
transitoria del filtro y el error de régimen permanente. Se indica que los resultados
reducen los presentados anteriormente en la literatura para el filtro αβ. En [188], em-
piezan explicando distintos modelos que no suponen movimiento rectilı́neo. Los autores
justifica que el modelo del movimiento de un avión, bajo unas determinadas suposi-
ciones (entre ellas el giro coordinado), se reduce a un problema cinemático en que
la ecuación de predicción es no-lineal aunque no requiere el cálculo explı́cito de unos
parámetros como en Berg. Con unas simplificaciones en el modelo anterior se llega a
un vector de ratio de giro constante [20][24]. Los modelos de giro (según los autores)
son en general no lineales, de ecuaciones acopladas y difı́ciles de resolver.

En [102], Kosuge et al. indican que el filtro αβ es desacoplado ya que cada coor-
denada cartesiana se puede calcular de forma independiente (menos carga que si se
juntan matrices), pero tiene problemas de precisión cuando el objetivo pasa a gran ve-
locidad cerca del radar. Mientras que el FK (de alta carga computacional) es acoplado
(los cálculos de cada eje cartesiano interfiere en los otros) y la precisión se garantiza
para cualquier movimiento de velocidad constante del objetivo (se entiende que el au-
tor está refiriéndose al FK de velocidad constante, Kv). El artı́culo fundamentalmente
analiza las condiciones que debe cumplir el movimiento del objetivo y el tipo de sis-
tema de coordenadas cartesianas a utilizar para que el filtro αβ consiga una precisión
en los resultados similares al FK. El tipo de coordenadas que se utilizan son las del
radar (un sistema cartesiano móvil con un eje apuntando al objetivo) y para estas
coordenadas se ha de cumplir una de las siguientes condiciones para la equivalencia:
(1) el objetivo se mueve a baja velocidad, o (2) el rango4 del objetivo es grande, i.e. el
objetivo está muy separado del radar, o (3) el objetivo va hacia el radar en lı́nea recta.
Estas tres condiciones son a nivel práctico (fı́sico) y se derivan de otras con una mayor
connotación matemática. Los autores indican en el artı́culo que estas condiciones per-
miten establecer un lı́mite de validez del sub-óptimo dado por el filtro αβ.

En [101] Kosugue y Kameda realizan un análisis de estabilidad completo del filtro


αβγ alcanzando resultados diferentes a los propuestos en [187].

En [100] Kosuge et al. calculan analı́ticamente la varianza del error en régimen per-
manente para movimiento en lı́nea recta a velocidad constante (que si se particulariza
4
El autor llama rango a la distancia entre objetivo y radar, que coincide con el valor de un eje.
84 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS

para gamma nula resulta la del filtro αβ), argumentando que las formulas que hay son
para movimientos uniformemente acelerados y obtenidas a partir del FK.
Se obtienen las condiciones de α, β y γ para que la varianza anterior tenga sentido,
que resultan ser las mismas de la estabilidad de [100]. Además demuestran que, para
velocidad constante la varianza del error de un filtro αβ es siempre menor que la de
un αβγ con los mismos valores de α y β, por lo que para tener el mismo error hay que
manipular (cambiar) esos dos parámetros (no se pueden quedar igual).

En [99] Kosuge e Itose distinguen varios tipos de filtros αβ derivados a partir del
FK (con EE de velocidad constante) en régimen permanente (steady state) en función
de qué variable se considere que introduce el ruido de modelo (en la EE): en el RV
(random velocity) es la velocidad; en el RA (random acceleration) la aceleración; en
el RN la derivada N de la aceleración; y en el CM (continuos model ) es la variable
de ruido obtenida tras discretizar el sistema continuo con un ruido de proceso en la
aceleración.

En [3] Amishima, Ito y Kosuge plantean una técnica de radares (pulse compression)
que introduce un offset en la medida proporcional a la distancia del radar al objetivo
(range rate of the target). Para resolverlo plantea un filtro αβ de RA que a la vez que
hace el tracking del objetivo corrige internamente el error de bias de la observación,
y presenta las condiciones de estabilidad de distintos filtros αβ que realizan dicho
seguimiento junto con la corrección interna. Además demuestra que el RV funciona
mejor que el RA y el CM en términos de la matriz de covarianza para un ı́ndice de
maniobra fijo.

En [98] Kosuge emplea un método de tracking denominado multiplicación del ruido


observado, que multiplica por una constante (que puede ser mayor y menor que 1) la
matriz de covarianza del ruido observado utilizada en el cálculo de la matriz de covari-
anza del error del FK, para obtener el filtro αβ óptimo. La precisión del filtro diseñado
se obtiene para movimiento rectilı́neo a velocidad constante, bajo la condición de que
el error permanente de tracking es constante para aceleración constante. Bajo esto tipo
de supuestos (muy utilizados por Kosuge) la incertidumbre que cree el algoritmo es la
real. Además la ganancia α obtenida con el método es función de una constante, y que
mejora el método para que tenga un valor único y determinado produciendo un error
de seguimiento entorno a 1/4 de lo que se obtiene con el método convencional y 1/8
del FK.
En la introducción se comenta que el método de multiplicación del ruido observado,
utilizado para realizar tracking, se toma (se extrapola) de la teorı́a del filtro de H ∞
(en ese caso la constante de multiplicación era siempre mayor que uno para suavizar
la matriz de covarianza del error), resultado reciente del control robusto, que dice es
una extensión del FK.

En [125] Moore y Wang presentan un estudio que asume un fallo del modelo (por
ejemplo que se ha supuesto de velocidad constante y es de mayor orden) se puede
detectar e identificar correctamente a través de la secuencia de innovación, aunque
5.2. ANÁLISIS DE LOS FILTROS DE ESTADO ESTACIONARIO 85

reconoce que es muy difı́cil de determinar si una determinada alarma (i.e. aumento
súbito de la secuencia de innovación) se debe a un error de medida o de modelado.
Sin embargo la secuencia de innovación tiene la propiedad de que si la ganancia del
FK es óptima la secuencia de innovación es un ruido blanco. Esto permite o justifica
que muchos algoritmos de detección {diagramas de control (ej. switching), CUMSUM,
FFT, Wavelets, ...} la utilicen para detectar alarmas o situaciones no óptimas del FK.
En concreto ellos utilizan el algoritmo CUMSUM [131], que es capaz de filtrar bastante
falsas alarmas según las pruebas mostradas.
Un primer diseño de filtro adaptativo que se plantea en [125] es el de introducir,
cuando se detecte una alarma en la innovación, en la EE un ruido blanco ficticio en
todos o algunos (selectivamente) de los estados, lo que permitirá que la media de la
innovación nunca supere un lı́mite. El ruido ficticio puede estar escalado según la alar-
ma de innovación detectada.

En [132][133] Ogle y Blair establecen la diferencia entre prediction (hacia el futuro),


retrodiction (hacia el pasado), filtering (hacia el presente). El artı́culo se centra en la
retrodiction o suavizado de los valores del pasado utilizando un filtro αβ con estados
ampliados (hacia atrás), siendo el lag (que lo considera fijo) la diferencia entre el
instante de la medida actual y el del estado respecto al que se suaviza (hacia atrás en
el tiempo).
Se desarrollan las fórmulas recursivas de la ganancia y la covarianza del error, que
parten de lo normal para el filtro αβ y van propagando hacia atrás el cálculo recur-
sivamente. Estas fórmulas se verifica que dan los mismos resultados numéricos que el
régimen permanente del FK con estados ampliados hacia atrás. Finalmente se compara
el resultado del filtro propuesto (αβ con ampliación hacia atrás) con el filtro αβ normal
para destacar las ventajas del suavizado.

En [207] Yooa y Kimb desarrollan un filtro α-β-lambda que dicen da unos resul-
tados tan precisos ya sea con/sin maniobra (aceleración correlada con el tiempo, ej.
constante) y con/sin movimiento no lineal como el FK pero que es tan simple como el
filtro αβ (baja carga computacional). En concreto se utiliza el filtro αβ en estacionario
(aceleración nula) y un algoritmo de aproximación del FK cuando hay maniobra (acel-
eración no nula). El algoritmo de aproximación da unos valores de ganancia αβ recur-
sivos y variables en el tiempo, compuestos entre otras cosas por los valores óptimos de
régimen permanente, utilizando una definición más compleja del ı́ndice de maniobra.

5.2.2. Referencias adicionales


En [45] Cortina et al. proponen un FK quasi-extendido que está bien condiciona-
do numéricamente (no tiene problemas de singularidad de matrices). En simulación
muestra que los resultados de predicción son mejores que los proporcionados por filtros
lineales.

En [106] Li y He combinan el WLS (mı́nimos cuadrados ponderado) y el punto de


vista Bayesiano para obtener un estimador óptimo de sistemas lineales estocásticos,
86 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS

que resulta apropiado para inicializar filtros recursivos. Las fórmulas las plantea tanto
para sistemas dinámicos continuos o discretos con medidas en tiempo discreto (los
primeros son más realistas pero los segundos más populares).
Por ejemplo, se puede ver que para un filtro con EE de velocidad constante hacen
falta dos medidas (z0 ,z1 ) para establecer la inicialización del estado: [z0 ; (z1 − z0 )/T] y
la matriz P de covarianzas, que tiene en cuenta que las dos medidas de la inicialización
tienen un ruido de varianza r que para TPD es [r 1/2 ; 2·r1/2 /T] y que en el caso del WLS
además aparece un término función de la varianza del ruido de proceso q. El resultado
de sumilación muestra que la inicialización de WLS da mucho mejor resultado que la
de TPD.

En [51] Efe y Atherton presentan un FK adaptativo (FKA) que resulta simple pero
eficiente para seguir objetos que realicen giros (maniobras) variables. Se considera un
FK de velocidad constante en el que el ruido de proceso Q se ajusta en cada instante en
función de un ratio de giro, obtenido como la aceleración (calculada con las velocidades
actual y pasada estimadas) dividido por la velocidad estimada del objeto.
El algoritmo propuesto (AKF) se compara con un FK normal (de 2◦ orden de
velocidad constante) y el algoritmo IMM5 [22], para tres trayectorias del objetivo con
distintos niveles de covarianza del ruido de proceso. Para simular el IMM y el otro FK,
los ruidos de proceso a utilizar se plantean con dos alternativas:

(a) No hay información a priori y por tanto se le asigna un valor supuesto sin ninguna
base (IMM0-FK0),

(b) Se asume el ruido correspondiente al ratio de giro más grande posible (conocido)
del movimiento del objetivo (IMM1-FK1).

Notar que el FKA va adaptando la Q (estimándola en cada instante) por lo que no


hay que asignarle un valor de covarianza de ruido en el proceso.
El algoritmo IMM está explicado en [22] y utiliza varios modelos para cubrir todos
los posibles movimientos del objetivo, pero con un coste computacional considera-
ble. Aunque incluir muchos modelos puede empeorar el resultado final [107]. Además
los esquemas donde se detecta el cambio de movimiento del objetivo para modificar
parámetros del filtro, o incluso su orden, tiene el inconveniente del retraso en la detec-
ción y la reinicialización del filtro. Con lo que pueden acumularse grandes errores de
seguimiento hasta que se detecta o que cuando se empiece a detectar el movimiento ya
haya acabado éste.
En este artı́culo es interesante como se comparan resultados. Se utiliza el NPE
(normalizad position error) que es función del instante p considerado
P NPE(k), y lo cal-
cula como: la desviación tı́pica del error de predicción ((xreal (k) − xpred (k))2 /N )
dividido por (por eso habla p deP normalizado) la desviación tı́pica de la posición medida
respecto a la posición real ((xreal (k) − xmedido (k))2 /N ), donde N son el número
de simulaciones independientes (utiliza simulación de Monte Carlo) y se podrı́an con-
siderar varias coordenadas, no sólo x, que se sumarı́an. Como criterio considera que
5
Algoritmo llamado Interacting Multiple Model, publicado en 1988 por H.A.P. Blom e Y. Bar-
Shalom.
5.2. ANÁLISIS DE LOS FILTROS DE ESTADO ESTACIONARIO 87

se ha perdido el objeto si el valor de NPE(k) excede de 1 durante cuatro iteraciones


seguidas.
Una medida global de la bondad del estimador es la media del NPE(k). En [51]
se comparan los algoritmos para la tercera trayectoria, analizando el cálculo computa-
cional en FLOPs (operaciones en coma flotante) requeridas por iteración, en lugar de
hacerlo por tiempo. Por ejemplo el FK normal tiene 1038 Flops. A modo general, el
IMM ofrece ligeramente mejores resultados que el FKA cuando no hay maniobras pero
claramente peores cuando sı́ las hay. Mientras, el FKA tiene un coste del 25 % respecto
al IMM, que es similar al que se obtendrı́a con un FK de ruido de proceso Q constante.

En [118] Matı́a et al., introducen un nuevo método para la implementación del


filtro borroso de Kalman. La novedad en este artı́culo viene del hecho de que usando
distribuciones de posibilidad, en vez de distribuciones gaussianas, una descripción bo-
rrosa del estado previsto y observado es suficiente para obtener una buena estimación.
Algunas caracterı́sticas de esta aproximación son que la incertidumbre no necesita ser
simétrica.
Para implementar el algoritmo, esta aproximación también constituye un método
para propagar la incertidumbre a través del modelo del proceso basándose en distribu-
ciones de posibilidad trapezoidal (y no gausiana). Los pasos a realizar en este caso son
exactamente los mismos que para el filtro de Kalman clásico (probabilı́stico) porque la
formulación de la matriz de incertidumbre es análoga.
En muchos casos, la incertidumbre es asimétrica, y en otros además no es proba-
bilı́stica. Es más, linealizar el modelo no-lineal y forzar la propagación para guardar
una forma gaussiana, produce la acumulación de los errores que pueden producir in-
consistencias en el filtro cuando el número de iteraciones es elevado.
En este artı́culo no se indica que este filtro posibilı́stico sea siempre mejor que
el probabilı́stico. Se argumenta que simplemente se debe elegir entre estas considera-
ciones dependiendo del tipo de conocimiento que se dispone del sistema. La versión
posibilı́stica tiene claramente más sentido (según los autores) cuando la incertidumbre
se maneja de forma cualitativa.

En cuanto a los libros de Simon [174] y Bar-Shalom [13], se trata de dos publi-
caciones en las que se plantea una visión muy sencilla de los filtros αβ y αβ(γ): los
considera un FK de régimen permanente para un sistema de 2◦ /3er orden Newtoniano
con la posición medida. De modo que se calculan los valores de ganancia α, β, (γ) para
esas condiciones (FK de permanente). Tanto en el libro de Simon [174] como en el de
Bar-Shalom [13] se deducen valores del filtro αβ, mientras que para el filtro αβγ en el
libro de Simon se indican y se remite la deducción al libro de Bar-Shalom.
Además en el apartado 4.3.4 de esta tesis, se puede ver un planteamiento alter-
nativo para obtener el FK de régimen permanente, basado en el Hamiltoniano. En
definitiva es una forma alternativa a la resolución de la ecuación de Ricati (DARE:
Discret Algebraic Ricatti Equation).

En [13] Bar-Shalom trata también el Ruido en Coordenadas Polares (range-bearing


measurement noise) y describe de forma completa este enfoque, presentando dos op-
88 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS

ciones para realizar la conversión de coordenadas polares a cartesianas. Además, se


realiza una importante distinción conceptual: range (distancia del radar al objeto) (en
el libro de Brookner [23] también se denomina slant range), azimuth o bearing (ángulo
del vector que va del radar al objeto), range rate (derivada respecto al tiempo de la
distancia entre el radar y el objeto).

5.2.3. Conclusiones
Al respecto de la innovación de los filtros:

De [90][91]:
Parece evidente que es necesario utilizar la innovación para saber si un fil-
tro esta trabajando correctamente, por lo que la innovación es el elemento de
error de predicción para ponderar (el filtro αβ y el predictor no lineal) y com-
parar resultados. En simulación esto no es necesario ya que se tiene el valor
real (medida sin ruido) por lo que serı́a más correcto utilizar: erroralgoritmo =
|x(k)real − x(k/k)estimada | sobre todo para comparar los resultados (ya que para
ponderar se entiende que en la situación real el valor exacto del estado no se va
a tener, y se deberá asumir el uso de la innovación).
Inn = y(k) − x(k/k − 1) → compara medida actual con predicción que se hace
sin haber corregido todavı́a con la medida actual. Seguramente en un caso real no
hay otra forma de evaluar el algoritmo de estimación pero desde luego no da un
valor exacto de lo bueno que es. Por ejemplo una EE ajustada perfectamente a
la realidad (implica en diseño K∞ = 0) nunca dará innovación nula si hay ruido
de medida y sin embargo la estimación teóricamente es perfecta.

De [125]:
En el estudio se asume que un fallo del modelo (por ejemplo que se ha supuesto de
velocidad constante y es de mayor orden) se puede detectar e identificar correcta-
mente a través de la secuencia de innovación, aunque reconoce que es muy difı́cil
de determinar si una determinada alarma (i.e. aumento súbito de la secuencia de
innovación) se debe a un error de medida o de modelado.
Sin embargo la secuencia de innovación tiene la propiedad, de que si la ganancia
del FK es óptima la secuencia de innovación es un ruido blanco. Esto permite o
justifica que muchos algoritmos de detección se sirvan de ella (i.e. de la media de
la secuencia de innovación).

Al respecto del coste computacional del FK y del filtro αβ(γ):

El filtro αβ(γ) ([132][133]) vendrı́a a ser (o deberı́a tender a ser) un sub-óptimo


del FK pero con menos carga computacional, aunque con orı́genes un poco distintos
de cómo se emplean y entienden hoy en dı́a [136]. Los valores de este filtro se deben
5.2. ANÁLISIS DE LOS FILTROS DE ESTADO ESTACIONARIO 89

elegir de forma óptima pero siempre dentro del rango marcado por los análisis de esta-
bilidad (Tabla de Jury, [187], [101]). Este filtro es ESTÁTICO (no dinámico) porque
la ganancia tiene (normalmente) una relación estática con los ruidos de proceso y de
medida (variables o no). El FK sı́ es dinámico porque depende de la incertidumbre del
estado anterior.
El coste computacional del filtro αβ(γ) es menor por dos motivos:
Primero porque tiene sólo las 2 ecuaciones de régimen permanente de las 5 que
originalmente tiene el FK. Además en esas dos ecuaciones no hay cálculo de inversas,
que consumen mucho coste computacional, mientras que en las 3 auxiliares del FK sı́.
También es verdad que en ocasiones la ganancia del filtro αβ(γ) no es constante (ej.
[21]), pero se calcula con una expresión escalar, función del instante considerado, que
en cualquier caso serı́a de menor coste que las 3 ecuaciones auxiliares que utiliza el FK.
El segundo motivo es porque las ecuaciones se pueden implementar separadamente,
i.e. que en lugar de trabajar con matrices que aglutinen todas las coordenadas se puede
desglosar el cálculo en matrices para cada coordenada individual. Lo anterior hace que,
por ejemplo, en lugar de sumar dos matrices de 4 × 4 (16 sumas escalares, 8 de ellas
son ceros) se sumen dos veces dos matrices de 2 × 2 (8 sumas escalares).

Al respecto de la variabilidad de la ganancia del filtro αβ(γ):

Muchos de los artı́culos analizados obtienen los valores óptimos de ganancia del fil-
tro αβ(γ) en función del tracking index (incluyendo el apartado 4.3.1 de este capı́tulo),
que es una fracción entre ruido de proceso y de medida. Si estos ruidos se modifican6
cambiarı́an las ganancias7 . De todas formas, dado que este es un filtro estático (no
depende de la incertidumbre anterior) los valores óptimos se obtienen evidentemente
en unas condiciones de régimen permanente (ej. [136]).
Por lo tanto no tiene sentido considerar un ruido de proceso y/o medida con varia-
ciones muy rápidas porque no darı́a tiempo a alcanzar el permanente para el cual se
ha calculado de forma (sub-)óptima los valores de ganancia. Evidentemente, conside-
rar ruidos variables pero que se mantienen en tramos amplios no tendrı́a el problema
anterior.
Muchos artı́culos de los analizados combinan ya varios tipos de filtro: ponderando,
con switching, etc. En este capı́tulo se presenta el uso de la herramienta fuzzy que es
una herramienta contrastada y muy adecuada para realizar esta combinación de filtros,
y que hasta ahora no habı́a sido utilizada (explotada) en este contexto8 . Además se
busca un diseño fuzzy sobre todo para combinar movimientos no sólo suaves, sino
también con discontinuidades. Esta es una de las principales aportaciones de esta tesis
6
Otro tema es cómo se sabrı́a en realidad que el ruido de proceso aumenta. Seguramente tendrı́a
que ser, como en muchos otros algoritmos, con la secuencia de innovación (debido a la propiedad
comentada en [125]), en concreto con su media, y habrı́a que ver que relación concreta se utiliza entre
ambas magnitudes (media de innovación y ruido de proceso).
7
Como se ha dicho en el punto anterior: aunque la ganancia cambie, con una ecuación escalar,
siempre tendrá menos coste que las 3 ecuaciones auxiliares del FK.
8
Aunque los conceptos de control visual, filtro de Kalman y estimación de la posición se han tratado
de forma conjunta en otras investigaciones [118][166][170][171], este capı́tulo presenta una novedosa
perspectiva (véase 5.3).
90 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS

doctoral.
Otro aspecto a favor del planteamiento fuzzy es que la transición de un filtro a otro
es suave, evitando posibles problemas de inestabilidad por el switching brusco. Aunque
también puede ser que las funciones de pertenencia, una vez optimizadas, resulten de
transición brusca ratificando que un switching brusco puede ser lo más deseable.
El filtro fuzzy propuesto tiene una filosofı́a heurı́stica intrı́nseca muy importante
(ajuste de coeficientes y parámetros, etc.).
De hecho se pueden plantear varios filtros fuzzy alternativos, por ejemplo uno que
garantice el tiempo real (combinando un αβ y un αβγ) y otro que aglutine muchos más
filtros, predictores circulares/elipsoidales (incluso de Kalman {Kv,Ka,Kj}). El segundo
caso mojorarı́a la estimación respecto al otro, aunque tendrı́a más carga computacional
y por tanto serı́a más dificil de garantizar el tiempo real.

5.3. El FMF (Fuzzy Mix of Filters)


En el apartado 5.2 se ha realizado un estudio de la bibliografı́a y el estado del arte
de los filtros predictivos. También se presentaron algunos filtros basados en combinar
predicciones realizadas por otros para obtener una mejor predicción. En el estudio
realizado, se puede ver que los criterios para decidir la citada combinación suelen ser de
una complejidad elevada y de difı́cil justificación debido a que se parte de suposiciones
empı́ricas (véase el caso de [36]). Partiendo de esta base, en este apartado se plantea el
uso de un sistema borroso (fuzzy) para realizar la citada combinación. La utilización
de esta técnica no se habı́a empleado hasta el momento para combinar filtros, por lo
que es una de las aportaciones propias de la tesis. Por otra parte, de esta forma se
propone un método sistemático para realizar una combinación básicamente empı́rica.
De esta forma se obtiene una expresión como la mostrada en la ecuación (5.2),
donde se puede observar que la predicción de la posición del filtro fuzzy (x̂ff ) es la
suma ponderada (mediante ki ) de las predicciones realizadas por los filtros f1, f2, ...,
fi. La ecuación (5.2) refleja el hecho de que la suma de los valores de ki ha de ser la
unidad para normalizar la predicción.

x̂ff = k1 · x̂f1 + k2 · x̂f2 + ... + ki · x̂fi (5.1)


X n
ki = 1 (5.2)
i=1

En este apartado se pretende estudiar la viabilidad de aplicar esta idea (ponderación


fuzzy de filtros predictivos) a un sistema concreto (el bote de una pelota contra el suelo)
y ası́ poder extraer una conclusión en referencia a la dificultad del diseño y la calidad
de las nuevas estimaciones obtenidas. La subsección 5.3.1 presenta las ecuaciones y
consideraciones realizadas para obtener la respuesta del sistema bajo estudio.

5.3.1. Dinámica del bote de una pelota


La dinámica del sistema se describe mediante las ecuaciones de caı́da libre de un
objeto, el golpe con el suelo y el rebote que impulsa al cuerpo hacia arriba. Se puede
5.3. EL FMF ( FUZZY MIX OF FILTERS) 91

formular la caı́da libre del objeto mediante la ecuación diferencial de segundo orden
(5.3).

p̈ = −g (5.3)
donde p describe la posición de la pelota en función del tiempo y g = 9,81m/s2 es la
aceleración de la gravedad.
El modelado del sistema se ha realizado en el paquete Stateflow de Matlab que
requiere una especificación dinámica como ecuaciones diferenciales de primer orden.
Se puede describir este sistema de caı́da libre en términos de posición p y velocidad v
usando las ecuaciones diferenciales de primer orden (5.4) y (5.5).

ṗ = v (5.4)
v̇ = −9,81 (5.5)

El bote sucede después de que la bola golpee contra el suelo en la posición p ≤ 0. En


este momento se puede modelar el bote actualizando la posición y la velocidad de la
siguiente forma:

Resetear la posición a cero.

Actualizar la velocidad del objeto por su valor negativo al momento anterior de


producirse el choque.

Multiplicar la nueva velocidad por un coeficiente (e.g. 0.8) que reduce la velocidad
justo después del bote.

Utilizando el citado paquete de Matlab (Stateflow ) se pueden expresar estas ecua-


ciones y condiciones mediante el diagrama de flujo de la figura 5.1. La figura 5.2
presenta el resultado de la simulación. Evidentemente estas gráficas no tienen ruido,
por lo que posteriormente se le añade el ruido de medida que introducirı́a un sensor9 .
Si se representa la velocidad y la aceleración del proceso descrito incluyendo el
ruido de medida considerado, se obtiene la gráfica de la figura 5.3. En esta gráfica se
pueden observar las zonas de comportamiento diferenciado que se pueden considerar en
el comportamiento no lineal del sistema. Estas zonas realizan la distinción basándose
principalmente en el valor de velocidad y aceleración como se describe en este apartado.

El filtro FMF (Fuzzy Mix of Filters) propuesto, está basado en los filtros: Ex-
trapolación lineal (Exl10 ), ssKF con modelo de velocidad (αβ), ssKF con modelo de
aceleración (αβγ) y los filtros de Kalman con modelo de velocidad, aceleración y jerk
9
Las figuras 5.10 y 5.11 muestran el resultado de la simulación del bote de la pelota considerando
el ruido de sensor. Se grafica la altura en función del tiempo. La citada figura 5.10 muestra que los
botes son cada vez de menor altura y que el tiempo entre botes es cada vez más pequeño. La figura
5.11 representa los datos entre el primer y el tercer bote.
10
Este es el filtro de predicción más sencillo de los considerados. Se basa en calcular la lı́nea recta
que pasa por dos puntos, el precedente y el actual y suponer que el próximo se encontrará en la misma
recta. Para ver formulación consultar [142].
92 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS

Figura 5.1: Modelado del bote de una pelota usando Stateflow de Matlab.

Figura 5.2: Gráficas de posición y velocidad del modelo Stateflow mostrado en la figura
5.1.

constante (Kv, Ka y Kj respectivamente). Ası́, se ponderan los distintos filtros en fun-


ción del valor de la velocidad y la aceleración de la pelota. Para ello, se han realizado
diversas simulaciones. Las figuras desde la 5.4 hasta la 5.9, muestran dos botes de la
pelota, (t ∈ [15, 65] y p ∈ [0, 35]) junto con las predicciones realizadas por los filtros
Exl, αβ, αβγ, Kv, Ka y Kj. En estas figuras se observa que la predicción de algunos
filtros es mejor que la de otros dependiendo del tramo del bote. Esta información es la
utilizada para ponderar los filtros utilizados en cada una de las zonas presentadas en la
figura 5.3. A su vez, la figura 5.10 muestra todas las predicciones realizadas. Las figuras
5.11, 5.12 y 5.13 muestran los detalles marcados con el mismo nombre en la figura 5.10.

En la citada figura 5.3 se observan las zonas de comportamiento consideradas. En


cada zona se aplican los filtros que mejor se comporten con mayor o menor ponderación
según el valor de su desviación. La clasificación se puede realizar de la siguiente forma:

Inicio de la simulación: son las primeras muestras registradas, donde todos los
filtros en general obtienen un error muy elevado, y donde la mejor opción pasa
por utilizar los filtros que más rápidamente disminuyan esos primeros valores
de error. Estas especificaciones, las cumplen mejor los filtros Exl, αβ y Kv (por
5.3. EL FMF ( FUZZY MIX OF FILTERS) 93

Picos de aceleración
5
Zona Intermedia
4

Velocidad (cm/s), Aceleración (cm/s )


2
3
Curva de aceleración
Zona final
2

−1

−2

Curva de velocidad
−3
Zona entre picos de aceleración
−4
Zona Inicial
−5
0 20 40 60 80 100 120 140 160
k (décimas de segundo)

Figura 5.3: Detalle de las zonas en las que se puede clasificar el comportamiento del
sistema bajo estudio (bote de una pelota contra el suelo).

razones evidentes, al tener menos estados se tarda menos instantes11 de tiempo


en alcanzar el regimen estacionario). [caso5 de tabla 5.1].

Zona intermedia: esta zona, como su nombre indica, es la que queda después de
la zona inicial (donde los filtros se están inicializando), pero antes de la zona final
(donde el valor de la velocidad es muy bajo). A su vez se puede dividir esta zona
en dos:

Las de los picos de aceleración: en estas zonas, debido al bote de la pelota


(ver figura 5.1), la aceleración crece mucho y esta caracterı́stica permite
hacer esta nueva distinción. A su vez, este pico tiene dos zonas:
◦ Zona previa al pico de aceleración: se corresponde con la zona anterior
al choque de la pelota contra el suelo. En este caso, los filtros que se
comportan (según las simulaciones realizadas) de una forma aceptable
son Exl, αβγ, Ka y Kj. [caso1 de tabla 5.1].
◦ Zona del pico de aceleración: se corresponde con el momento en que
la pelota golpea en el suelo y sale despedida por efecto del bote. Para
estos casos, los mejores filtros son el Exl y el Kj. [caso2 de tabla 5.1].


Las zonas situadas entre picos de aceleración, también se dividen en dos:


11
Aunque es evidente que también dependerá de la ganancia de corrección usada en cada filtro,
cuantos menos elementos tenga el vector de ganancia, menos tiempo tardará en corregir el error
inicial.
94 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS

35 35
Posición Real Posición Real
Predicción Exl Predicción Exl
30 Predicción Ab 30 Predicción Ab
Predicción Abg Predicción Abg
Posición (centímetros)

Posición (centímetros)
Predicción Kv Predicción Kv
25 25
Predicción Ka Predicción Ka
Predicción Kj Predicción Kj
20 20

15 15

10 10

5 5

0 0
15 20 25 30 35 40 45 50 55 60 65 15 20 25 30 35 40 45 50 55 60 65
k (décimas de segundo) k (décimas de segundo)

Figura 5.4: Filtro Exl. Figura 5.5: Filtro αβ.

35 35
Posición Real Posición Real
Predicción Exl Predicción Exl
30 Predicción Ab 30 Predicción Ab
Predicción Abg Predicción Abg
Posición (centímetros)

Posición (centímetros)

Predicción Kv Predicción Kv
25 25
Predicción Ka Predicción Ka
Predicción Kj Predicción Kj
20 20

15 15

10 10

5 5

0 0
15 20 25 30 35 40 45 50 55 60 65 15 20 25 30 35 40 45 50 55 60 65
k (décimas de segundo) k (décimas de segundo)

Figura 5.6: Filtro αβγ. Figura 5.7: Filtro Kv.


Posición Real
35 35 Predicción Exl
Posición Real Predicción Ab
Predicción Exl Predicción Abg
30 Predicción Ab 30 Predicción Kv
Predicción Abg Predicción Ka
Posición (centímetros)

Posición (centímetros)

Predicción Kv Predicción Kj
25 25
Predicción Ka
Predicción Kj
20 20

15 15

10 10

5 5

0 0
15 20 25 30 35 40 45 50 55 60 65 15 20 25 30 35 40 45 50 55 60 65
k (décimas de segundo) k (décimas de segundo)

Figura 5.8: Filtro Ka. Figura 5.9: Filtro Kj.


5.3. EL FMF ( FUZZY MIX OF FILTERS) 95

40
Real Position
Prediction LI
35
Prediction Ab
Prediction Abg
30
Prediction Kv
Position (centímetros)

Prediction Ka
25
Prediction Kj
20

15

10

−5
0 20 40 60 80 100 120 140
k (décimas de segundo)

Figura 5.10: Trayectoria real y predicción de todos los filtros.

Real Position
30 Prediction LI
Zoom2 Prediction Ab
25 Prediction Abg
Prediction Kv
Position (centímetros)

Prediction Ka
20
Prediction Kj

15

10

0
Zoom1
20 25 30 35 40 45 50
k (décimas de segundo)

Figura 5.11: Vista de detalle de la figura 5.10.


96 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS

40

35

30
Position (centíemtros)

25

20

15

10

0
20 22 24 26 28 30 32
k (décimas de segundo)

Figura 5.12: Zoom1 mostrado en la figura 5.11 (leyenda mostrada en la misma figura).

25
Position (centímetros)

20

15

10

32 34 36 38 40 42 44
k (décimas de segundo)

Figura 5.13: Zoom2 mostrado en la figura 5.11 (leyenda mostrada en la misma figura).
5.3. EL FMF ( FUZZY MIX OF FILTERS) 97

◦ Las primeras muestras, con un máximo de 4 o hasta que la velocidad


se haga negativa (lo que ocurra primero), donde la velocidad es aún
grande después del bote. En este caso, se considera como una extensión
de la anterior zona (zona del pico de aceleración), ya que se utilizan los
mismos filtros. [caso3 de tabla 5.1]. Una vez pasado éste, tenemos (la
zona de estabilización):
◦ La zona de estabilización, donde el error se aproxima más a su valor
medio (i.e. se alcanza el régimen permanente) y se aplican los filtros
αβγ, Exl y Ka. [caso4 de tabla 5.1].

Zona final: se caracteriza por tener unos valores de velocidad y aceleración muy
pequeños (del orden del doble del ruido de aceleración mostrado en la figura
5.3). Se considerará como final el último octavo de las medidas tomadas en la
simulación, si su velocidad máxima no supera el valor de 0.7m/s. Se comportan
mejor los filtros Exl, αβ y Kv. [caso6 de tabla 5.1].

Una vez elegidos los filtros a aplicar en cada una de las zonas diferenciadas del
comportamiento del sistema, quedarı́a elegir el peso de cada una de las aportaciones
de los filtros. Este proceso se realiza de una forma empı́rica, basándose en la experiencia
adquirida en el uso de los filtros utilizados y en comportamiento de cada uno de ellos
en las zonas clasificadas (ver figura 5.3).
En base a las conclusiones extraı́das del comportamiento de cada uno de los filtros
(ver figuras desde la 5.4 hasta 5.9) se construye la tabla 5.1 ponderando cada uno de
los filtros que funcionan bien en cada zona.

Los valores de la tabla 5.1 muestran constantes fijadas empı́ricamente (a priori ),


pero ¿Como sabemos que estos valores son los mejores para ponderar los filtros se-
leccionados?. En realidad no se sabe y probablemente no sean los mejores. Por esta
razón se somete a cada uno de estos tramos (desde caso1 hasta caso6 ) con las pondera-
ciones elegidas a un simple algoritmo de optimización (Simplex algorithm [178]) para
encontrar el mı́nimo local más cercano al punto definido empı́ricamente (mostrado en
la tabla 5.1).
Una vez realizadas las iteraciones para encontrar el mı́nimo local más cercano a
los valores seleccionados (proceso que tarda varias horas en cada caso), se obtienen los
valores mostrados en la tabla 5.2. Estos valores son los utilizados en la base de reglas
del sistema fuzzy de tipo Sugeno. Las reglas son las siguientes:

caso1 : IF i ≥ 5 AND acceleration IS high AND acceleration > 0 THEN


FMF=0,22·Exl+0,23·Kv+0,26·Ka+0,29·Kj
caso2 : IF i ≥ 5 AND acceleration IS high AND |acceleration| > |velocity|
THEN FMF=0,26·Exl+0,74·Kj
caso3 : IF i ≥ 5 AND j ≤ 4 AND acceleration IS low THEN FMF=0,33·Exl+0,67·Kj
caso4 : IF i ≥ 5 AND j > 4 AND acceleration IS low THEN
FMF=0,21·Exl+0,56 · αβγ + 0,23·Ka
caso5 : IF i < 5 THEN FMF=0,29·Exl+0,62 · αβ + 0,09·Kv
98 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS

Zona Intermedia
Zonas de pico de aceleración
Zona previa Pico de aceleración
caso1 caso2
Zona entre picos
Inicio Filtros en estado permanente
caso3 caso4
Zona Inicial Zona Final
caso5 caso6

caso1 = 0,25·Exl+0,25·Kv+0,25·Ka+0,25·Kj
caso2 = 0,30·Exl+0,70·Kj
caso3 = 0,30·Exl+0,70·Kj
caso4 = 0,20·Exl+0,60 · αβγ + 0,20·Ka
caso5 = 0,20·Exl+0,60 · αβ + 0,20·Kv
caso6 = 0,20·Exl+0,60 · αβ + 0,20·Kv

Tabla 5.1: Clasificación del comportamiento del sistema y ponderaciones a priori .

caso1 = 0,22·Exl+0,23·Kv+0,26·Ka+0,29·Kj
caso2 = 0,26·Exl+0,74·Kj
caso3 = 0,33·Exl+0,67·Kj
caso4 = 0,21·Exl+0,56 · αβγ + 0,23·Ka
caso5 = 0,29·Exl+0,62 · αβ + 0,09·Kv
caso6 = 0,18·Exl+0,55 · αβ + 0,27·Kv

Tabla 5.2: Valores sub-óptimos de ponderación de los filtros (o valores a posteriori ).


5.3. EL FMF ( FUZZY MIX OF FILTERS) 99

caso6 : IF i ≥ 5 AND velocity IS < 0,7 THEN


FMF=0,18·Exl+0,55 · αβ + 0,27·Kv

Para más información en referencia al filtro fuzzy diseñado e implementado, se pueden


consultar las referencias [147], [142] y [53].

5.3.2. Experimentos simulados


Para analizar el comportamiento de cada uno de los filtros y el FMF obtenido,
se definen los siguientes términos: RMSET (valor RMS12 del error de predicción con
respecto al tiempo), RMSMET (valor RMS de los errores de medida con respecto al
tiempo) y NRMSET (RMSET normalizado).

v
u N 2
u X k x(k) − x̂(k) k2
RMSET = t (5.6)
k=D+1
(N − D)
v
u N 2
u X k x(k) − y(k) k2
RMSMET = t (5.7)
k=D+1
(N − D)
RMSET
NRMSET = (5.8)
RMSMET

donde:
x(k) es la posición real del objeto en el instante k,
x̂(k) es la predicción de la posición del objeto en el instante k,
y(k) es la posición medida del objeto en el instante k,
N es el número de muestras de la trayectoria,
D es el número de muestras iniciales despreciadas en el cálculo de los valores RMS. Es-
tos términos se utilizan especificando el tipo de filtro como sub-ı́ndice (e.g. RMSET αβ ,
NRMSEαβγ , ...).

Para el experimento del bote de la pelota obtenemos los siguientes valores:

RMSETExl = 0,062858m, NRMSETExl = 54,61 %,


RMSETαβ = 0,037294m, NRMSETαβ = 35,58 %,
RMSETαβγ = 0,029844m, NRMSETαβγ = 26,16 %,
RMSETKv = 0,039726m, NRMSETKv = 36,13 %,
RMSETKa = 0,027845m, NRMSETKa = 27,59 %,
RMSETKj = 0,083256m, NRMSETKj = 74,29 %,
RMSETFMF = 0,023212m, NRMSETFMF = 21,36 %,

12
Root-Mean-Square.
100 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS

Estos experimentos son simulados en un PC, en el que se obtienen los valores indica-
dos de RMSET y NRMSET. Estos valores muestran que el menor error es cometido por
el filtro FMF presentado en este capı́tulo. Para este sistema, RMSETFMF = 0,023212m
y NRMSETFMF = 21,36 %. La segunda mejor predicción es la realizada por el filtro
αβγ con RMSETαβγ = 0,029844m y NRMSETαβγ = 26,16 %.

5.3.3. Experimentos reales


Esta subsección está dedicada a la implementación real del FMF en una aplicación.
Este experimento real se ha hecho usando el robot descrito en el capı́tulo 3. Se ha
usado una adaptación del esquema de control visual indirecto, es decir, se ha utilizado
el controlador del propio robot para enviar al mismo a una posición futura de la pelota
en la que el efector final del robot coincida con ésta.
En el espacio de trabajo del robot se ha definido un plano de restricción13 sobre el
cual se moverá la pelota para evitar el problema de tener que estimar la profundidad
de la misma. Este plano de restricción puede verse en la figura 5.14.
La figura 5.14 muestra la configuración del sistema en el que se observa el robot
cartesiano, el plano de restricción (dentro del cual se mueve la pelota), la posición de
la cámara (fija y calibrada), la posición inicial del efector final del robot (con la cesta
para la recogida de la pelota) y la posición final (de la cesta y de la pelota). Esta figura
dispone de un “detalle del movimiento” que pretende ilustrar el movimiento seguido
por la cesta y por la pelota.
En los experimentos se ha querido evitar el problema del procesado de la imagen,
por lo que la pelota es de un color lo suficientemente diferenciado del fondo (preparado
para que sea uniforme) como para poder segmentar de una forma sencilla. También se
conoce aproximadamente el punto de partida de la pelota y la trayectoria aproximada,
lo que permite añadir algunas condiciones para localizar el objeto deseado.
La cámara utilizada es una TMC-6740GE de JAI/PULNIX (ver anexo B) que es ca-
paz de procesar 200 imágenes por segundo, lo que proporciona un periodo de muestreo
T=5ms. El procesado de las imágenes adquiridas se realiza a la misma velocidad. Con-
sultar [151] para detalles de calibración de cámara.
En la figura 5.15 se puede observar la representación usando Matlab de los datos
adquiridos por la cámara en el experimento, la parábola descrita por la bola en el aire
y la posición (representada por una cesta) en la que se espera coger la bola. La figura
5.16 muestra la secuencia de imágenes del experimento. Los frames primero y último
representan la trayectoria de la pelota (color azul) y en cada uno de los frames se puede
ver una marca para designar la posición de la pelota y otra para designar la posición
de la cesta. Los experimentos realizados con la configuración presentada en la figura
5.14 han dado buenos resultados, dándose un alto porcentaje de éxito en la tarea de
coger la pelota.

13
Un ejemplo de plano de restricción se puede ver en [129] o [130].
5.3. EL FMF ( FUZZY MIX OF FILTERS) 101

Figura 5.14: Experimento real usando el robot descrito en el apartado 3 para coger una
pelota en el aire (control visual indirecto). Ver figura de Matlab 5.15 para observar el
experimento realizado.
102 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS

Estimación del
3.0 punto de recogida
Posición Y (m)

2.5
Posiciones adquiridas por la cámara
2.0

1.5
Trayectoria estimada

Posición seleccionada para la posición de la cesta Representación de


1.0 la cesta colocada
en el efector final

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Posición X (m)

Figura 5.15: Trayectoria real y predicción del filtro FMF para el experimento de la
figura 5.14.

trayectoria de la pelota representada (azul)

trayectoria de la pelota representada (azul)


posición de la cesta (amarillo)

posición de la pelota (blanco)

Figura 5.16: Secuencia de imágenes del experimento realizado por el robot cartesiano
para coger la pelota en el aire.

5.3.4. Coste computacional


El coste computacional de este tipo de filtros es el gran problema de los mismos,
de hecho los autores de las investigaciones basadas en esta técnica14 (ver por ejemplo
[36][90][97][16]) normalmente no entran a valorar el coste computacional, ya que se
14
Mezcla de filtros para mejorar la predicción.
5.3. EL FMF ( FUZZY MIX OF FILTERS) 103

Exl αβ αβγ Kv Ka Kj FMF


32 % 63 % 65 % 100 % 133 % 156 % 716 %
1.74µs 3.44µs 3.55µs 5.46µs 7.26µs 8.52µs 39.09µs

Tabla 5.3: Comparativa de coste computacional usando como referencia el filtro de


Kalman con modelo de velocidad constante.

entiende que es el “pago” al incremento de la calidad en la estimación.


Evidentemente el coste computacional en tiempo depende del procesador que esté eje-
cutando el algoritmo en cuestión, por lo que se puede utilizar como referencia el tiem-
po que un determinado procesador tarda en ejecutar un filtro de Kalman con modelo
de velocidad constante (Kv). Por lo tanto este filtro necesitará un 100 % de tiempo
de cómputo, los algoritmos que sean más rápidos que este necesitarán un porcentaje
menor y los que sean más lentos un porcentaje mayor. En la tabla 5.3 se muestran los
valores de cómputo necesarios para cada uno de los filtros planteados en este capı́tulo.
Se puede apreciar que el filtro Exl necesita muy poca carga computacional (el 32 %
de lo que se necesita para calcular un Kv). Evidentemente, como se ve en esta tabla,
los filtros de estado estacionario son más rápidos que los filtros clásicos de Kalman,
y finalmente se puede ver que el filtro planteado en este capı́tulo es el que más coste
computacional tiene, ya que le cuesta 7.16 veces más que calcular un Kv en el mismo
procesador. Para conocer el orden de magnitud de los tiempos a los que se está hacien-
do referencia, se han obtenido los datos de la última fila de la tabla 5.3 con un Intel
Core 2 Duo 2.13GHz.

5.3.5. Conclusiones
En este capı́tulo se plantea un nuevo estimador de posición (aportación de esta
tesis) basado en un sistema borroso y en la predicción realizada por otros filtros, lo
que en la bibliografı́a se conoce como mezcla de filtros. La nueva predicción obtenida
es de gran calidad para el diseño de un sistema determinado (en este caso el bote de
una pelota contra el suelo).
El principal inconveniente del filtro planteado (FMF) es el tiempo necesario para
obtener la predicción, ya que en un PC (Intel Core 2 Duo - 2.13 GHz) esto puede
llevar al rededor de 40µs. Este tiempo, dependiendo de la aplicación, puede ser o no
suficiente, habrı́a que evaluarlo en cada caso. En el experimento realizado en la sección
5.3.2 (donde T=5ms) este cómputo no representa una carga significativa para una sola
caracterı́stica.
En esta tesis también se presenta una implementación paralelizada del filtro, debido
a que el cálculo de cada uno de sus elementos (Exl, αβ, αβγ, Kv, Ka y Kj) se puede
calcular al mismo tiempo. Esta implementación reduce enormemente el tiempo de
cómputo, lo que elimina el mayor problema del filtro FMF.
104 CAPÍTULO 5. EL FMF O FUZZY MIX OF FILTERS
CAPÍTULO 6

IMPLEMENTACIÓN EN
TIEMPO REAL

En los capı́tulos 4 y 5 se han presentado varios filtros predictivos que se pueden


utilizar en tareas de control visual, entre ellos: el filtro de Kalman, filtros alpha-
beta/gamma, etc. Una de estas opciones es la utilización del filtro FMF propuesto
de forma original en esta tesis (ver capı́tulo 5). Como se apuntaba en este capı́tulo, el
filtro FMF no puede ser considerado como un algoritmo de tiempo real si se utilizan las
implementaciones habituales. Ası́ pues este capı́tulo está dedicado a la implementación.
Para ello se ha recurrido a una FPGA y a diferentes técnicas especı́ficas.

105
106 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

6.1. Introducción
En este capı́tulo se presenta una forma de implementar algoritmos de alto coste
computacional como pueden ser el Switching Kalman Filter (SKF)[36] o el Fuzzy Mix
of Filters (FMF1 ) recurriendo a la paralelización de tareas y al segmentado (pipelining)
de las mismas.
El filtro FMF está basado en la combinación borrosa de otros filtros como pueden
ser: Extrapolación Lineal (Exl), filtro de Kalman (con diferentes modelos de la dinámica
de movimiento del objeto dan lugar a los filtros Kv/Ka/Kj), filtros alpha-beta/gamma
(filtros de Kalman de estado estacionario también conocidos como αβ/γ), predictores
circulares o elipsoidales, etc., Obteniendo con esta mezcla una mejor predicción. Como
ya se indicaba en el capı́tulo 5, el tiempo de cómputo del filtro final es la suma de
los tiempos empleados en calcular cada uno de los filtros que se utilizan en la mezcla
borrosa2 más el necesario para obtener la propia mezcla. Esto hace que el filtro FMF
tenga que ser empleado en aplicaciones de baja velocidad de muestreo (tipo radar) o
que simplemente no sea utilizable bajo estas condiciones. Una peculiaridad del FMF
es que todos los filtros que lo componen son independientes entre sı́ y por lo tanto se
pueden calcular al mismo tiempo. De esta forma el tiempo de cálculo puede pasar de ser
la suma de todos los tiempos a ser el tiempo del filtro más lento (esta circunstancia se
produce gracias a que se puede paralelizar el cómputo de todos los filtros debido a que
son independientes entre sı́). Este cálculo simultaneo ha de hacerse en un procesador
paralelo lo suficientemente flexible como para poder implementar un FMF con dos
filtros, tres, cuatro, etc. El procesador paralelo escogido para realizar esta tarea es una
FPGA [204]. Esta elección también se realiza en otros desarrollos como por ejemplo
[86].
Las Field Programmable Gate Arrays (FPGAs) se han utilizado mayoritariamente
como circuitos integrados para aplicaciones especı́ficas o Application Specific Integrated
Circuit (ASIC) en diseño de prototipos y para la realización de tareas paralelas. Cuan-
do las tareas a realizar por el dispositivo electrónico son principalmente de cálculo
matemático, como es nuestro caso, el diseñador normalmente opta por la utilización de
un microcontrolador / microprocesador o por un Procesador Digital de Señal (DSP)
(en [67] se presentan las perspectivas de implementación de tiempo real). El diseño en
estos casos es mucho más rápido que si se utiliza una FPGA debido a que no se han
de realizar tareas especı́ficas para resolver problemas aritméticos.
En ocasiones, hay situaciones en las que es necesario realizar tal cantidad de opera-
ciones aritméticas, que un diseño basado en procesador puede ser demasiado lento y
hay que recurrir a una solución ASIC para diseñar un procesador especı́fico dedicado a
estas tareas. Esta solución ASIC puede ser una FPGA pero habrá que realizar un gran
esfuerzo para programar en hardware todas las operaciones matriciales. Además una
buena implementación de un algoritmo matemático ha de ser parametrizable, es decir,
que el algoritmo ha de ser programado en un lenguaje de descripción de hardware (por
ejemplo, VHDL3 ).
1
El filtro FMF está basado en la mezcla borrosa de otros filtros previamente calculados. Esta idea
se presentó en [147] y [142] y se explica en el capı́tulo 5 de esta tesis.
2
En caso de implementar el filtro en un procesador secuencial (como es habitual).
3
El lenguaje VHDL se incluyó como un estándar IEEE en 1987 con el nombre VHDL-87. Este
6.2. EL FMF DE TIEMPO REAL 107

En este caso (la implementación del FMF) se considera que la mejor opción es el
uso de una FPGA (se ha evaluado como alternativa el uso de un microcontrolador,
un microprocesador y un DSP) debido a la posibilidad de paralelización. Una CPLD
(Complex Programable Logic Device) podrı́a considerarse como alternativa de imple-
mentación frente a una FPGA, pero el código del FMF requiere unos recursos de los
que no dispone la CPLD4 .
Por otra parte, el término tiempo real (RT) es realmente ambiguo. Un algoritmo
puede ser considerado RT o no dependiendo del proceso con el que interactua [47]. En
este capı́tulo se hará referencia a RT en los mismos términos que diversas investiga-
ciones relevantes como [136][70][128][127]. El término tiempo real (termino usado en
[67][200][72]), es muchas veces confundido con el término altas prestaciones (termino
usado en [40][37][39]) o computación de altas prestaciones. Aunque en ocasiones estos
términos se usan de forma independiente, no siempre significan lo mismo. Por ejem-
plo, un super-computador paralelo ejecutando una simulación cientı́fica puede ofrecer
una computación de altı́simas prestaciones, y aún ası́ puede que no esté realizando un
cálculo en tiempo real.
Este capı́tulo está centrado en la implementación en tiempo real del filtro de predic-
ción desarrollado en el capı́tulo 5. La sección 6.2.3, presenta un resumen del filtro
predictivo FMF orientado a la implementación. Esta sección está dividida en diferen-
tes sub-secciones en las que se estudian diferentes aspectos como el filtro hRT FMF
(solución de tiempo real para sistemas con requerimientos temporales especialmente
exigentes o rápidos); el código fuente de PC-MATLAB y FPGA-VHDL utilizado para
realizar las implementaciones; y por otro lado los experimentos en los que se puede ver
el resultado de las diferentes implementaciones.

6.2. El FMF de tiempo real


6.2.1. Introducción
Los distintos tipos de filtros (e.g. FK, αβ/γ, etc.) se utilizan para estimar el estado
de un sistema lo que permite hacer un seguimiento (tracking) de objetos, cerrar bucles
de control (e.g. visual servoing), etc. No obstante, el funcionamiento óptimo de dichos
filtros depende de las condiciones del sistema: parte no modelada; ruido de medida,
etc., las cuales son (en general) cambiantes. De modo que si se utiliza un único filtro
como estimador, puede ser necesario auto-ajustar on-line los parámetros del mismo (e.g.
tracking index o maneuvering index ), a modo de filtro adaptativo, para conseguir su
funcionamiento óptimo o quasi-óptimo en cada instante [51]. La tarea anterior de auto-
ajuste puede resultar considerablemente compleja, además de estar sujeta a transitorios
y perturbaciones importantes.

estándar se ha revisado durante varios años y en este momento podemos encontrar una propuesta a
la IEEE llamada VHDL-200X. Esta propuesta resuelve algunos aspectos numéricos relacionados con
las operaciones de coma fija y como flotante, por esta razón ha sido utilizada.
4
Pros de la FPGA: posibilidad de mover un procesador secuencial a su interior, más FLIP-FLOPS
y más entradas-salidas que una CPLD. Contras del CPLD: multiplicadores hardware no disponibles,
DCM no disponible (ver apartado 6.3.2) y memoria libre para el usuario muy limitada.
108 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

Otra opción más sencilla para abordar el problema anterior consiste en utilizar
varios tipos de filtros, definidos de forma independiente, y combinarlos adecuada-
mente [147][142]. De forma que, la salida de los filtros que trabajan más próximos
a su situación óptima influyan más en la salida del estimador global que los que están
más alejados.
En este sentido se puede encontrar en la bibliografı́a:
[36] Switching Kalman Filter o SKF, este filtro introduce un monitor de predic-
ción que supervisa la calidad de la estimación realizada por un AKF (Adap-
tive Kalman Filter). Si se detecta una discontinuidad, se conmuta a un filtro de
Kalman de estado estacionario (αβ/γ),
[90][91][92] donde se realiza la combinación de un filtro alpha-beta y un filtro
circular o elipsoidal,
[97][188] donde se realiza la combinación de un filtro alpha-beta para las tra-
yectorias rectilı́neas y un predictor circular dinámico para las trayectorias en
maniobras,
[207], donde se conmuta entre un filtro alpha-beta convencional cuando el objeto
se comporta forma lineal y un algoritmo de aproximación de ganancia cuando el
objeto empieza a maniobrar,
[125], donde se combinan 5 filtros de Kalman diferentes.

6.2.2. Trasfondo teórico del FMF


La idea de un nuevo filtro de estimación de posición o velocidad como mezcla de
filtros existentes para mejorar la predicción no es una novedad, como se apunta en los
capı́tulos 4 y 5. Este tesis presenta como novedad el uso de un sistema borroso para
mezclar predicciones hechas por diferentes filtros. Esta idea ha sido publicada en [147]
y [142]. En las figuras 6.1, 6.2 y 6.3 se presentan algunos casos prácticos de filtros FMF
como se detalla a continuación.
Como se ha podido comprobar, el filtro FMF pretende ser un filtro reconfigurable
o readaptable por el diseñador y no un filtro rı́gido no sujeto a cambios.
La figura 6.1 muestra el diagrama de bloques de uno de los FMF propuestos. En este
diagrama, la posición actual (medida con la cámara) del objeto o de la caracterı́stica
visual xk se utiliza como entrada a todos los filtros (para el caso del FMF5 de la figura
6.1, xk es la entrada de los filtros: αβ, αβγ, Kv, Ka y Kj).
Estos filtros calculan las siguientes estimaciones:
El filtro αβ calcula x̂k(αβ) , v̂k(αβ) y Innk(αβ) ;
El filtro αβγ calcula x̂k(αβγ) , v̂k(αβγ) , âk(αβγ) y Innk(αβγ) ;
El filtro Kv calcula x̂k(Kv) , v̂k(Kv) Innk(Kv) ;
El filtro Ka calcula x̂k(Ka) , v̂k(Ka) , âk(Ka) y Innk(Ka) ;
y finalmente, el filtro Kj calcula x̂k(Kj) , v̂k(Kj) , âk(Kj) , b
jk(Kj) y Innk(Kj) .
5
Notar que el filtro FMF es paralelizable debido a que el cálculo de todos los filtros es independiente
y se podrı́a realizar al mismo tiempo y en procesadores diferentes si es necesario.
6.2. EL FMF DE TIEMPO REAL 109

Figura 6.1: Soft real-time FMF usando 5 filtros diferentes (αβ, αβγ, Kv, Ka and Kj).
Solo las estimaciones obtenidas como combinación de más de un filtro se incluyen en
la salida final del filtro FMF.

Donde x̂k(filter) , v̂k(filter) , âk(filter) , b


jk(filter) e Innk(filter) representan respectivamente la
posición, velocidad, aceleración, jerk estimados y la innovación (todos en el instante
k) por el filtro “filter”.
Estas estimaciones se combinan dependiendo de determinados parámetros como
los valores de Innk(filter) , aceleración o jerk para obtener una estimación de la posición
(k1 · x̂k(αβ) + k2 · x̂k(αβγ) + k3 · x̂k(Kv) + k4 · x̂k(Ka) + k5 · x̂k(Kj) ), una estimación de la
velocidad (k6 · v̂k(αβ) + k7 · v̂k(αβγ) + k8 · v̂k(Kv) + k9 · v̂k(Ka) + k10 · v̂k(Kj) ) y una estimación
de la aceleración (k11 · âk(αβγ) + k12 · âk(Ka) + k13 · âk(Kj) ). La estimación del jerk no se
puede considerar como una combinación de estimaciones, por lo tanto en el filtro FMF
de la figura 6.1 la estimación del jerk no se realiza.
El resultado de esta combinación6 : {x̂k , v̂k , âk } depende de los valores de innovación
de cada filtro {Innk(αβ) , Innk(αβγ) , Innk(Kv) , Innk(Ka) y Innk(Kj) } en el caso más sencillo
y además de la aceleración, el jerk o la posición de la caracterı́stica en el caso más
general. En concreto, el filtro propuesto en la figura 6.1 serı́a un caso particular del
FMF presentado en el capı́tulo 5 sección 5.3.
Dependiendo de la aplicación, se pueden usar diferentes tipos de filtro FMF. Mien-
tras el esquema de la figura 6.1 muestra el “soft real-time” FMF (sRT FMF), el es-
6
Notar que para todos los FMF propuestos (ver figuras 6.1, 6.2 y 6.3), la estimación se puede
realizar para k, k + 1 o k+d (donde “d” es el retardo del sistema de visión) dependiendo de los
requerimientos del sistema de control visual.
110 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

Figura 6.2: Predictor FMF usando 4 filtros diferentes. Los filtros αβ y αβγ se usan con
diferentes dinámicas para poder adaptarse diferentes ı́ndices de maniobrabilidad. De
esta forma se obtienen las versiones fast y slow de los diferentes filtros (αβ fast , αβ slow ,
αβγ fast y αβγ slow ).

Figura 6.3: Hard-real time FMF usando solamente dos filtros (αβ y αβγ). Este es el
más rápido de los filtros FMF propuestos en esta tesis. Sólo las estimaciones obtenidas
como combinación de más de un filtro se incluyen en la salida final del filtro FMF.

quema de la figura 6.3 muestra el “hard real-time” FMF (hRT FMF). La diferencia
entre ellos es que a pesar de ser ambos de tiempo real, uno es capaz de cumplir unos
requisitos temporales mucho más exigentes que el otro. El FMF de la figura 6.2 es una
solución intermedia entre ambos casos, aunque está más cerca del hRT que del sRT
FMF. Este diseño de los filtros FMF en función de su tiempo de cómputo responde a
que un número significativo de aplicaciones requieren una implementación denominada
high-performance [40][37][39] (en ocasiones llamada implementación de hard real-time,
ver sección 6.2.1). Estas implementaciones de tiempo real pueden ser desde control de
6.2. EL FMF DE TIEMPO REAL 111

juguetes, video-vigilancia, etc. con los mencionados requisitos de tiempo real “soft”,
hasta automoción, transporte ferroviario, aviónica, control industrial, etc. con requi-
sitos de tiempo real “hard”, donde el incumplimiento de uno solo de los tiempos de
muestreo puede causar un accidente fatal.
La figura 6.2 muestra un FMF con dos tipos diferentes de filtros alpha-beta/gamma
que se han denominado αβ/γ fast y αβ/γ slow . Esta forma de referirse a los filtros ssKF
no está muy extendida (aunque algunos autores ya lo han utilizado [36]).
Estos filtros αβ/γ, rápido y lento, se usan para cubrir un amplio espectro de fun-
cionamiento (transitorio y permanente), es decir, durante las zonas de alto ı́ndice de
maniobra (tracking index o maneuvering index ) del objeto influyen más en la salida los
filtros rápidos y en las de bajo ı́ndice los lentos. Esta es una forma de paliar que tan-
to el αβ como el αβγ son filtros estacionarios. El FK tiene un ganancia de corrección
transitoria usualmente más alta (dependerá de la incertidumbre que se asocie al estado
inicial) que la del permanente, lo que permite corregir más (hacer más caso a la me-
dida) al principio. Pero si una vez alcanzado el permanente aparece un cambio súbito
(error instantáneo) le costarı́a corregir igual que a un αβ o αβγ. Una solución que se
adopta en ese caso a veces es re-inicializar el filtro (ej. incrementando manualmente la
incertidumbre del estado estimado actual), aplicar factor de olvido, etc.
El FMF se basa en un sistema borroso o fuzzy. El proceso de inferencia borrosa
más utilizado se conoce como método de inferencia de Mamdani. Por otra parte se
pude encontrar otro método de inferencia llamado Sugeno, o Takagi-Sugeno-Kang.
Éste fue introducido en 1985 por [181] y es similar al método Mamdani. Las dos
primeras partes del proceso de inferencia borrosa, el borrosificador de las entradas y las
aplicaciones de los operadores borrosos, son exactamente iguales. La mayor diferencia
entre Mamdani y Sugeno es que las funciones de pertenencia de salida son lineales y
constantes respectivamente (para más información ver [137]).
Para sistemas de tipo Sugeno, se puede encontrar una función de salida lineal dinámica
de forma que la i-ésima regla tenga la forma:

If z˜1 is Ãj1 and z˜2 is Ãk2 and, ..., and z˜p is Ãlp Then ẋi (t) = Ui x(t) + Vi u(t) (6.1)

donde x(t) = [x1 (t), x2 (t), ..., xn (t)]T es el vector de estado,


u(t) = [u1 (t), u2 (t), ..., um (t)]T es el vector de entradas, Ui y Vi son las matrices de
estado y de entrada y z(t) = [z1 (t), z2 (t), ..., zp (t)]T es la entrada al sistema borroso,
por lo tanto:

R
X
(Ui x(t) + Vi u(t))µ(z(t))
i=1
ẋ(t) = R
(6.2)
X
µ(z(t))
i=1

donde µ(·) es el conjunto de funciones de pertenencia del sistema borroso (e.g. función
112 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

triangular o gausiana) o
R
! R
!
X X
ẋ(t) = Ui ξi (z(t)) x(t) + Vi ξi (z(t)) u(t) (6.3)
i=1 i=1

donde

1
ξ T = [ξ1 , ..., ξR ] = R
[µ1 , ..., µR ] (6.4)
X
µi
i=1

Algunas de las reglas que se pueden establecer para el FMF de la figura 6.1 se indican
a continuación, enumeradas como Ri :

R1 : IF object IS inside7 AND velocityF IS high AND accelerationF IS low


AND jerkF IS low THEN FMF=Kv
R2 : IF object IS inside AND accelerationF IS high AND jerkF IS low THEN
FMF=Ka
R3 : IF object IS inside AND jerkF IS low THEN FMF=Kj
R4 : IF object IS outside8 AND velocityF IS high AND accelerationF IS low
AND jerkF IS low THEN FMF=αβ
R5 : IF object IS outside AND accelerationF IS high AND jerkF IS low
THEN FMF=αβγ
R6 : IF object IS outside AND jerkF IS low THEN FMF=Kj
..
.

donde velocityF , accelerationF and jerkF son las variables filtradas de cada una de
estas magnitudes. Con estas reglas, aplicables al FMF de la figura 6.1, se considera
que el objeto o caracterı́stica visual puede estar dentro o fuera del plano de imagen
y se realiza la estimación con el filtro cuya estructura y configuración es más similar
al movimiento real del objeto. Estas reglas se han obtenido empı́ricamente, basándose
en la experiencia del autor usando el filtro de Kalman (incluyendo los KF de estado
estacionario) en diferentes aplicaciones.

6.2.3. El algoritmo hRT FMF


En este capı́tulo se describe de forma pormenorizada el más rápido de los filtros
FMF propuestos (ver FMF de la figura 6.3). La implementación de este filtro se puede
7
Inside the image plane. Caracterı́stica visual dentro del plano de imagen.
8
Outside the image plane. Caracterı́stica visual fuera del plano de imagen.
6.2. EL FMF DE TIEMPO REAL 113

reproducir con la información contenida aquı́ y en las referencias citadas.

El filtro de Kalman de estado estacionario considerado se puede expresar con las


ecuaciones (6.5) y (6.6). La ecuación (6.7) muestra el cálculo de la innovación necesaria
para realizar la mezcla borrosa de filtros.

x̂k|k = x̂k|k−1 + K · (yk − C · x̂k|k−1 ) (6.5)


x̂k+1|k = A · x̂k|k (6.6)
Innk = yk − C · x̂k|k−1 (6.7)

donde x̂n|m representa la estimación de x en el instante n dadas las observaciones


hasta m (incluido). K es la ganancia del filtro de estado estacionario, A es la matriz
del sistema y C es el vector de salidas del sistema (el modelo considerado es LTI).
Considerando el caso particular de filtro de Kalman de estado estacionario o discrete
white noise acceleration model (DWNA model) [13] (comúnmente denominado como
αβ), los valores del sistema son los siguientes:
h α i h 1 T i h 1 i
ab
Kab = Aab = Cab = (6.8)
βab /T 0 1 0
donde αab y βab se obtienen usando (6.10) (6.11) respectivamente:

σv · T 2
rab = (6.9)
σw
1 2  q2 
αab = − · rab + 8rab − rab + 4 · rab + 8rab (6.10)
8 q
1  
βab = · r2ab + 4rab − rab · r2ab + 8rab (6.11)
4

rab es el llamado ı́ndice de maniobra o maneuvering index (ver [136]), σv es la desviación


tı́pica del ruido del proceso y σw , es la desviación tı́pica del ruido de medidas y T es
el periodo de muestro.

Considerando el caso particular de filtro de Kalman de estado estacionario o discrete


wiener process acceleration model (DWPA model) [13] (comúnmente denominado como
αβγ), los valores del sistema son los siguientes:

" αabg # " 1 T T2 # " 1 #


Kabg = βabg /T Aabg = 0 1 T Cabg = 0 (6.12)
γabg /(2T2 ) 0 0 1 0

donde αabg , βabg y γabg se obtienen utilizando las expresiones (6.20), (6.21) y (6.22)
respectivamente (ecuaciones equivalentes a las mostradas en [70]):
114 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

σv · T 2 rabg
rabg = (6.13) cabg = +3 (6.15)
σw 2
rabg b2abg
babg = −3 (6.14) pabg = cabg − (6.16)
2 3
2b3abg babg · cabg
qabg = − −1 (6.17)
27
q 3
4p3 !(1/3)
qabg + q2abg + 27abg
zabg = − (6.18)
2
pabg babg
sabg = zabg − − (6.19)
3zabg 3

βabg = 2 · (1 − sabg )2 (6.21)


αabg = 1 − s2abg (6.20)
γabg = 2 · sabg · rabg (6.22)

rabg es el ı́ndice de maniobra (ver [136]), σv es la desviación tı́pica del ruido del proceso
y σw , es la desviación tı́pica del ruido de medidas y T es el periodo de muestro.

Para establecer si un filtro está funcionando más o menos cerca de sus condiciones
óptimas (i.e. los supuestos que se asumen para su obtención) se va a utilizar la inno-
vación, utilizada a menudo en la práctica para ajustar on-line los parámetros del filtro.
El motivo es porque, si se cumplen las hipótesis de partida del filtro, la innovación
debe ser una señal blanca (sin correlación entre sus valores en distintos instantes) con
media nula y una matriz de covarianzas determinada. Por tanto, en este capı́tulo se
aplicará un pequeño filtro paso-bajo digital a la innovación de cada filtro para obtener
la media, cuyo valor absoluto se utilizará para medir la proximidad a la situación de
optimalidad abs(InnF if iltrada 9 ) ∈ [0,∞[, siendo 0 la situación de optimalidad .
Las reglas Ri utilizadas para el filtro de la figura 6.3 (hard real-time FMF o hRT FMF)
son las siguientes:

R1 : IF Innovation of the filter IS high THEN weight lightly this filter (pon-
derar este filtro a la baja)
R2 : IF Innovation of the filter IS low THEN weight strongly this filter
(ponderar este filtro al alza)

Para los filtros FMF hay que definir la función de pertenencia, en el caso del hRT
FMF, se ha utilizado la función de pertenencia que se puede ver en la figura 6.4 (se ha
elegido esta función tras realizar varias pruebas y comprobar que con ella se conseguı́an
resultados satisfactorios).
La función de pertenencia gráficamente mostrada en la figura 6.4 se puede ver en las
expresiones (6.23) y (6.24).
9
Innovación de un filtro determinado filtrada con un paso-bajo de primer orden.
6.2. EL FMF DE TIEMPO REAL 115

Figura 6.4: Función de pertenencia utilizada para la implementación del filtro hRT
FMF.

Kαβ (k) = e−|innfαβ (k)|/ταβ (6.23)


Kαβγ (k) = e−|innfαβγ (k)|/ταβγ (6.24)

donde innf es la innovación filtrada usando un filtro de paso bajo de primer orden
de Butterworth (frecuancia normalizada de corte fc = 0,1) y τ es la constante de
decrecimiento de la exponencial mostrada en la figura 6.4 (τ es un parámetro de diseño
del filtro FMF).
Estos filtros αβ y αβγ se ponderan a través de la expresión (6.25).

Kαβ (k) · xαβ (k) + Kαβγ (k) · xαβγ (k)


xFMF (k) = (6.25)
Kαβ (k) + Kαβγ (k)
donde x es el vector de estado que contiene la posición y la velocidad (para el filtro
αβγ, el valor de aceleración no se incluye en el vector de estado). La expresión (6.25)
se puede extender a Nf filtros mediante la ecuación (6.26).

Nf 
X 
Ki (k) · xi (k)
i=1
xFMF (k) = Nf
(6.26)
X
Ki (k)
i=1

6.2.4. Simulaciones del hRT FMF


El sistema de visión es generalmente el componente más lento de los que integran la
arquitectura de control visual en dos aspectos diferentes: la adquisición de la imagen y
el procesamiento de la misma. La primera de ellas puede ser parcialmente solucionada
usando cámaras de alta velocidad o técnicas sub-window [201], pero el procesamiento
de la imagen puede ser un gran problema cuando un procesador de última generación
no dispone de la potencia suficiente para realizar todo el cómputo en tiempo real. Este
caso se puede dar cuando se utilizan filtros como el SKF[36], FMF no paralelizados u
otros filtros con gran coste computacional [16][90][97] para un grupo de caracterı́sticas
visuales en una secuencia de imágenes.
116 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

En este apartado, se presentan diferentes simulaciones para demostrar el buen fun-


cionamiento del filtro implementado. Para ello, se van a realizar simulaciones de Monte
Carlo10 [156]. Para analizar estas simulaciones definimos los siguientes términos: RMSE
(valor RMS del error de predicción), TARMSE (media temporal del RMSE), NRMSE
(RMSE normalizado), TANRMSE (media temporal del NRMSE), RMSI (valor RMS
de la innovación del filtro). Las expresiones (6.27), (6.28), (6.29), (6.30) y (6.31) definen
estos términos:

v
u Nr
u 1 X
RMSE(k) = t (k xik − x̂ik k2 )2 (6.27)
Nr i=1
RMSE(k)
NRMSE(k) = v (6.28)
u Nr
u 1 X
t (k xik − x̂ik k2 )2
Nr i=1
XN
1
TARMSE = RMSE(k) (6.29)
N − D k=D+1
XN
1
TANRMSE = NRMSE(k) (6.30)
N − D k=D+1
v
u Nr
u 1 X 2
RMSI(k) = t inni (k) (6.31)
Nr i=1

donde:
i
x (k) es la posición real del objeto para la réplica i en el instante k,
x̂i (k) es la predicción de la posición para la réplica i en el instante k,
yi (k) es la posición medida del objeto para la réplica i en el instante k,
inni (k) es la innovación del filtro para la réplica i en el instante k,
Nr es el número de réplicas de Monte Carlo,
N es el número de muestras simuladas,
D es el número de muestras iniciales rechazadas en el cálculo de los valores de media
temporal.

Notar que el valor de RMSE es la desviación estandar real de la posición estimada


por el filtro y se puede comparar con la desviacion estandar ideal del filtro (ISTD), la
cual se obtiene a través de la matriz de incertidumbre teórica P . Notar tambien que,
el denominador de la expresión (6.28) tiende a σv (ruido de medida simulado) cuando
el numero de réplicas de Monte Carlo se incrementa.
Los valores definidos desde la expresión (6.27) hasta la (6.31) se usan especificando el
tipo de trayectoria como super-ı́ndice y el tipo de filtro como sub-ı́ndice (e.g. RMSE 1αβ ,
10
Las simulaciones de Monte Carlo consisten en ejecutar un número independiente de replicas y
calcular los valores RMS (Root Mean Square) de las variables obtenidas.
6.2. EL FMF DE TIEMPO REAL 117

RMSE2αβγ , RMSE3FMF , ...).

Se consideran cuatro tipos diferentes de trayectoria para el análisis de los filtros:

(1) tray 1 : Trayectoria obtenida con el modelo DWNA (coincide con la hipótesis de
diseño del filtro αβ).

(2) tray 2 : Trayectoria obtenida con el modelo DWPA (coincide con la hipótesis de
diseño del filtro αβγ).

(3) tray 3 : Trayectoria con 3 tramos, obtenida por la unión de: modelo DWNA, modelo
DWPA y modelo DWNA.

(4) tray 4 : Trayectoria sinusoidal.

Estas cuatro trayectorias se han generado con un periodo T=0.04 segundos (tiempo de
adquisición de una cámara PAL trabajando a 25 frames por segundo) y 250 muestras
(N=250).
Para generar las 3 primeras trayectorias se ha utilizado un ruido de proceso de acele-
ración discreto con desviación tı́pica σv =0.56m/s2 . Mientras que, la cuarta trayectoria
se ha generado con una senoidal de amplitud 1m y un periodo de 10 segundos. Para
las cuatro trayectorias se ha considerado una desviación tı́pica del ruido de medida
σw =0.02. La inicialización considerada en los modelos DWNA/DWPA para generar
las tres primeras trayectorias es: traj 1 → x(0) =(0,0.4)T , traj 2 → x(0) =(0,0,0.08)T ,
traj 3 → x(0) =(0,0.4,0)T . Los valores de inicialización se han fijado empı́ricamente
mediante pruebas, comprobándose que no son datos de relevancia en los resultados
obtenidos.
En este apartado, los filtros αβ y αβγ se simulan para todas la trayectorias con-
sideradas (los valores de σv y σw considerados son los mismos para los filtros y para
las trayectorias), mientras que el filtro FMF se simula solamente para las trayectorias
(3) y (4). En todas las simulaciones, se han despreciado las primeras 50 muestras para
calcular los valores de media temporal (D=50).
Para obtener el valor de la innovación de los filtros αβ y αβγ (necesarios para la
obtención del FMF), se utiliza un filtro paso bajo de primer orden de Butterworth (ver
figuras 6.1, 6.2 y 6.3). Las constantes ταβ y ταβγ se han ajustado empiricamente a 0.03
metros (se ha comprobado mediante simulación que el mejor comportamiento de este
FMF se da para valores entre 0.5 y 2 veces la desviación tı́pica del ruido de medida
σv ).
Simulaciones usando tray 1 :
En las figuras 6.5 y 6.6, se muestran el error de predicción y el error de predicción
normalizado para la trayectoria (1) usando 103 réplicas de Monte Carlo. El filtro αβγ
estima un 6 % mejor en la realidad (TARMSE1αβγ =0.01345) que lo ideal considerado
en el algoritmo (ISTD1αβγ =0.0143), debido a que las condiciones de funcionamiento
son más sencillas que las que contempla el filtro αβγ, al no haber propagación de
errores a través del estado de aceleración. De igual modo el filtro αβ estima mejor
(TARMSE1αβ =0.01009) que el filtro αβγ (TARMSE1αβγ =0.01345) porque se le ha
simplificado al algoritmo la tarea de estimación (sólo hay propagación de 2 estados,
118 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

posición y velocidad) y esta simplificación coincide con la situación real de la trayec-


toria.
Debido a que el cálculo del error de predicción normalizado implica la división entre
la desviación estándar del ruido de medida, desde este momento, se graficará solamente
el error de predicción absoluto.

0.015

0.014

0.013

0.012

0.011
Error

0.01

0.009 1
RMSE
αβ
0.008 1
TARMSE
αβ
0.007 1
RMSEαβγ

0.006 TARMSE
1
αβγ

0.005
0 2 4 6 8 10
Tiempo (segundos)

Figura 6.5: Error de predicción para la trayectoria (1). (Nr=103 )

75

70

65

60

55
Error

50

45

40 NRMSE1 (%)
αβ
1
TANRMSE (%)
35 αβ
1
NRMSE (%)
αβγ
30 1
TANRMSE (%)
αβγ
25
0 2 4 6 8 10
Tiempo (segundos)

Figura 6.6: Error de predicción normalizado para la trayectoria (1). (Nr=10 3 )

Cuantas más réplicas de Monte Carlo se simulen más “suaves” son los resultados
obtenidos (tienen menos irregularidades). Este efecto se puede ver en la figura 6.7
comparada con la figura 6.5.
De igual modo, cuantos más instantes N se consideren, los valores medios (time-
average values) son más exactos. Por ejemplo, al estar el filtro αβ en condiciones nomi-
6.2. EL FMF DE TIEMPO REAL 119

nales, su error de predicción será cercano al valor ideal ISTD1αβ =0.010164: para N=250
tenemos un TARMSE1αβ =0.01009 y para N=103 tenemos un TARMSE1αβ =0.0101615
(simulaciones con 103 réplicas de Monte Carlo). Por lo tanto, la inexactitud se reduce
desde 0.73 % hasta 0.02 %.
−3
x 10
14

13

12

11

10
Error

8
RMSE1
αβ
1
7 TARMSE
αβ
1
RMSE
αβγ
6
1
TARMSE
αβγ
5
0 2 4 6 8 10
Tiempo (segundos)

Figura 6.7: Error de predicción normalizado para trayectoria (1). (Nr=10 4 )

Un tipo de inicialización muy extendida en la práctica para este tipo de filtros es


la técnica TPD (Two-point differencing) (ver [106]), basado en la aproximación de la
primera derivada de Euler (forward or backward). Por ejemplo, la inicialización TPD
forward y backward (del triángulo anterior y posterior) para el filtro αβ se muestran
en las expresiones (6.33) y (6.32) respectivamente.
   
x(0) y(0) 
= (6.32)
v(0) y(1) − y(0) /T
   
x(0) y(0) 
= (6.33)
v(0) y(0) − y(−1) /T
En la figura 6.8 se puede ver la simulación de los filtros αβ y αβγ para una inicial-
ización TPD forward y 103 réplicas de Monte Carlo.
Como se puede ver en dicha figura, la inicialización TPD ha provocado un gran
transitorio en el error de los filtros αβ y αβγ. Esto ocurrirá siempre que el ruido de
medida considerado en los filtros sea grande (implica ganancia de corrección pequeña)
y el ruido real/simulado también lo sea (implica mucho error en la inicialización TPD
por usar medidas). Por tanto, cuesta mucho corregir el error de la inicialización. En
el FK esto no ocurrirı́a porque se asociarı́a una incertidumbre grande al estado inicial
y la ganancia de corrección tendrı́a un valor grande durante el transitorio del FK y
disminuirı́a paulatinamente (el FK es dinámico y los filtros αβ y αβγ estáticos). Puede
verse que es más grande el transitorio del filtro αβγ que el del filtro αβ, lo que se debe
a que tiene más dinámica, i.e. más estados que se propagan en la estimación.
120 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

0.12
1 1
RMSEαβ RMSEαβ
0.1
0.1 TARMSE1αβ TARMSE1αβ
1
0.09 1
RMSEαβγ RMSEαβγ
0.08
0.08 TARMSE1αβγ TARMSE1αβγ
0.07

0.06
Error

Error
0.06
0.05

0.04 0.04

0.03
0.02
0.02

0.01
0
0
0 2 4 6 8 10 0 0.5 1 1.5
Tiempo (segundos) Tiempo (segundos)

Figura 6.8: Error de predicción para la trayectoria (1) (inicialización TPD).

Simulaciones usando tray 2 :


En la figura 6.9 se puede comprobar que la corrección es insuficiente en el filtro αβ y
que su error es monótonamente creciente con el tiempo. De hecho, para una trayectoria
generada con el modelo DWPA, el filtro αβ deberı́a considerar más ruido de aceleración
que el introducido en el modelo porque hay un estado más (el de aceleración) cuyo error
se propaga y que no tiene en cuenta el filtro αβ. Por tanto, habrı́a que aumentar el
ruido de proceso a considerar en el filtro αβ, dando lugar a una mayor ganancia de
corrección (ésta tiene un valor máximo lı́mite para que el estimador se mantenga es-
table, i.e. polos dentro del cı́rculo unidad), para conseguir acotar la incertidumbre o
error. Por ejemplo, aumentando a 25 m/s2 el ruido del proceso (σv ) considerado en
el filtro αβ se acota su error de predicción por debajo del valor del ruido de medida
(σw =0.02m), como muestra podemos ver la figura 6.10 (2·103 réplicas de Monte Carlo).

0.4 2
RMSEαβ
2
0.3 TARMSEαβ
Error

0.2

0.1

0
0 2 4 6 8 10
0.015

0.014

0.013
Error

0.012
2
RMSEαβγ
0.011 2
TARMSEαβγ
0.01
0 2 4 6 8 10
Tiempo (segundos)

Figura 6.9: Error de predicción para la trayectoria (2). (Nr=2 · 10 3 )


6.2. EL FMF DE TIEMPO REAL 121

0.018

0.017

0.016

0.015

0.014
Error
0.013

0.012
RMSE2
0.011 αβ
2
TARMSE
αβ
0.01
RMSE2
αβγ
0.009 2
TARMSE
αβγ
0.008
0 2 4 6 8 10
Tiempo (segundos)

Figura 6.10: Error de predicción para la trayectoria (2). (σv = 25m/s2 para el filtro
αβ)

Simulaciones usando tray 3 (103 réplicas de Monte Carlo):

3
Errores de predicción para trayectoria (3) RMSE
αβ
3
RMSE
0.02 αβγ
3
RMSEFMF
Error

0.015

0.01

0.005
0 2 4 6 8 10
Tiempo (segundos)
Innovación de los filtros para trayectoria (3) transitorio

0.045 3
RMSIαβ
0.04 3
Innovación

RMSI
αβγ
0.035
0.03

0.025

0.02
0 2 4 6 8 10
Tiempo (segundos)

Figura 6.11: Errores de predicción para la trayectoria (3). (Nr=10 3 )

Los valores de media temporal de los errores absolutos y normalizados (valores mostra-
dos gráficamente en la figura 6.11) son:
TARMSE3αβ =0.049507m, TARMSEN3αβ = 248 %,
TARMSE3αβγ =0.014026m, TARMSEN3αβγ = 70,26 %,
TARMSE3FMF =0.013228m, TARMSEN3FMF = 66,27 %
Estos datos muestran un 6 % de mejora del filtro FMF frente al filtro αβγ. La mejora
del FMF frente al filtro αβ es enorme porque en el tramo de modelo DWPA éste acu-
mula mucho error. Notar que el filtro αβγ sufre un transitorio t=6.68 segundos (ver
122 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

detalle explicativo en figura 6.11), debido a que la trayectoria sufre una discontinuidad
al pasar del modelo DWPA al modelo DWNA y desaparecer súbitamente el estado de
aceleración [64][62].

Simulaciones usando tray 4 (5 · 103 réplicas de Monte Carlo):

4
Errores de predicción para trayectoria (4) RMSE
αβ
0.016 4
RMSE
αβγ
0.014 RMSE
4
FMF
Error

0.012

0.01

0.008
0 2 4 6 8 10
Tiempo (segundos)
4
Innovación de los filtros para trayectoria (4) RMSI
αβ
0.03
RMSI4
αβγ
0.028
Innovación

0.026

0.024

0.022

0.02
0 2 4 6 8 10
Tiempo (segundos)

Figura 6.12: Errores de predicción para la trayectoria (4). (Nr=5 · 10 3 )

Los valores de media temporal de los errores absolutos y normalizados (valores mostra-
dos gráficamente en la figura 6.12) son:
TARMSE4αβ =0.012657m, TARMSEN4αβ =63.37 %,
TARMSE4αβγ =0.013412m, TARMSEN4αβγ =67.15 %,
TARMSE4FMF =0.011902m, TARMSEN4FMF =59.59 %
Estos datos muestran una mejora de un 6.3 % del filtro FMF frente al filtro αβ y una
mejora de un 12.7 % del FMF frente al αβγ.
Notar en la figura 6.12 que, el error de predicción del filtro αβ tiene forma de senoide
desplazada, siendo unas veces mayor y otras menor que el error del filtro αβγ, el cual
es bastante uniforme. El error del FMF también tiene forma de senoide desplazada,
aunque no tan clara. Además el error del FMF a veces es simultáneamente menor que
los de los filtros αβ y αβγ. El motivo es porque en la suma ponderada de los filtros
αβ y αβγ uno tendrá error positivo y el otro negativo, resultando un error absoluto
en el FMF menor que cualquiera de los dos. Esta situación no se producı́a para la
trayectoria 3 porque los dos filtros (αβ y αβγ) tenı́an siempre el mismo signo en el
error de predicción.
Hay que tener en cuenta que para otras trayectorias, en gerneral, irá mejor el filtro
cuya dinámica se ajuste más al movimiento del objeto bajo estudio. En el caso de
que la dinámica sea desconocida o que se sepa que responderá por tramos a diferentes
comportamientos, la mejor solución es la de utilizar filtros de estimación combinados,
como el FMF propuesto de forma original en esta tesis.
6.3. IMPLEMENTACIÓN DEL HARD RT FMF 123

6.3. Implementación del Hard RT FMF


El mayor problema de la implementación del filtro FMF (como ya se apuntó en
el capı́tulo 5) es el tiempo necesario para calcular todos los filtros involucrados en la
predicción final. La solución que se presenta en este capı́tulo es la implementación del
FMF en una FPGA que permita el cómputo de todos los filtros de forma simultánea
(esto es posible debido a que los cálculos de los filtros son independientes).

6.3.1. Generalidades
En ocasiones, en la arquitectura de control visual se separa el procesamiento de
imágenes y el control realimentado usando procesadores diferentes [65].
Esta filosofı́a es razonable si se tiene en cuenta la carga computacional que normal-
mente lleva asociado el procesamiento de la imagen y que en ocasiones, los algoritmos
de control del robot y de control visual requieren un hardware especial para realizar su
cálculo. Para beneficiarse de esta filosofı́a y al mismo tiempo evitar un coste excesivo
debido al uso de diferentes plataformas hardware dedicadas a tareas especı́ficas, resulta
interesante integrar software y hardware al mismo tiempo, permitiendo el diseño de los
componentes para realizar ambas tareas en un mismo encapsulado y alcanzando unas
prestaciones comparables a las de un hardware dedicado a tareas de control visual.
En este sentido, el uso de una FPGA presenta la posibilidad de integrar por una
parte la adquisición y el procesamiento de la imagen con el esquema de control (usando
un dispositivo único) y por otra parte el software y el hardware (usando el lenguaje
de programación VHDL orientado al diseño hardware). Con esta solución, el uso de
procesadores diferenciados [65] no es necesario y la capacidad de cómputo se incrementa
debido al diseño hardware especı́fico usando ALUs optimizadas.

6.3.2. Hardware utilizado


Para la implementación en tiempo real, se ha usado una tarjeta de desarrollo Xilinx
Spartan3E Rev.D con reloj principal de 50MHz. Esta tarjeta alberga un chip de FPGA
xc3s500e -4 (232 pines de entrada/salida, encapsulado de tipo FBGA de 320 pines y
500KPuertas), 4 Mbit de memoria Flash PROM y 64 MByte de memoria DDR SDRAM
para el tratamiento de la imagen. Con esta arquitectura (incluyendo el conector Hirose
FX2-100P-1.27DS del que dispone la tarjeta), casi no existen lı́mites en el número de
ejes de robot que se pueden controlar (el número de salidas PWM y de lecturas de
encoder está limitado básicamente por las 320 entradas/salidas disponibles). Quizá el
número de multiplicadores hardware MULT18X18SIOs11 disponibles es la mayor limi-
tación de la implementación realizable. Algunas de las pruebas y experimentos de esta
tesis se han realizado con la FPGA Nallatech Ballynuey 3 (ver anexo B) por problemas
de espacio. Para controlar cada eje del sistema se pueden utilizar los esquemas de
control propuestos en [38], [43] y [41] o los propuestos en el capı́tulo 7 de esta tesis.
11
Para implementar los multiplicadores mostrados en las figuras 6.13, 6.14, o 6.15 se han usado las
primitivas MULT18X18SIO.
124 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

Para la implementación de este sistema, se ha utilizado el módulo DCM (Digital


Clock Manager ) de Xilinx. El DCM provee posibilidades avanzadas a la Spartan3E
haciendo uso de un PLL interno. Usando esta utilidad, se puede multiplicar y dividir
cualquiera de los relojes de la tarjeta para crear un nuevo reloj. El DCM se integra
directamente con la red de distribución global low-skew clock y se ha utilizado para
acelerar por ejemplo el experimento mostrado en la tabla 6.1, obteniendo un periodo
de muestreo muy bajo (T=10ns para un filtro de Kalman de estado estacionario).

6.3.3. Programación
El ordenador dedicado a desarrollo, programación y comunicaciones puede ser
cualquier PC con conexión USB, con el software ISE v8.2 de Xilinx instalado y traba-
jando bajo SO Windows.
Los algoritmos para la adquisición y el procesamiento de la imagen están programados
en hardware (usando el lenguaje VHDL y el software ISE). De la misma forma, en esta
tesis se ha implementado el esquema de control visual propuesto en el capı́tulo 7.
Para cambiar los parámetros del controlador durante la ejecución y registrar datos
de los experimentos, se han usado una conexión de tipo serie RS-232 (los algoritmos de
comunicación se han implementado usando Macros de Xilinx). Los datos de las tablas
6.1 y 6.2 muestran la utilización del dispositivo implementando dos filtros diferentes.
El PC finalmente utilizado es el mismo para programar la FPGA y para realizar la
comparativa de tiempos de cómputo que podemos ver en este capı́tulo, se trata pues
de un Intel Core 2 Duo E6420 (2,13GHz / Bus 1066MHz / 4Mb L2 / 2Gb RAM) con
sistema operativo WindowsXP-Professional.
La implementación de las variables en la FPGA se ha realizado utilizando datos
en coma fija. Este tipo de datos se ha utilizado en todos los experimentos, usando
la librerı́a llamada VHDL-200x y definiendo las variables de coma fija como sfixed en
lugar de utilizar variables de coma flotante (sfloat). La diferencia más importante entre
ellas es que las operaciones en coma flotante requieren de más de un ciclo de reloj para
ser ejecutadas, mientras que las de coma fija pueden ser ejecutadas en un solo ciclo de
reloj. Las variables de coma fija utilizadas son de 32 bits con signo, de los cuales se
han empleado 16 bits para almacenar la mantisa y 15 para la parte entera (el bit más
significativo MSB representa el signo). 32 bits es el mayor tamaño de variable de coma
fija implementable o sintetizable por el software de Xilinx (ISE) y puede representar
números hasta ±215 = ±32768 con una precisión de 1/216 = 0, 000015.

6.3.4. Análisis del tiempo de ejecución


Las figuras 6.13, 6.14 y 6.15 muestran la implementación de un filtro de Kalman de
estado estacionario. Dependiendo del valor y la dimensión de los vectores y matrices,
estas implementaciones pueden corresponder a un filtro alpha-beta o a un alpha-beta-
gamma.
Considerando que el tiempo necesario para calcular la salida del filtro (ya sea el
FMF, el αβ o el αβγ) completo (incluyendo el procesamiento de la imagen) es “Tcomp”
6.3. IMPLEMENTACIÓN DEL HARD RT FMF 125

Tarjeta utilizada Digilent Spartan3E


Dispositivo instalado Xilinx FPGA xc3s500e -4
f max (No segmentado) (1 / 19.71ns=) 50.74MHz
f max (Segmentado 3T) 50MHz
f max (Segmentado 3T + DCM) 100MHz (clk to 100MHz)
Latencia (si segmentado) 3 ciclos de reloj
Número de Slices 4023 de 4656 (usado 86 %)
Número de Slice Flip Flops 5013 de 9312 (usado 53 %)
Número de LUTs de 4 entradas 3161 de 9312 (usado 33 %)
Número de bounded IOBs 10 de 232 (usado 4 %)
Número de multiplicadores MULT18X18SIOs 6 de 20 (usado 30 %)
(T1,T2,T3) (9.83,3.54,6.34)ns
Número equivalente de puertas utilizadas 74.034 de 500.000 (usado 14.81 %)

Tabla 6.1: Utilización del dispositivo en la implementación de un filtro de Kalman de


estado estacionario (αβ)

Tarjeta utilizada Nallatech Ballynuey 3


Dispositivo instalado Virtex FPGA xc2v3000-4fg676
f max (No segmentado) (1 / 80.01ns=) 12.49MHz
f max (Segmentado 6T) 32MHz
Latencia (si segmentado) 6 ciclos de reloj
Número de Slices 8097 de 14336 (usado 56 %)
Número de Slice Flip Flops 5517 de 28672 (usado 19 %)
Número de LUTs de 4 entradas 10043 de 28672 (usado 35 %)
Número de bounded IOBs 4 de 484 (usado 1 %)
Número de multiplicadores MULT18X18SIO 36 de 96 (usado 37 %)
(T1,T2,T3,T4,T5,T6) (9.83,3.54,6.34,28.7,3.1,30.5)ns
Número equivalente de puertas utilizadas 277.079 de 3.000.000 (usado 9.24 %)

Tabla 6.2: Utilización del dispositivo en la implementación de un filtro FMF de dos


estimadores (esquema mostrado en la figura 6.3).
126 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

Figura 6.13: Implementación de un filtro de Kalman de estado estacionario. A1 propaga


Td=T. Latencia=T. A es la matriz continua del sistema.

y el tiempo de adquisición de la cámara es “Td”, se pueden encontrar tres casos dife-


rentes en la implementación práctica:

(a) Tcomp  Td
El tiempo necesario para calcular el filtro completo (Tcomp) es mucho menor
que el tiempo de adquisición (Td) (este caso se denomina procesamiento en lı́nea
(on-the-fly processing) [36][39]). Esto significa que el tiempo de procesamiento
del filtro no supone un problema en el sistema de control y no es necesario
hacer consideraciones adicionales. Para este caso (ver figura 6.13), T=Td, A1
propaga Td (A1=eA·T ), Latencia=T. La innovación se obtiene para saber si el
comportamiento del filtro es cercano a las condiciones de diseño.

(b) Tcomp ≈ Td
El tiempo necesario para calcular el filtro completo (Tcomp) es aproximadamente
el mismo que el tiempo necesario para adquirir la imagen (Td). En este caso (ver
figura 6.14), T=max(Td,Tcomp), Latencia=2T. La innovación se obtiene para
saber si el comportamiento del filtro es cercano a las condiciones de diseño. La
matriz A1 propaga T(≈Tcomp≈Td) A1=eA·T , A2 propaga 2T(≈Tcomp+Td)
A2=eA·2T .

(c) Tcomp > Td


6.3. IMPLEMENTACIÓN DEL HARD RT FMF 127

Figura 6.14: Implementación de un filtro de Kalman de estado estacionario. A1 propaga


T≈Tcomp, A2 propaga 2T≈Tcomp+Td. Latencia=2T.

Figura 6.15: Estructura de tipo pipe-line de la implementación de un filtro de Kalman


de estado estacionario en una FPGA. Las lı́neas discontı́nuas de trazo grueso sim-
bolizan los registros usados para segmentar. A1 propaga T1+T2+T3, A2 propaga
T1+T2+T3+Td. Latencia T1+T2+T3+Td.
128 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

La cámara envı́a más información de la que es capaz de procesar el algoritmo.


La solución es: segmentar. La figura 6.15 muestra un filtro de Kalman de estado
estacionario segmentado, donde A1 propaga T1+T2+T3 (A1=eA·(T1+T2+T3) ), A2
propaga T1+T2+T3+Td (A2=eA·(T1+T2+T3+Td) ) y la latencia es T1+T2+T3+
Td.
Los segmentos del algoritmo se deben diseñar de forma que su tiempo de ejecución
sea lo más parecido posible. El caso ideal serı́a si T1=T2=T3=..., pero esto en
la práctica es muy difı́cil de conseguir debido a que cada segmento ha de realizar
una tarea determinada y como podemos ver en las tablas de implementación 6.1
y 6.2 esto no se da para un filtro αβ o para un FMF. Las citadas tablas 6.1 y 6.2
reflejan los datos obtenidos al implementar el esquema de la figura 6.15.

Las causas que producen los retardos se describen en [172] y se consideran uno de
los mayores problemas de los sistemas de control visual. En el mejor de los casos, el
retardo introducido por el sistema de visión (caso (a) considerado) será de un ciclo,
pero para prácticamente todas las implementaciones y arquitecturas (e.g. [82][200]), el
sistema de visión introduce un retardo mı́nimo de dos ciclos [199].
Este retardo mı́nimo se deriva de las consideraciones del lazo de control visual [201],
que demuestra que el mejor comportamiento del sistema de tracking (definido como
la mayor velocidad/aceleración del objeto para que éste pueda ser seguido) se alcanza
cuando el tiempo de adquisición de la imagen es igual al tiempo de procesamiento.

6.3.5. Código fuente del RT FMF


El filtro hRT FMF presentado en la sub-sección 6.2.3 y simulado en la sub-sección
6.2.4, se implementa duplicando la estructura mostrada en las figuras 6.13, 6.14 o
6.15, dependiendo de las condiciones de cómputo (planteadas en la sección 6.3.4), para
implementar los filtros αβ/γ.
La figura 6.17 muestra el código de MATLAB en la implementación para PC y la
figura 6.18 muestra el código de VHDL en la implementación para FPGA.
En la tabla 6.2 se pueden ver los recursos utilizados para la implementación del filtro
FMF. El filtro representado en la figura 6.3 es el más grande de los implementables en
una Xilinx FPGA xc3s500e debido al limitado hardware disponible, lo que significa que
los FMFs de las figuras 6.1 y 6.2 no se pueden implementar en este modelo de FPGA
y se deberı́a cambiar a otro dispositivo diferente (por ejemplo una Xilinx Virtex). De
hecho, para que este filtro (figura 6.3) se pueda implementar en la Spartan3E hay que
reducir la preción de los cálculos (originalmente 32 bits) y la resolución de la función
de pertenencia mostrada en la figura 6.4 (originalmente 256 puntos). Finalmente se ha
optado por utilizar la tarjeta Nallatech Ballynuey 3 (ver anexo B).
La tabla 6.2 muestra también la frecuencia máxima del algoritmo (15.82MHz)
sin segmentar y la frecuencia máxima (50MHz) aplicando esta técnica en la imple-
mentación del filtro hRT FMF. El segmentado incrementa la frecuencia de trabajo del
filtro, pero la latencia del mismo también se ve incrementada (5T). El segmento más
lento es el primero (T1=15.6ns) y su frecuencia de trabajo máxima es de 64.1MHz.
6.3. IMPLEMENTACIÓN DEL HARD RT FMF 129

Figura 6.16: Estructura segmentada del filtro FMF utilizada para obtener los datos
mostrados en la tabla 6.2. El código VHDL de esta representación se puede ver en la
figura 6.18. Las lı́neas gruesas discontinuas representan los registros de segmentado.
A1v y A1a propagan T1+T2+T3, A2v y A2a propagan T1+T2+...+T6+Td. Laten-
cia=T1+T2+...+T6+Td.
130 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

tic; % ******* Estimation of ab and abg filters *********


for i=1:Nr, % loop of Monte Carlo runs
for k=1:N,
% The innovation is computed and used to correct
innv(k,i)=y(k,i)-Cv*zv(:,k,i);
zv(:,k,i)= zv(:,k,i)+ Kv*innv(k,i);
inna(k,i)=y(k,i)-Ca*za(:,k,i);
za(:,k,i)= za(:,k,i)+ Ka*inna(k,i);
% FMF comput. for DWNA/DWPA/DWNA and sinusoidal trajec.
if (traj==3)|(traj==4),
% The filtered innovation is computed
if (k==1),innvf(k,i)=Numf(1)/Denf(1)*innv(k,i);
innaf(k,i)=Numf(1)/Denf(1)*inna(k,i);
else, innvf(k,i)=(Numf(1)*innv(k,i)+Numf(2)*innv(k-1,i)-Denf(2)*innvf(k-1,i))/Denf(1);
innaf(k,i)=(Numf(1)*inna(k,i)+Numf(2)*inna(k-1,i)-Denf(2)*innaf(k-1,i))/Denf(1);
end;
K1(k,i)=exp(-abs(innvf(k,i))/tau_pert_v);
K2(k,i)=exp(-abs(innaf(k,i))/tau_pert_a);
zf(1:2,k,i)=(K1(k,i)*zv(:,k,i)+K2(k,i)*za(1:2,k,i))/(K1(k,i)+K2(k,i));
% Only pos. and vel. are FMF outputs (abg accel.
% is not an output because it cant be mixed)
end;
% IF last iteration THEN break
% (the next one is not prepared)
if k==N, break; end;
% The next Kalman iteration is prepared
zv(:,k+1,i)=Av*zv(:,k,i); za(:,k+1,i)=Aa*za(:,k,i);
end;
end; tpo_computo=toc/(Nr*N);

Figura 6.17: Código fuente de MATLAB del filtro FMF para el caso (a). Para el caso
(b) serı́a muy similar, teniendo que introducir el producto de A2 para una correcta
propagación.

6.3.6. Comparativa: PC-MATLAB vs FPGA-VHDL

Esta comparativa se ha realizado para las trayectorias (3) y (4). Para la imple-
mentación en la FPGA, se han utilizado trayectorias de 250 puntos e inicialización
por el método TPD. La implementación en PC-MATLAB se realiza en un ordenador
en el que se simula el coportamiento del filtro con las citadas trayectorias. La im-
plementación FPGA-VHDL se realiza en la FPGA y se transmite al ordenador (via
RS-232) para comprobar su resultado.

Para analizar las simulaciones presentadas en esta sección, se definen los siguien-
tes términos: RMSET (valor RMS12 del error de predicción con respecto al tiempo),
RMSME (valor RMS de los errores de medida con respecto al tiempo) y NRMSET
(RMSET normalizado). Notar que en el capı́tulo 5 se definieron las mismas magnitudes
para escalares, en este caso se trata de vectores.

12
Root-Mean-Square.
6.3. IMPLEMENTACIÓN DEL HARD RT FMF 131

process(clk2)
begin
if clk2’event and clk2=’1’ and SyncHW=’1’ and Send=’0’ and Conv=’0’ then
yku <= conv_integer(coord_uH&coord_uL);
if (state="0000") then
if (iter=1) then
tmp1v<=prodMatrix(K2v,aux1); tmp1a<=prodMatrix(K2a,aux2);
tmpIv<=prodArray (Cv, aux3); tmpIa<=prodArray (Ca, aux4);
else
tmp1v<=prodMatrix(K2v,tmp4); tmp1a<=prodMatrix(K2a,tmp4);
tmpIv<=prodArray (Cv, tmp4); tmpIa<=prodArray (Ca, tmp4);
end if;
tmp2v<=prodArray(Kv,yku);tmp2a<=prodArray(Ka,yku);
elsif (state="0001") then
tmp3v<=addArray(tmp1v,tmp2v); tmp3a<=addArray(tmp1a,tmp2a);
tmpIIv(k)<=tmpIv+yku; tmpIIa(k)<=tmpIa+yku;
elsif (state="0010") then
tmp4v<=prodMatrix(A1v,tmp3v); tmp4a<=prodMatrix(A1a,tmp3a);
tmp5v<=prodMatrix(A2v,tmp3v); tmp5a<=prodMatrix(A2a,tmp3a);
elsif (state="0011") then
if (iter=1) then
tmpIIIv(k) <= Filter(tmpIIv(k),aux5,aux6);
tmpIIIa(k) <= Filter(tmpIIa(k),aux7,aux8);
else
tmpIIIv(k)<=Filter(tmpIIv(k),tmpIIv(k-1),tmpIIIv(k-1));
tmpIIIa(k)<=Filter(tmpIIa(k),tmpIIa(k-1),tmpIIIa(k-1));
end if;
tmp6v <= tmp5v; tmp6a <= tmp5a;
elsif (state="0100") then
tmpIVv <= MF(tmpIIIv(k)); tmpIVa <= MF(tmpIIIa(k));
tmp7v <= tmp6v; tmp7a <= tmp6a;
elsif (state="0101") then
xfku <= FMFfunc(tmpIVv,tmp5v,tmpIVa,tmp5a);
tmpIIv(k-1) <= tmpIIv(k); tmpIIa(k-1) <= tmpIIa(k);
tmpIIIv(k-1) <= tmpIIIv(k); tmpIIIa(k-1) <= tmpIIIa(k);
end if;
end if;
end process;

Figura 6.18: Código fuente en VHDL segmentado del filtro FMF para el caso (a).
El código del filtro no segmentado serı́a bastante similar a este pero eliminando las
sentencias if/elsif/else/end if; y cambiando las signals a variables.

v
u N 2
u X k x(k) − x̂(k) k2
RMSET = t (6.34)
k=D+1
(N − D)
v
u N 2
u X k x(k) − y(k) k2
RMSMET = t (6.35)
k=D+1
(N − D)
RMSET
NRMSET = (6.36)
RMSMET

donde:
x(k) es la posición real del objeto en el instante k,
x̂(k) es la predicción de la posición del objeto en el instante k,
y(k) es la posición medida del objeto en el instante k,
N es el número de muestras de la trayectoria,
132 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

D es el número de muestras iniciales despreciadas en el cálculo de los valores RMS.


Estos términos se utilizan especificando el tipo de trayectoria como super-ı́ndice y el
tipo de filtro como sub-ı́ndice (e.g. RMSET1αβ , RMSET2αβγ , RMSET3FMF , ...).

Implementación del caso (a) (Tcomp  Td):

Usando traj 3 , se implementa el caso (a) en MATLAB para ser ejecutado en un


PC y en VHDL para ser ejecutado en una FPGA. Las figuras 6.19, 6.20 y 6.21
muestran los resultados obtenidos en MATLAB (la figura 6.19 muestra que las
predicciones son muy próximas entre sı́, pero no se aprecia la diferencia entre ellas,
en la figura 6.20 encontramos una ampliación de la misma gráfica para apreciar
la diferencia entre las predicciones), por otra parte, la figura 6.22 muestra el error
cometido por la FPGA al realizar el mismo experimento. Tener en cuenta que el
error es considerado como la diferencia entre el valor de MATLAB (considerado
como el valor exacto del cálculo de la estimación) y el obtenido por la FPGA (i.e.
representa el error cometido por implementar el algoritmo en la FPGA y que no
se cometerı́a en la implementación en el PC).

−2

−4

3
xreal
−6
3
xαβ
3
xαβγ
−8
x3
FMF
y3(k−1)
−10
0 2 4 6 8 10
Tiempo (segundos)

Figura 6.19: Predicciones para la trayectoria (3) (ejecución PC-MATLAB del caso (a):
Tcomp  Td).

Los valores RMS de los errores de predicción, del error de medida y el RMSET
normalizado (valores mostrados gráficamente en las figuras 6.20 y 6.21) son:
RMSET3αβ =0.035294m, NRMSET3αβ =53.85 %,
RMSET3αβγ =0.017082m, NRMSET3αβγ =26.06 %,
RMSET3FMF =0.016212m, NRMSET3FMF =24.74 %,
RMSMET3 =0.065537 %
Usando tray 4 , se implementa el caso (a) en MATLAB y el VHDL. Las figuras
6.23, 6.24 y 6.25 muestran el resultado obtenido en MATLAB (la figura 6.24
muestra que las predicciones son cercanas a la trayectoria real, mientras que la
6.3. IMPLEMENTACIÓN DEL HARD RT FMF 133

1.85

1.8

1.75

1.7
3
x
real
3
1.65 xαβ
3
xαβγ
1.6 x3
FMF
3
y (k−1)
1.55
3.7 3.8 3.9 4 4.1 4.2 4.3 4.4 4.5
Tiempo (segundos)

Figura 6.20: Zoom de las predicciones para la trayectoria (3) (ejecución PC-MATLAB
del caso (a): Tcomp  Td).

figura 6.24 muestra un detalle de esta trayectoria y sus predicciones), por otra
parte, la figura 6.26 muestra el error cometido por la FPGA.
Los valores RMS de los errores de predicción, de los errores de medida y el
RMSET normalizado (valores mostrados gráficamente en las figuras 6.24 y 6.25)
son:
RMSET4αβ = 0,016169m, NRMSET4αβ = 62,49 %,
RMSET4αβγ = 0,017650m, NRMSET4αβγ = 68,22 %,
RMSET4FMF = 0,014917m, NRMSET4FMF = 57,65 %,
RMSMET4 = 0,025874 %
Implementación del caso (b) (Tcomp ≈ Td):
Usando tray 3 , se implementa el caso (b) en MATLAB y VHDL. Las figuras
6.27, 6.28 y 6.29 muestran los resultados obtenidos en MATLAB y la figura
6.30 muestra el error cometido por la FPGA. La figura 6.27 muestra que las
predicciones son bastante similares y la figura 6.28 es un zoom de la anterior.
Los valores RMS de los errores de predicción, de los errores de medida y de los
errores normalizados (valores mostrados gráficamente en las figuras 6.27, 6.28 y
6.29) son:
RMSET3αβ =0.045095m, NRMSET3αβ =68.81 %,
RMSET3αβγ =0.023025m, NRMSET3αβγ =35.13 %,
RMSET3FMF =0.020842m, NRMSET3FMF =31.80 %,
RMSMET3 =0.127752 %
Usando tray 4 , se implementa el caso (b) en MATLAB y VHDL. Las figuras 6.31,
6.32 y 6.33 muestran los resultados obenidos con MATLAB, mientras que la figura
6.34 indica el error para el mismo experimento implementado con la FPGA.
134 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

RMSET3αβ
0.1 0.05 3
RMSET
αβγ
0.04 3
RMSETFMF
zoom 3
0.05 0.03 RMSMET

0.02

0 0.01
Error

Error
0

−0.05 −0.01

RMSET3αβ −0.02

−0.1 RMSET3αβγ −0.03


3
RMSETFMF
−0.04
3
RMSMET
−0.15 −0.05
0 2 4 6 8 10 5 5.5 6 6.5 7 7.5 8 8.5 9
Tiempo (segundos) Tiempo (segundos)

Figura 6.21: Errores de predicción para la trayectoria (3) (ejecución PC-MATLAB del
caso (a): Tcomp  Td).
−3
x 10

1
Error

−1

−2

−3

0 2 4 6 8 10
Tiempo (segundos)

Figura 6.22: Errores de predicción para la trayectoria (3). Comparativa entre los datos
obtenidos con la ejecución en la FPGA y la ejecución en MATLAB (el error de im-
plementación se calcula considerando que los valores de estimación obtenidos en las
simulaciones de MATLAB son los valores exactos).

Los valores RMS de los errores de predicción, de los errores de medida y de los
errores normalizados (valores mostrados gráficamente en las figuras 6.31, 6.32 y
6.33) son:
RMSET4αβ =0.019787m, NRMSET4αβ =76.47 %,
RMSET4αβγ =0.023044m, NRMSET4αβγ =89.07 %,
RMSET4FMF =0.018491m, NRMSET4FMF =71.46 %,
RMSMET4 =0.039662 %

Como puede verse en los datos y en las figuras mostradas en este capı́tulo, para
6.3. IMPLEMENTACIÓN DEL HARD RT FMF 135

1.5
x4
real
x4
1 αβ
4
x
αβγ
4
x
FMF
0.5 4
y (k−1)

Predicción
0

−0.5

−1

−1.5
0 2 4 6 8 10
Tiempo (segundos)

Figura 6.23: Predicciones para la trayectoria (4) (ejecución PC-MATLAB del caso (a):
Tcomp  Td).

1.06
4
x
real
1.04 x4
αβ
x4
αβγ
1.02
4
x
FMF
4
1 y (k−1)
Predicción

0.98

0.96

0.94

0.92

0.9
1.8 2 2.2 2.4 2.6 2.8 3
Tiempo (segundos)

Figura 6.24: Zoom de las predicciones para la trayectoria (4) (ejecución PC-MATLAB
del caso (a): Tcomp  Td).

los casos (a) (Tcomp  Td) y (b) (Tcomp ≈ Td) y para las trayectorias (3) y (4), el
comportamiento del filtro FMF es siempre mejor que el comportamiento de los filtros
αβ y αβγ.
La tabla 6.3 contiene los valores de coste computacional de cada filtro. Esta tabla
muestra el tiempo de cómputo de cada uno de los filtros en un Intel Core 2 Duo 2,13
GHz. El tiempo de ejecución de los filtros αβ y αβγ es el mismo a pesar de que en el
segundo los vectores y matrices son de mayor dimensión. Otra conclusión curiosa que
se ha podido ver en las simulaciones es que el tiempo necesario para ejecutar el caso
(a) (Tcomp  Td) ha sido menor que el tiempo necesario para ejecutar el caso (b)
136 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

RMSET4αβ
0.1 0.05 4
RMSET
αβγ
0.04 4
RMSETFMF
zoom 4
0.05 0.03 RMSMET
Errores de predicción

Errores de predicción
0.02

0 0.01

−0.05 −0.01

RMSET4αβ −0.02

−0.1 RMSET4αβγ −0.03


4
RMSETFMF
−0.04
4
RMSMET
−0.15 −0.05
0 2 4 6 8 10 6 6.5 7 7.5 8
Tiempo (segundos) Tiempo (segundos)

Figura 6.25: Errores de predicción para la trayectoria (4) (ejecución PC-MATLAB del
caso (a): Tcomp  Td).

−3
x 10

1
Error

−1

−2

−3

0 2 4 6 8 10
Tiempo (segundos)

Figura 6.26: Errores para la trayectoria (4) en la implementación en la FPGA.

(Tcomp ≈ Td). El tiempo necesario para calcular el filtro FMF es mayor que la suma
de los filtros αβ y αβγ debido a la posterior mezcla borrosa para tener la predicción
final (sistema fuzzy).

6.3.7. Análisis del coste computacional


El coste computacional (en tiempo) de cualquier algoritmo depende de la potencia
de la CPU que lo está ejecutando y del lenguaje utilizado (efectividad del compilador).
Por esta razón, en los experimentos se tiende a utilizar las últimas versiones en cuanto
a procesadores y software. Para la realización de este capı́tulo, se ha utilizado el PC
más potente disponible en el laboratorio: un Intel Core 2 Duo (ver sub-sección 6.3.3)
con el sistema operativo WindowsXP-Professional.
6.3. IMPLEMENTACIÓN DEL HARD RT FMF 137

−2

−4

3
x
−6 real
3
xαβ
3
xαβγ
−8
x3
FMF
3
y (k−1)
−10
0 2 4 6 8 10
Tiempo (segundos)

Figura 6.27: Predicciones para la trayectoria (4) (ejecución PC-MATLAB del caso (b):
Tcomp ≈ Td).

1.9

1.8

1.7

1.6

1.5
3
xreal
1.4
3
xαβ
1.3 3
xαβγ

x3
1.2 FMF
y3(k−1)
1.1
3.8 3.9 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7
Tiempo (segundos)

Figura 6.28: Zoom de las predicciones para la trayectoria (4) (ejecución PC-MATLAB
del caso (b): Tcomp ≈ Td).

Comparando solamente las frecuencias de los relojes, este Intel es 2130 / 50 = 42.6
veces más rápido que esta Spartan3E (ver sub-sección 6.3.2), pero el primero ha de
trabajar en un PC y debe ejecutar un sistema operativo y otras tareas no relacionadas
directamente con el propósito final (la tarea de control visual). Notar que los algoritmos
implementados en la plataforma PC se han programado en lenguaje MATLAB, un
lenguaje interpretado, no compilado.
La implementación de un algoritmo en una FPGA se puede realizar de dos formas
diferentes:
138 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

RMSET3αβ
0.1 0.05
RMSET3αβγ
0.04
RMSET3FMF
zoom
0.05 0.03 RMSMET
3

0.02

0 0.01

−0.05 −0.01

RMSET3 −0.02
αβ
3
RMSETαβγ
−0.1 −0.03
RMSET3
FMF
−0.04
3
RMSMET
−0.15 −0.05
0 2 4 6 8 10 6 6.5 7 7.5 8
Tiempo (segundos) Tiempo (segundos)

Figura 6.29: Errores de predicción para la trayectoria (4) (ejecución PC-MATLAB del
caso (b): Tcomp ≈ Td).
−3
x 10

1
Error

−1

−2

−3

0 2 4 6 8 10
Tiempo (segundos)

Figura 6.30: Errores de predicción para la trayectoria (4). Comparativa entre los datos
obtenidos con la FPGA y los obtenidos con PC-MATLAB.

(i) Moviendo un procesador secuencial al interior de la FPGA o;

(ii) Programando la FPGA directamente en hardware para optimizar el algoritmo


en desarrollo.

Usando (i) se llegarı́a a la conclusión (aproximada) de que a mayor frecuencia


del reloj, mayor velocidad de funcionamiento del algoritmo (ver tabla IV de [47]).
Por otra parte, asumiendo que se desea realizar la comparativa con la opción (ii), se
hace necesario dedicar un tiempo extra a paralelizar las tareas/cálculos, minimizando
el tiempo de ejecución comparado con (i) (esto es posible sólo en algunas ocasiones
dependiendo de la aplicación).
El FMF está implementado con dos filtros de Kalman (filtros αβ y αβγ) para esta
6.3. IMPLEMENTACIÓN DEL HARD RT FMF 139

1.5
x4
real
x4
1 αβ
4
x
αβγ
4
x
FMF
0.5 4
y (k−1)

−0.5

−1

−1.5
0 2 4 6 8 10
Tiempo (segundos)

Figura 6.31: Predicciones para la trayectoria (4) (ejecución PC-MATLAB del caso (b):
Tcomp ≈ Td).

1.05

0.95

4
xreal
4
xαβ
0.9
4
xαβγ

x4
FMF
y4(k−1)
0.85
1.8 2 2.2 2.4 2.6 2.8 3 3.2
Tiempo (segundos)

Figura 6.32: Zoom de las predicciones para la trayectoria (4) (ejecución PC-MATLAB
del caso (b): Tcomp ≈ Td).

comparativa de implementación y se calcula a frecuencia de reloj (50MHz usando el


reloj principal de la tarjeta). Pero cabe tener en cuenta que el segmento más lento
necesita 15.6ns. El algoritmo desarrollado puede funcionar hasta 64.1MHz, pero no
usando el reloj integrado en la tarjeta Spartan3E. El módulo DCM no puede generar
esta frecuencia, por lo que la solución es usar un reloj externo colocado en el zócalo 8-
Pin DIP Oscillator Socket CLK AUX: (B8) y colocar un cristal de 64MHz, por ejemplo
un XTAL SPXO003286.
La mayor ventaja de esta configuración es que en una FPGA se pueden implementar
dos o tres filtros FMF con lo que el tiempo necesario para procesar un grupo grande de
140 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

4
RMSETαβ
0.15 0.05
RMSET4αβγ
0.04
0.1 RMSET4FMF
0.03 4
RMSMET
0.05 0.02

0.01
0
0
−0.05
zoom −0.01

−0.1 RMSET4αβ −0.02

RMSET4αβγ −0.03
−0.15 4
RMSETFMF
−0.04
4
RMSMET
−0.2 −0.05
0 2 4 6 8 10 4 4.5 5 5.5 6
Tiempo (segundos) Tiempo (segundos)

Figura 6.33: Errores de predicción para la trayectoria (4) (ejecución PC-MATLAB del
caso (b): Tcomp ≈ Td).

−3
x 10

1
Error

−1

−2

−3

0 2 4 6 8 10
Tiempo (segundos)

Figura 6.34: Errores de predicción para la trayectoria (4). Comparativa entre los datos
obtenidos con la FPGA y los obtenidos con PC-MATLAB.

caracterı́sticas visuales se puede reducir enormemente. Obviamente esto no es posible


con una Xilinx FPGA xc3s500e y se deberı́a utilizar un dispositivo más grande (e.g.
xc2v3000-4fg676 o similar, provisto de más recursos hardware).
Para los experimentos realizados en el PC, el tiempo necesario para calcular un
filtro αβ o un filtro αβγ (considerados ambos filtros de tiempo real) es alrededor
de 4µsegundos. Usando el mismo PC, el tiempo necesario para implementar el FMF
descrito (el de la figura 6.3) es de unos 20µs (ver tabla 6.3). Gracias a la utilización de
una FPGA y de la técnica del segmentado (pipeline), se puede incrementar la frecuencia
de trabajo hasta los 50MHz en todos los casos (obteniendo diferentes latencias).
La tabla 6.2 muestra los recursos utilizados para implementar el filtro hRT FMF
desarrollado, en ella se puede ver que la diferencia entre el segmento más rápido
6.4. CONCLUSIONES 141

αβ αβγ FMF
caso (a) 3.5 3.55 19.64 (Tcomp  Td)
caso (b) 4.59 4.59 21.85 (Tcomp ≈ Td)

unidades: µs / iteración
Tabla 6.3: Coste computacional de los filtros en PC-MATLAB

Core 2 Duo Xilinx xc3s500e


αβ 3.5µs 19.71ns
αβγ 3.55µs 27.56ns
FMF 19.64µs 92.50ns

Tabla 6.4: Comparativa de coste computacional usando un Intel Core 2 Duo (2,13GHz)
y una Spartan3E-FPGA (50MHz)

(T3=8.8ns) y el segmento más lento (T4=30.5ns) es relativamente alta (T4-T3=21.7ns) 13


y esta diferencia no es recomendable, pero T4 no puede ser acelerado (reducido) debido
a la cantidad de operaciones que se han de realizar.

6.4. Conclusiones
La implementación de todos los algoritmos involucrados en este nuevo filtro de
predicción FMF ha sido el aspecto fundamental desarrollado en este capı́tulo. En esta
tarea se han encontrado dificultades de ı́ndole práctica asociadas a la implementación de
los algoritmos en FPGA que se pueden resumir en los siguientes aspectos particulares:

Todas las operaciones matemáticas de tratamiento con matrices han tenido que
ser implementadas como funciones para poder implementar los algoritmos.

La implementación real del sistema ha implicado el uso de diferentes relojes para


sincronizar todas las tareas (se han usado varios múltiplos y submúltiplos del
reloj principal y del reloj externo de 12MHz para controlar la información de la
cámara).

Se han usado macros de Xilinx en VHDL para controlar las comunicaciones con
el PC y con la cámara (estableciendo comunicaciones serie RS-232 e I2 C).

El acceso a la memoria DDR2 SRAM se ha programado directamente en VHDL


usando el (MIG) Memory Interface Generator.

En las referencias [147] y [142] se muestran las ventajas del uso de un Fuzzy Mix of
Filters para obtener una predicción de mayor calidad que las obtenidas por los filtros
que lo componen de forma separada.
13
Porcentualmente se tendrı́a (T3-T4)/T4= -71 %.
142 CAPÍTULO 6. IMPLEMENTACIÓN EN TIEMPO REAL

En concreto, la sección 6.3.7 muestra que el concepto popularmente aceptado: “par-


alelizando tareas se disminuye el tiempo de cómputo” es también aplicable en este caso.
El uso de una FPGA (como la Spartan3E) es mejor en todos los casos analizados que
la utilización de un procesador secuencial (como el Intel Core 2 Duo) para estas apli-
caciones de control visual, aunque el tiempo de desarrollo crece exponencialmente con
la complejidad de la tarea a desarrollar.
CAPÍTULO 7

CONTROL VISUAL DINÁMICO


DE ROBOTS

Este capı́tulo presenta un nuevo esquema de control para la realización de control vi-
sual que tiene en cuenta el retardo introducido por la adquisición y el procesamiento de
la imagen. Primero se presentan los esquemas de control utilizados hasta el momento,
para luego introducir el nuevo esquema de control propuesto. En particular, se mues-
tra que el nuevo esquema de control propuesto mejora claramente el comportamiento
de los ya existentes, lo cual hace de este esquema una de las principales aportaciones
de esta tesis. Finalmente, el capı́tulo se apoya en experimentos reales para demostrar
el comportamiento del esquema de control propuesto de forma original usando una
caracterı́stica visual con movimiento giratorio.

143
144 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

7.1. Introducción
En 1973, Y. Shirai y H. Inoue describen un nuevo método [173] para la realización
del “control visual” de un robot manipulador usando información visual. Este método
presentaba la capacidad de reaccionar a los cambios en tiempo real con gran exactitud.
El método propuesto era análogo a la forma en que un ser humano observarı́a, caminarı́a
o agarrarı́a un objeto usando realimentación visual. El término “visual servoing” fue
acuñado más adelante para hacer referencia al control visual realimentado en tiempo
real de un manipulador robótico, donde se intenta minimizar una determinada función
de error. El incremento de la exactitud (mayor beneficio del visual servoing) es posible
porque la exactitud del sistema es intrı́nsecamente independiente a la calibración de
la cámara en la configuración eye-in-hand. Consecuentemente, incluso si el proceso de
calibración es erróneo, la exactitud final no se ve afectada. La capacidad de reacción en
tiempo real hace que el servo control visual sea ideal para tareas en las que el objeto
cambia de posición o modifica su trayectoria durante la operación robótica. La exac-
titud del servo control visual es una caracterı́stica ideal para las tareas automatizadas
de ensamblaje y desensamblaje donde ésta es de gran importancia [191][190][153].Los
avances cientı́ficos en visual servoing se han acelerado recientemente debido al hecho
de que los actuales procesadores pueden analizar las escenas suministradas en tiempo
real por el sistema de visión y generar las acciones de control necesarias. Estos avances
han dado lugar últimamente a ediciones especiales de diferentes revistas de prestigio
como [196][197][198] y cursos de gran éxito como [27].
En el tutorial [82], se recogen y se unifican los conceptos básicos de control visual que
fueron utilizados por diferentes autores hasta el momento. Existen dos configuraciones
básicas de visual servoing dependiendo de la señal de error considerada (conceptos ya
analizados en el capı́tulo 2): el control visual basado en imagen, en el cual la señal del
error se mide directamente en la imagen y se obtienen los comandos del actuador; y
el control visual basado en posición, en el cual determinadas técnicas de visión (por
ejemplo el algoritmo de DeMenthon [50]) se utilizan para reconstruir una representación
del espacio de trabajo 3D con respecto de un sistema de coordenadas conocido, y el
robot se mueve con respecto al espacio de trabajo 3D [43]. En un sistema basado en
imagen, la estimación de la pose se resuelve implı́citamente (si la vista actual del objeto
coincide con la vista deseada del mismo, la pose corresponde con la de referencia). Sin
embargo, hay otras configuraciones de control visual que no se pueden incluir en la
clasificación anterior, e.g. [114].
Por otra parte, en el capı́tulo 2 de esta tesis se realiza la clasificación de los sistemas
de control visual en dos grupos: control visual indirecto y control visual directo.
Un ejemplo de control visual directo se puede encontrar en [52], en el cual se apli-
ca teorı́a de control automático para la obtención de un regulador. Un ejemplo de
esquema de control visual indirecto, se puede encontrar en [205], donde se utiliza un
regulador proporcional-derivativo como regulador cinemático (también se utiliza el fil-
tro de Kalman extendido para filtrar medidas ruidosas de la/s caracterı́stica/s de la
imagen). El esquema de control anterior tiene dos desventajas principales: el error de la
velocidad es no nulo (es decir el error de régimen estacionario es diferente a cero cuando
la referencia es una rampa de primer orden) como se comprueba en la sección 7.4 de
7.2. DESCRIPCIÓN DE LOS ESQUEMAS DE CONTROL 145

Figura 7.1: Esquema de control visual propuesto en [38][41] con la reorganización


mostrada en [36].

este mismo capı́tulo; y no considera los retardos del sistema de visión. En este sentido,
en [74] se desarrolla un sistema de control visual indirecto basado en imagen, donde
se explica que el retardo del tratamiento de la imagen produce un comportamiento
oscilante para valores altos de ganancia de realimentación.
De hecho, uno de los mayores problemas del control servo visual es hacer frente
al retardo introducido por la adquisición de la imagen y el tratamiento de la mis-
ma. Muchas investigaciones sobre control visual [52][205][74][111][18][124] se centran
en otros aspectos y simplemente ignoran este retardo en el esquema de control (en la
mayorı́a de los casos se utiliza un esquema de control indirecto y un regulador propor-
cional), que es la razón principal de la limitada velocidad y aceleración en el proceso de
seguimiento o tracking. Una solución para resolver el problema del retardo introducido
por el sensor visual es el uso de algoritmos predictivos, e.g. el filtro de Kalman, que se
utiliza también para tratar con señales tı́picamente ruidosas. Básicamente, el único es-
quema de control propuesto que considera los retardos del sensor visual fue presentado
por Corke en [38][41], y se ha utilizado en varios trabajos posteriores [36][189][200].
En este capı́tulo se presenta un nuevo esquema de control servo visual (descrito en
la sección 7.2) que considera las señales retardadas. En la sección 7.4 de este capı́tulo,
se analizan las limitaciones y las ventajas del esquema propuesto. Particularmente este
nuevo esquema de control mejora claramente, en las simulaciones de la sección 7.4,
el funcionamiento del esquema propuesto por Corke [38][41]. Para validar esta nueva
propuesta, se muestran algunos resultados experimentales usando un panel giratorio
(llamado en la bibliografı́a “turntable” [38]).

7.2. Descripción de los esquemas de control


Uno de los objetivos del control visual es llevar el objeto visualizado a una posición
determinada del plano de imagen y hacer que ésta permanezca allı́ independientemente
del movimiento del objeto.
En la figura 7.1, se demuestra el lazo de control visual presentado por Corke en
[38][41][39] con la reorganización de bloques de Chroust y Vincze [36] (ver la figu-
146 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

Figura 7.2: Esquema de control visual propuesto en [38][41] con la reorganización ha-
bitual (mostrada en [147]).

ra 7.2 para organización tradicional de los bloques). El esquema de control se puede


utilizar para una cámara móvil y para una cámara fija que controla el movimiento
del robot. En este esquema R(z) representa el modelo discreto del robot (incluyen-
do los controladores de articulación) y V(z) refleja el comportamiento de la cámara,
que se modela comúnmente como un retardo puro V(z)= kv · z −d (generalmente d=2)
[82][38][189][200][201][199]. Ver nomenclatura1 . En el capı́tulo 6 se describe la imple-
mentación de un sistema de control visual completo en la que se ha tenido que analizar
en profundidad el valor del parámetro “d” (ver casos (a), (b) y (c) de 6.3.4 para más
información).
De hecho, el bloque z −d introduce en el diagrama un retardo para que los instantes
de las variables coincidan. En el esquema, se usa un bloque de estimación o predicción
E(z) (e.g. un KF en [36]) para generar la señal de realimentación ẋt (i.e., el valor
actual de la derivada primera de la posición del objeto). Mientras tanto, el regulador
C(z) reduce al mı́nimo la desviación (error) entre ∆x (diferencia entre la posición del
objeto xt y la posición del robot xr , la cual se obtiene con el sistema de visión y por
lo tanto está retrasada “d” muestras) y ∆xRef (diferencia deseada entre la posición del
objeto y la posición del robot) con la señal de velocidad ẋp . En resumen, se utiliza
como controlador cinemático un controlador clásico de trayectoria que incluye una
prealimentación derivativa de primer orden y una corrección de la posición.
En este capı́tulo se propone el uso del esquema de control de la figura 7.3, donde el
bloque de estimación E(z) tiene en cuenta que las medidas están retrasadas (un tiempo
k-d) y por ello se realiza la predicción de la salida para el instante k. Por lo tanto, una
modificación importante con respecto al esquema de control de la figura 7.1 es que se
utiliza la salida del filtro de predicción {x̂t (k), ẋˆt (k)}, la posición actual del robot xr (k)
y ∆xRef (diferencia deseada entre la posición del objeto y la posición del robot) como
entrada (ver figura 7.3) al controlador cinemático o de posición C(z) en lugar de la
salida del sistema de visión ∆x(k − d). Esta modificación permite hacer la corrección
de posición usando valores del tiempo real k en lugar de valores de instantes de tiempo
1
En la tabla 7.1 se puede encontrar la descripción de la nomenclatura utilizada en los esquemas
de este capı́tulo por orden de aparición.
7.2. DESCRIPCIÓN DE LOS ESQUEMAS DE CONTROL 147

xt Posición del objeto


xr Posición del robot
∆x Salida del sistema de visión
ẋˆt Estimación de la velocidad del objeto
ẋp Señal de velocidad (salida del controlador)
V(z) Sistema de visión
E(z) Filtro de predicción
C(z) Controlador
R(z) Comportamiento del robot
−d
z Retardo discreto de “d” muestras
∆x(k − d) Salida discreta del sistema de visión
retrasada “d” muestras
xt (k − d) Posición discreta del robot
retrasada “d” muestras
x̂t (k) Estimación discreta de la posición del objeto
∆xRef (k) Diferencia discreta deseada entre la
posición del objeto y la posición del robot
ẋrCont (k) Acción de control discreta obtenida por
C(z) para controlar el robot
xr (k) Posición discreta del robot
FMF Fuzzy Mix of Filters [147][142]
ẋˆt (k) Estimación discreta de la velocidad del objeto
∆ẋRef (k) Diferencia discreta deseada entre la
velocidad del objeto y la velocidad del robot
x̂rRef Posición de referencia del robot estimada
ˆ
ẋrRef Velocidad de referencia del robot estimada
D(z) Controlador dinámico
ZOH Retenedor de orden cero
M(z) Estimador de velocidad basado en la
señal del encoder
ur Acción de control obtenida por el
controlador dinámico
R’(s)/s Modelo continuo del robot
ẋr Velocidad del robot
Th Periodo de muestreo alto (lento) para el lazo articular externo
Ts Periodo de muestreo bajo (rápido) para el lazo articular interno

Tabla 7.1: Nomenclatura utilizada en los esquemas de control.


148 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

Figura 7.3: Nuevo esquema de control visual (se puede utilizar el predictor FMF en
lugar del KF).

pasados k-d. La salida del controlador cinemático C(z) es la señal de actuación de


velocidad ẋrCont (k) que controla el robot. Por otra parte, se propone la utilización de
un predictor FMF (presentado en el capı́tulo 5), que se basa en un sistema borroso para
combinar o para mezclar diversos filtros (interpolación linear, filtros de Kalman, filtros
αβ/γ, algoritmos de predicción circular o elipsoidal, ...), debido a la mejora alcanzada
en la predicción [141][148].
En la figura 7.4 se detalla el controlador cinemático C(z) y el robot R(z). En parti-
cular, para el controlador cinemático se ha considerado un clásico control de trayectoria:
prealimentación derivativa de primer orden de la referencia del robot xrRef (es decir
xt − ∆xRef ) más una realimentación proporcional de la señal de error e con ganancia
K. Mientras tanto, el robot se ha desglosado en un controlador dinámico de bajo nivel
D(z) (o D’(z) si se utiliza una realimentación negativa clásica), la cual es normalmente
discreta y que corrige el error de velocidad del robot, y el modelo continuo del robot
R’(s) (este modelo incluye la inercia del robot y la dinámica de los actuadores) multi-
plicado por el integrador intrı́nseco del robot 1/s. Notar que, a partir de los encoders
se puede obtener la medida de velocidad ẋr discreta usando un estimador M(z) (e.g. si
se utiliza la aproximación de Euler del triángulo anterior M(z) = (z − 1)/(z · T s )). En
este diagrama (figura 7.4) se han considerado dos periodos de muestreo: un periodo
de muestreo pequeño (rápido) nombrado como Ts para el lazo interno de las articula-
ciones del robot (usualmente cerca de 1ms); y otro periodo de muestreo grande (lento)
nombrado como Th dado por la adquisición y el tratamiento de la imagen (usualmente
cerca de los 40ms en aplicaciones de control visual utilizando cámaras PAL o RS170).
Para realizar el cambio de un periodo de muestreo a otro, se incluyen en el esquema
de control dos retenedores de orden cero (ZOH).
Es interesante recalcar que si se utiliza el controlador dinámico de bajo nivel D(z)
del propio robot, el resultado es un esquema de control visual indirecto y que si se
sustituye este controlador por otro desarrollado para la tarea de control visual, el
resultado es un esquema de control visual directo.
En el esquema de la figura 7.4 hay tres lazos de control: el lazo de control más
externo (lazo de planificación) establece dinámicamente la referencia de posición del
robot xrRef (es decir xt − ∆xRef ) en base a la información de los sensores; el lazo de
control intermedio (lazo cinemático) corrige el error de posición; y el lazo interno medio
(lazo dinámico) que corrige el error de velocidad. (En la sección 7.4 de este capı́tulo se
analiza el lazo intermedio y se caracteriza mediante simulaciones). Por otra parte existe
7.3. ERROR DE ESTADO ESTACIONARIO EN LOS ESQUEMAS DE CONTROL 149

Figura 7.4: Detalle de las señales y bloques del nuevo esquema de control presentado
en la figura 7.3.

un cuarto lazo: el lazo interno (lazo de corriente) que corrige el error de aceleración.
Sin embargo no se ha representado en la figura 7.4 porque está generalmente integrado
dentro del actuador y su dinámica (dada por los componentes eléctricos del actuador)
es muy rápida. Finalmente, los esquemas de control de las figuras 7.1, 7.3 y 7.4 son
solamente para una dimensión. Para cada aplicación, se ha de replicar el esquema
de control de la figura 7.4 por cada eje. Evidentemente, el esquema considerado no
tiene en cuanta efectos de otros ejes (considera los ejes desacoplados). Si se utiliza
un robot cartesiano para la tarea de control visual, cada eje de coordenadas puede ser
considerado desacoplado. En el caso de que las consideraciones de linealidad y desacoplo
no sean válidas, se tendrá que considerar el diseño de un regulador robusto que tenga
en cuenta como incertidumbre en los parámetros las mencionadas no-linealidades y el
acoplamiento.

7.3. Error de estado estacionario en los esquemas


de control
Para focalizar el análisis en las capacidades de los diferentes esquemas de control vi-
sual, se asume a continuación una estimación perfecta, i.e. ẋˆt (k) = ẋt (k), x̂t (k) = xt (k),
ê(k) = e(k), ... Además, se asume que la señal de error e es estable, i.e. el error dado
por la correspondiente ecuación diferencial (o en diferencias) homogénea converge a
cero. No obstante, serı́a posible analizar la estabilidad del error especificando el valor
150 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

de los bloques del esquema (e.g. R0 (s) y D(z) en la figura 7.4) y utilizando herramien-
tas de control como el lugar de las raı́ces (e.g. localización de los polos en lazo cerrado
dependiendo de la ganancia K del controlador cinemático de la figura 7.4). A conti-
nuación se prueban diferentes proposiciones para los esquemas de control presentados.

Proposición 1: Para el esquema de control propuesto en este capı́tulo


(figura 7.4) y bajo un marco de cinemática continua (i.e. el controlador
cinemático es continuo) el error converge exponencialmente a cero para
cualquier trayectoria continua.
Demostración: Como el controlador dinámico de bajo nivel es instantáneo,
se tiene:

ẋrCont (s) = ẋr (s) (7.1)

El controlador cinemático continuo viene dado por:

e(s) = xrRef (s) − xr (s) (7.2)


ẋrCont (s) = ẋrRef (s) + K · e(s) (7.3)

Reemplazando la ecuación (7.3) en la (7.1) y usando la derivada de primer


orden de (7.2), se obtiene:

ẋr (s) = ẋrRef (s) + K · e(s) (7.4)


ė(s) + K · e(s) = 0 → e(t) = e(0) · e−Kt (7.5)
(Q.E.D.)

Notar que la trayectoria ha de ser continua para evitar acciones de control


imposibles (i.e. infinitas) en la ecuación (7.3).

Proposición 2: Para el esquema de control propuesto en este capı́tulo (ver


figura 7.4), y asumiendo que el controlador de bajo nivel D0 (z) tiene acción
integral, el error en estado estacionario es nulo si, y sólo si, la derivada de
segundo orden de la referencia xrRef (i.e. xt − ∆xRef ) es nula.
Demostración: El lazo del controlador dinámico de bajo nivel de la figura
7.4 viene dado por:

ẋr (z) D0 (z) · R0 (z)


= (7.6)
ẋrCont (z) 1 + D0 (z) · R0 (z)
 
R0 (z) = Z · ZOH · L−1 [R0 (s)] (7.7)
7.3. ERROR DE ESTADO ESTACIONARIO EN LOS ESQUEMAS DE CONTROL 151

El controlador de bajo nivel D0 (z) con acción integral se puede reescribir


como:

ẋr (z) D000 (z) · R0 (z) DR(z)


= = (7.8)
ẋrCont (z) Der(z) + D000 (z) · R0 (z) Der(z) + DR(z)
ẍr (z) + DR(z) · ẋr (z) = DR(z) · ẋrCont (z) (7.9)

El control del lazo cinemático de la figura 7.4 es:

e(z) = xrRef (z) − xr (z) (7.10)


ẋrCont (z) = ẋrRef (z) + K · e(z) (7.11)

Reemplazando la ecuación (7.11) en la (7.9), y usando la primera y la


segunda derivada de la ecuación (7.10), se obtiene:


ẍr (z) + DR(z) · ẋr (z) = DR(z) · ẋrRef (z) + K · e(z) (7.12)

ẍr (z) = DR(z) · ė(z) + K · e(z) (7.13)

ë(z) + DR(z) · ė(z) + K · e(z) = ẍrRef (z) (7.14)

A parti de la expresión (7.14) es sencillo obtener, asumiendo que el error


es estable (i.e. el error de la ecuación diferencial homogénea obtenida de
(7.14) converge a cero) y aplicando el teorema del valor final, la condición
para que el error en estado estacionario resulta:

e(∞) = 0 si, y sólo si ẍrRef (∞) = 0 ↔ ẍt (∞) − ∆ẍRef (∞) = 0 (7.15)
Q.E.D.

Una demostración muy similar se puede obtener para un controlador de


bajo nivel continuo, i.e. para D0 (s) en lugar de para D0 (z).

Proposición 3: Para el esquema de control propuesto por Corke en [39]


(figura 7.1), asumiendo que el controlador de bajo nivel D0 (z) tiene acción
integral e ignorando los retardos en la señal, el error en estado estacionario
es nulo si, y sólo si la derivada de primer orden de la señale xrRef y la de
segundo orden del objeto xt son nulas.
Demostración: Utilizando el mismo procedimiento usado en la Proposi-
ción 2 (las ecuaciones desde la (7.6) hasta la (7.10) son también válidas
para esta proposición):
152 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

ẋrCont (z) = ẋt (z) + C(z) · e(z) (7.16)



ẍr (z) + DR(z) · ẋr (z) = DR(z) ẋt (z) + C(z) · e(z) (7.17)
ẋt (z) = ∆ẋRef (z) + ẋrRef (z) (7.18)

ẍr (z) − DR(z) · ∆ẋRef (z) = DR(z) ė(z) + C(z) · e(z) (7.19)

ë(z) + DR(z) ė(z) + C(z) · e(z) = ẍrRef (z) − DR(z) · ∆ẋRef (z) (7.20)
e(∞) = 0 si, y sólo si ∆ẋRef (∞) = 0 y ẍt (∞) = 0 (7.21)
Q.E.D.

Notar que la ecuación (7.21) es más restrictiva que la ecuación (7.15).

Proposición 4: Para el esquema de control usado en [205] (controlador


cinemático proporcional derivativo sin prealimentación) el error en estado
estacionario es nulo si, y sólo si la primera derivada de la referencia xrRef
es nula.
Demostración: Utilizando el mismo procedimiento usado en la Proposi-
ción 2 (las ecuaciones desde la (7.6) hasta la (7.10) son también válidas
para esta proposición):

ẋrCont (z) = K1 · e(z) + K2 · ė(z) (7.22)



ẍr (z) + DR(z) · ẋr (z) = DR(z) · K1 · e(z) + K2 · ė(z) (7.23)
ë(z) + DR(z) · (K2 + 1) · ė(z) + DR(z) · K1 · e(z) =
= ẍrRef (z) + DR(z) · ẋrRef (z) (7.24)
e(∞) = 0 si, y sólo si ẋrRef = 0 (7.25)
(Q.E.D.)

7.4. Simulación y comportamiento de los esquemas


de control
En esta sección se presentan las simulaciones de los esquemas de control (incluido
el propuesto) y se divide en dos subsecciones: La primera considera condiciones ideales
y; la segunda considera condiciones reales.

7.4.1. Condiciones ideales


Las simulaciones presentadas en esta subsección corresponden con las considera-
ciones adoptadas en la sección 7.3. Los esquemas de control de la figuras 7.1 y 7.4 se
han simulado considerando que el control dinámico de bajo nivel es instantáneo y que
la posición del objeto varı́a sinusoidalmente con el tiempo. Las figuras 7.5, 7.7 y 7.9
7.4. SIMULACIÓN Y COMPORTAMIENTO DE LOS ESQUEMAS DE CONTROL 153

muestran las simulaciones de los esquemas de la figura 7.1 (presentada en [38], con el
retardo tı́pico d=2) y de la figura 7.4 (propuesta en este capı́tulo) con la posición del
objeto dada por la función xt (t) = 2 · cos(t · π/2), la referencia del esquema de control
∆xRef = 0 y la posición inicial del robot xr (0) = 0.
Los resultados se muestran en las citadas figuras (figuras 7.5, 7.7 y 7.9). Estas tres
figuras muestran el comportamiento de ambos esquemas de control bajo diferentes
valores de K y Th . En los tres casos se puede ver que la señal de error e converge
a cero. Sin embargo, el comportamiento del esquema de control propuesto en [38] es
más oscilatorio que el esquema de control propuesto anteriormente (véase figura 7.7)
dependiendo de la dinámica del lazo cinemático (es decir, dependiendo del valor de
K). Mientras tanto, la convergencia del error a cero es más exponencial cuanto más
tiende Th a cero (véase figura 7.9). Por lo tanto, se concluye que con el esquema de
control propuesto y bajo el marco de control cinemático, el error converge a cero para
cualquier tipo de trayectoria del objeto, confirmando de esta forma la Proposición 1 .
Por otra parte, bajo el marco de control dinámico, el bucle interno no se puede
considerar instantáneo, e.g. la inercia del robot y/o las dinámicas de los actuadores
no son despreciables. La dinámica de los actuadores (e.g. parte eléctrica del motor) se
desprecian generalmente con respecto a la inercia del robot puesto que son generalmente
mucho más rápidas.
Las figuras 7.11, 7.13 y 7.15 muestran2 las simulaciones de los esquemas de la figura
7.1 (presentada en [38], con el retardo tı́pico d=2) y de la figura 7.4 (propuesta en este
capı́tulo) con {∆xRef = 0, xr (0) = 0, Th =0.04s, K=5} y para {xt (t) = 2 · cos(t · π/2)
y ts (99 %)=0.5 segundos, xt (t) = 2 · t y ts (99 %)=0.5 segundos, xt (t) = 2 y diferentes
valores para ts (99 %)}. En las tres simulaciones realizadas, el controlador dinámico de
bajo nivel se considera como un sistema de segundo orden (con ganancia unitaria y
tiempo de establecimiento ts (99 %)) multiplicado por un integrador. Las mencionadas
figuras muestran diferentes resultados de este caso, donde se puede ver de nuevo que
la señal de error e obtenida con el esquema de control de [38] es más oscilatorio que la
obtenida con el esquema de control propuesto de forma original en la presente tesis.
También se puede observar que el esquema de control tiene error de velocidad nulo,
i.e. el error en estado estacionario es nulo cuando la referencia xrRef (i.e. xt - ∆xRef (k))
es una rampa de primer orden (ver figura 7.13). Al mismo tiempo, el error de aceleración
es no nulo, i.e. el error en estado estacionario es no nulo cuando la referencia xrRef es
una rampa de segundo orden (e.g. el error en estado estacionario es no nulo cuando la
posición del objeto es una senoide, ver figura 7.11). Estas simulaciones comprueban la
Proposición 2 .
Para ilustrar la diferencia entre las condiciones (7.15) y (7.21) se presentan las simu-
laciones mostradas en las figuras 7.16 a 7.19. En particular, se puede ver que el error
en estado estacionario es nulo para el esquema de control propuesto (figuras 7.3 y 7.4)
y no nulo para el propuesto en [39] (la figura 7.16 corresponde con {ẍt = ∆ẍRef = 0,
∆ẋRef 6= 0} y la figura 7.19 corresponde con {(ẍt − ∆ẍRef ) = 0, ẍt 6= 0}).

El esquema de control de la figura 7.4 se puede considerar de la siguiente forma: El


2
Notar que la figura 7.11 muestra una simulación para entrada senoidal mientras que en la figura
7.13 la entrada es una rampa.
154 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

xt
4
xr Corke
2
xr prop.
xt , xr

−2

−4
0 1 2 3 4 5 6 7 8
Tiempo (segundos)
2
e(t) Corke
1 e(t) prop.
Error

−1
0 1 2 3 4 5 6 7 8
Tiempo (segundos)

Figura 7.5: Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4 con
K=1, Th =0.04s.

−0.5
xt
xr Corke
xt , xr

−1

−1.5
xr prop.
−2

1 1.2 1.4 1.6 1.8 2


Tiempo (segundos)

0.6
e(t) Corke
e(t) prop.
0.5
Error

0.4

0.3

0.2
1 1.2 1.4 1.6 1.8 2
Tiempo (segundos)

Figura 7.6: Detalle de la figura 7.5. Se observa claramente la diferencia entre las res-
puestas y el error del esquema de Corke y el aportado en esta tesis.
7.4. SIMULACIÓN Y COMPORTAMIENTO DE LOS ESQUEMAS DE CONTROL 155

xt(t)
4
xr(t) Corke
2
xr(t) prop.
xt , xr

−2

−4
0 1 2 3 4 5 6 7 8
Tiempo (segundos)
2
e(t) Corke
1
e(t) prop.
Error

−1

−2
0 1 2 3 4 5 6 7 8
Tiempo (segundos)

Figura 7.7: Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4 con
K=10, Th =0.04s.

0 xt(t)
−0.5
xr(t) Corke
xt , xr

xr(t) prop.
−1

−1.5

−2
2 2.2 2.4 2.6 2.8 3
Tiempo (segundos)

0.02
e(t) Corke
0.01 e(t) prop.
Error

−0.01
2 2.2 2.4 2.6 2.8 3
Tiempo (segundos)

Figura 7.8: Detalle en la zona de valores estacionarios de la figura 7.7.


156 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

xt(t)
4
xr(t) Corke
2
xr(t) prop.
xt , xr

−2

−4
0 1 2 3 4 5 6 7 8
Tiempo (segundos)
2
e(t) Corke
1 e(t) prop.
Error

−1
0 1 2 3 4 5 6 7 8
Tiempo (segundos)

Figura 7.9: Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4 con
K=1, Th =0.002s.

1.5
xt , xr

xt(t)
1
xr(t) Corke
0.5
xr(t) prop.
0
7 7.2 7.4 7.6 7.8 8
Tiempo (segundos)
−3
x 10
4 e(t) Corke
e(t) prop.
Error

7 7.2 7.4 7.6 7.8 8


Tiempo (segundos)

Figura 7.10: Detalle en la zona de valores estacionarios de la figura 7.9.


7.4. SIMULACIÓN Y COMPORTAMIENTO DE LOS ESQUEMAS DE CONTROL 157

xt(t)
4
xr(t) Corke
2
xr(t) prop.
xt , xr

−2

−4
0 2 4 6 8 10 12
Tiempo (segundos)
2
e(t) Corke
1
e(t) prop.
Error

−1

−2
0 2 4 6 8 10 12
Tiempo (segundos)

Figura 7.11: Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4 con
xt (t) = 2 · cos(t · π/2) y ts (99 %)=0.5 segundos.

xt(t)
0
xr(t) Corke
xt , xr

−1 xr(t) prop.

−2

5 5.2 5.4 5.6 5.8 6


Tiempo (segundos)

0.15

0.1
Error

0.05
e(t) Corke
0
e(t) prop.
5 5.2 5.4 5.6 5.8 6
Tiempo (segundos)

Figura 7.12: Detalle de la figura 7.11.


158 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

20
xt(t)

15
xr(t) Corke
xt , xr

xr(t) prop.
10

0
0 1 2 3 4 5 6 7 8
Tiempo (segundos)
0.6
e(t) Corke
0.4
e(t) prop.
Error

0.2

−0.2
0 1 2 3 4 5 6 7 8
Tiempo (segundos)

Figura 7.13: Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4 con
xt (t) = 2 · t y ts (99 %)=0.5 segundos.

xt(t)
4
xr(t) Corke
3
xr(t) prop.
xt , xr

0
0 0.5 1 1.5 2
Tiempo (segundos)
−3
x 10
1 e(t) Corke
0.5 e(t) prop.
Error

−0.5

−1
7 7.2 7.4 7.6 7.8 8
Tiempo (segundos)

Figura 7.14: Detalle de la figura 7.13. En la parte superior se aprecia el detalle de la


zona inicial de la rampa (desde 0 a 2 segundos), mientras que en la parte inferior se
puede ver la zona final de la misma simulación (de 7 a 8 segundos), donde se aprecia
la diferencia entre el error del esquema de Corke y el propuesto.
7.4. SIMULACIÓN Y COMPORTAMIENTO DE LOS ESQUEMAS DE CONTROL 159

2 e(t) Corke

ts=0.5 sec.
1 e(t) prop.
0

−1

−2
0 1 2 3 4 5 6 7 8
Tiempo (segundos)
2
e(t) Corke
e(t) prop.
ts=1 sec.
1

−1

−2
0 1 2 3 4 5 6 7 8
Tiempo (segundos)
100 e(t) Corke
e(t) prop.
ts=2 sec.

50

−50

−100
0 1 2 3 4 5 6 7 8
Tiempo (segundos)

Figura 7.15: Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4 con
xt (t) = 2 y diferentes valores para ts (99 %).

error de posición (es decir el error de estado estacionario para una referencia x rRef en
escalón) es nulo debido al integrador intrı́nseco del sistema robot. Mientras el error de
velocidad es nulo debido al integrador intrı́nseco anterior y a la prealimentación deriva-
tiva de la referencia xrRef junto con una acción integral en el regulador dinámico de
bajo nivel (es decir R(z) es igual al integrador intrı́nseco multiplicado por una función
de transferencia con una ganancia de estado estacionario unitaria). Por ejemplo, si el
regulador dinámico de bajo nivel aplicara solamente una acción proporcional, tendrı́a
que ser muy grande para reducir al mı́nimo el error de velocidad. Alternativamente
al procedimiento anterior, se puede alcanzar un error nulo de velocidad solamente con
un integrador en el lazo principal. Sin embargo, la primera opción (la prealimentación
junto con un regulador dinámico de bajo nivel con una acción integral) tiene varias
ventajas:

Permite trabajar con un periodo de muestreo alto Th (lento) y otro periodo de


muestreo pequeño Ts (rápidos) (o incluso continuo): usando las medidas de ve-
locidad del robot (e.g. enconders, etc.). Mientras tanto el lazo externo de control
(lazo cinemático principal) trabajarı́a con un alto (lento) periodo de la muestreo
dado por los sensores de posición del objeto (e.g. sistema de la visión.).

Es sencillo garantizar la estabilidad si el lazo interno es mucho más rápido que


el lazo externo: por ejemplo en la figura 7.15 se observa que el sistema es estable
para ts = 1, mientras que se vuelve inestable para ts = 2. Mediante unas simples
pruebas, se puede determinar que la inestablidad llega aproximadamente en ts =
160 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

10 xr Ref(t)
xr(t) Corke

xr Ref , xr
5
xr(t) prop.

0
0 1 2 3 4 5 6 7 8
Tiempo (segundos)
0.4 e(t) Corke
e(t) prop.
0.2
Error

−0.2

−0.4
0 1 2 3 4 5 6 7 8
Tiempo (segundos)

Figura 7.16: Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4 con
xt (t) = 2 · t y ∆xRef = t.

xr Ref(t)
8 xr(t) Corke
xr Ref , xr

xr(t) prop.
7.5

7
7 7.2 7.4 7.6 7.8 8
Tiempo (segundos)

−0.1196 e(t) Corke


e(t) prop.
−0.1198
Error

−0.12

−0.1202

7 7.2 7.4 7.6 7.8 8


Timepo (segundos)

Figura 7.17: Detalle de la figura 7.16 (ver diferencia en estado estacionario y error del
esquema de Corke).

1,5 segundos, lo cual es un poco más lento que el tiempo de establecimiento del
lazo cinemático (5/K=1 segundo).

El error de estado estacionario serı́a nulo para cualquier tipo de referencia si


su derivada varı́a suavemente con respecto a la dinámica del lazo interno: Esta
condición significa que la dinámica del lazo interno es despreciable con respecto
a las variaciones de la derivada de la referencia xrRef . En ese caso el error de
estado estacionario serı́a nulo para cualquier referencia xrRef siempre y cuando
el periodo de muestreo del lazo externo de control (lazo cinemático principal)
7.4. SIMULACIÓN Y COMPORTAMIENTO DE LOS ESQUEMAS DE CONTROL 161

xr Ref(t)
1 xr(t) Corke
xr(t) prop.
0.5

0
0 0.2 0.4 0.6 0.8 1
Tiempo (segundos)
−5
x 10
1 e(t) Corke
0.5 e(t) prop.
Error

−0.5

−1
7 7.2 7.4 7.6 7.8 8
Timepo (segundos)

Figura 7.18: Detalle de la figura 7.16 (ver transitorio inicial de las respuestas y error
del esquema de propuesto).
3
xr Ref , xr

1 xr Ref(t)
xr(t) Corke
0
0 2 4 6 8 10
xr(t) prop.
Tiempo (segundos)
2 e(t) Corke
e(t) prop.
1
Error

−1
0 2 4 6 8 10
Tiempo (segundos)

Figura 7.19: Simulación del esquema de la figura 7.1 y del esquema de la figura 7.4 con
xt (t) = 2 · cos(t · π/2) y ∆xRef = 2 · cos(t · π/2) − 2.

pueda reconstruir efectivamente la primera derivada de la referencia (teorema de


muestreo de Shannon-Nyquist). Notar que, si se utiliza solamente un integrador
en el lazo (en lugar de prealimentación) la conclusión serı́a más difı́cil de alcanzar,
puesto que la dinámica del lazo serı́a retrasada por los sensores de posición con
una adquisición lenta (sistema de visión, etc.).

7.4.2. Condiciones reales


Las condiciones ideales planteadas en el apartado 7.4.1 se podrı́an resumir en dos:
No se considera ruido en el sensor “Sistema de Visión”; y la estimación del bloque
“Filtro Predictivo” no introduce error alguno, i.e. es perfecta.
162 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

En esta subsección no se realizan las dos consideraciones anteriores. La figura 7.20


muestra la respuesta equivalente de la figura 7.5 para las nuevas condiciones descritas.
Se observa que la respuesta es equivalente pero se aprecia el ruido introducido por
el sensor cámara (ruido blanco con amplitud ±1 centı́metro). La estimación ya no
se considera perfecta, y el predictor utilizado es el algoritmo FMF presentado en el
capı́tulo 5. Como se puede ver, este predictor funciona de forma satisfactoria debido
a que no introduce un error significativo en la predicción de la trayectoria senoidal
(debido principalmente a la componente Kj considerada). La figura 7.21 es una visión
de detalle de la figura 7.20 bajo las mismas condiciones de la figura 7.6 para poder
compararlas de forma sencilla.
Las figuras 7.22, 7.23, 7.24 y 7.25 corresponden con las figuras 7.7, 7.8, 7.9 y 7.10
respectivamente, considerando estimación no perfecta (realizada con el algoritmo FMF
presentado en el capı́tulo 5) y ruido en el sensor. Estas figuras muestran que el ruido
del sensor y la predicción realizada por el FMF no impiden el correcto funcionamiento
del esquema propuesto de forma novedosa en esta tesis.

7.5. Resultados experimentales


Una vez se ha discutido y analizado la nueva arquitectura de control visual pro-
puesta, se presenta a continuación un conjunto de experimentos sobre dos plataformas
diferentes. En primer lugar (ver subsección 7.5.1) se muestran los experimentos de
control de una PTU (unidad pan/tilt), mientras en la subsección 7.5.2 se presenta el
control del robot cartesiano mostrado en el capı́tulo 3.

7.5.1. Experimentos de control de unidad pan/tilt


Este apartado (como el resto de la tesis) tiene una componente experimental grande
y al mismo tiempo está conectado con una parte del capı́tulo 6 dedicado a la im-
plementación. En el capı́tulo 6 se presentaron las figuras 6.22, 6.26, 6.30 y 6.34 de
pruebas experimentales para comparar el comportamiento de una implementación PC-
MATLAB con una FPGA-VHDL. Los experimentos realizados en la sección 6.3.6 com-
paraban los valores obtenidos con las dos plataformas (MATLAB y VHDL), mientras
que esta sección presenta los experimentos realizados con una unidad pan/tilt real
como la mostrada en [38]. Las conclusiones que se obtienen en cada caso son más
cuantitativas y cualitativas respectivamente.

7.5.1.1. Plataforma experimental


En la figura 7.26, se puede ver la plataforma experimental desarrollada para la
comprobación de los algoritmos. Los experimentos basados en esta configuración (figura
7.26), están inspirados en el trabajo realizado en [38]. En las figuras 7.27 y 7.28 se
muestran las partes más importantes de esta plataforma.
La tabla giratoria o turntable es un disco de color claro con una marca de color
negro pintada cerca del borde. Este disco es movido por un motor eléctrico (Siemens
7.5. RESULTADOS EXPERIMENTALES 163

xr Ref(t)
4
xr(t) Corke
2

xr Ref , xr
xr(t) prop.
0

−2

−4
0 1 2 3 4 5 6 7 8
Tiempo (segundos)
3
e(t) Corke
2
e(t) prop.
Error

−1
0 1 2 3 4 5 6 7 8
Tiempo (segundos)

Figura 7.20: Figura equivalente a la figura 7.5 considerando estimación no perfecta y


ruido en el sensor.

xr Ref(t)
0
xr(t) Corke
−0.5
xr Ref , xr

xr(t) prop.
−1

−1.5

−2

1 1.2 1.4 1.6 1.8 2


Tiempo (segundos)
0.7

0.6
e(t) Corke
e(t) prop.
0.5
Error

0.4

0.3

0.2
1 1.2 1.4 1.6 1.8 2
Tiempo (segundos)

Figura 7.21: Detalle de la figura 7.20.

3∼Mot. 1LA7060-4AB60) accionado mediante un driver (Micromaster 440 - 6SE6440-


2UC13-7AA0). La cámara utilizada es una ST-VL6524 (en el anexo C se puede ver
una descripción detallada de la misma) y está montada sobre una unidad pan/tilt (ver
figura 7.28 y el anexo B). Se ha seleccionado esta cámara ya que proporciona la imagen
en el formato digital paralelo estándar suministrando las señales a través de un bus de
8 bits de datos (y las señales Vsync, Hsync, CLK, CE, PCLK and FSO). La FPGA se
ha programado para obtener el centro de masa del blob contenido en la imagen (ver
subsección 7.5.1.2). El algoritmo de control se ha diseñado para mantener el blob en
el centro de la imagen [38][40][37] moviendo para ello la unidad pan/tilt (ver figuras
164 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

xr Ref(t)
4
xr(t) Corke
2

xr Ref , xr
xr(t) prop.
0

−2

−4
0 1 2 3 4 5 6 7 8
Tiempo (segundos)
3 e(t) Corke
2 e(t) prop.
1
Error

−1

−2
0 1 2 3 4 5 6 7 8
Tiempo (segundos)

Figura 7.22: Figura equivalente a la figura 7.7 considerando estimación no perfecta y


ruido en el sensor.

0
xr Ref(t)
−0.5
xr Ref , xr

xr(t) Corke
−1
xr(t) prop.
−1.5

−2
2 2.2 2.4 2.6 2.8 3
Tiempo (segundos)

0.04 e(t) Corke


e(t) prop.
0.02
Error

−0.02
2 2.2 2.4 2.6 2.8 3
Tiempo (segundos)

Figura 7.23: Detalle de la figura 7.22.

7.26, 7.27 y 7.28).

7.5.1.2. Adquisición de la imagen y extracción de caracterı́sticas (proce-


sado)
La salida del sensor utilizado (cámara presentada en anexo C) es una imagen, una
función de intensidad de dos dimensiones (2D) que contiene la proyección de la escena
y que generalmente depende de las posiciones del objeto y del robot [43].
Las cámaras son sistemas dinámicos e introducen un retardo puro en la estructura
de control. Muchas de las investigaciones realizadas usan sencillas cámaras de video de
7.5. RESULTADOS EXPERIMENTALES 165

xr Ref(t)
4
xr(t) Corke
2

xr Ref , xr
xr(t) prop.
0

−2

−4
0 1 2 3 4 5 6 7 8
Tiempo (segundos)
3
e(t) Corke
2
e(t) prop.
Error

−1
0 1 2 3 4 5 6 7 8
Tiempo (segundos)

Figura 7.24: Figura equivalente a la figura 7.9 considerando estimación no perfecta y


ruido en el sensor.

2
xr Ref , xr

1.5
xr Ref(t)
1
xr(t) Corke
0.5
xr(t) prop.
0
7 7.2 7.4 7.6 7.8 8
Tiempo (segundos)
e(t) Corke
0.01 e(t) prop.
0.005
Error

0
−0.005
−0.01
−0.015
7 7.2 7.4 7.6 7.8 8
Tiempo (segundos)

Figura 7.25: Detalle de la figura 7.24.

los estándar RS170 y PAL con frecuencias de muestreo de 30Hz y 25Hz respectivamente.
Más recientemente, la disponibilidad cada vez más común de cámaras con salida digital
y diferentes valores de resolución y tiempo de muestreo está haciendo más común el
uso de estos dispositivos [43].
En esta investigación, la cámara utilizada es una ST-VL6524 (micro cámara digital
VGA en encapsulado FBGA) de resolución 640Hx480V y 25 ó 30 frames por segundo
según la configuración. Esta cámara está configurada para enviar la imagen adquirida
a través del bus paralelo de 8 bits. Este sensor CMOS de bajo consumo está conectado
con el bank 0 de la FPGA. La frecuencia de adquisición de imágenes está configurada
166 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

Figura 7.26: Plataforma experimental basada en [38] (pag. 309) para la comparación
entre implementaciones de algoritmos de predicción con Procesador Secuencial y FP-
GA. La figura 7.27 muestra el disco con la caracterı́stica visual, el motor y el driver.
La figura 7.28 muestra el aspecto real de la cámara montada en la unidad pan/tilt.

a 25 fps para los experimentos (lo que implica Td=40ms).


La extracción de caracterı́sticas es la tarea (realizada por un computador u otro
dispositivo, e.g. FPGA) de buscar los valores numéricos asociados a la caracterı́stica
visual del objeto en el plano de imagen.
La localización de caracterı́sticas en una imagen implica analizar cuidadosamente
una gran cantidad de datos, por ejemplo a 25Hz con 640Hx480V pixels implica 23
Mbyte/segundo.
En esta sección, se presenta la tarea de control visual usando la plataforma ex-
perimental mostrada en la figura 7.26. Tras haber indicado anteriormente los datos
relativos al tiempo de cómputo del algoritmo, se puede clasificar este experimento co-
mo correspondiente al caso (a) (caso en el que Tcomp  Td, explicado en la subsección
6.3.4) y la trayectoria descrita como la correspondiente a tray 4 (descripción planteada
en la subsección 6.3.6). En este caso Tcomp=92.5ns (algoritmo no segmentado).
Las figuras 7.29 y 7.30 muestran el código fuente de VHDL para obtener el cen-
tro de masa del objeto visualizado y el cierre del lazo de control usando un regulador
proporcional. Este lazo de control se aplica con un periodo de T=40ms (debido a que
Td=40ms). El tiempo necesario para procesar toda la información en la FPGA y cal-
cular la acción de control es de unos 110ns, mientras que usando un PC se necesitan
alrededor de 25µs. De todos modos en ambos casos (implementación en FPGA o PC) se
cumple que Tcomp  Td y este experiemnto se podrı́a implementar en ambas platafor-
mas con caracterı́sticas on-the-fly (ver subsección 6.3.4). El esquema implementado en
7.5. RESULTADOS EXPERIMENTALES 167

Figura 7.27: Disco giratorio. Figura 7.28: Unidad pan-tilt.

la FPGA es el correspondiente a la figura 7.4.

La figura 7.26 representa la configuración del sistema. El plano de imagen es aproxi-


madamente paralelo al plano que contiene el movimiento de la caracterı́stica visual.
Las figuras 7.31 y 7.32 muestran la posición y la velocidad en metros y metros/s de dos
variables: la posición estimada de la caracterı́stica (x̂t ,ŷt ) y el punto de intersección del
eje óptico de la cámara con el plano que contiene el disco giratorio (xr ,yr ). Ver detalles
de calibración de cámara en [151].
En la figura 7.33 se puede ver uno de los experimentos realizados en esta tesis que
consiste en mover de forma aleatoria una caracterı́stica visual mientras que la unidad
Pan&Tilt PTU-VL6524 (ver apartados B.6 y B.5 del anexo B) sigue el movimiento del
objeto. Este experimento corresponde a la configuración mostrada en la figura 7.34,
en la que se puede observar que existe un plano de restricción en el cual se mueve la
caracterı́stica visual (de la misma forma que se ha planteado en la subsección 5.3.3).
Las figuras 7.35 y 7.36 muestran las posiciones y velocidad (con respecto del sistema de
coordenadas (X -Posición,Y -Posición) mostrado en la figura 7.34) de la estimación de
la posición del objeto {x̂t ,ẋˆt ,ŷt ,ẏˆt } y el valor de la posición y velocidad {xc ,ẋc ,yc ,ẏc } de
una variable llamada xc que representa el punto de intersección del plano de restricción
que contiene la caracterı́stica visual con el eje óptico de la cámara (ver figura 7.34).

7.5.2. Experimentos de control de robot cartesiano


Este experimento utiliza el robot presentado en el capı́tulo 3 junto con una cámara
industrial uEYE (ver anexo B de equipos utilizados) para realizar una tarea de control
visual sobre el disco giratorio ya utilizado (ver figura 7.27).
168 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

process(r,g,bl,primer_pixelobj,enable,h_sync,v_sync)
begin
if (enable=’1’) then
if (h_sync=’1’ and v_sync=’1’) then
if (pixel_completo=’0’ and pclk’event and pclk=’0’) then
if (r>umbral and g>umbral and bl>umbral) then
if (primer_pixelobj=’0’) then
umax:=u; umin:=u; vmax:=v; vmin:=v; first_pixelobj<=’1’;
end if;
if (u>umax) then umax:=u; end if;
if (u<umin) then umin:=u; end if;
if (v>vmax) then vmax:=v; end if;
if (v<vmin) then vmin:=v; end if;
end if;
end if;
end if;
if (v_sync’event and v_sync=’0’) then
uo:=(umax+umin)/2; vo:=(vmax+vmin)/2;
uo16:=conv_std_logic_vector(uo,16);
vo16:=conv_std_logic_vector(vo,16);
coord_uoH<=uo16(15 downto 8); coord_uoL<=uo16(7 downto 0);
coord_voH<=vo16(15 downto 8); coord_voL<=vo16(7 downto 0);
end if;
else
umax:=0; umin:=0; vmax:=0; vmin:=0; primer_pixelobj<=’0’;
uo:=0; vo:=0; uo16:=(others=>’0’); vo16:=(others=>’0’);
coord_uoH<=(others=>’0’); coord_uoL<=(others=>’0’);
coord_voH<=(others=>’0’); coord_voL<=(others=>’0’);
end if;
end process;

Figura 7.29: Código parcial de VHDL para procesar la imagen y extraer el el centro de
masa del blob. El esquema implementado es el descrito en la figura 7.3 del capı́tulo 7. Se
ha utilizado el filtro hRT FMF desarrollado en esta tesis como algoritmo de predicción.

process(mueve_u,mueve_v)
begin
uo<=conv_integer(coord_uiH&coord_uiL);
vo<=conv_integer(coord_viH&coord_viL);
mueve_u<=abs(uo-u_centro);
mueve_v<=abs(vo-v_centro);
if(u_centro<uo) then
lim_pan_temp<=refPan+(mueve_u*ganancia); end if;
if(u_centro>uo) then
lim_pan_temp<=refPan-(mueve_u*ganancia); end if;
if(u_centro=uo) then
lim_pan_temp<=refPan; end if;
if(v_centro<vo) then
lim_tilt_temp<=refTilt+(mueve_v*ganancia); end if;
if(v_centro>vo) then
lim_tilt_temp<=refTilt-(mueve_v*ganancia); end if;
if(v_centro=vo) then
lim_tilt_temp<=refTilt; end if;
lim_pan<=lim_pan_temp;
lim_tilt<=lim_tilt_temp;
end process;

Figura 7.30: Código parcial de VHDL para cerrar el lazo de control con un regulador
proporcional.
7.5. RESULTADOS EXPERIMENTALES 169

Coordenada X x̂t
xr

Posición (metros)
0.1

0
−0.1

−0.2

−0.3

0 2 4 6 8 10 12 14
Tiempo (segundos)
ˆt

ẋr
Velocidad (m/s)

0.6
0.4
0.2
0
−0.2
−0.4
0 2 4 6 8 10 12 14
Tiempo (segundos)

Figura 7.31: Posición y velocidad del “pan” de la PTU (radianes).

Coordenada Y
ŷ t
Posición (metros)

0.1 yr
0

−0.1

−0.2

−0.3
0 2 4 6 8 10 12 14
Tiempo (segundos)
ẏˆt
0.5
Velocidad (m/s)

ẏ r

−0.5
0 2 4 6 8 10 12 14
Tiempo (segundos)

Figura 7.32: Posición y velocidad del “tilt” de la PTU (radianes).

7.5.2.1. Configuración de la plataforma

En la figura 7.38 se puede ver una representación de los elementos y de las conexio-
nes utilizadas. Se ha empleado una tabla giratoria o ”turntable” [38], que consiste de
un disco de color claro con un cı́rculo negro pintado cerca del borde (véase la figura
7.27), para proporcionar una caracterı́stica visual. Esta placa/disco giratorio es movido
por un motor eléctrico asincrónico (Siemens 3∼Mot. 1LA7060-4AB60) accionado por
un variador de frecuencia Micromaster 440 (6SE6440-2UC13-7AA0). Con este varia-
dor, se controlan la aceleración y la velocidad angulares para la realización de los
experimentos. Estos parámetros se modifican desde el PC vı́a puerto serie RS-232. El
efector final del robot cartesiano se coloca delante de la caracterı́stica visual del disco
170 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

Universidad Miguel Hernández Universidad Miguel Hernández


www.umh.es www.umh.es
Departamento de Ingeniería de Departamento de Ingeniería de
Sistemas Industriales Sistemas Industriales

Universidad Miguel Hernández Universidad Miguel Hernández


www.umh.es www.umh.es
Departamento de Ingeniería de Departamento de Ingeniería de
Sistemas Industriales Sistemas Industriales

Universidad Miguel Hernández Universidad Miguel Hernández


www.umh.es www.umh.es
Departamento de Ingeniería de Departamento de Ingeniería de
Sistemas Industriales Sistemas Industriales

Universidad Miguel Hernández Universidad Miguel Hernández


www.umh.es www.umh.es
Departamento de Ingeniería de Departamento de Ingeniería de
Sistemas Industriales Sistemas Industriales

Figura 7.33: Secuencia de imágenes para un experimento usando el sistema PTU-


VL6524.

giratorio (ver figura 7.39) que está provisto de una cámara uEYE USB2.0 (UI-2310-C,
640h-480v configurada para adquirir 25 imágenes por segundo, i.e. una imagen cada
40ms). La configuración del sistema para este apartado se puede ver en las figuras 7.38
y 7.39. El plano de imagen de la cámara es aproximadamente paralelo a placa giratoria
(turntable) (se realiza la calibración de la cámara). El robot cartesiano trabaja en estos
experimentos con dos grados de libertad (2 DOF) moviendo solamente los ejes ξ e ψ
de forma paralela al plano que contiene al disco giratorio. Con esta configuración se
permite que el robot pueda seguir la caracterı́stica visual (visual tracking).
La caracterı́stica visual del disco giratorio es adquirida por la cámara y procesada
para obtener su “centro de masas”.
El robot cartesiano (ver figuras 3.3, 3.4, 3.5 y 7.39), cuyo modelo podemos encontrar
en el capı́tulo 3 de esta tesis y en [69], [141] y [148], mide 1700 milı́metros de alto, 2300
milı́metros de largo y 1400 milı́metros de ancho y está movido por tres servomotores
7.5. RESULTADOS EXPERIMENTALES 171

Figura 7.34: Descripción del experimento mostrado en la figura 7.33.

0
X−Position

x̂t
−0.05
xc
−0.1

−0.15

−0.2
0 0.5 1 1.5 2 2.5
Time (sec.)

1 ˆt

X−Velocity

0.5 ẋc

−0.5

0 0.5 1 1.5 2 2.5


Time (sec.)

Figura 7.35: Posición (m) y velocidad (m/s) del eje X.


172 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

0.15

Y−Position
0.1 ŷt

0.05 yc

0 0.5 1 1.5 2 2.5


Time (sec.)
ẏˆt
1
Y−Velocity

ẏc

−1

0 0.5 1 1.5 2 2.5


Time (sec.)

Figura 7.36: Posición (m) y velocidad (m/s) del eje Y.

de CA (sı́ncronos) fabricados por SIEMENS (serie 1FK6) y tiene las caracterı́sticas


que se describen en las mencionadas referencias (ver capı́tulo 3 y anexo F). La tarjeta
de control utilizada para estos experimentos es una sencilla de National Instruments
(tarjeta NI PCI 6024E provista de las entradas y salidas analógicas y digitales nece-
sarias para controlar los dos ejes utilizados junto con el resto de las señales de finales
de carrera, seta de emergencia, etc. ver anexo B).
En la figura 7.38 se muestran las conexiones entre elementos. La señal de “inicio”
para los experimentos la proporciona el PC, en ese momento, la tabla comienza a girar
y el robot es controlado dependiendo de la posición de la caracterı́stica visual para
mantenerla en el centro del plano de imagen.

7.5.2.2. Experimentos con el disco giratorio


Los experimentos realizados con el disco giratorio (figuras 7.40 y 7.41), muestran el
control de bajo nivel de los ejes ξ y ψ del robot cartesiano. En ambos casos la referencia
de velocidad es de 0,7m/s. Se puede ver que el tiempo de establecimiento (según el
criterio del 99 %) es aproximadamente 0,4 segundos para el eje ξ y 0,2 segundos para
el eje ψ.

Teniendo en cuenta que para garantizar la estabilidad, el lazo cinemático debe ser
más lento que el lazo dinámico de bajo nivel (véase sección 7.4), se han elegido los
siguientes valores de la ganancia K para el lazo cinemático (ver figura 7.3):

Para el eje ξ: Kx = 5 (ts (99 %)=1 segundo);

Para el eje ψ: Ky = 10 (ts (99 %)=1 segundo);

Por otra parte, se han aplicado filtros paso bajo para suavizar las velocidades me-
didas en el esquema de control visual para disminuir el ruido de la señal (véanse las
7.5. RESULTADOS EXPERIMENTALES 173

Figura 7.37: Representación de los elementos utilizados para los experimentos. Robot
cartesiano presentado en el capı́tulo 3, imagen adquirida por la cámara USB-uEYE
(ver anexo B) y procesada en un PC con las librerı́as OpenCV.

Figura 7.38: Representación esquemática de los elementos utilizados para los experi-
mentos de control visual. Detalle de la figura 7.37.
174 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

Figura 7.39: Configuración final del sistema. Turntable [38], cámara USB y efector final
del tobot cartesiano descrito en el capı́tulo 3.

señales de la velocidad en la figuras 7.40 y 7.41). Estas figuras muestran la velocidad


en m/s y el par en Nm de los citados ejes ξ y ψ.

1
Velocidad (m/s)

0.5

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
Tiempo (segundos)

10
Par (Nm)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8


Tiempo (segundos)

Figura 7.40: Control de velocidad de bajo nivel (eje ξ).

Al usar un disco giratorio, se generan dos movimientos sinusoidales, uno en el eje ξ


y otro en el eje ψ (la combinación de estos movimientos sinusoidales es la trayectoria
circular de la caracterı́stica visual). La frecuencia de estas señales dependen de la
velocidad angular del disco giratorio, en este caso T=2.5 segundos y por lo tanto
ω = 2 · π/2.5 rad/segundo. La amplitud de las señales sinusoidales, que viene dada por
la distancia de la caracterı́stica visual de la tabla giratoria con respecto del eje de giro
de la misma, es 0.177 m. La resolución en el plano de imagen, la cuál viene dada por la
7.6. CONCLUSIONES 175

Velocidad (m/s)
0.5

0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45
Tiempo (segundos)

6
Par (Nm)

−2
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45
Tiempo (segundos)

Figura 7.41: Control de velocidad de bajo nivel (eje ψ).

resolución de la cámara y la distancia de la placa giratoria al plano de imagen, es 400


pixels/m (datos de calibración de la cámara). En las figuras 7.42 y 7.43, se muestran
los resultados experimentales obtenidos al usar la tabla giratoria. El valor de offset de
las señales sinusoidales dependen de la posición inicial del robot.

7.6. Conclusiones
La contribución principal de este capı́tulo es el esquema propuesto para control
visual (ver figura 7.4) que considera explı́citamente el retardo introducido por el sistema
de visión. Se ha demostrado y posteriormente verificado en las simulaciones de la
sección 7.4 que este nuevo esquema mejora en diferentes aspectos el funcionamiento
del esquema de control propuesto en [41][38], que ha sido aceptado ampliamente por
los investigadores en diferentes trabajos de reconocida importancia como [36] y en
contribuciones a conferencias como [147][142][143]. En la sección 7.4 se muestra como
principal limitación del esquema propuesto, que su error de aceleración es no nulo, es
decir el error de estado estacionario es no nulo cuando la referencia es una rampa de
segundo orden (en la subsección 7.5.2 también se analiza este efecto).
Sin embargo, el esquema propuesto tiene varias ventajas (explicadas al final del la
sección 7.4):
Permite trabajar con un periodo de muestreo Th alto (lento) y otro periodo de
muestreo Ts bajo (rápido) o incluso continuo. Esto es útil cuando el periodo de
muestreo de los sensores es muy diferente (e.g. encoder y sistema de visión);
Es sencillo garantizar la estabilidad si el lazo interno es mucho más rápido que
el lazo externo;
El error en estado estacionario serı́a nulo para cualquier tipo de referencia si su
derivada varı́a suavemente con respecto a la dinámica del lazo interno.
176 CAPÍTULO 7. CONTROL VISUAL DINÁMICO DE ROBOTS

X−Coordinate
0.2

Position
0.1
x̂t
0
xr
−0.1

0 2 4 6 8 10 12
Time (sec.)

ˆt

0.5
Velocity

ẋr

−0.5
0 2 4 6 8 10 12
Time (sec.)

Figura 7.42: Resultados experimentales usando el robot cartesiano y la tabla giratoria


(turntable). Coordenada ξ.

Y−Coordinate

0
Position

−0.1
ŷt
−0.2
yr
−0.3
0 2 4 6 8 10 12
Time (sec.)

0.5
Velocity

0
ẏˆt
−0.5
ẏr
0 2 4 6 8 10 12
Time (sec.)

Figura 7.43: Resultados experimentales usando el robot cartesiano y la tabla giratoria


(turntable). Coordenada ψ.

Finalmente, vale la pena mencionar que el esquema de control propuesto para


control visual se ha simulado y utilizado en experimentos reales con éxito, junto con el
filtro de predicción descrito en [147][142][143], con la unidad pan/tilt (ver subsección
7.5.1) y en el robot cartesiano de 3-DOF de las figuras 3.3, 3.4 y 3.5.
CAPÍTULO 8

CONCLUSIONES Y TRABAJOS
FUTUROS

En este capı́tulo se presentan las conclusiones extraı́das durante la realización de


esta tesis, enumerando las aportaciones realizadas por la misma y realizando una re-
flexión en referencia a los trabajos futuros que se pueden derivar de esta investigación.

177
178 CAPÍTULO 8. CONCLUSIONES Y TRABAJOS FUTUROS

8.1. Conclusiones
El desarrollo de nuevos aspectos teóricos y prácticos en el campo del control visual
de robots encierra una serie de dificultades que hacen de la misma un campo claramente
multidisciplinar. Cuando se pretende abordar un tema como el citado, es obligado un
análisis previo de los elementos que componen el problema, ası́ como de la casuı́stica
del mismo. A lo largo de este proceso han ido apareciendo diferentes aspectos implı́citos
en el control visual que abrı́an nuevos caminos a la investigación.
Una de las vı́as de investigación abiertas ha sido el uso de un nuevo esquema de con-
trol visual que hasta el momento no se habı́a presentado. Este nuevo esquema plantea
un gran campo de aplicación y experimentación para los sistemas de control visual que
llegan a determinadas conclusiones de lı́mites dinámicos. Otra de las conclusiones a las
que se ha llegado en la realización de esta tesis ha sido la necesidad de experimentación
de cualquier esquema de control (en concreto del control visual) y de la dificultad de las
implementaciones reales, nunca exentas de problemas prácticos, técnicos/tecnológicos,
etc.
A su vez, esta tesis presenta un novedoso filtro que se ha llamado Fuzzy Mix of
Filters o FMF, que abre un gran campo de trabajo para desarrollar modificaciones del
algoritmo.
En el capı́tulo 1 se han presentado las contribuciones aportadas por esta tesis y a
continuación se resumen:

Modelado e identificación de un robot cartesiano (de altas prestaciones dinámi-


cas) para la realización de experimentos de control visual (capı́tulo 3). Este mo-
delo considera motores de inducción trifásicos, acoplamiento entre ejes y las no
linealidades producidas por la fricción.

Diseño de un nuevo filtro de predicción llamado Fuzzy Mix of Filters (FMF), que
mejora sensiblemente la calidad de las predicciones en comparación con los filtros
clásicos (capı́tulo 5). Sobre uno de los casos particulares del filtro se realiza un
detallado análisis (presentado en el capı́tulo 6).

Una de las mayores aportaciones de esta tesis es la presentación de un esquema de


control visual para la consideración del retardo introducido por la adquisición y el
procesado de la imagen. Este esquema de control supone una mejora considerable
con respecto del esquema empleado hasta el momento (capı́tulo 7).

Desarrollo de una plataforma para realización de experimentos capaz de adquirir


la imagen en formato digital y procesarla, implementación concurrente del filtro
planteado (FMF) y por último, control del robot cartesino y de la unidad pan/tilt
(PTU). Este sistema se ha implementado en una FPGA.

La utilización del robot cartesiano descrito en el capı́tulo 3 y en el anexo F, ha sido la


plataforma perfecta para probar determinados aspectos importantes de los algoritmos
presentados en esta tesis. La (aparente) simplicidad de este robot ha podido aislar
determinados efectos para poder analizar otros, aunque finalmente la utilización del
robot no ha sido nada sencilla, ya que los centenares de parámetros a utilizar para
8.2. TRABAJOS FUTUROS 179

su control han dificultado enormemente la tarea de implementación. Por otra parte,


en esta tesis se plantea el modelo del robot cartesiano desde una nueva aproximación,
la consideración del mismo como no lineal y acoplado. En esta tesis se ha podido
comprobar que la popular consideración sobre este tipo de robots es aplicable solamente
en condiciones dinámicas de poca o media exigencia, mientras que utilizando el robot
con una dinámica exigente, la consideración clásica debe ser, en ocasiones, modificada.
A pesar de la sencillez que radica en la idea de partida del filtro FMF, se ha
demostrado que (siendo una aportación propia de esta tesis) incrementa la exactitud
de las predicciones cuando el modelo del sistema no se ajusta a un comportamiento
cinemático constante, i.e. si el modelo de movimiento es desconocido o cambiante, este
filtro presenta una gran ventaja frente a los filtros lineales clásicos que consideran un
modelo LTI1 .
Esta Tesis Doctoral, como tantas otras, posee un gran porcentaje de experimenta-
lidad en las investigaciones, llegando por ejemplo al punto de que el ajuste fuzzy del
FMF se ha realizado en base a los experimentos y a la experiencia adquirida en el
comportamiento de los filtros.
Es precisamente este factor experimental la causa de la mayor parte de los problemas
encontrados en la realización de este trabajo. Tras finalizar este periplo es cuando uno
se da cuenta de la importancia de este factor experimental. Las pruebas reales han
ayudado enormemente a mejorar y replantear diferentes aspectos teóricos.

8.2. Trabajos futuros


Si tenemos en cuenta las palabras de Jonas Edward Salk: La recompensa del trabajo
bien hecho es la oportunidad de hacer más trabajo bien hecho, parece sencillo pensar
que el camino correcto es realizar un trabajo bien hecho de forma continuada. Sin
embargo, citando las palabras de Susan Calvin: He revisado mis notas y no me gustan.
He pasado tres dı́as en la U.S. Robots y lo mismo habrı́a podido pasarlos en casa con la
enciclopedia Telúrica. Ya no es tan evidente saber si el trabajo que estamos realizando
está efectivamente bien hecho o incluso si estamos contentos con él. La conclusión a
la que se puede llegar es que quizá el tiempo nos pueda decir la importancia que han
tenido diferentes trabajos y la repercusión de los mismos.
Si abordamos los temas que mayor cantidad de trabajos futuros podrı́an generar,
éstos se pueden dividir en dos apartados diferenciados: por una parte estarı́an las in-
vestigaciones referentes al nuevo esquema de control propuesto y por otra las referentes
al filtro FMF presentado también de forma totalmente novedosa en esta tesis.
En cuanto al esquema de control, como bien se plantea en el capı́tulo 7, se puede
considerar el acoplamiento y la no linealidad del robot cartesiano como una tolerancia
de los parámetros del mismo, lo que propicia el diseño de un control robusto H∞ . Este
control permitirı́a asegurar la robustez en casos de dinámicas con altas prestaciones
(altos valores de velocidad y aceleración). Para los experimentos realizados en esta tesis
y debido a los tiempos de adquisición de las cámaras utilizadas, las diferencias no serı́an
fácilmente apreciables. Por tanto, se pretende que la lı́nea del control robusto aplicado
1
Lineal e invariante en el tiempo.
180 CAPÍTULO 8. CONCLUSIONES Y TRABAJOS FUTUROS

al visual servoing sea una de las futuras lı́neas de investigación por el potencial interés
que podrı́a generar.
En cuanto al filtro FMF, se pretende seguir trabajando en el diseño de un FMF
programado para diferentes plataformas en C++, MATLAB y VHDL (tarea que ya se
ha comenzado). Este FMF podrı́a ser configurable mediante unos sencillos parámetros
para su uso por no expertos en algoritmos de estimación.

Uno de los grandes logros de esta tesis es la plataforma experimental desarrollada


en el capı́tulo 6, por lo que uno de los trabajos en los que se pretenden invertir recur-
sos materiales y humanos serı́a la evolución de esta plataforma para dotarla de más
capacidad y potencia. El uso de la FPGA se ha mostrado efectivo para el desarrollo de
estas aplicaciones, pero el dispositivo utilizado presenta algunas carencias para seguir
trabajando con él, por lo que un cambio del mismo se presenta necesario. Por otra
parte, debido al diseño modular y estandarizado del código que se ha realizado, la
migración a otra plataforma más grande parece que no presentarı́a grandes problemas.
Ası́ mismo, se pretende implementar en la nueva plataforma hardware gran parte
de los algoritmos utilizados en control visual en la Universidad Miguel Hernández y
comenzar con el desarrollo de una librerı́a en VHDL orientada al tratamiento de imagen
y al control.
Se pretende realizar también como trabajo futuro la comparación de todos los filtros
que hacen una combinación de varios filtros. Sus autores en todos los casos llegan a la
conclusión de que el filtro propuesto es mejor que los filtros de partida (en casi todos
los casos FK estándar, αβ, αβγ, etc.). Un trabajo interesante serı́a comparar todos
estos filtros entre sı́ y con el FMF propuesto en esta tesis, concluyendo de esta forma
cual de ellos realiza una mejor predicción y cual tiene más coste computacional.
Parte II

ANEXOS

181
Apéndice A

GLOSARIO

AC Altern Current
ACK Acknowledgement
ADC Analog to Digital Converter
AKF Adaptive Kalman Filter
ARE Algebraic Riccati equation
ASIC Application Specific Integrated Circuit
BOE Boletı́n Oficial del Estado
CAD Computer Asisted Design
CMOS Complementary Metal Oxide Semiconductor
CPLD Complex Programable Logic Device
CSP Control system processor
DAC Digital to Analog Converter
DARE Discrete algebraic Riccati equation
DC Direct Current
DCM Digital Clock Manager
DDR Double-data-rate
DIP Dual inline package
DOF Degree/s Of Freedom
DSP Digital Signal Processor
DVS Direct Visual Servoing
DWNA Discrete white noise acceleration model

183
184 APÉNDICE A. GLOSARIO

DWPA Discrete wiener process acceleration model


e.g. Exampli gratia
EE Ecuación de Estado
EKF Extended Kalman Filter
ES Ecuación de Salida
et al et altres (and others)
FBGA Fine Ball Grid Array
FDT Función De Transferencia
FK Filtro de Kalman
FKd Filtro de Kalman discreto
FLOPs Operaciones en coma flotante
FMF Fuzzy Mix of Filters
FPGA Field Programmable Gate Arrays
fps Frames por segundo
fuzzy Borroso
GPS Global Positioning System
HDL Hardware Description Language
hRT Hard Real Time
HSYNC Sincronismo horizontal
I2 C Inter-Integrated Circuit
i.e. id est (in other words)
IBVS Image Based Visual Servoing
IMM Interacting Multiple Model
ISE Aplicación de Xilinx para programas FPGAs
IVS Indirect Visual Servoing
Ka Filtro de Kalman con modelo de aceleración cte.
KF Kalman Filter
Kj Filtro de Kalman con modelo de jerk cte.
Kv Filtro de Kalman con modelo de velocidad cte.
L Operador de Laplace
LS Least Square
LSB Less Significative Bit
LSQ Least squares
MATLAB MATrix LABoratory
MIG Memory Interface Generator
MSB Most Significative Bit
MSE Mean Square Error
NEES Normalized Estimation Error Squared
NI National Instruments
NIS Normalizad Innovation Squared
NPE Normalizad position error
NRMSE RMSE normalizado
NRMSET RMSET normalizado
PBVS Position Based Visual Servoing
PC Personal Computer
PLCK Pixel Clock
PLL Phase lock loop
185

Pose Posición y orientación (6 DOF)


PROM Programable ROM
PS Personal System
PTU Pan / tilt unit
Q.E.D. Quod erat demonstrandum
QQVGA Quarter-QVGA
QVGA Quarter Video Graphics Array
RAM Random Access Memory
RFO Rotor Flux Oriented
RGB Red, Green and Blue
RH Routh-Hurwitz
RMS Root-Mean-Square
RMSE Root-Mean-Square error (Valor RMS del error de predicción)
RMSET Valor RMS del error de predicción con respecto al tiempo
RMSI Valor RMS de la innovación del filtro
RMSME Valor RMS de los errores de medida con respecto al tiempo
ROM Read Only Memory
rpm Revoluciones por minuto
RT Real Time
RTS Rauch-Tung-Striebel
SCL Lı́nea System Clock del bus I2 C
SDA Lı́nea System Data del bus I2 C
SDRAM Synchronous dynamic random access memory
SO Sistema Operativo
SPI Serial Peripheral Interface
sRT Soft Real Time
ssKF Steady-state Kalman filter
TANRMSE Media temporal del NRMSE
TARMSE Media temporal del RMSE
TPD Two-point differencing
TXD Transmisión serie ası́ncrona
USB Universal Serial Bus
VGA Video Graphics Array
VHDL Acrónimo que representa la combinación de VHSIC y HDL
VHSIC Very High Speed Integrated Circuit
VSYNC Sincronismo vertical
WLS Mı́nimos cuadrados ponderado
186 APÉNDICE A. GLOSARIO
Apéndice B

EQUIPOS EMPLEADOS EN LA
EXPERIMENTACIÓN

Una parte importante de esta tesis se ha centrado en la experimentación con dife-


rentes sistemas reales.
En este apéndice se encuentra una breve descripción de los equipos utilizados en las
pruebas orientadas a testear el funcionamiento de los algoritmos y de los mismos
equipos.

187
188 APÉNDICE B. EQUIPOS UTILIZADOS

B.1. Introducción
En este apéndice se encuentra una breve descripción de los equipos utilizados en
las pruebas experimentales realizadas dentro del marco de esta tesis. Fundamental-
mente, el material utilizado ha sido el robot cartesiano descrito en el capı́tulo 3, una
placa de desarrollo de FPGAs de Xilinx, varias cámaras y una unidad pan/tilt (PTU).
A continuación se indicarán las caracterı́sticas más relevantes de cada uno de estos
componentes:

B.2. Cámara TMC-6740GE de JAI/PULNIX


La TMC-6740GE (ver imagen en figura B.1) es una cámara color progresiva con un
sensor de 1/3”muy compacta, y robusta para aplicaciones industriales, con posibilidad
de barrido variable de 200 img/seg y con salida digital GigEthernet. Este dispositivo
se ha utilizado para los experimentos presentados en la subsección 5.3.3.

Figura B.1: Fotografı́a de la cámara TMC-6740GE de JAI/PULNIX.

Esta cámara está diseñada para aplicaciones donde se precise la máxima calidad
de imagen con funcionamiento no progresivo de cuádruple velocidad. Se trata de una
cámara con un sensor de 1/3 de pulgada que funciona en formato progresivo de 640x480
pixels. Funcionando con barrido variable es capaz de capturar hasta 3250 imágenes por
segundo de 640 x 60 pixels. La cámara se incorpora el nuevo estandar de visión GigE
(Gigabit Ethernet).

Caracterı́sticas generales:

Sensor CCD de Alta resolución 1/3”KAI-0340.

Alta sensitividad : 1 Lux con óptica f1.4

Dimensiones: 51 x 51 x 85mm.

Rango dinámico mejorado y relación señal/ruido superior a 50dB.


B.3. TARJETA SPARTAN3E STARTER KIT BOARD 189

Máxima velocidad: 3250 img/seg.

Shutter Electrónico de (1:60 a 1:64.000) y posibilidad de Reset Ası́ncrono.

Posibilidad de trabajar con sincronismo HD/VD de entrada o salida.

Dispone de señal de pixel clock para aplicaciones donde se necesite precisión


sub-pixel.

Salida Digital GigE.

Montura C.

Peso: 198 gr.

B.3. Tarjeta Spartan3E starter kit board


Se trata de una placa de desarrollo para la realización de pruebas con FPGAs dota-
da de entrada/salida de comunicaciones, salida de video VGA y un puerto de expansión
al que se puede conectar el robot objeto de estudio. Esta tarjeta se ha utilizado en las
pruebas experimentales de las subsecciones 6.3.7 y 7.5.1.

Figura B.2: Fotografı́a de la tarjeta Spartan3Ee de Xilinx.

Las principales caracterı́sticas de la Spartan3E utilizada son las siguientes:

Modelo: Xilinx XC3S500E Spartan3E FPGA en encapsulado FG 320.




Hasta 232 pines de I/O de usuario.




Encapsulado de 320 pines FBGA (del inglés, Fine Ball Grid Array, se trata
de un tipo de montaje superficial utilizado en circuitos integrados).


Más de 10.000 células lógicas.


190 APÉNDICE B. EQUIPOS UTILIZADOS

4 Mbit de PROM para configuración de plataforma Flash (Xilinx).

64 macroceldas XC2C64A (Xilinx) de CoolRunner CPLD. (La CPLD no se ha


utilizado en el desarrollo de la aplicación)

64 MByte (512 Mbit) de DDR SDRAM, x16 interfaz de datos para el almace-
namiento de la imagen durante el procesado.

16 MByte (128 Mbit) de NOR Flash paralela (Intel StrataFlash).

16 Mbits de SPI Flash serie (STMicro) utilizado como DataLog.

Puerto PS/2 para ratón utilizado para la selección de objetos en la imagen.

Puerto VGA de 3 bits (1 bit por canal, 8 colores). Se ha considerado que 8


colores es poco para mostrar con calidad la imagen y el resultado del sistema
desarrollado, por lo que se ha diseñado y finalmente utilizado una PCB con 4
bits por canal para incrementar el número de colores.

Ethernet PHY 10/100 (requiere MAC Ethernet en FPGA).

2 puertos RS-232 de 9 pines (del tipo DTE y DCE) para comunicación con PC
realizando intercambio de datos.

Conexión USB basada en descarga/depuración del interfaz para la FPGA/CPLD.

Oscilador de reloj a 50 MHz.

Conector de expansión Hirose FX2-100P-1.27DS Header para la conexión de:


cámara digital, salida VGA, lectura de encoders y acción de control de los ac-
cionamientos.

Convertidor Digital-Analógico (DAC) de 4 salidas basado en SPI.

Convertidor Analógico-Digital (ADC) de 2 entradas basado en SPI con pream-


plificador de ganancia programable.

Zócalo de 8 pines DIP para oscilador de reloj auxiliar de 12MHz necesario para
adquirir la imagen.

B.4. Tarjeta Nallatech Ballynuey 3


Nallatech (fundada 1993 en Glasgow, Escocia) es una importante compañı́a de
diseño de computadoras reconfigurables basadas en FPGAs. Las principales aplica-
ciones en las que se utilizan las tarjetas Nallatech (como la Ballynuey 3) son el proce-
samiento de imágenes, aplicaciones aeroespaciales y de telecomunicaciones y desarrollo
de aplicaciones DSP. Esta tarjeta se programa utilizando el software FUSE. A conti-
nuación se pueden ver algunas de las caracterı́sticas de la Ballynuey 3:

Tarjeta PCI con control Xilinx Spartan2 FPGA, con software pre-configurado.
B.5. MICRO CÁMARA VGA VL6524 191

FPGA Virtex-II totalmente disponible para diseño de aplicaciones propias.

4 módulos DIME de expansión.

Interface de 32 bit con el bus PCI (33MHz).

8 Mbytes de memoria SRAM on-board ZBT.

4 puertos de entrada/salida Gbit Ethernet.

3 redes de relojes integrados en placa (programables).

Soporte para Chipscope ILA de Xilinx.

Figura B.3: Fotografı́a de la tarjeta Nallatech Ballynuey 3 utilizada junto con la placa
base asociada, la Spartan3E y el osciloscopio para medidas.

B.5. Micro cámara VGA VL6524


La cámara montada sobre la unidad pan&tilt cuyos experimentos se pueden ver en
la subsección 7.5.1 es la VL6524/VS6524. Se trata de un dispositivo de imagen CMOS
de resolución VGA de tamaño reducido y pensado para sistemas de bajo consumo.
Este módulo completo de cámara está preparado para la conexión con gran cantidad
de procesadores de imagen. Los datos de video de la cámara se obtienen por una salida
paralela de 8 bits en los formatos RGB, YCbCr o Bayer y se controlan por mediación de
un interfaz I2 C. La VL6524/VS6524 requiere una alimentación analógica comprendida
entre 2.4 V y 3.0 V y una alimentación digital de 1.8 V o 2.8 V. También es necesaria
una entrada de reloj de 12MHz que proporciona la FPGA a través de un reloj externo.
Las figuras B.4 y B.5 muestran respectivamente una representación de la cámara y su
192 APÉNDICE B. EQUIPOS UTILIZADOS

montaje en una placa de circuito impreso. Como se puede observar, la cámara posee
unas reducidas dimensiones.

Figura B.4: Representación de la microcámara VL6524.

Figura B.5: Microcámara VL6524 montada en placa de circuito impreso.

Las caracterı́sticas de este dispositivo son:

640H x 480V pı́xeles activos.

Tamaño de pı́xel de 3.6 µm, tamaño del vector de 2.38 x 1.77 mm y formato de
óptica de 1/6 pulgada.

Filtro vectorial de color Bayer RGB.

Control de exposición de +120 dB.

Ganancia máxima Analógica de +24 dB.

Rango Dinámico tı́pico de 61 dB.

Relación Señal/Ruido tı́pica de 35 dB con 100 lux.

Conversor Analógico/Digital integrado de 10 bits.


B.6. SERVOMOTORES 193

Controlador automático de exposición integrado en la cámara, control de balance


automático de blanco, compensación del nivel de negro.

Hasta 30 fps (frames por segundo) de escaneo progresivo, submuestreo flexible y


diferentes módulos para el recorte de imagen.

Diferentes tipos de formato de imagen: VGA, QVGA, QQVGA, subQCIF, recorte


arbitrario, intercambio Horizontal/Vertical.

Diferentes tipos de formato de pixel: ITU-R BT.656-4 YUV (YCbCr) 4:2:2 con
sincronismos integrados, RGB 565, RGB 444 o Bayer de 10 bits.

Caracterı́stica Viewlive que permite diferentes tamaños, formatos y ajustes de


reconstrucción para aplicarlos a frames alternos.

Interfaz de video paralela de 8 bits, sincronismos horizontal y vertical, reloj de


24 MHz.

Interfaz de control serie de dos hilos (I2 C).

Bucle de enganche de fase (PLL) en chip, entrada de reloj de 12 MHz.

Alimentación analógica de 2.4 V a 3.0 V.

Alimentación de I/O diferenciada, de 1.8 V o de 2.8 V.

Tolerancia de 3.3 V en las I/O para una alimentación mayor a 2.7 V.

Lente de plástico de elemento dual, F# 2.8, ∼59◦ DFOV (VS6524).

Distorsión TV < |1.5| %.

Iluminación relativa tı́pica del 45 %.

Tipo de encapsulado (VL6524): LGA - 10 x 10 x 1.90 mm (wlh) y rangos de


temperatura de funcionamiento de -25 a +55 ◦ C.

Para la lectura de la información proviniente de la cámara y el acceso a determi-


nadas señales de control se ha desarrollado una tarjeta de circuito impreso que podemos
ver en la figura B.6. Para más información en referencia a la misma, se puede consul-
tar [83]. La figura B.7 muestra el sistema final, la micro cámara, la unidad PTU, la
Spartan3E y la electrónica de adaptación de tensiones.

B.6. Servomotores
Un servomotor (también llamado Servo) es un dispositivo similar a un motor de
corriente continua, que tiene la capacidad de ubicarse en cualquier posición dentro de
su rango de operación, y mantenerse estable en dicha posición. Está conformado por
un motor, una caja reductora y un circuito de control. Los servos se utilizan frecuente-
mente en sistemas de radio control y en robótica, pero su uso no está limitado a éstos.
194 APÉNDICE B. EQUIPOS UTILIZADOS

Figura B.6: Placa de circuito impreso para adaptar la tarjeta de desarrollo Spartan3E
a las aplicaciones de control visual.

Figura B.7: Montaje de la cámara sobre la unidad PTU y control realizado con FPGA.

Es posible modificar un servomotor para obtener un motor de corriente continua que,


si bien ya no tiene la capacidad de control del servo, conserva la fuerza, velocidad y
baja inercia que caracteriza a estos dispositivos.

Estructura interna del servomotor:

Motor de corriente continua.


Es el elemento que le brinda movilidad al servo. Cuando se aplica un potencial
a sus dos terminales, este motor gira en un sentido a su velocidad máxima. Si
el voltaje aplicado sus dos terminales es inverso, el sentido de giro también se
invierte.

Engranajes reductores.
B.7. PTU 195

Figura B.8: Fotografı́a del servomotor utilizado.

Se encargan de convertir gran parte de la velocidad de giro del motor de corriente


continua en par de giro.
Circuito de control.
Este circuito es el encargado del control de la posición del motor. Recibe los
pulsos de entrada y ubica al motor en su nueva posición dependiendo de los
pulsos recibidos.

Funcionamiento: Dependiendo del modelo del servo, la tensión de alimentación puede


estar comprendida entre los 4 y 8 voltios. El control de un servo se reduce a indicar
su posición mediante una señal cuadrada de voltaje. El ángulo de ubicación del motor
depende de la duración del nivel alto de la señal. Cada servo motor, dependiendo de
la marca y modelo utilizado, tiene sus propios márgenes de operación.
Para bloquear el servomotor en una posición, es necesario enviarle continuamente
una señal con la posición deseada. De esta forma el servo conservará su posición y
se resistirá a fuerzas externas que intenten cambiarlo de posición. Si los pulsos no se
envı́an, el servomotor queda liberado, y cualquier fuerza externa puede cambiarlo de
posición fácilmente.

B.7. PTU
En el capı́tulo 7 se han empleado dos servomotores como los descritos en el aparta-
do anterior de este anexo para dotar de movimiento a una cámara (ver subsección
7.5.1). Estos dos motores se montan de forma que se obtiene una configuración lla-
mada pan/tilt, da ahı́ el nombre de Pan Tilt Unit (unidad pan/tilt) o PTU. Aunque
existen en el mercado gran cantidad de PTUs comerciales, se ha optado por ésta debido
al bajo coste de la misma. En la figura B.9 se puede ver una representación funcional
de la unidad y una fotografı́a de los dos motores servo utilizados para el movimiento.

B.8. Cámara USB-uEYE


Para algunos de los experimentos realizados en esta tesis se ha empleado una cámara
USB, modelo uEye de IDS (Image Development System) GMBH, en concreto el modelo
196 APÉNDICE B. EQUIPOS UTILIZADOS

Figura B.9: Pan Tilt Unit (PTU), representación funcional y sistema real de movimien-
to.

Figura B.10: Fotografı́a de la cámara USB-uEYE.

UI-1410-M.
Sus principales caracterı́sticas son:

Obturador CMOS Rolling.

Resolución VGA 640x480 (0,3MP).

Formato de color: Monocromática.

Para el buen funcionamiento de la cámara, son necesarios los siguientes requerimientos


mı́nimos del sistema:

PC con al menos un puerto USB 2.0 (500mA).

Procesador Pentium III o superior.

Windows 2000 (con el SP4), XP (con el SP2) o LINUX.

DirectX 8.0 o superior.


B.9. ROBOT CARTESIANO 197

B.9. Robot Cartesiano


En el capı́tulo 3 se presenta el diseño, modelado e identificación de un robot carte-
siano de 3 DOF posteriormente utilizado en el capı́tulo 7 para realizar experimentos.
Los actuadores utilizados son motores comerciales descritos en el subapartado 3.3, pero
su utilización no es del todo evidente. La gran cantidad de parámetros necesarios para
configurar cada eje requiere un estudio de los mismos aunque sólo se trate de anular
cualquier función interna de éstos. Por ello, se presenta en este documento el anexo
F, dedicado a la parametrización del robot, centrándose en lo estrictamente necesario
para poder realizar su control con un regulador externo. Para más información ver
[126][193].
198 APÉNDICE B. EQUIPOS UTILIZADOS
Apéndice C

LA INFORMACIÓN VISUAL

El trabajo realizado en esta tesis está ı́ntimamente relacionado con la visión debido
a que una cámara aporta información imprescindible para controlar el robot.
En este anexo se presenta la utilización de una microcámara de pequeño tamaño que
envı́a la información de las imágenes con un bus digital paralelo. Esta información ha
de ser tratada por un dispositivo especialmente diseñado en el marco de esta tesis. Este
anexo presenta la información necesaria para trabajar con este tipo de cámaras.

199
200 APÉNDICE C. LA INFORMACIÓN VISUAL

C.1. Introducción
Este anexo intenta enfocar la visión a más bajo nivel de lo que normalmente se
hace usando un sensor CMOS y capturando la información digital paralela del bus de
comunicaciones.
La finalidad de este enfoque es triple. Por una parte se pretende acceder a sensores
de alta velocidad (más de 200 imágenes por segundo) a un precio asequible1 . Por
otra parte se desea tener un control total de los tiempos de adquisición, procesado
y ejecución del algoritmo de control (aspectos que trabajando bajo un determinado
sistema operativo son menos evidentes). Y por último se desea comenzar a trabajar
con microcámaras de pequeño tamaño para aplicaciones especı́ficas en las que el tamaño
y/o el peso son factores importantes.

C.2. Procesamiento y control de datos de video


En este anexo se presenta el uso de un sensor CMOS para la adquisición de la
imagen como alternativa al uso de una cámara tradicional de tipo USB, Ethernet o
video compuesto.
De esta forma se utiliza el sensor en su modalidad comercial más básica, con el
inconveniente de tener que tratar la señal a bajo nivel pero con la ventaja de tener un
control total de las señales.

Clock I²C Interface SDA


CLK generator I²C SCL

Reset
CE Microprocessor
VREG
VDD
GND

Video timing Statistics


generator Gathering

FSO
AVDD
VSYNC
HSYNC
VGA Video pipe PCLK
Pixel array
D[0:7]
GND

Figura C.1: Diagrama simplificado de las cámaras VL6524/VS6524.

1
Habrı́a que definir asequible, pero en cualquier caso es mucho más barato tener un dispositivo de
este tipo de una velocidad determinada que una cámara de la misma delocidad con salida Ethernet
(por ejemplo).
C.2. PROCESAMIENTO Y CONTROL DE DATOS DE VIDEO 201

El funcionamiento de la cámara es sencillo. Antes de utilizarla hay que configurar


el formato de los datos de la imagen por el bus I2 C (ver figura C.1) y tras realizar
esta tarea el sensor empezará a transmitir datos en el formato seleccionado por el bus
D[0:7]. Por lo tanto el bus de comunicaciones I2 C (formado por las lı́neas SDA y SCL
de la figura C.1) solamente se utiliza para la configuración del funcionamiento de la
cámara, pudiendo especifica formato de imagen VGA, QVGA, QQVGA, subQCIF o
transmisión de los datos en RGB 565, RGB 444, Bayer de 10 bits, etc (ver figura C.17).
Con esta configuración, la cámara envı́a los datos por su bus paralelo de 8 pines junto
con las señales de control FSO, VSYNC, HSYNC y PCLK2 . Estas señales se han de
procesar para extraer la imagen adquirida con el framerate seleccionado.
Para más información, se puede consultar la documentación del fabricante [179]. En
este caso el sensor CMOS (o micro cámara) utilizado es el VL6524 de ST-Microelectro-
nics3 .
En las siguientes secciones y subsecciones se describe la forma de seleccionar el
modo de funcionamiento y la forma de capturar las imágenes.
Como sistema electrónico para controlar el sensor CMOS y recibir los datos de
imagen enviados se ha utilizado una FPGA debido a su versatilidad y potencia.
En este dispositivo lógico programable se han tenido que realizar unas considera-
ciones y programar unos módulos para el tratamiento de los datos (tanto de los datos
de configuración a enviar a la cámara como de los datos recibidos de la misma). En los
apartados siguientes se realizan las descripciones necesarias para procesar la imagen.

C.2.1. Adaptación de niveles de tensión


Para establecer la comunicación entre la FPGA y la cámara, es necesario implemen-
tar una cierta electrónica en el bus de comunicación I2 C que permita detectar niveles de
confirmación del sensor CMOS y “adaptarlos” a la FPGA como datos lógicos válidos
y poder ası́ establecer una comunicación sin entrar en un bucle continuo de repetición
de envı́o de trama. Esta adaptación de tensiones es necesaria debido a que la cámara
funciona con datos digitales de 1.8V y el puerto utilizado de la FPGA con 2.5V.
Por lo tanto es necesario añadir al bus de datos y de reloj un adaptador de niveles
de tensión, PCA9306, y a la lı́nea de datos un comparador y un restador (para eliminar
el offset producido en el comparador) cuya salida será leı́da por la FPGA aprovechando
uno de los pines I/O de la misma.

C.2.2. Esquema electrónico


En la figura C.2 se puede ver el esquema electrónico necesario para adaptar los
niveles de tensión en la comunicación digital entre la FPGA y el CMOS. Este nivel de
tensión no es compatible en el caso del bus de comunicaciones I2 C debido a que los
datos de confirmación de trama ACK del CMOS no son reconocidos correctamente por
la FPGA, por lo que se plantea el uso del circuito integrado PCA9306.
2
La figura C.18 muestra la forma de onda de PLCK y su relación con los datos digitales de salida.
3
En el anexo B de equipos utilizados se pueden ver algunas imágenes del sensor y un pequeño
listado de caracterı́sticas.
202 APÉNDICE C. LA INFORMACIÓN VISUAL

Vpu(D) = 2.8V

220Ω
220Ω 220Ω
VRef = 2.5V
PCA9306
8 EN
VREF1 VREF2
2 7
180Ω 180Ω 100nF
FPGA

Sensor CMOS
VCC VCC
SCL1 3 6 SCL2
SCL SW SCL

I2C-BUS I2C-BUS
MAESTRO DISPOSITIVO
SDA1 4 5 SDA2
SDA SW SDA
SDA_L (2)
GND Del restador 1 GND
GND

(1)
Al comparador

R8

2.2k
VCC VCC VCC
5V 5V 5V

R5
1k
COMPARADOR 7
R7 RESTADOR
R1 4 1 5
100k (×) U1
2 6
50% 3 1k (2)
Key=A 6 R3
3 U2
(1)
2 1k R6
Lm7171 47k
4 1 5 Lm7171
7 50%
Key=A

VCC R2 R4 R9
5V 68 1k 1k

D1
1N4001

(×) Tensión de disparo


estabilizada a 2.45V

Figura C.2: Representación de la electrónica implementada en el bus I2 C.


C.2. PROCESAMIENTO Y CONTROL DE DATOS DE VIDEO 203

C.2.3. Datos experimentales


En las figuras C.3, C.4 y C.5 se muestran unas capturas tomadas del osciloscopio
utilizado (Tektronix TDS 2012B) en las que se observan los lı́mites de confirmación
ACK del sensor CMOS y el resultado obtenido al utilizar los elementos mostrados en
el esquema electrónico de la figura C.2.

C.2.4. Módulo: I2 Cv1 7


Este módulo implementado en VHDL (ver figura C.7) es el que establece los
parámetros de configuración deseados en el sensor (salida VGA 640x480 a 25 ó 30
fps, sincronismos automáticos, y con formato de datos RGB 444 custom, ver figura
C.17). Los pasos a realizar para configurar los parámetros son (las señales obtenidas
responden al esquema mostrado en la figura C.12):

1. Habilitar el microprocesador: antes de poder enviar cualquier comando al VL6524,


el microprocesador interno debe de ser habilitado escribiendo el valor 0x06 en el
registro MicroEnable 0xC003.

2. Habilitar las entradas/salidas digitales: después de dar alimentación a las en-


tradas/salidas digitales del VL6524 están en el estado (triestado) de alta impedan-
cia. Las I/O son habilitadas escribiendo el valor 0x01 en el registro Enable I/O
0xC034.

3. Se coloca el VL6524 en modo PAUSE para poder modificar cualquier valor de


configuración que no sea el establecido por defecto. Se realiza escribiendo el valor
0x03 en el registro bUserCommand 0x0180.

4. Selección del formato de salida - para ello hay que escribir el valor 0x05 en el
registro bdataFormat0 0x0396.

5. Establecer la frecuencia del oscilador externo (24 MHz) - para ello hay que escribir
el valor 0x0 en el registro uwExtClockFreqNum (MSB) 0x060b y el valor 0x18
en el registro uwExtClockFreqNum (LSB) 0x060c.

6. Seleccionar el número de frames por segundo, escribiendo el valor 0x1E en el


registro uwDesiredFrameRate Num (LSB) 0x0d82 y el valor 0x01 en el registro
uwDesiredFrameRate Den 0x0d84.

7. Colocar el VL6524 en modo RUN escribiendo el valor 0x02 en el registro bUser-


Command 0x0180.

En el esquema C.6 se muestra el diagrama de flujo. En la versión descrita se tienen


en cuenta las confirmaciones después de cada byte enviado de datos. Si la confirmación
fuese negativa, siempre se genera un Bit Stop y se comienza por el principio del dia-
grama, enviando de nuevo la trama por completo. Esta versión envı́a 7 tramas, pero
está diseñado para enviar el número de tramas que se desee. En cuanto se han enviado
correctamente todas las tramas, la lı́nea de datos permanecerá a nivel lógico alto (o
204 APÉNDICE C. LA INFORMACIÓN VISUAL

bit de ACK con nivel de


tensión no correspondiente
con cero lógico

tensión para el
nivel lógico alto

Figura C.3: Detalle del primer byte de datos enviado al sensor CMOS con respecto a
la señal de reloj SCL. Se observa un nivel de tensión para el nivel lógico alto de 2,52V.

Figura C.4: Detalle del primer byte de datos enviado al sensor CMOS. Se observa un
nivel de tensión para la confirmación de 2,26V.
bit de ACK con nivel de
señal proporcionada por tensión no correspondiente
el sensor CMOS VL6524 con cero lógico
(entrada al circuito de
comparación)

señal ACK proporcionada


por el circuito de
comparación bit de ACK con nivel de
tensión correcto

9º bit marcado con


dos barras verticales

Figura C.5: Detalle de la salida del comparador-restador. Se observa como en la lectura


del 9◦ bit (bit ACK) se obtiene un cero lógico válido para la FPGA.
C.2. PROCESAMIENTO Y CONTROL DE DATOS DE VIDEO 205

PreStart

Start

Dir. Sensor

NO
ACK='0' ?

SI

Índice 1/2

NO
ACK='0' ? Trama=Trama+1

SI
Cargar nuevo dato
Índice 1/2

Cargar nuevo índice


NO
ACK='0' ?

SI
Dato

ACK='0' ?

SI/NO
Stop

NO
Trama<7?

SI

SDA=1

Figura C.6: Diagrama de flujo del I2 Cv1 7.


206 APÉNDICE C. LA INFORMACIÓN VISUAL

Figura C.7: Esquema del bloque I2 C.

bien a alta impedancia considerando que en el bus se encontrará el nivel de tensión


impuesto por la/s resistencia/s de pull-up).
Descripción del módulo
ENTRADAS:

clk24mhz IN: entrada del reloj auxiliar. Utilizado para generar las señales de
reloj SCL y SDA.

enable: entrada de habilitación del sistema.

sda l: entrada de lectura del 9◦ bit (bit ACK). Utilizado por implantar la elec-
trónica antes descrita.

SALIDAS:

scl: lı́nea de reloj a 100KHz con un ciclo de trabajo del 50 %.

sda: lı́nea de datos.

trama correcta: indicador de trama enviada correctamente.

En la figura C.8 se puede ver el código VHDL implementado en la FPGA. Este sencillo
módulo genera la importante señal SCL necesaria para establecer la comunicación con
la cámara.

C.2.5. Resultados experimentales


Las imágenes C.13, C.14 y C.15 son capturas extraı́das del osciloscopio utilizado,
en las que se pueden observar los resultados obtenidos para cada una de las temporiza-
ciones. Se comprueban en todo momento los resultados experimentales con los cálculos
teóricos para demostrar que el sistema responde correctamente.
También, junto con los gráficos obtenidos para las señales de sincronismo horizon-
tal (ver figura C.13) y vertical (ver figura C.15), se adjunta información importante
proporcionada por el fabricante que ayuda a comprender los resultados mostrados.
Todos los datos de salida del VL6524 vienen determinados por la frecuencia de
PCLK (la figura C.18 muestra la forma de onda de PLCK y su relación con los datos
digitales de salida). Su frecuencia teórica es de 24 MHz (equivalente a 12 MHz de
frecuencia de pı́xel teniendo en cuenta que cada uno de ellos se representa con 2 bytes
de datos).
C.2. PROCESAMIENTO Y CONTROL DE DATOS DE VIDEO 207

--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--
------------------------------------------------------------------------------------
-- PROCESO DE GENERACIÓN RELOJ A 200 KHz\\
-- (Condiciones Bit START/STOP y cambio de dato)\\
-- (Utilizando el reloj externo de 24 MHz)
------------------------------------------------------------------------------------
.
.
.

constant v200khz:integer:=120;
signal scl_x2:stdlogic:=’0’;
signal go:std_logic:=’0’;
process (clk24mhz_IN,scl_x2)
variable conta: integer range 0 to v200khz:=0;
begin
if (clk24mhz_IN’event and clk24mhz_IN=’1’) then
if (conta < v200khz/2) then
scl_x2 <= ’0’;
conta:=conta+1;
end if;
if (conta = v200khz/2) then
go<=’1’;
end if;
if (go=’1’) then
scl_x2 <= ’1’;
conta:=conta+1;
end if;
if (conta = v200khz) then
conta:=0;
go<=’0’;
end if;
end if;
end process;

Figura C.8: Fragmento del código VHDL donde se genera el reloj scl x2 y del cual se
obtiene el reloj a 100 KHz. En él se genera una señal de reloj con un ciclo de trabajo
del 50 %, condición a tener en cuenta en este tipo de protocolo de comunicación en el
que es tan importante respetar los tiempos de SCL para el envı́o de datos.

H sync: 24 MHz/1.460 PCLKs de lı́nea = 16.438 Hz


Y dividiendo el valor calculado para el sincronismo horizontal entre el n◦ total de
lı́neas se obtiene:
V sync: 16438 Hz / 553 lı́neas = 29.73 Hz
Como se puede observar, los datos teóricos calculados son casi idénticos a los expe-
rimentales, por lo que se deduce que el sistema responde de la forma correcta, es decir:
la figura C.14 muestran exactamente la forma del sincronismo vertical con respecto de
los datos válidos y los márgenes de blanking; y la figura C.16 muestra el número de
pulsos de reloj de cada frame para una resolución 640Hx480V.

C.2.6. Adquisición de datos del sensor CMOS


Según el fabricante del sensor CMOS, ST-Microelectronics, existen diferentes modos
para la adquisición de la información en pı́xeles del sensor. De los diferentes formatos
disponibles, se puede escoger cualquiera de ellos en los cuales la información se trate en
R, G y B, por la comodidad que esto representa. La figura C.17 muestra las diferentes
opciones a elegir.
En el formato RGB 444 (zero padded) mostrado en la figura C.17 se puede obser-
var como cada pı́xel se codifica en 2 vectores de 1 byte. El primer byte contiene la
208 APÉNDICE C. LA INFORMACIÓN VISUAL

Figura C.9: Captura de osciloscopio en donde se observa que la frecuencia de la señal


SCL es de 99,9996 KHz y su ciclo de trabajo es del 50 %.

Figura C.10: CLK auxiliar de 24MHz. Captura realizada desde el osciloscopio en la que
se muestra la señal obtenida para el reloj auxiliar de 24 MHz utilizado en el Starter
Kit.

Figura C.11: PCLK (reloj de pixel). Captura realizada desde el osciloscopio en la que
se muestra la señal obtenida para el reloj de pı́xel.
C.2. PROCESAMIENTO Y CONTROL DE DATOS DE VIDEO 209

hsync=0 hsync=1

BLANKING DATA ACTIVE VIDEO DATA


EAV Code SAV Code EAV Code

FF 00 00 XY 80 10 80 10 80 10 80 10 FF 00 00 XY D0 D1 D2 D3 D0 D1 D2 D3 D2 D3 FF 00 00 XY

Figura C.12: Esquema de temporización y consideraciones de la señal de sincronismo


horizontal.

Figura C.13: Captura realizada desde el osciloscopio en la que se muestra la señal


obtenida para el sincronismo horizontal.

BLANKING V=0

V=1

ACTIVE
VIDEO vsync

BLANKING V=0

V=1

ACTIVE
VIDEO

Figura C.14: Temporización y consideraciones de la señal de sincronismo vertical.


210 APÉNDICE C. LA INFORMACIÓN VISUAL

Figura C.15: Captura realizada desde el osciloscopio en la que se muestra la señal


obtenida para el sincronismo vertical.

1460 PCLKs

16 interframe blanking lines(0x10/0x80)

1280 PCLKs

553 lines 480 lines ACTIVE VIDEO Line blanking


(640 by 480 pixels) (0x10/0x80)

57 interframe blanking lines (0x10/0x80)

Figura C.16: Fotograma de salida para el formato VGA utilizando 30 fps.

información G y B y el segundo byte contiene la de R. Cada componente R, G y B


se codifica con 4 bits. La información sobrante del segundo vector se rellena con ceros
que no aportan nada.
En la Figura C.18 se representa la función PCLK para los diferentes formatos, VGA
(se ha escogido este para las pruebas realizadas) y QVGA, observando como en cada
flanco ascendente del mismo, permanece estable la información de byte de cada pı́xel,
obteniéndola completamente en dos flancos ascendentes del reloj.

C.2.7. Módulo: Ordenar Info-datos v1


Este módulo (ver figura C.19) se encarga de ordenar la información de pı́xel según
el formato escogido del sensor CMOS.
ENTRADA:
C.2. PROCESAMIENTO Y CONTROL DE DATOS DE VIDEO 211

(1) RGB565 data packing

Bit 7 6 5 4 3 2 1 0 Bit 7 6 5 4 3 2 1 0

R 4 R 3 R 2 R 1 R 0 G5 G4 G3 G 2 G 1 G 0 B4 B3 B2 B1 B0

second byte first byte

(2) RGB 444 packed as RGB565

Bit 7 6 5 4 3 2 1 0 Bit 7 6 5 4 3 2 1 0

R3 R2 R1 R0 1 G3 G2 G1 G0 1 0 B3 B2 B1 B0 1

second byte first byte

(3) RGB 444 zero padded

Bit 7 6 5 4 3 2 1 0 Bit 7 6 5 4 3 2 1 0

0 0 0 0 R3 R2 R1 R0 G 3 G 2 G 1 G 0 B3 B2 B1 B0

second byte first byte

(4) Bayer 10-bit

Bit 7 6 5 4 3 2 1 0 Bit 7 6 5 4 3 2 1 0

1 0 1 0 1 0 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0

second byte first byte

Figura C.17: Configuraciones para la codificación de información de pı́xel. Se puede


utilizar cualquiera de ellas, aunque cabe destacar que en las pruebas realizadas se ha
basado en el RGB 444 (zero padded).

Pixel n Pixel n+1 Pixel n+2

D[0:7] D0 D1 D2 D3 D4 D5

VGA
PCLK
QVGA

Figura C.18: Forma de onda para el reloj de pı́xel (PCLK).

Figura C.19: Representación de las I/O del bloque ORDENAR INFO-datos v1.
212 APÉNDICE C. LA INFORMACIÓN VISUAL

dato in(w:0): Entrada de datos de información de pı́xel en paralelo. El tamaño


de los datos puede ser variable, donde w suele ser de 8, 10 o 12 bits.

enable: entrada de habilitación del sistema.

h sync y v sync: señales de sincronismo horizontal y vertical. Utilizadas como


referencia, junto con PCLK para establecer la señal de datos video.

pclk: reloj de pı́xel. Establece la velocidad con la que vamos a obtener la infor-
mación de pı́xel. Dicha información se puede obtener en flancos ascendentes o
descendentes de pclk, en función de las especificaciones del fabricante.

SALIDAS:

bl(x:0), g(y:0), r(z:0): Salida de datos de información de pı́xel. El tamaño del


vector para cada componente RGB puede ser diferente en función del tipo de
formato escogido para la adquisición de datos. Los valores de x, y, z pueden ser
iguales o diferentes, pero no suelen ser mayores a 4.

datos video: señal que envuelve la información válida de vı́deo, sin considerar
los tiempos de front y back porch.

pixel completo: se usa para detectar la información completa de pı́xel en el


caso de que ésta no se reciba por completo en cada pulso de PCLK.

C.2.8. Procesado de datos


En esta subsección se presenta el módulo encargado de obtener las coordenadas del
objeto en tiempo real y que realiza una umbralización de la información de pı́xel, la
cual se describe en detalle a continuación.

C.2.9. Módulo: Coordenadas-Cam coord v1 3


Este módulo (mostrado en la figura C.23) consiste en establecer un criterio para la
localización del objeto basándose en la arquitectura de la propia matriz de imagen. La
figura C.22 muestra el diagrama de flujo de este módulo, que tiene una descripción de
entrada/salida descrita en la figura C.23.
Se sigue un método de umbralización que consiste en utilizar un fondo negro y
un objeto a “seguir” de color blanco. Al tratarse de colores totalmente opuestos, la
“discriminación” de los pı́xeles que no aportan información (ya que no forman parte
del objeto) se codificarán con ausencia de color, o lo que es lo mismo con un nivel de
RGB cercano a cero para cada una de las componentes. Por el contrario, los pı́xeles que
formen parte del objeto contendrán un alto nivel para cada una de las componentes, por
lo que el valor para cada una de ellas (considerando que cada componente se codifica
con 4 bits) será cercano a 15 (ver figura C.21).
Sabiendo que la información de cada componente de color va a estar en un rango
comprendido entre 0 y 15, tomaremos como criterio de umbralización el valor interme-
dio 7 (en binario, “0111”). Se considerará que si las tres componentes están por debajo
C.2. PROCESAMIENTO Y CONTROL DE DATOS DE VIDEO 213

Figura C.20: Criterio para establecer las coordenadas del objeto (n = 640, m = 480).

Figura C.21: Ejemplo de umbralización.

o son igual a este valor, nose estará ante el objeto a seguir, y si por el contrario, están
por encima, se considerará como un pı́xel que forma parte del objeto en cuestión. Esta
consideración se aplica a cada uno de los pixels que se codifican como muestra la figura
C.20, por lo tanto, se trata de un procesado muy sencillo, dado que en todo momento
el enfoque de esta tesis se basa en los datos proporcionados por algoritmos de visión.
Descripción del módulo
ENTRADAS:

bl(3:0), g(3:0), r(3:0) : codificación de la información de pı́xel utilizada para


la umbralización.
activa video: señal de referencia para saber cuando comenzamos la cuenta y la
umbralización.
enable: entrada de habilitación del sistema.
pclk y pixel completo: señales de reloj utilizadas para saber cuando se obtiene
información válida de pı́xel.
v sync:señal de sincronismo vertical utilizada para realizar los cálculos de ob-
tención del centro de gravedad de la figura cuando ésta vale 0.
SALIDAS:

coord uoH(7:0), coord uoL(7:0), coord voH(7:0), coord voL(7:0): señales


que contienen la parte alta (H) y baja (L) de las coordenadas u (columnas) y v
(filas) del centro de gravedad del objeto.
usal, vsal: referencia para visualizar los cambios de estado de las cuentas de las
coordenadas en el osciloscopio.
214 APÉNDICE C. LA INFORMACIÓN VISUAL

NO
Enable='1'? Proceso de cálculo de
la acción de control
SI SI
NO
datos_video='1'? V_sync='0'?
NO
Actualización
de coordenadas SI

Pixel_completo='0'?
PCLK
NO
SI
NO
Umbral

SI
NO
Primer_pixel_obj='0'?

SI
Umax=Umin=U
Vmax=Vmin=V
Primer_pixel_obj='1’

NO
U>Umax?

SI

Umax=U

NO
U<Umin?

SI

Umin=U

NO
V>Vmax?

SI

Vmax=V

NO
V<Vmin?

SI

Umin=V

Figura C.22: Diagrama de flujo de Cam coord v1 3.


C.2. PROCESAMIENTO Y CONTROL DE DATOS DE VIDEO 215

Figura C.23: Representación de las I/O del bloque COORDENADAS-Cam coord v1 3.

Figura C.24: Representación de la codificación de las coordenadas de un objeto.

C.2.10. Módulo: Mov Servos-Control Servos v1 2


Este módulo (ver figura C.31) se encarga de mover los servomotores de la unidad
Pan&Tilt en función de la posición del centro de gravedad del objeto con respecto al
centro de la matriz de imagen4 .
Los servomotores referenciados se explican con detalle en el anexo B, pero en
cualquier caso no se ha entrado en demasiado detalle sobre ellos debido a que se trata
solamente de un elemento accesorio en la presente tesis.
Se realiza un control de los citados servomotores en lazo cerrado, ya que basta con
analizar la posición del objeto cada 33,33 ms (30 Hz) con respecto al origen (centro
de la matriz de imagen) y mover cada servomotor siguiendo el criterio explicado en la
figura C.25.
El movimiento de los motores servo5 se controla mediante una señal cuadrada con
tiempo de ON variable. Esta señal se genera con el código que se puede encontrar en
la figura C.32. Con ello se genera el movimiento de la unidad Pan&Tilt.
Siguiendo el citado criterio de signos, se pueden establecer las ecuaciones que rigen
4
La figura C.24 representa la imagen obtenida tras el procesamiento descrito en el apartado C.2.9
con la codificación correspondiente. Con la imagen obtenida se conoce el centro de gravedad (c.o.g.)
del objeto detectado.
5
En la sección B.6 se realiza una breve descripción de los motores servo referenciados.
216 APÉNDICE C. LA INFORMACIÓN VISUAL

Figura C.25: Criterio de signos a seguir para el control de los servomotores.

Figura C.26: Lazo cerrado de control.

los movimientos de los servomotores en función de la localización del centro de gravedad


del objeto, teniendo en cuanta que se desea aplicar para la realización de pruebas
preliminares (i.e. sin tener en cuenta las consideraciones del capı́tulo 7) el esquema de
control mostrado en la figura C.26.
Consideraciones:

La referencia es el punto central dentro de la matriz imagen, cuyo tamaño es


de 640x480. Si consideramos que realizamos la cuenta desde el pı́xel (0,0), pı́xel
superior izquierdo, hasta el pı́xel (639,479), pı́xel inferior derecho, tomaremos
como referencia para el pı́xel central de la imagen (319,239).

Las muestras T se toman para un periodo de 33,33 ms, o lo que es lo mismo, a


una frecuencia de 30 Hz (determinada por los frames por segundo que es capaz
de mostrar el sensor CMOS).

El vector de error ē, contiene las distancias de las coordenadas u y v:

 
eu (k)
ē(k) = (C.1)
ev (k)

La salida del regulador R cumple la siguiente ecuación matricial:

   
u(k) u(k − 1) + ku · eu (k)
λ̄(k) = = (C.2)
v(k) v(k − 1) + kv · ev (k)
C.2. PROCESAMIENTO Y CONTROL DE DATOS DE VIDEO 217

Figura C.27: Procesado de la información.

donde ku y kv son ganancias para cada servomotor, ajustadas de forma empı́rica,


para que los movimientos de ambos servomotores estén comprendidos dentro del
campo del área de pruebas.

El vector y contiene el ángulo de giro correspondiente para los servomotores de


pan y de tilt. El ángulo de giro irá en función del error correspondiente entre la
situación del objeto y el pı́xel central de la matriz imagen.

En el sistema diseñado, la adquisición, procesado y acción de control de la informa-


ción se realiza tal y como se muestra en la figura C.27. En esta figura se observa que
la imagen se recibe durante el tiempo entre un muestreo y el siguiente, por ejemplo
nT y (n+1)T. El procesado se realiza al mismo tiempo que la recepción de la propia
imagen6 . Tras el procesado de la imagen se calcula la acción de control (representada
por un aspa en el cronograma).
Lo que se hace es esperar a recibir la información completa de un fotograma y a una
frecuencia de 30 Hz (o un periodo de 33,33 ms) se realiza el procesado de la información.
Se puede deducir que el retardo total producido en el sistema son, precisamente, esos
33,33 ms.
En las figuras C.28 y C.29 se muestran unas capturas de osciloscopio en donde se
observan las señales de sincronismo horizontal (ver figura C.13) y vertical (ver figura
C.15) correspondientes a una resolución de 640x480. La figura C.30 muestra las señales
de sincronismo horizontal y habilitación de video, donde se observa que la citada ha-
bilitación se hace dentro del margen permitido del sincronismo.
Realizando un cálculo sencillo, se puede comprobar como efectivamente hay 480
lı́neas de imagen incluidas dentro de un pulso de sincronismo vertical o fotograma.
Expresión 1: Cálculo del tiempo total de las 480 lı́neas.
6
El concepto de recepción y procesado simultáneo de la imagen se plantea en la la sección 7.5.2 de
la presente tesis (ver figura 7.29 del capı́tulo 6).
218 APÉNDICE C. LA INFORMACIÓN VISUAL

Figura C.28: Detalle de un fotograma. Se observa la señal de sincronismo vertical con


respecto la de sincronismo horizontal.

Figura C.29: Detalle del sincronismo horizontal con medidas temporales junto con
sincronismo vertical para calcular los 480 pulsos.

Figura C.30: Captura en la que se muestra el detalle entre la señal de sincronismo


horizontal (color azul) y la de habilitación de vı́deo (color naranja).
C.2. PROCESAMIENTO Y CONTROL DE DATOS DE VIDEO 219

Figura C.31: Representación de las I/O del bloque MOV SERVOS-Control Servos v1.2

32µs · 480 lı́neas = 15.552 ms

Expresión 2: Cálculo de la frecuencia real.


1
f= = 64,3Hz ≈ 60Hz
15,552
El tamaño de ambas señales depende de las caracterı́sticas de cada sensor, pudiendo
verse afectadas por el instante de tiempo en el que se ponen a nivel lógico alto y a
bajo. Esto va en función del pulso de PCLK en el que obtengamos información válida
de vı́deo.

Descripción del módulo


ENTRADAS:

coord uoH(7:0), coord uoL(7:0): parte alta y baja de la coordenada u del


centro de gravedad del objeto.
coord voH(7:0), coord voL(7:0): parte alta y baja de la coordenada v del
centro de gravedad del objeto.
clk: señal de referencia para establecer el pulso de control del ángulo de giro de
los servomotores.
enable: entrada de habilitación del sistema.
nuevo frame: señal de reloj utilizada para establecer la lectura de las coorde-
nadas y la acción en los servomotores a una frecuencia de 30 Hz.

SALIDAS:

uoH RS232(7:0), uoL RS232(7:0): parte alta y baja de la coordenada u del


centro de gravedad del objeto, enviada al puerto serie RS232 para visualizarla
por monitor.
voH RS232(7:0), voL RS232(7:0): parte alta y baja de la coordenada v del
centro de gravedad del objeto, enviada al puerto serie RS232 para visualizarla
por monitor.
220 APÉNDICE C. LA INFORMACIÓN VISUAL

signal cnt: integer range 0 to PeriodServo_20ms:=0;


if clk=’1’ and clk’event then
cnt <= cnt+1;
if cnt>0 and cnt<lim_pan then
sal_pan <= ’1’;
else
sal_pan <= ’0’;
end if;
if cnt>0 and cnt<lim_tilt then
sal_tilt <= ’1’;
else
sal_tilt <= ’0’;
end if;
if cnt=PeriodServo_20ms then
cnt <= 0;
end if;
Servo_tilt=sal_tilt;
Servo_pan=sal_pan;

Figura C.32: Fragmento del código en donde se puede observar el funcionamiento del
pulso generado para cada servomotor en función del valor de las señales lim PAN y
lim TILT.

clk aux: visualización en el osciloscopio de la acción de control mediante la cual


se establece la lectura de las coordenadas para mover los servos.

Servo pan, Servo tilt: pulso de control del ángulo de giro para el servomotor de
movimiento pan y para el de movimiento tilt. En estado de condiciones iniciales
y de reposo, tendrá el ancho de pulso correspondiente a un ángulo de 90◦ para
ambos servomotores.

C.2.11. Módulo: Com Serie-RS232 v1 3


Se trata de un código proporcionado por Xilinx (ver esquemna de bloques en la
figura C.33) modificado para ser utilizado en el marco de esta tesis (la figura C.33
muestra su representación de entrada/salida). Sirve para establecer una comunicación
entre la FPGA y el PC para el envı́o de datos de posición del centro de gravedad del
blob, datos de error, etc. y poder ası́ sacar de esta forma gráficas de experimentos
realizados por la FPGA.
Descripción del módulo
ENTRADAS:

uoH RS232(7:0), uoL RS232(7:0): parte alta y baja de la coordenada u del


centro de gravedad del objeto, recibida en paralelo y enviada al puerto serie
RS232 para visualizarla por monitor.

voH RS232(7:0), voL RS232(7:0): parte alta y baja de la coordenada v del


centro de gravedad del objeto, recibida en paralelo y enviada al puerto serie
RS232 para visualizarla por monitor.

cargar nueva coord: pulsador para hacer una nueva lectura de coordenadas.
C.2. PROCESAMIENTO Y CONTROL DE DATOS DE VIDEO 221

Figura C.33: Representación de las I/O del bloque COM SERIE-RS232 v1.3.

SALIDA:

TXD: transmisión serie ası́ncrona de las coordenadas por el puerto serie al PC.

En la práctica se utiliza una comunicación ası́ncrona, en la que la velocidad de


transmisión de datos entre la FPGA y el PC es de 38.400 baudios (de fácil modifi-
cación). La comunicación es half duplex, ya que sólo se van a enviar datos desde la
FPGA al PC y éstos serán de 4 bytes, en los cuales se envı́a la parte alta y baja de las
coordenadas u y v.
222 APÉNDICE C. LA INFORMACIÓN VISUAL
Apéndice D

EL
FILTRO DE KALMAN DISCRETO

En este apéndice se plantean aspectos poco tratados comúnmente en la bibliografı́a


clásica del Filtro de Kalman (FK) y que debido a la importancia con los temas abor-
dados en esta tesis conviene clarificar.

223
224 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

D.1. Ecuaciones del filtro de Kalman discreto


Se tiene un sistema modelado por una Ecuación de Estado (EE) y una Ecuación
de Salida (ES):

EE xk+1 = Ak xk + Bk uk + Wk ξk (D.1)
ES y k = C k x k + D k uk + V k η k (D.2)

donde ξ y η son los ruidos de proceso y de medida respectivamente, que afectan a


la EE y a la ES (respectivamente) a través de las matrices W y V , que en el caso más
sencillo son la identidad. Estos ruidos se suponen blancos1 , de media nula y distribución
gaussiana2 e independientes3 entre sı́ y respecto al estado inicial4 .
1
Un ruido blanco es aquel que tiene un espectro en frecuencia uniforme para un ancho de banda
(entre dos frecuencias). Lo anterior implica que no está correlado con el tiempo (ej. no está un tiempo
importante a un valor positivo o negativo), es decir que el valor de la variable aleatoria en un instante
tiene correlación nula (es independiente) con el valor de otro instante. Teóricamente no podrı́a tener
un ancho de banda infinito porque implicarı́a una potencia infinita. Sin embargo, en [119] se asume
que el ruido blanco por definición debe tener dicho ancho de banda infinito. Aunque luego justifica
que, puesto que cualquier sistema hace de filtro paso bajo (efecto de retardo de componentes, etc.),
en la práctica basta con que la señal tenga espectro uniforme para el ancho de banda del sistema (ver
Figura 3.1 de la página 8 de [119]). De igual modo, en [174], después de definir el ruido blanco como
aquel en el que no existe correlación entre el valor en dos instantes distintos cualesquiera, en la página
siguiente (página 72) obtiene que el espectro en frecuencia debe ser uniforme en todo el rango, ya sea
la señal discreta (wnorm ∈ [−π, π] ) o continua (w ∈ [0, ∞] ) [en este segundo caso dice que implica
potencia infinita, por lo que se deduce que en el caso discreto no (lógico por otra parte)]. No obstante,
si al ruido blanco se le añade el adjetivo de media nula habrá que considerar un espectro en continuo
para w ∈]0, ∞], y en discreto sin armónico en k = 0 (término de continua).
2
En ocasiones se asume incorrectamente que un ruido gaussiano es necesariamente blanco. Una
cosa no implica la otra, ni al revés. El adjetivo gaussiano se refiere a la distribución de valores de la
señal, mientras que blanco se refiere a la correlación en dos instantes distintos, lo cual es independiente
de los valores de amplitud de la señal, es decir de su distribución (aunque si se ha de cumplir que la
media de todos los valores sea nula). La utilización simultánea de ambos adjetivos es habitual en la
definición de modelos matemáticos de sistemas, por ejemplo con el término ruido blanco gaussiano
aditivo (AWGN), ya que es una buena aproximación de situaciones reales (teorema del lı́mite central)
y genera modelos matemáticos manejables. En [174] no se hace de partida la suposición de ruidos
gaussianos, ecuación (5.2) de la página 124 (en dicha ecuación faltarı́a poner la independencia de los
ruidos de medida y proceso con el estado inicial), pero posteriormente en la página 130 queda aclarado
este particular: si el ruido es gaussiano el FK es la solución al problema y si el ruido no es gaussiano
es la mejor solución lineal al problema (lo mismo se dice en [119]).
3
Para ilustrar la importancia de la independencia de ruidos considérense las siguientes relaciones:
a=b+c
A){b,c} misma distribución e independientes: var(a) = var(b) + var(c) → σ a2 = σbc 2 2
= 2σbc
2 2
B){b,c} misma variable(correlación máxima entre b y c): std(a) = 2std(bc) → σ a = 4σbc
En (D.4) se produce A), mientras que en (D.7) se producen tanto A) (con xk/k−1 ) como B).
4
Alternativamente estas condiciones se pueden expresar de otra forma: ruidos de distribución
gaussiana con media nula e independientes respecto al estado inicial y a cualquier otro término de
ruido, ya sea de proceso o medida, es decir {x0 , w1 , ..., wk , v1 ...vk } todos mutuamente independientes.
En definitiva lo que se consigue es que los términos de ruido de cada instante (en EE y ES) sean
independientes del valor de los estados y medidas de ese instante, que dependen del estado inicial, de
las entradas (si las hay), y de los términos de ruido de medida y proceso de los instantes anteriores.
En algunos libros ([119][174]) la suposición de no correlación entre los ruidos de proceso y medida y el
D.1. ECUACIONES DEL FILTRO DE KALMAN DISCRETO 225

El FK es la estimación óptima del estado bajo los supuestos de sistema lineal y


ruidos de medida y proceso blancos de distribución gaussiana. Bajo estas suposiciones
cualquier valor razonable de predicción óptima coincide (media, moda, mediana,. . . ).
Si se elimina la suposición de ruido gaussiano se demuestra que el FK hace la mejor
predicción (menor varianza del error) de todos los filtros lineales sin-deriva/unbiased 5 .
Justificación de los tres supuestos:

Sistema lineal: Es adecuado para muchos sistemas. Cuando el sistema es no lineal


se trabaja en torno a un punto de equilibrio linealizado. Los sistemas lineales son
más manejables y existen muchas herramientas ingenieriles y la matemática de
estos sistemas es más completa. Existen no obstante planteamientos no lineales
del FK y de otros pero sólo se suele recurrir a ellos cuando se comprueba que los
modelos lineales resultan inadecuados.

Ruido blanco: Es posible argumentar que el nivel de ruido de un sistema real no


sea constante en el rango de frecuencias del sistema o que el ruido este correlado
con el tiempo. Para esta situaciones, un ruido blanco aplicado a un pequeño
sistema lineal (filtro de forma) puede replicar de forma virtual cualquier forma
correlada con el tiempo. El filtro de forma se añadirı́a al sistema original. Al ruido
de salida del filtro de forma, al que se le aplica el ruido blanco como entrada, se
le denomina ruido coloreado.

Distribución gaussiana: El ruido de medida y de proceso suelen estar producidos


por un número de pequeñas ”fuentes”. Se puede demostrar matemáticamente
que cuando un número de variables aleatorias independientes se combinan el
resultado es muy próximo a la densidad de probabilidad gaussiana (campana de
Gauss) a pesar de las forma de las densidades individuales (esto último es literal
de [119]).
Lo anterior se expresa igual, y en el mismo contexto, en [174] y [159], de-
nominándolo en ambos casos Teorema del lı́mite central. No obstante en la ma-
yorı́a de las fuentes consultadas, se expresa dicho teorema con una diferencia
importante: todas las fuentes deben tener la misma distribución y el mismo va-
lor de parámetros. El resultado se parecerá más a una campana de Gauss en la
medida en que el número de fuentes tienda a infinito (esta última idea también
subyace en [119], [174] y [159]).
Hay una discusión en internet donde parece que se clarifica este particular:
http://runpl.us/forum/discussion/454/ continuation-of-thread-on-probability-distributions/

estado inicial no se dice, por lo que: o la dan por supuesta; o se abstraen de la parte de inicialización
del FK. Por el contrario, si que se explicita esta no correlación en el libro de Bar-Shalom [13] (páginas
209 y 210, ecuaciones (5.2.4-7) y (5.2.4-8)).
5
En la página 101 (sección 2.5.1) de [13] (Estimation with applications to tracking and navigation)
se explica que un estimador unbiased es aquel en el que para todos los instantes (cuando no es estático)
el error de estimación tiene media (si se tuvieran muchas réplicas, i.e. muchas secuencias de valores
de medidas) nula, i.e. el valor esperado coincide con el real. Un estimador asintóticamente unbiased
es aquel que lo es en k tendiendo a infinito.
226 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

I am certain of the definition I’ve provided. I’ve consulted several books, studied
the details of the theorem’s proof, and discussed it with a colleague who’s expert
on probability.
The central limit theorem is as I said- it requires the independent variables to be
identically distributed.
What you’re invoking is known as the ”fuzzy central limit theorem”, which is
actually not a theorem at all but just a summary of something which is often
observed: the sum of many small approximately equal independent variables is
approximately normally (estaba mal en el original, ponı́a uniformly) distributed.
This empirical guideline breaks down drastically whenever one or more of the
variables plays a larger role than most of the others.
http://www.wellesley.edu/STAT199/concept5.htm
The fuzzy central limit theorem says that as long as the things that affect a popula-
tion are random, small effects, then in large enough numbers, many distributions
are really Normal.
http://mathworld.wolfram.com/CentralLimitTheorem.html (Sitio de bastante rig-
or)
The ’fuzzy’ central limit theorem says that data which are influenced by many
small and unrelated random effects are approximately normally distributed.
http://www.hisentco.com/Private/Pages/FatChanceThat.html
To answer that, I quote the famous Fuzzy Central Limit Theorem: Data that
are influenced by many small and unrelated random effects are approximately
normally distributed.
Luego parece claro que hay que añadir el adjetivo fuzzy al teorema y tener en
cuenta que más que un teorema es un hecho comprobado empı́ricamente.
A parte, la distribución gaussiana es manejable matemáticamente y, más im-
portante aún, tı́picamente como mucho se conocerán las estadı́sticas de segundo
orden, media y desviación tı́pica o varianza (el FK propaga la predicción o media
x y la incertidumbre o varianza P ) del ruido de proceso. Por lo que en ausencia
de estadı́sticas de mayor orden no hay mejor suposición que asumir distribución
gaussiana.
En definitiva estas suposiciones permiten definir modelos quizás no todo lo exac-
tos que se podrı́an plantear, pero que son manejables para construir estimadores y
controladores, que para otras suposiciones serı́a imposible de plantear/desarrollar,
al menos de forma abordable. Afortunadamente, esta clase de modelos con mate-
mática manejable proporcionan una representación adecuada de un amplio aba-
nico de aplicaciones de interés. Incluso se han desarrollado extensiones del FK
para superar algunas limitaciones como la linealidad (EKF) y extender su rango
de utilización.
Normalmente el vector de medidas y no suele estar acoplado con la entrada por lo
que se tomará D = 0, pero todo el cálculo se podrı́a hacer manteniéndolo de forma
genérica.
D.1. ECUACIONES DEL FILTRO DE KALMAN DISCRETO 227

Además, por simplificar la notación se consideraran las matrices constantes pero


todo el cálculo seguirı́a siendo válido si no fuera ası́.
La predicción de Kalman se realiza en dos fases, primero se propaga con la EE y
luego se corrige con la de salida.
La predicción e incertidumbre (matriz de covarianzas) en la primera fase (propa-
gación), en función de los valores de la iteración anterior, son:

x̂k/k−1 = Ax̂k−1/k−1 + Buk−1 (D.3)


Pk/k−1 = APk−1/k−1 AT + W Qk−1 W T + BJk−1 B T (D.4)

donde Q y J son las matrices covarianzas del ruido de proceso y del ruido de la acción
de control respectivamente. Nuevamente se va a omitir sus subı́ndices para simplificar
la notación, aunque el desarrollo seguirı́a siendo válido si no fuera ası́.
Además normalmente la acción de control o no aparece en la EE (ej. cinemática
de partı́cula) o no tiene ruido asociado (determinista) en cuyo caso el último sumando
de (D.4) es nulo por B = 0 o J = 0 (el desarrollo se podrı́a hacer igual arrastrando el
término).
La predicción e incertidumbre en la segunda fase (corrección) son:

x̂k/k = x̂k/k−1 + Kk (yk − C x̂k/k−1 ) (D.5)


Pk/k = (I − Kk C)Pk/k−1 (I − Kk C)T + (Kk V )Rk (Kk V )T (D.6)

donde R es la matriz de covarianzas del ruido de medida y K la ganancia de corrección.


Nuevamente en adelante se omitirá su subı́ndice para simplificar la notación.

En la página 125 de [174] se distinguen cuatro tipos de estimaciones (las 2 primeras


las del FK):

Estimación a priori (xk/k−1 ): se utilizan medidas hasta el instante anterior

Estimacióna posteriori (xk/k ): se utilizan medidas hasta el instante actual

Estimación suavizada (xk/k+d ): se utilizan medidas posteriores (d > 0) (Cap. 9


del libro de Dan Simon [174])

Estimación predicha (xk/k−d ): se utilizan medidas de hace 2 instantes o más


(d > 1)

A modo de inciso, indicar algunos conceptos de probabilidad (capı́tulo 2 de [174]):

X e Y son vectores de variables aleatorias


Valor medio de un vector → E[X] = X
228 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

Auto-Covarianza:
cov(X) = cov(X, X) = E[(X − X)(X − X T )] = E[X T ] − XX T
2
(los elementos de la diagonal son las varianzas σXi y la raiz cuadrada desviación
tı́pica. La autocovarianza es siempre simetrica y semidefinida positiva,ver [174]
pg. 66).

Covarianza: cov(X, Y ) = E[(X − X)(Y − Y T )] = E[XY T ] − Xy T

Auto-Correlación: corr(X, Y ) = E[XY T ] (los elementos de la diagonal son E[Xi2 ])


(la autocorrelación es siempre simétrica y semidefinida positiva, [174] pg. 66).
Correlación→ corr(X, Y ) = E[XY T ]

Vectores sin correlación(uncorrelated):


corr(X, Y ) = E[XY T ] = E[X]E[Y T ] = XY T → cov(X, Y ) = 0
Dos vectores independientes tiene covarianza nula (i.e uncorrelated )
Al revés no es cierto, en general (ver ejemplos en [174][159]).

Coeficiente de correlación (va de -1 a 1)enter dos variables aleatorias escalares:


ρxy = cov(x,y)
σx σy

Valor medio de un vector con transformación lineal M → E[M X] = M E[X] =


M X Lo mismo sucede con la autocovarianza:

cov(M X) = E[(M X − M X)(M X − M X)T ] = · · ·


· · · = M E[(X − X)(X − X)T ]M T = M cov(x)M T (D.7)

Notar que (suponiendo b y c independientes):



→ cov(a) = cov(b) + cov(c)
a=b+c→
→ std(a) 6= std(b) + std(c)

A la diferencia entre la medida y la matriz C por el estado estimado sin corregir se


le denomina innovación o error residual (igual que en mı́nimos cuadrados, Least Square
LS) y en función de su valor la corrección será mayor o menor. En [174] (pg. 130) se dice
que la innovación se usa muchas veces para ajustar parámetros del FK (esto también
se verifica en muchos artı́culos) y remite a la sección 10.1. De hecho, si el FK es el que
deberı́a (el óptimo), y el sistema responde a las suposiciones de partida, la innovación
deberı́a ser una señal blanca (sin correlación entre el valor en distintos instantes) con
media nula (lo de que la innovación debe ser una señal blanca de media nula también
se dice en [13]) y una matriz de covarianzas igual a (CPk/k−1 C T + V RV T ). Ası́ pues,
el sistema se va auto-ajustando buscando conseguir que lo anterior se produzca.
D.1. ECUACIONES DEL FILTRO DE KALMAN DISCRETO 229

Las ecuaciones (D.3) y (D.5) son las normales del observador o estimador de Luen-
berger. Lo que hace el FK es calcular la corrección óptima en (D.5) para minimizar el
error cuadrático medio de la predicción, siendo el error de predicción xk − x̂k/k . Esto
equivale a minimizar la traza de la matriz de incertidumbres (suma de varianzas de los
estados predichos) matriz de covarianzas de (D.6).

Las reglas de derivación matricial a tener en cuenta son:

∂tr(AXB) ∂tr(AT X T B T )
= = BA
∂X ∂X
(D.8)
T
∂tr(AXBX C)
= BX T CA + B T X T AT C T
∂X

donde la primera expresión de D.8 es para términos lineales y la segunda para cuadrá-
ticos (habrı́a que identificar las matrices {A,B,C} en cada caso concreto).
Puesto que no es posible utilizar la regla del producto ni la de la cadena al derivar la
traza, primero se va a desarrollar completamente la matriz de covarianzas de (D.7):

Pk/k = Pk/k−1 − Kk CPk/k−1 − Pk/k−1 C T KkT + · · ·


· · · + Kk CPk/k−1 C T KkT + Kk V RV T KkT (D.9)

La derivada respecto a la ganancia de la traza de la matriz de covarianzas D.8,


teniendo en cuenta que la traza de la suma es igual a la suma de trazas y D.7, resulta
(en página 85 de [174] se obtiene el LSQ recursivo igual que aquı́, y luego se extiende
al FK).

∂tr(Pk/k ) T
= −CPk/k−1 − CPk/k−1 + CPk/k−1 C T KkT + · · ·
∂Kk
T
· · · + CPk/k−1 C T KkT + V RV T KkT + V RT V T KkT = 0
(D.10)
∂tr(Pk/k )
= 2(−CPk/k−1 − CPk/k−1 C T KkT + V RV T KkT ) = 0 → · · ·
∂Kk
· · · → (CPk/k−1 C T + V RV T )KkT = CPk/k−1

Tomando la transpuesta y despejando la ganancia óptima resulta:

Kk (CPk/k−1 C T + V RV T ) = Pk/k−1 C T → · · ·
· · · → Kk = Pk/k−1 C T (CPk/k−1 C T + V RV T )−1 (D.11)
230 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

Con el valor óptimo de ganancia de (D.11) se puede simplificar la expresión de la


matriz de covarianzas (incertidumbre) de D.8. En efecto, definiendo la matriz auxiliar
S resulta:

Sk = (CPk/k−1 C T + V RV T ) → Kk = Pk/k−1 C T Sk−1 → · · ·


· · · → Kk Sk KkT = Pk/k−1 C T KkT (D.12)

Pk/k = (I − Kk C)Pk/k−1 C T KkT + Kk V RV T KkT )


Pk/k = (I − Kk C)Pk/k−1 − Pk/k−1 C T KkT + Kk (CPk/k−1 C T + V RV T )KkT ···
T T T
Pk/k = (I − Kk C)Pk/k−1 − Pk/k−1 C Kk + Kk Sk Kk
P = ··· )
k/k
Pk/k = · · · = Pk/k = (I − Kk C)Pk/k−1
Pk/k = · · ·
(D.13)

Ası́ pues las ecuaciones del FK son {(D.3), (D.4), (D.11), (D.5), (D.13)} donde
hay que conocer las condiciones iniciales del vector de estado y matriz de covarianzas
{x(−1), P (−1)} (suponiendo que la primera medida empieza en el instante 0) ası́ como
los ruidos de proceso y de medida en cada instante {Q, R}.

El predictor óptimo obtenido (FK) resulta ser un sistema dinámico recurrente, al


igual que el sistema original, dado por {(D.3), (D.10)}. Estas ecuaciones del predictor,
que calculan la ganancia de corrección, no dependen de las medidas, sólo dependen de
la incertidumbre P inicial y del ruido de proceso Q y de medida R de cada instante.
Por lo que el cálculo del predictor óptimo o FK (i.e. obtener la matriz de corrección)
se puede hacer a priori, off-line, si dichos ruidos son conocidos.
De hecho la matriz o ganancia de corrección se puede también calcular utilizando
la teorı́a de probabilidad (predicción condicional óptima en [159] Anexo C, Sección
C.7) en función de la covarianza (o correlación) entre variables:

x̂k/k + cov(xk , yk )(cov(yk , yk ))−1 (yk − C x̂k/k−1 ) (D.14)


donde las matrices de covarianzas (omitiendo el subı́ndice k en el cálculo) son:

cov(x, y) = E[(x − x)(C(x − x) + V η)T ] = E[(x − x)(x − x)T ]C T + · · ·


· · · + (E[xηT ] − xE[ηT ])V T = cov(x, x)C T → cov(yk , yk ) = Pk/k−1 C T
(D.15)
T T
cov(y, y) = E[(C(x − x) + V η)(C(x − x) + V η) ] = Ccov(x, x)C + · · ·
· · · + V cov(η, η)V T → cov(yk , yk ) = CPk/k−1 C T + V RV T

resultado que coincide con el D.11.


La justificación de la ganancia de corrección de D.14 se hace en [159] (sección C.7)
demostrando que el error (tras aplicar la corrección) está uncorrelated (covarianza
D.1. ECUACIONES DEL FILTRO DE KALMAN DISCRETO 231

Figura D.1: Representación gráfica de muestras.

nula) con la medida, y por lo tanto no se puede utilizar más ésta para reducirlo.
Evidentemente para poder utilizar este tipo de demostración hace falta un conocimiento
a priori de la solución, para luego verificar que efectivamente lo es.
Estas mismas fórmulas {D.14, D.15} se deducen también en el apartado 10.5.1 (lo
denomina obtención del FK utilizando principios estadı́sticos) de las páginas 318 y 319
de [174] ecuaciones (10.97) y (10.98) (a diferencia de [159] la solución no es conocida
a priori). De hecho, este apartado (deducción estadı́stica del FK) se introduce en el
capı́tulo 10 de [174] como antesala para poder considerar el FK con medidas retardadas
(ver apartado de FK con medidas retardadas), que lo toma de [11][15].
Es muy importante tener en cuenta que si existe correlación entre dos señales el
conocimiento de una permite mejorar la predicción de la otro, pero esta correlación no
implica en absoluto causalidad entre ambas, e.g. una no tiene porque provocar la otra.
(Esto se remarca en [159] con varios ejemplos).
También es importante tener en cuenta que el coeficiente de correlación (ej. Pear-
son correlation) indica la intensidad de la relación lineal entre dos variables, pero ese
valor por sı́ mismo (solo) no es suficiente para evaluar esta relación, sobre todo si la
suposición de normalidad (i.e. distribución normal) es incorrecta. Por ejemplo, en las
cuatro gráficas de la figura D.1 se representan muestras que relacionan cuatro pares
diferentes de variables. En los cuatro casos todas las variables tienen la misma media
(7.5), desviación tı́pica (4.12) y coeficiente de correlación (0.81).
La primera (x1) es lo que se podrı́a esperar (cumple distribución norma). La segunda
(x2) no cumple suposición de normalidad y se observa que la relación entre las variables
es no lineal, por lo que el coeficiente de correlación de Pearson es relevante. En la
tercera gráfica (x3) la relación es perfectamente lineal, excepto por una muestra errática
(outlier : desviación extrema de la media) que hace que la correlación pase de 1 a 0.81.
Finalmente, en la cuarta (x4) se ve que el outlier es el que produce un alto coeficiente de
correlación, aunque la relación entre las variables sea no lineal. Por tanto el coeficiente
232 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

de correlación no puede sustituir el examen individualizado de los datos.


Tener en cuenta que el FK realiza la mejor predicción considerando que ésta es
aquella que minimiza el error cuadrático medio, lo cual no serı́a lo más óptimo si se
consideran otros criterios: ej. el valor más probable (moda), la mediana, etc. (Si el
sistema es lineal y cumple todos los supuestos del FK, los valores obtenidos con casi
cualquier criterio razonable coinciden: media = moda = mediana . . . )

D.2. Régimen Permanente del Filtro de


Kalman Discreto
Como se ha comentado anteriormente, el FK es un sistema dinámico recurrente,
al igual que el sistema original, dado por D.3,D.10. Por lo tanto, tras un tiempo la
matriz de corrección K, ası́ como la matriz de incertidumbres P (ambas caracterizan
al predictor), se estabilizarán a un valor, siempre y cuando se den las condiciones de
estabilidad necesarias.

A continuación se describen dichas condiciones de estabilidad:

En primer lugar tener en cuenta que el valor predicho puede tender hacia
infinito (ej. sistema inestable) o no, pero lo importante para que dicho
valor predicho tenga utilidad (independientemente de cuál sea éste) es que
la incertidumbre no tienda a infinito.
La incertidumbre de la parte del estado observable con las medidas esta
acotada (no tiende a infinito). Esta incertidumbre acotada será en el peor
de los casos la que marcan las medidas (la que marca la varianza del ruido
asociado a estas).
La incertidumbre de la parte del estado NO observable con las medidas sólo
estará acotada si el sistema es (estrictamente) estable (e.g. en discreto polos
de A están dentro del cı́rculo unidad). En dicho caso, la dinámica conver-
gente de la EE compensa la dispersión o crecimiento de la incertidumbre
que produce el introducir variables aleatorias en cada iteración.

En resumen:

Parte observable: incertidumbre acotada


Parte NO observable: incertidumbre acotada si el sistema es estable

No hay que confundir que un estado sea observable con las medidas con
que tenga correlación con estas. Hay un ejemplo en el Tema 3 de [159] en el
que se puede ver que el estado x2 es no observable pero tiene correlación6
6
La evolución de x2 depende de sı́ misma y de x1. Como x1 se mide hay correlación entre x2 e y.
Sin embargo la evolución de x1, que es la que se mide, sólo depende de sı́ misma, por tanto x2 no es
observable. En otras palabras hay una parte de x2 que es observable (la que le aporta x1) y otra que
no, por eso tiene correlación con la medida pero no es completamente observable.
D.2. RÉGIMEN PERMANENTE DEL FILTRO DE
KALMAN DISCRETO 233

con la medida y. De modo que, la medida permite mejorar la predicción


de x2 pero no consigue acotar su incertidumbre (su incertidumbre tiende
a infinito porque el polo asociado a ese estado en la EE es marginalmente
estable).
Finalmente, cabe indicar que el valor predicho tiende a infinito (aunque ya
se ha comentado que en principio no es relevante desde el punto de vista
de la estimación, que lo que pretende reflejar es la realidad del valor que
tenga el estado, sea grande, pequeño o lo que fuere) en el caso de que el
sistema sea inestable o marginalmente estable con entrada no nula.

El valor de régimen permanente de ganancia e incertidumbre se calcula resolviendo


la ecuación de Ricatti. Por ejemplo en Matlab el comando dare resuelve dicha ecuación:

[P , L, G] = dare(A0 , C 0 , Q, R)

Ver pie de página 194 de [174] (M: correlación entre ruido de proceso y de
medida)
L⇒ polos de la FDT
P ⇒ es Pk+1/k (∞),que no coincide con Pk/k (∞), ya que serı́a
Pk+1/k (∞) = APk/k (∞)AT + Q(notar que Pk/ )(∞) < Pk+1/k (∞) ya que la
primera es la incertidumbre tras la corrección)
La ganancia se calcuları́a K(∞) = Pk+1/k (∞)C T (CPk+1/k (∞)C T + R)−1

Hay casos en los que no es conveniente utilizar la solución del régimen permanente del
FK. A continuación se muestra un ejemplo al respecto.

Una perturbación determinista (página 70 de [159]) de un sistema se puede


modelar como un proceso marginalmente estable (tabla 3.1 del libro) con
distribución no normal, sino más bien con evolución temporal en forma de
pulsos (figura 3.4 de [159]). Estos estados adicionales, evidentemente no
controlables, se añadirı́an al modelo del proceso original.
La perturbación determinista se considera desconocida a priori, por lo que
al proceso (marginalmente estable) que modela la perturbación determi-
nista se le aplicarı́a como entrada una variable aleatoria de varianza muy
pequeña y los estados de dicho proceso tendrı́an incertidumbre inicial muy
grande. En estas condiciones las primeras iteraciones son importantı́simas
para determinar la perturbación determinista, ya que el régimen perma-
nente tendrı́a una corrección nula de sus estados.
Si la perturbación determinista cambia bruscamente no se estima correcta-
mente ya que su estimación está anclada. Para evitar esto se puede conside-
rar una mayor varianza de la variable aleatoria que se aplica como entrada
al modelo de la perturbación, i.e. aumentar la ganancia de corrección del
234 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

permanente. Otra opción serı́a reiniciar el filtro cuando se detecte un error


grande en la estimación (ej. a través de la secuencia de innovación como
hacen muchos algoritmos de cambio de las condiciones del filtrado)

Finalmente, indicar que el paseo aleatorio (figuras 3.5 y 3.8 de [159]) viene dado por
una EE marginalmente estable con una entrada aleatoria, e.g. xk+1 = xk + vk . Por lo
que, si el estado no se mide (o no es observable), la incertidumbre tiende a infinito y
el valor medio (predicho) es igual al inicial.

D.3. Casos Lı́mite del Filtro de Kalman Discreto


Los casos lı́mite del FK son los siguientes:

Modelo del proceso (EE) perfecto y las medida (ES) imprecisas: Q = 0, R 6= 0


En el caso de que el sistema sea estable (todos los valores propios de la matriz del
proceso A menor que 1) K → 0 (ya que P → 0), i.e. no se corrige con medida.

Modelo del proceso (EE) impreciso y las medidas (ES) perfectas: Q 6= 0, R = 0


Si C es cuadrada y no singular K → C −1 , es decir que se corrige completamente
con la medida.
Si C no es cuadrada se utilizan todo lo posible las medidas y cuando no haya
más remedio la parte del proceso (EE) que haga falta para establecer las variables
observables indirectamente.

Modelo del proceso (EE) perfecto y las medida (ES) perfectas: Q = 0, R = 0


Si el sistema es estable (todos los valores propios de la matriz del proceso A
menor que 1) se produce una indeterminación en régimen permanente:

K → 0/0 (ya que P → 0 y R = 0)

D.4. Función de Transferencia del Filtro de Kalman


Discreto
La función de transferencia (FDT) del FK una vez alcanzado el régimen permanente
(Kk = K∞ = K) será la de un observador más, que es fácil de obtener como el cociente
entre el estado estimado y la medida obtenida, ambas en el dominio z.
En concreto la FDT entre el estado estimado tras la corrección y la medida es:

)
xk/k−1 = Axk−1/k−1 xk/k (z)
= = (zI − (IK C)A)−1 Kz (D.16)
xk/k = xk/k−1 + K(yk − Cxk/k−1 ) yk (z)
D.5. SUAVIZADO DE LA ESTIMACIÓN
(OPTIMAL SMOOTHING/RETRODICTION) 235

Mientras que la FDT entre el estado estimado sin la correción y la medida es:

)
xk/k = xk/k−1 + K(yk − Cxk/k−1 ) xk/k−1 (z)
= = (zI − (IK C)A)−1 AK (D.17)
xk+1/k = Axk/k yk (z)

Notar que en la primera FDT hay acoplamiento entrada-salida medida-estimación)


y en la segunda FDT no, aunque ambas tienen el mismo denominador y las mismas
condiciones de estabilidad. Las FDTs genéricas anteriores se han aplicado para el caso
concreto de los filtro αβ y αβγ y se pueden corroborar en [101] y [187].
En concreto para analizar la estabilidad de sistemas discretos se utiliza test de
estabilidad de Jury (también aparece como tabla de Jury). Esta tabla es equivalente a
la de Routh-Hurwitz utilizada para analizar la estabilidad en continuos [203].

Se puede deducir que Routh-Hurwitz (RH) aplicado a sistemas digitales:


Because of the differences in the Z and S domains, the Routh-Hurwitz
criteria can not be used directly with digital systems. This is because digi-
tal systems and continuous-time systems have different regions of stability.
However, there are some methods that we can use to analyze the stability
of digital systems. Our first option (and arguably not a very good option)
is to convert the digital system into a continuous-time representation using
the bilinear transform. The bilinear transform converts an equation in the
Z domain into an equation in the W domain, that has properties similar
to the S domain. Another possibility is to use Jury’s Stability Test. Jury’s
test is a procedure similar to the RH test, except it has been modified to
analyze digital systems in the Z domain directly. Jury’s test is a test that is
similar to the Routh-Hurwitz criterion, except that it can be used to analyze
the stability of an LTI digital system in the Z domain.

Téngase en cuenta que el análisis de estabilidad puede dar el rango de valores


posibles para las ganancias del estimador (ej. en filtros αβ/γ) pero en ningún caso los
valores óptimos, que deberán responder a algún tipo de criterio de diseño: minimizar
suma de varianzas de los estados predichos (FK), etc.

D.5. Suavizado de la estimación


(Optimal Smoothing/Retrodiction)
Del análisis de [174] (las fórmulas que se ponen son para estimación de estados y
varianzas a priori. De hecho, para poder hacerlo ası́ se utiliza una nueva forma del FK
donde en lugar de la ganancia K se tiene la ganancia L y la estimación y varianza
son a priori). Las referencias que utiliza [174] son de final de los 60s y principio de
los 70s.
Se tienen tres tipos distintos de suavizado.
236 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

Fixed-point (Punto fijo): el estado a estimar permanece fijo y las medidas van
avanzado.
Un ejemplo de este tipo serı́a una imagen tomada por un satélite y cuya precisión
depende de la posición del satélite en el instante de adquisición. Por tanto se
puede mejorar la precisión de la imagen teniendo en cuenta medidas posteriores
de la posición del satélite, i.e. suavizando la posición del satélite en el instante
de adquisición.
Antes de que se rebase el instante k a considerar se utiliza el FK normal. Una
vez rebasado se amplia la EE con un nuevo elemento x0 que se inicializa con el
valor estado x estimado en k y cuya parte de la EE tendrá A = I y Q = 0, i.e.
x0(k+1) = x0(k) . Notar que x0 no tiene ruido de proceso y que el nuevo estado no
afectará a la salida.
Computacionalmente no se tiene un FK de dimensión 2n sino dos cálculos equiv-
alentes a un único FK con dimensión n. Esto se consigue simplificando el FK
ampliado con x0 .
Como se muestra en el libro de Simon, el suavizado no sirve para mejorar estados
deterministas constantes (A = I, Q = 0).
Fixed-lag (Separación fija): la distancia entre el estado a estimar y la última
medida disponible permanece fija, ej. x(k/k+N ) .
Utilizando el mismo ejemplo anterior de la imagen tomada por el satélite, este
tipo de suavizado se producirı́a cuando hay un lapso de tiempo (por ejemplo por
procesamiento de la imagen) entre el momento en que se toma la imagen y el
momento en que se envı́a. Por tanto, en ese lapso se puede mejorar la precisión
con medidas posteriores de la posición del satélite.
Para resolver este suavizado se amplı́a la EE con un número N de estados (ó N+1
si la estimación es a priori) que representan una propagación hacia atrás (sin
ruido) del estado actual, lo que permite retrotraerse al estado deseado.
Computacionalmente no se tiene un FK de dimensión (n N) o (n (N+1)) sino un
 

FK principal de dimensión n, en el que además en cada iteración se ejecuta un


bucle de N ó (N+1) iteraciones, cada una con un coste un poco superior (porque
hay 1 ecuación más) a la de un FK de dimensión n. Esto se consigue simplificando
el FK ampliado.
En [133] se particulariza el smoothing tipo fixed-lag para el filtro αβ steady-state,
obteniendo las fórmulas recursivas de las ganancias en función únicamente de los
parámetros alpha y beta. También se obtiene la mejora absoluta de la covarianza
incertidumbre tras el suavizado, en función de los coeficientes de ganancia.
Bajo la perspectiva del artı́culo de Ogle se podrı́a particularizar este mismo
suavizado para el filtro αβγ o particularizar algún algoritmo de predicción (pre-
diction) o medidas fuera de secuencia del FK al filtro αβ(γ).
Fixed-interval (Intervalo fijo): las medidas disponibles están fijas (ej. hasta
N) y se estiman todos los estados hasta la última medida disponible (ej. de 1
hasta N).
D.6. ESTIMACIÓN FUTURA O PREDICCIÓN (PREDICTION) 237

Por lo visto este suavizado es más complejo matemáticamente, y es el que se


utilizarı́a cuando se guardan los datos (estimaciones) para poder aplicarles un
post-procesado.
En [174] se presentan 2 algoritmos de este tipo suavizado:


Forward - backward (1969): Se aplica el FK normal de 1 a m (estado a


suavizar) y un filtro backward de N a m. Ambos resultados se suman de
forma óptima para dar lugar al valor del estado suavizado.
Para el filtro backward no se puede utilizar el FK, P − (N ) = ∞, y utiliza
un filtro de información (que propaga la inversa de P ). Aún ası́ ha de hacer
varias aproximaciones para poder propagar el filtro de información.


RTS smoothing (1965): Computacionalmente es más eficiente que el método


anterior. Parte de un filtro forward de 1 a N y otro backward de N-1 a 1.
Tras un complejo análisis matemático, el filtro backward se sustituye por un
conjunto sencillo de ecuaciones recursivas de N-1 a 0.

D.6. Estimación Futura o Predicción (Prediction)


Del análisis de [13]: Estimation with applications to tracking and navigation.

Se tienen los mismos tres tipos que en el apartado anterior, pero ahora el estado a
estimar es posterior a la última medida disponible:
Fixed-point(Punto fijo): el estado a estimar permanece fijo y las medidas van
avanzado hacia él, ej. x(N/k) con k = 0, 1, 2,. . . ,N-1.
Fixed-lag(Separación fija): la distancia entre el estado a estimar y la última
medida disponible permanece fija,ej. xk+N/k ).
Fixed-interval (Intervalo fijo): las medidas disponibles están fijas (ej. hasta N)
y se estiman todos los estados hasta la última medida disponible, ej. x(k+N/N )
con k = 1, 2, 3, etc.
La base de los tres tipos de predicción es la propagación con la EE, ecuación (8.5.2-
1) de [13]. Lo único que hace en cada tipo de predicción es particularizar esa ecuación
poniéndola en forma recursiva: para la estimación del estado obtiene las ecuaciones
(8.5.2-3), (8.5.2-7), (8.5.2-10) y para su covarianza las ecuaciones.
La ecuación de predicción del estado (ecuación (8.5.2-1)) es computacionalmente
menos costosa que las recursivas. Esto no ocurre con la covarianza (incertidumbre)
de dicha predicción, ya que en su forma recursiva sólo se pone el ruido de proceso
de la última iteración, y no los de todas las iteraciones propagadas (que van desde
la medida considerada más adelantada y el estado a predecir), como ocurrirı́a en la
fórmula general de propagación de covarianzas con la EE.
Es importante resaltar que, en cada iteración será necesario calcular el FK normal
tanto en el caso de predicción fixed-point como en el fixed-lag, ya sea para obtener
x(k/k) o la ganancia de Kalman y la innovación.
238 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

D.7. Estimación con Medidas Fuera de Secuencia


(FK con medidas retrasadas)
A diferencia de lo que ocurre en el Smoothing, la mayorı́a de referencias de este
caso (medidas con retardo) son de los 90s y 2000s (ver 1er párrafo de página 318 de
[174]). Lo cual resulta sorprendente, ya que aparentemente parece una situación habitu-
al en sistemas multi-sensoriales (cámaras, encoders, ultrasonidos, rádares, GPSs, etc.).

En esta referencia, se utiliza una versión del FK en la que la ganancia aparece como
Pxy Py−1 , i.e. cov(x, y)cov(y, y).
El método de [11] se realiza en un único paso (es decir, no es un método recursivo)
haciendo 5 cálculos, donde fundamentalmente se hace el suavizado (retrodiction) del
estado en el instante asociado a la medida retrasada, que se utiliza para poder incor-
porar dicha medida. Este método sólo se puede comparar con lo exacto (incorporar las
medidas en orden, i.e. en el instante al que están asociadas) si la medida está asociada
exactamente a k − 1). El algoritmo exacto que se propone se simplifica computacional-
mente en dos versiones si se desprecian algunos términos (ruido de proceso, etc.).
En [14] se amplı́a el método de [11] para que el momento en el que se produzca
la medida fuera de secuencia no pertenezca necesariamente entre k − 1 y k, i.e. estar
entre7 (k − l) y k con l > 0. Esto lo realiza con el cálculo en un único paso8 , para
lo cual lo único que se hace es calcular un medida equivalente (que tenga el mismo
efecto) a las medidas comprendidas entre (k − l + 1) y k, para posteriormente utilizarla
directamente en el planteamiento de [11].
No obstante, lo planteado en [14] realiza alguna aproximación (hay una condición
de ortogonalidad entre ruidos al obtener la medida equivalente) que pueden justificar
que el resultado con el algoritmo no coincida con lo exacto, que da por hecho que
es procesar las medidas en el orden temporal al que corresponden (tablas I y II de
[174]) (esto servirá para ver lo exacto que es cualquier método que incorpore medidas
retrasadas).
Por otra parte, en [12] se replantea el método anterior considerando 2 pasos de
cálculo en lugar de 1. Justifica la necesidad diciendo que la incorporación de la medida
respecto al estado actual puede tener poca covarianza (matriz de corrección baja),
sobre todo si l es grande, y afectará poco en la estimación. Por tanto lo que se hace
es incorporar la medida respecto al estado de un instante inmediatamente anterior o
posterior y luego trasladarlo al estado en instante actual.

7
Hay que tener en cuenta que la medida no tiene porque producirse en un instante de tiempo
que coincida con uno de los discretos, igual que ocurrı́a en [11]. De hecho esto hace que el suavizado
(calcular un estado con medidas posteriores a éste), necesario para aplicar el algoritmo de [11], no
sea de los habituales (estándares). A parte, se explica en uno de los artı́culos de Bar-Shalom que el
suavizado no se puede hacer de forma equivalente al FK porque el ruido de proceso no es independiente
del estado actual, en definitiva que las correlaciones nulas entre determinados términos ya no están
garantizadas.
8
En [12] se habla de métodos tı́picos recursivos (recursivos porque no lo hacen en un paso como lo
plantea él en [14], sino que lo harı́a en l pasos) para incorporar medidas con retardo, que se dice que
son más lentos que recalcular directamente el filtrado con los nuevos datos.
D.8. COMPARACIÓN DEL FILTRO DE KALMAN DISCRETO CON OTROS
ALGORITMOS 239

D.8. Comparación del Filtro de Kalman Discreto


con Otros algoritmos
El FK discreto es una generalización de la predicción lineal óptima (teorı́a de pro-
babilidad, predicción condicional óptima, regresión lineal, algoritmo LS ... → [159],
Anexo C, Sección C.7), la cual estaba restringida a relaciones estáticas entre variables
(ej. y = Cx + b), incorporando la relación dinámica fijada por la ecuación de estado
(página 67 de [159]). Se puede decir que el FK permite hacer una predicción lineal
óptima de medidas futuras (evolución del estado) con medidas presentes y pasadas.
A modo de ejemplo de equivalencia, las ecuaciones del algoritmo de mı́nimos cuadra-
dos (Least Square, LS) recursivo se pueden obtener con el FK discreto particularizado
con {A = I, B = 0, Q = 0} dando lugar a la ecuación tı́pica de medida y = Cx
donde C se construye con las medidas y las entradas y x es el vector de parámetros
a estimar. Observar que K no tenderı́a a 0 (al ser Q = 0) porque la matriz A es la
identidad (sistema marginalmente estable). La regresión se llama lineal porque es afı́n
a los parámetros a estimar (i.e. estos aparecen en forma lineal), aunque las variables
pueden aparecer en forma no lineal (si esto fuera ası́ la gráfica no tendrı́a forma de
recta), e.g. y = ax3 + bx2 + cx.
El FK discreto se puede ver, desde la perspectiva de filtros digitales, como un caso
particular de filtro digital paso bajo con respuesta impulsional infinita.
Del mismo modo, se puede considerar como un caso particular de filtro Bayesiano
en el que suponen sistema lineal (f,h) y distribuciones de probabilidad gaussianas.
Se puede considerar también como un filtro de información donde la matriz de
covarianzas serı́a la matriz de información y el estado estimado el vector de información.
La única diferencia realmente entre el FK y el filtro de información es que el segundo
propaga la inversa de la matriz de covarianzas P (página 156 de [174]) en lugar de
dicha matriz.

D.9. Otras Variantes Similares al Filtro de Kalman


Discreto (Filtros Predictivos)
Existen en la bibliografı́a algoritmos similares al FK pero que trabajan con distintas
condiciones o hipótesis:

Página 68 de [159]: Existen formas del cálculo de la matriz de incertidumbre (3


ecuaciones del FK a parte de las del observador normal) que son más eficientes
computacionalmente, que evitan la inversión de matrices. Además, se pueden
deducir expresiones del FK para cuando se considera que existe correlación entre
el ruido de proceso y ruido de medida, i.e. cuando no hay independencia (esto
se hace también en varios capı́tulos del libro de Simon en el que se generaliza el
FK).

Filtro de Kalman continuo: Es análogo al discreto pero de poca aplicabilidad


práctica, siendo mucho más popular (extendida, utilizada,. . . ) la versión discreta.
240 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

Filtro de Kalman Extendido (EKF): Es para sistemas no lineales, a los que se le


aplica una aproximación de 1er orden respecto al instante anterior para aplicar
las ecuaciones tı́picas del FK de sistemas lineales.

Filtro de Kalman Extendido e Iterado (Iterated Extended KF): Es una variante


del anterior que mejora los problemas que éste tiene cuando el estado anterior es-
timado, respecto al cual se linealiza, es muy distinto del real y la no linealidad del
sistema es muy fuerte (esas son las dos condiciones para las que la aproximación
de primer orden deja de ser válida).

Filtro de Kalman con Factor de Olvido (Fadding KF): Es un filtro en el que se


introduce un factor de olvido que limita la memoria del filtro y que permite que
los posibles cambios en el sistema (parámetros del modelo y del ruido) no afecten
demasiado a la estimación. Es decir la corrección del filtro dependerá también
del factor de olvido, que intentará paliar los cambios en el sistema.

Filtro de Partı́culas: Se trata de un filtro en el que las funciones de densidad


de probabilidad vienen dadas por múltiples muestras aleatorias (no por unos
parámetros de distribuciones estándar, ej. uniformes o gaussianas, como ha-
cen otros algoritmos), lo que se denomina representación basada en partı́culas
o muestreo.

Unscented Kalman Filter : Este filtro es para sistemas no lineales como el EKF,
pero a diferencia de este no lleva a cabo ningún proceso de aproximación lineal.
En concreto utiliza varias partı́culas, cuidadosamente situadas, para propagar
las gaussianas. Es más preciso que el EKF (por no hacer aproximación lineal) y
más rápido que el filtro de particulas por que utiliza menos particulas (crecen
linealmente con la dimensión del vector de estados del sistema).

Square Root Filtering: (página 158 de [174]) es una variante del FK para evitar
problemas numéricos en implementaciones hardware del FK con poca resolución.

D.10. Estimación de la velocidad usando KF


Si se comparan en simulación un FK de velocidad constante {Kv → Second-order
(or two-state) newtonian 9 system with a position measurement y otro de aceleración
constante (Ka) {i.e. filtros cuya cinemática es de dimensión orden uno y dos (tener en
cuenta que el orden es el de la mayor derivada de la posición que aparece)} para el
caso de velocidad real simulada del objetivo constante resulta mejor el filtro Kv.
El motivo serı́a porque el Kv está facilitándole al filtro la estimación porque la es-
tructura indicada corresponde exactamente con el movimiento real (simulado), mien-
tras que el Ka al ser más general puede confundir el ruido en la medida con acelera-
ciones, i.e. tiene más variables de estado a considerar en la estimación, además de la
propagación del error que considera el algoritmo a través de la aceleración (de hecho
9
A los modelos Newtonianos a veces se les denomina modelos cinemáticos (capı́tulo 6 de [13]:
Estimation with applications to tracking and navigation), ej. second-order kinematic system.
D.10. ESTIMACIÓN DE LA VELOCIDAD USANDO KF 241

debido a esto el algoritmo del Ka cree que tiene mayor incertidumbre P que la que
realmente hay).
Se considera que el planteamiento de este apartado puede quedar mucho más claro
con la función de Matlab implementada:
% Comparativa de Filtro de Kalman de velocidad cte (Kv) y aceleración
% cte (Ka) para velocidad real constante
% Parámetros de tiempos e inicialización vectores
T=1; N=300; Nr=200; pos_final=1e3; xv=[]; xa=[]; xr=[]; y=[];
pos=[]; xr(1:2,1,1:Nr)=[zeros(1,Nr);ones(1,Nr)*(pos_final/N)/T];
xv(1:2,1,1:Nr)=[zeros(1,Nr);ones(1,Nr)*(pos_final/N)/T];
xa(1:3,1,1:Nr)=[xv(1:2,1,1:Nr);zeros(1,1,Nr)];
% La incertidumbre de los valores iniciales se pone a un valor cualquiera
Pv=[]; Pa=[]; Pv(1:2,1:2,1)=1e1*eye(2); Pa(1:3,1:3,1)=1e1*eye(3);
Kv=[]; Ka=[];
% Matrices para el filtro de Kalman de velocidad constante
Av=[1,T;0,1]; Cv=[1,0]; Wv=[T^2/2;T];
% Matrices para el filtro de Kalman de aceleración constante
Aa=[1,T,T^2/2;0,1,T;0,0,1]; Ca=[1,0,0]; Wa=[T^3/6;T^2/2;T];

% Ruidos de medida y proceso (todos son desviación tı́pica)


ruido_y=10; % ruido en medida, ej. 10 pı́xeles si es control visual
ruido_proceso=sqrt(ruido_y^2/5)*2/T^2;
% sqrt(ruido_y^2/H)*2/T^2; % Se le pone un ruido de proceso para que sea comparable
% en la posición al de medida (justificación en "Resultados Simulaciones.doc")
% Ruido supuesto de aceleración y jerk para filtros Kv y Ka
ruido_a=ruido_proceso;
ruido_j=ruido_proceso*3/T;% Conversión a ruido de jerk equivalente
% A pesar de esta equivalencia de ruidos en los filtros Kv y Ka (se puede considerar
% que es de jerk ó aceleración), ambos no son iguales ya que en el filtro Ka
% se produce una propagación de ruido a través del estado aceleración que el Kv no tiene
% I.e. la EE real es de velocidad cte, al margen de que se considere ruido
% de proceso de aceleración ó jerk (parte no modelada), por lo que la
% propagación de ruidos a traves del estado aceleración no deberı́a estar
% Matrices de covarianzas (R es exacta)
R=ruido_y^2; Qv=Wv*ruido_a^2*Wv’; Qa=Wa*ruido_j^2*Wa’;
% Cálculos de ganancias del régimen permanente del FK de Kv y Ka
% Tener en cuenta que P_perm es Pk+1/k(inf), no Pk/k(inf)
Pv_perm = dare(Av’,Cv’,Qv,R);
Kv_perm=Pv_perm*Cv’*inv(Cv*Pv_perm*Cv’+R); Pa_perm =
dare(Aa’,Ca’,Qa,R); Ka_perm=Pa_perm*Ca’*inv(Ca*Pa_perm*Ca’+R);
% Los polos del steady-state KF se ven en L con: [P_perm,L,G]=dare(A’,C’,Q,R)
tic;
for i=1:Nr, % Bucle de replicas de simulación Monte Carlo
for k=1:N,
% Cálculo de la medida con error
y(k,i) = xr(1,k,i) + ruido_y * randn; % Medida con ruido
% ******* Inicio Estimador de KALMAN ******************************
% Se empieza corrigiendo estado inicial con primera medida
%(primero parte de corrección y después actualización para siguiente ciclo)
Kv(1:2,k)=Pv(:,:,k)*Cv’*inv(Cv*Pv(:,:,k)*Cv’+R); % Ganancia
Ka(1:3,k)=Pa(:,:,k)*Ca’*inv(Ca*Pa(:,:,k)*Ca’+R); % Ganancia
xv(:,k,i)= xv(:,k,i)+ Kv(:,k)*(y(k,i)-Cv*xv(:,k,i)); % Estimación condicional
xa(:,k,i)= xa(:,k,i)+ Ka(:,k)*(y(k,i)-Ca*xa(:,k,i)); % Estimación condicional
Pv(:,:,k)=(eye(2)-Kv(:,k)*Cv)*Pv(:,:,k); % Mejora de Incertidumbre
Pa(:,:,k)=(eye(3)-Ka(:,k)*Ca)*Pa(:,:,k); % Mejora de Incertidumbre
% Tener en cuenta que la mejora de incertidumbre {Pk/k} machaca el
% valor anterior {Pk/k-1} por lo que sólo queda en memoria el primero
% (recordar también que el régimen permanente de ambos no coincide,
% sino que se relaciona con la ec "incertidumbr sin corrección")
% Estimación condicional del Ka utilizando ganancia de régimen
% permanente (machaca valor de ganacia calculado antes)
% xa(:,k)= xa(:,k) + Ka_perm * (y(k)-Ca*xa(:,k));
% Se sale si es la última iteración (no se prepara la siguiente)
if k==N, break; end;
% Preparación siguiente iteración de Kalman
xv(:,k+1,i)=Av*xv(:,k,i); xa(:,k+1,i)=Aa*xa(:,k,i);
Pv(:,:,k+1)=Av*Pv(:,:,k)*Av’+Qv; % Incertidumbre sin corrección
242 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

Pa(:,:,k+1)=Aa*Pa(:,:,k)*Aa’+Qa; % Incertidumbre sin corrección


% ******* FIN Estimador de KALMAN *******************************
% ********* Evolución real del sistema (vel constante + parte no modelada)
% ********(para utilizar en la siguiente iteración)*******************
xr(:,k+1,i) = Av * xr(:,k,i) + Wv * ruido_proceso * randn;
end;
end; tpo_computo = toc /(Nr*N);
% Además el cálculo de la medida y de la evolución deberı́an ir a parte
% Cálculo de errores
D=50; % N de instantes a despreciar al calcular las medias (quitar efecto inicialización)


error_Kv=[]; error_Ka=[]; aux=[]; aux(:,:)=xr(1,:,:); for i=1:N,


error_Kv(i)=sqrt(sum((xr(1,i,:)-xv(1,i,:)).^2)/Nr);
error_Ka(i)=sqrt(sum((xr(1,i,:)-xa(1,i,:)).^2)/Nr);
error_med(i)=sqrt(sum((aux(i,:)-y(i,:)).^2)/Nr);
end;
% Errores de Predicción Absolutos (Kv, Kv medio, Ka, Ka medio)
close all; t=(0:N-1)*T; figure; plot(t,error_Kv,’b’); hold;
plot(t,ones(1,N)*mean(error_Kv(D:N)),’k’); plot(t,error_Ka,’m’);
plot(t,ones(1,N)*mean(error_Ka(D:N)),’r’);
xlabel(’Tiempo (secs)’); % ylabel(’Desviación tı́pica del error’);
title(’Desviación tı́pica del error de predicción (instantáno y
media)’);
legend(’Error Kv’,’Error Kv Medio’,’Error Ka’,’Error Ka Medio’);%,’Position’,[0,0,0,0]);
% Comparación del error que cree tiene el algoritmo y el real
std_v=[]; std_a=[]; std_v(1:N)=Pv(1,1,1:N).^.5;
std_a(1:N)=Pa(1,1,1:N).^.5; figure; plot(t,error_Kv,’b’); hold;
plot(t,ones(1,N)*mean(error_Kv(D:N)),’k’); plot(t,std_v,’c’);
xlabel(’Tiempo (secs)’); % ylabel(’Desviación tı́pica del error’);
title(’Comparación del error de predicción real y del algoritmo
(std) para Kv’); legend(’Error Kv real’,’Error Kv Medio
real’,’Error Kv algoritmo’);
figure; plot(t,error_Ka,’b’); hold;
plot(t,ones(1,N)*mean(error_Ka(D:N)),’k’); plot(t,std_a,’c’);
xlabel(’Tiempo (secs)’); % ylabel(’Desviación tı́pica del error’);
title(’Comparación del error de predicción real y del algoritmo
(std) para Ka’); legend(’Error Ka real’,’Error Ka Medio
real’,’Error Ka algoritmo’);
% Errores de Predicción Normalizados (respecto al error de medida)
figure; plot(t,100*error_Kv./error_med,’b’); hold;
plot(t,100*ones(1,N)*mean(error_Kv(D:N)./error_med(D:N)),’k’);
plot(t,100*error_Ka./error_med,’m’);
plot(t,100*ones(1,N)*mean(error_Ka(D:N)./error_med(D:N)),’r’);
xlabel(’Tiempo (secs)’); % ylabel(’Desviación tı́pica del error’);
title(’Errores de predicción normalizados respecto al error de
medida’);
legend(’Error Kv (%)’,’Error Kv Medio (%)’,’Error Ka (%)’,’Error Ka Medio (%)’);
disp(’Resultados del Filtro de Kalman Kv y Ka para velocidad
constante con perturbación’)
disp(sprintf(’Tiempo de Computo por iteración: %2.3f milisegundos’,1e3*tpo_computo));
disp(sprintf(’Media de la Desviacion Estandar (RMSE) del Kv:
%f ’,mean(error_Kv(D:N))));
disp(sprintf(’Media del RMSE Normalizado (RMSEN) del Kv:
%f %%’,100*mean(error_Kv(D:N)./error_med(D:N))));
disp(sprintf(’Divergencia en el error predicción que cree el algoritmo:
%f %% respecto al real’,...
100*((mean(error_Kv(D:N))-mean(std_v(D:N)))/mean(error_Kv(D:N)))));
disp(sprintf(’Media de la Desviacion Estandar (RMSE) del Ka:
%f ’,mean(error_Ka(D:N))));
disp(sprintf(’Media del RMSE Normalizado (RMSEN) del Kv:
%f %%’,100*mean(error_Ka(D:N)./error_med(D:N))));
disp(sprintf(’Divergencia en el error predicción que cree el algoritmo:
%f %% respecto al real’,...
100*((mean(error_Ka(D:N))-mean(std_a(D:N)))/mean(error_Ka(D:N)))));
%{
% Creacion de la funcion de densidad de probabilidad real y equivalente guassiana
[fi,ki] = hist(innovacion,duracion/3); fi = fi/sum(fi); fni =
1/std(innovacion)/(2*pi)^.5*exp(-(ki-media).^2/2/(std(innovacion)^2));
fni = fni/sum(fni); di = cumsum(fi);% Funcion de distribucion
%}

Tras realizar diferentes simulaciones y un análisis detallado de código anterior, se


puede concluir lo siguiente: En primer lugar se aprecia que a veces el filtro Ka se
D.10. ESTIMACIÓN DE LA VELOCIDAD USANDO KF 243

11

10.5

10

9.5
Error

8.5

8
Error Kv
Error Kv Medio
7.5
Error Ka
Error Ka Medio
7
0 50 100 150 200 250 300
Tiempo (segundos)

Figura D.2: Desviación tı́pica del error de predicción (instantáneo y media).

10

9.5

9
Error

8.5

7.5
Error Kv real
Error Kv Medio real
Error Kv algoritmo
7
0 50 100 150 200 250 300
Tiempo (segundos)

Figura D.3: Comparación del error de predicción real y del algoritmo (std) para Kv.
244 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

8.65

8.6
Error

8.55

Error Kv real
Error Kv Medio real
Error Kv algoritmo
8.5
0 50 100 150 200 250 300
Tiempo (segundos)

Figura D.4: Detalle de la figura D.3.

11

10.5

10
Error

9.5

8.5
Error Ka real
Error Ka Medio real
Error Ka algoritmo
8
0 50 100 150 200 250 300
Tiempo (segundos)

Figura D.5: Comparación del error de predicción real y del algoritmo (std) para Ka.
D.10. ESTIMACIÓN DE LA VELOCIDAD USANDO KF 245

9.75

9.7

9.65
Error

9.6

9.55
Error Ka real
Error Ka Medio real
Error Ka algoritmo
9.5
0 50 100 150 200 250 300
Tiempo (segundos)

Figura D.6: Detalle de la figura D.5.

100

95

90
Error

85

80 Error Kv (%)
Error Kv Medio (%)
Error Ka (%)
Error Ka Medio (%)
75
0 50 100 150 200 250 300
Tiempo (segundos)

Figura D.7: Errores de predicción normalizados respecto al error de medida.


246 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

inestabiliza en función del valor de ruido10 que se suponga en el proceso {ruido j }.


Esto ocurre aunque la medida no tenga ruido y la posición real simulada se manten-
ga constante. Para justificarlo se han analizado los polos del estimador de régimen
permanente y se ha observado que son completamente estables:

Se ha considerado:
N=300, pos=100*ones(1,100), y=pos,
ruido j=10, xa=[0;0;0],
Pa(1:3,1:3,1)=1e4*eye(3),
y los polos son
simplify(inv(z*eye(3)-Aa+Aa*Ka(1:3,N)*Ca)*Aa*Ka(1:3,N))
roots([9007199254740992,-10446676094320512,6007664415837855,-1234122670361105])
0.3986 + 0.4680i 0.3986 - 0.4680i 0.3625
abs(ans) → 0.6148 0.6148 0.3625
Otra opción de calcular los polos del permanente del observador de Kalman
es:
[P perm,L,G] = dare(Aa’,Ca’,Qa,R) que resuelve la ecuación de Ricatti
Los polos de la FDT se devuelven en L, P perm es Pk+1/k (∞), que no
coincide con Pk/k (∞), ya que serı́a Pk+1/k (∞) = A·Pk/k (∞)AT +Qa (notar
que Pk/k (∞) < Pk+1/k (∞) ya que la primera es la incertidumbre tras la
−1
corrección) y la ganancia K(∞) = Pk+1/k (∞)·C T C ·Pk+1/k (∞)·C T +R
En cualquier caso, a pesar de los polos calculados el sistema resulta in-
estable.
Para ruido j =15 ya no es inestable (es decir cuando se hace más caso a la
medida).

Se ha sustituido o considerado la ganancia del permanente (para ruido j =10) en la


ecuación de corrección y se ha comprobado que, ahora sı́, sale perfectamente estable.
Conclusión: Aunque el sistema del permanente sea estable, el cálculo recursivo en
Kalman (instante a instante) puede salir inestable.

Una vez configurada la simulación por el método de Monte Carlo (réplicas con
distintas secuencias aleatorias) se comprueba que para R→0 (ej. 1e-3) tanto el Kv
como el Ka resultan iguales, i.e. no filtran la medida y tienen el RMSE coincidente
(para todos los instantes) con la desviación tı́pica del ruido de medida, resultando un
RMSEN del 100 %.
Para realizar esta simulación se ha tenido en cuenta un movimiento de velocidad
constante con una parte no modelada (ruido de proceso) que hace que el sistema real
no siga una lı́nea recta.
10
En el anexo 2 de [109] se explica la discretización del ruido de proceso, i.e. qué ruido (discreto)
hay que utilizar en el FK (discreto) si el sistema y su ruido asociados son continuos.
D.10. ESTIMACIÓN DE LA VELOCIDAD USANDO KF 247

Este ruido se puede considerar de aceleración o de jerk, en definitiva son equivalentes


(ruido jerk=T ruido aceleración/3). Aunque al considerar el ruido en los filtros Kv y


Ka el funcionamiento no es el mismo, ya que el filtro Ka tiene una propagación de


ruido a través del estado aceleración que el sistema real y el filtro Kv no tienen.
Es decir, la EE real es de velocidad constante, al margen de que se considere ruido
de proceso de aceleración o jerk (parte no modelada), por lo que la propagación de
ruidos a través del estado aceleración no deberı́a estar, aunque para el filtro Ka no
se puede evitar, porque sino la aceleración quedarı́a anclada a su valor inicial11 si
P3x3 (0) = 0 ya que si se hace W = [T3 /3!; T2 /2!; 0] ó [T2 /2; T; 0] su ecuación tendrı́a
una incertidumbre nula (su ganancia escalar de corrección serı́a nula).
Para simular se ha utilizada un ruido de proceso y de medida equilibrados. Es decir,
se ha calculado el ruido de proceso (parte no modelada de EE de velocidad constante
como ruido de aceleración) en función del ruido de medida para que tengan la misma
incertidumbre sobre la posición y entre ambas den lugar a la mitad de incertidumbre
(dos medidas con la misma incertidumbre producen una predicción con la mitad de
incertidumbre → algoritmo LS recursivo con {A=I,B=0,Q=0}). Para ello se va a tener
en cuenta que:

EE → xk/k−1 = xk−1 + T · vk−1 + (T2 /2)ruido proceso


σx2k/k−1 = σx2k−1 + 2Tσxk−1 vk−1 + T2 σvk−1 + (xr p T2 /2)2
2 2
ES → xk/y = yk -ruido medida → σx/y = σr/m
σx2k−1 = σx2k/k−1 /2 2
σx2k/k−1 = σx/y
2Tσxk−1 vk−1 + T2 σv2k−1 + (σr p T2 /2)2 = σr2 m /2
q
σr p = (2/T2 ) σr2 m /2 − 2Tσxk−1 vk−1 − T2 σv2k−1
(σr p T2 /2)2 = σr2 m /H con H = f (σv2k−1 , σxk−1 vk−1 ) ∈ [2...∞] → ej. H = 5

Ejecutando el fichero presentado anteriormente con un ruido de medida de 10 (ej.


pı́xeles si es para el control visual con cámara) y H=5 (N=300, Nr=400) se obtiene:

Resultados del Filtro de Kalman Kv y Ka para velocidad constante con


perturbación
Tiempo de Computo por iteración:
0.149 milisegundos (Incluye cálculo evol. y medida)
Media de la Desviacion Estandar (RMSE) del Kv: 8.550714
Media del RMSE Normalizado (RMSEN) del Kv: 85.315943 %
Divergencia en el error predicción que cree el algoritmo:
-0.002641 % respecto al real
Media de la Desviacion Estandar (RMSE) del Ka: 9.557746
Media del RMSE Normalizado (RMSEN) del Kv: 95.336446 %
Divergencia en el error predicción que cree el algoritmo:
-1.225726 % respecto al real

11
Si P3x3 (0) = 0 la aceleración quedarı́a anclada a un valor (en general bastante aleatorio y no nulo)
al alcanzarse el permanente del FK.
248 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

El motivo por el que el Kv funciona mejor que el Ka para velocidad real constante
(más el ruido de proceso) es porque está facilitándole al algoritmo la estimación ya que
la estructura indicada corresponde exactamente con el movimiento real (simulado),
mientras que el Ka al ser más general puede confundir el ruido en la medida con acel-
eraciones, i.e. tiene más variables de estado a considerar en la estimación, además de la
propagación del error que considera el algoritmo a través de la aceleración y que real-
mente no hay. De hecho esto último hace que el algoritmo del Ka crea que tiene mayor
incertidumbre P que la que realmente hay (la Divergencia en el error predicción que
cree el algoritmo siempre sale ligeramente negativa, ej. -1.22 %). Mientras que el Kv,
como responde la realidad de lo simulado, siempre tiene (para un número de réplicas
elevado) una divergencia nula (ej. -0.002 %) entre el error de predicción (incertidumbre
real) y el elemento P(1,1) (incertidumbre del algoritmo).

Las figuras D.2, D.3, D.5 y D.7 muestran el resultado del código de Matlab mostra-
do. En estas gráficas se puede ver que el error cometido por el filtro Kv es menor al de
Ka para estimar un movimiento de velocidad constante.
La figura D.2 muestra que el error medio cometido por Kv es menor que el cometido
por el Ka. La gráfica D.3 muestra una comparativa del error real, el medio y el del
algoritmo Kv. En la figura D.5 se puede ver la comparativa del error real, el medio
y el del algoritmo Ka y finalmente en la figura D.7 se puede ver que realmente el
error normalizado con respecto de la medida es menor para el caso del filtro Kv que
para el Ka. Este detalle es de gran importancia debido a que una de las bases del
filtro FMF presentado en esta tesis trata de optimizar la estructura del movimiento
del objeto, reduciendo el error normalmente cometido si se considera una dinámica con
más estados de los necesarios.

D.11. Inicialización de filtros recursivos


En [106] se presenta un algoritmo para iniciar filtros recursivos óptimamente (ej.
el FK). Dice que otra opción tı́pica de inicialización es la two-point differencing tech-
nique12 (TPD), que es muy sencilla y consiste en inicializar el filtro en base a un
número de medidas iniciales igual al orden del filtro (utilizando derx = (x1 − x0 )/T ),
y la incertidumbre asociada a los estados iniciales vendrá dada por las incertidumbres
de las medidas utilizadas. En concreto se plantean dos situaciones de inicialización del
TPD:

     
x(0) y1 σy2 σy2 /T
A) = P (0) =
v(0) (y1 − y0 )/T σy2 /T 2σy2 /T 2
12
En [13] también se indica la inicialización TPD, pone la opción de la ecuación A) de este apartado.
Pero se matiza que para que la estimación sea unbiased cada réplica de la simulación de Monte Carlo
sea inicializada con ruidos de medida independientes, i.e. no vale la misma inicialización numérica
para todas las réplicas.
D.11. INICIALIZACIÓN DE FILTROS RECURSIVOS 249

     
x(0) y0 σy2 − σy2 /T
B) = P (0) =
v(0) (y1 − y0 )/T −σy /T 2σy2 /T 2
2

Hay que tener en cuenta que la covarianza entre dos variables a y b se utiliza la fórmula:
cov(a, b) = E[(a − E[a])(b − E[b])] = E[(a − a)(b − b)]
ej.: → cov(y0 , (y1 −y0 )/T ) (para ruidos blancos e independientes de y0 ,y1 )→ E[(y0 )((y1 −
y0 )/T )]
E[y0 y1 /T ] − E[y0 y0 /T = −σy20 /T = −σy2 /T

La inicialización anterior, aunque responde a cierta lógica13 no es equivalente a


tomar P (0) = ∞ y considerar dos medidas. Para verificarlo tener en cuenta el siguiente
desarrollo (se ha supuesto que la única vez que se propaga con la EE el ruido de proceso
es nulo):

(D.16)
       
x0/−1 0 ∞ ∞ ∞ 1
= P0/−1 = K0 =
v0/−1 0 ∞ ∞ ∞ (∞ + σy2 )
    ∞
!    2 
x0/0 y0 1 − (∞+σ 2 0 ∞ ∞ σy σy2
y)
= P0/0 = ∞ =
v0/0 y0 − (∞+σ 2) 1 ∞ ∞ σy2 σy2
y
     
x1/0 y0 (1 + T ) (1 + T )2 σy2 (1 + T )σy2
= P1/0 =
v1/0 y0 (1 + T )σy2 σy2
 
(1 + T )2 1
K0 = ·
(1 + T ) (1 + (1 + T )2 )
   
x1/1 y1 (1 + T )2 + y0 1
= 2
v1/1 y1 (1 + T ) + y0 (1 + T + T ) (1 + (1 + T )2 )
 
(1 + T )2 σy2 (1 + T )σy2 1
P1/1 = 2 2
(1 + T )σy σy (1 + (1 + T )2 )
   
x1/1 (y1 + y0 )/2
Ej1. si T << 1 → =
v1/1 (y1 + y0 )/2
   
x1/1 (4/5)y1
Ej2. si T = 1, y0 = 0 → =
v1/1 (2/5)y1

Cabe destacar que la incertidumbre tras la inicialización con D.15 es menor que con
el ejemplo anterior. Notar que cuando se calcula (x1/0 , v1/0 ) en D.15 la incertidumbre
(pasa de P0/0 a P1/0 ) casi no crece (si T es pequeño) ya que no se ha puesto ruido de
proceso y la modificación es la debida a la propagación con la matriz A.
También se aprecia con los ejemplos de D.16 que hay un filtrado de las dos medidas
tanto para la posición como para la velocidad, ya que con el método A) del ejemplo
anterior serı́an (y1 ,y1 ) en el segundo ejemplo.
13
En [13] al indicar la inicialización TPD se dice que la covarianza inicial P (0) de D.17 se calcula
despreciando el ruido de proceso. No obstante, como se puede comprobar a continuación, realmente
tampoco se obtiene ese resultado al iterar con el FK (2 medidas, incertidumbre inicial infinita y no
ruido de proceso).
250 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO

El hecho de que no se parezca el método de TPD con el FK con dos medidas es por
lo siguiente: el TPD utiliza la EE a priori, calculando la inicialización con dos valores
de salida, y posteriormente atribuye un ruido a esas salidas (medidas) para calcular la
incertidumbre (que sólo depende ası́ del ruido de medida).
Por el contrario con el método de D.15, primero se hace una corrección completa con
la primera medida y después una propagación “perfecta” de estos valores corregidos,
para posteriormente aplicar una última corrección. Como se puede ver la propagación
“perfecta” (EE) se produce a mitad de la inicialización y no al principio (a priori) como
en el TPD. Evidentemente si la propagación comentada no fuera perfecta aparecerı́a
el ruido de proceso que en el TPD no interviene.
En [13] (página 247) se indica también la One-point initialization (e.g. OPI) que
justifica diciendo que la TPD a veces da valores mayores de velocidad (esto se debe a
la sensibilidad al ruido de medida para periodos pequeños) que el lı́mite de velocidad
marcado por el sistema real. Lo que hace esta técnica es inicializar posición con valor
de medida (y su incertidumbre asociada) y la velocidad con valor nulo y desviación
tı́pica igual a la mitad del valor máximo de velocidad del sistema real. No obstante
esto hace que, como la inicialización de velocidad en las réplicas de la simulación de
Monte Carlo es siempre la misma, el resultado de la estimación estarı́a biased (aunque
sea ligeramente).
Apéndice E

ANALISIS DE LAS
ECUACIONES DEL MODELO

El conjunto de ecuaciones del modelo de cualquier sistema ha de cumplir determi-


nados requisitos que se pueden resumir en el cumplimiento de la compatibilidad y la
causalidad computacional. Este anexo presenta el procedimiento a seguir para compro-
bar las ecuaciones del modelo.

251
252 APÉNDICE E. ANALISIS DE LAS ECUACIONES DEL MODELO

E.1. Compatibilidad del Sistema


El modelo, o conjunto de ecuaciones, planteado para modelar un sistema, ha de ser
Compatible Determinado y por tanto resoluble.
Desde el punto de vista de la Compatibilidad, cabe recordar que todo sistema fı́sico
es resoluble, por tanto su correcto modelado no puede incluir incompatibilidades entre
sus ecuaciones.
Por otro lado, para que el modelo del sistema sea Determinado se debe cumplir
que el número de ecuaciones independientes planteadas coincida con el número de
incógnitas, siendo incógnitas, todas aquellas variables no identificadas como entradas
2
al sistema. Teniendo en cuenta que, en sistemas continuos las variables y(t), dy(t)
dt
, d dty(t)
2 ,

..., representan la misma incógnita y(t), mientras que en discreto las variables y(k),
y(k + 1), y(k + 2), ..., representan la misma incógnita y(k).

E.2. Introducción a la causalidad


Se puede hablar de dos tipos de Causalidad para un sistema:
1) Causalidad fı́sica: donde uno observa en la fı́sica del sistema la relación causa-
efecto.
2) Causalidad computacional o de cálculo: donde uno indica el orden en que se
resolverı́an las ecuaciones involucradas del sistema.
La causalidad fı́sica de un sistema condiciona la causalidad computacional. Por ejemplo,
al aplicar una fuerza sobre un cuerpo se produce una aceleración (causalidad fı́sica)
y, necesariamente, en la ecuación de la segunda ley de Newton se debe computar o
calcular la aceleración a partir de la fuerza y no al revés.
Sin embargo, en ocasiones la causalidad computacional está condicionada a resolver
problemas numéricos sin tener que estar condicionada a la causalidad fı́sica. Por ejem-
plo, al utilizar la ley de Ohm para una resistencia, no existe a priori, entre la diferencia
de potencial y la corriente, una relación causa-efecto determinada. Por lo que, la com-
putación dependerá de cuál de las dos variables se considere entrada en la ecuación, al
margen de que realmente sea entrada al sistema.
La causalidad computacional, establecida para un sistema dado, permite calcular
numéricamente la evolución de sus variables, o lo que es lo mismo, representa un modelo
de simulación del sistema. Siendo, dicha causalidad, una propiedad global del sistema.
Ası́ pues, todos los software informáticos de simulación de sistemas dinámicos es-
tablecen una causalidad (computacional) como paso previo al cálculo de la evolución
de un sistema.
En este sentido, se distinguen dos tipos de software según gestionen la causalidad
(computacional) en sus modelos:
1) Modelos con información explı́cita de su causalidad (lenguajes de simulación).
No se pueden reutilizar, lo que obliga a la construcción particular cada modelo.
Ejemplos de software: Simulink (Matlab), Spice (PSpice, OrCAD), ACSL,... (A
modo de ejemplo, cada bloque de Simulink ya tienen asociada la entrada y salida).
E.3. MÉTODO DE MARCADO DE LAS ECUACIONES 253

2) Modelos acausales (lenguajes de modelado).


Son completamente reutilizables, porque en su descripción matemática no incor-
pora información a cerca de su causalidad computacional (caracterı́stica global).
Ejemplos de softwares: Dymola (representación de los modelos en lenguaje Mo-
delica), EcosimPro, ASCEND,... (Algunos de estos programas utilizan la herra-
mienta conceptual de modelado Bond Graph (grafos de unión), cuya descripción,
fenomenológica e independiente de la naturaleza fı́sica del sistema, establece mo-
delos acausales y permite modelos de simulación muy eficientes).

E.3. Método de Marcado de las Ecuaciones


En primer lugar, hay que distinguir entre dos tipos de variables:

a) Conocidas: Las entradas al sistema o aquellas que aparecen derivadas y se con-


sideran de estado (calculadas por integración a partir de sus derivadas).

b) Desconocidas: Las derivadas de las variables de estado y el resto de variables o


intermedias (ni estados, ni entradas, ni derivadas de estados).

La causalidad computacional, o modelo de simulación del sistema, establece el pro-


ceso de cálculo de las variables intermedias y de las derivadas (evolución) de las varia-
bles de estado utilizando las ecuaciones obtenidas previamente en la fase de modelado.
El modelo de simulación se evaluarı́a numéricamente para cada instante. La entrada
serı́an los valores de las variables de entrada y de estado en ese instante y la salida las
variables intermedias en ese instante y las de estado del siguiente (o las derivadas de
las de estado de ese instante)
A continuación se describe un método sistemático de marcado de las ecuaciones del
modelo que establece la causalidad computacional o modelo de simulación del sistema.
Los pasos del método son:

1) Seleccionar las candidatas a variable de estado como aquellas que aparezcan


derivadas una vez (en discreto adelantadas un instante). Por ejemplo:
n 2
o
En sistemas continuos: y(t), d dty(t)
2 → x1 (t) = y(t), x2 (t) = dy(t)
dt

En sistemas discretos: y(k), y(k + 2) → x1 (t) = y(k), x2 (t) = y(k + 1)

2) MARCAR mediante subrayado las variables de entrada y de estado (candidatas).

3) CALCULAR de las ecuaciones el resto de variables, teniendo en cuenta que,


cuando en una ecuación todas las variables menos una están marcadas, se calcula1
la que queda (poniéndola entre corchetes) y se subraya en el resto de ecuaciones.
1
Aunque en este documento no se explicita, debe recordarse el orden en el que se calculan las
incógnitas en las distintas ecuaciones, para tener un modelo de simulación completo. Por ejemplo,
para conseguir esto, se podrı́an volver a escribir sucesivamente todas las ecuaciones con el orden en
el que se utilizan para calcular las incógnitas.
254 APÉNDICE E. ANALISIS DE LAS ECUACIONES DEL MODELO

Se pueden encontrar distintas herramientas y algoritmos para facilitar este proceso


de marcado: matrices de incidencia, grafos, algoritmo de Tarjan, etc.
En el proceso de cálculo de 3), dos situaciones especiales pueden producirse:

I) Imposibilidad de seguir calculando variables en las ecuaciones que quedan. Se


denomina problema de ı́ndice uno, es decir, en las ecuaciones que quedan sin
utilizar hay más de una variable sin marcar. Esta situación se debe a la existencia
de Lazos Algebraicos. Cuando hay un lazo algebraico, un conjunto de variables
deben calcularse conjuntamente. Estos lazos se pueden deber a: dinámicas rápidas
consideradas instantáneas respecto a las relevantes del sistema; o a las ligaduras
introducidas al conectar subsistemas.
En general, para romper los lazos algebraicos se utiliza el método de tearing
(rasgadura) de ecuaciones: consiste en identificar un subconjunto de variables
(de tearing) tales que, conocidas éstas a partir de otras tantas ecuaciones, el
resto de incógnitas se calculan fácilmente con las ecuaciones restantes.
El problema del método es establecer cuál es el subconjunto mı́nimo de variables
de tearing, siendo de complejidad exponencial. No obstante, existen reglas que
producen subconjuntos pequeños, aunque no necesariamente mı́nimos.
La forma de proceder con cada variable de tearing es la siguiente: Se supone
calculable (entre corchetes y con asterisco) en una de las ecuaciones que queden
y se subraya en el resto. Al final hay que comprobar que las variables de tearing,
supuestas calculables (mediante asterisco) en la ecuación correspondiente, efecti-
vamente lo son, es decir que el resto de variables están subrayadas. Esto último se
debe a que, en general, NO cualquier elección de variables supuestas calculables
en otras tantas ecuaciones lleva a una causalidad computacional correcta.
Una vez establecidas unas variables de tearing correctas, hay que resolver propia-
mente el/los lazo/s algebraico/s. Para ello, si todas las incógnitas del/los lazo/s
aparecen linealmente, se pueden utilizar técnicas matriciales (regla de Cramer,
método de eliminación de Gauss, etc.) o manipulación simbólica, aunque si son
muchas las incógnitas es más eficiente resolverlo numéricamente.
Para lazo/s no lineal/es, necesariamente se utilizan métodos numéricos (por ejem-
plo la iteración de Newton) para calcular las variables de tearing, aunque pueden
surgir problemas en la unicidad de la solución.

II) Existen ecuaciones en las que todas las variables están marcadas (Por ejemplo,
ocurre a menudo con las ecuaciones de ligadura en los sistemas mecánicos). Se
denomina problema de ı́ndice superior. Esta situación se produce por la existencia
de Singularidades Estructurales. Una singularidad estructural se produce cuando
se han considerado más variables de estado que grados de libertad tiene el sistema,
al suponer erróneamente que todas las variables derivadas son estados.
Para resolverlo se replantea la elección de las candidatas a variables de estado,
puesto que algunas de ellas son dependientes, y por tanto no todas son variables
de estado.
E.3. MÉTODO DE MARCADO DE LAS ECUACIONES 255

Utilizando el algoritmo de Pantelides: Por cada ecuación singular (con todas


las variables marcadas) se quita una de las variables que, apareciendo en dicha
ecuación, se consideró de estado. Además, para el nuevo análisis de la causalidad,
se deben incluir las ecuaciones obtenidas al derivar (adelantar en discreto) una vez
las singulares. También, en caso de que la derivación anterior de lugar a nuevos
términos (derivadas de variables desconocidas, no presentes anteriormente), se
deben derivar (adelantar) aquellas ecuaciones en las que se calculaban dichas
variables desconocidas e incluirlas. Esto último se debe realizar repetidamente
hasta que las derivaciones no den lugar a nuevos términos.
Como regla práctica (alternativamente al sistemático proceso de derivación an-
terior), se deben incluir en el análisis de la causalidad computacional las ecua-
ciones independientes del modelo más el conjunto más reducido de ecuaciones
(adicionales), obtenidas por derivación (adelanto) de las anteriores, que maximi-
cen la diferencia entre el número de ecuaciones adicionales y los nuevos términos
que originen. Para diferencia nula no se incluye ninguna adicional.
Por ejemplo, esto se ve muy claramente en sistemas mecánicos con ecuaciones de
ligadura entre posiciones, en las que la primera y segunda derivada no da lugar
a nuevos términos, ya que aparecen las velocidades y aceleraciones.
Por otro lado, es muy habitual, al eliminar las singularidades de un sistema
aplicando el algoritmo de Pantelides, que el nuevo conjunto de ecuaciones (sobre
el que se ha de establecer la causalidad) presente lazos algebraicos.
Ejemplos de singularidades estructurales, en sistemas eléctricos, son:

IIa) Circuito con dos condensadores en paralelo para el que se consideran las
tensiones de cada uno como variables de estado distintas. En este caso,
ambas variables son iguales (dependientes) y por tanto sólo deberı́a haberse
considerado una variable de estado.
IIb) Lo mismo sucede en un circuito con, análogamente, dos bobinas en serie
para el que se considera que las corrientes que las atraviesan son variables
de estado distintas.

En caso de que, en el proceso de cálculo de 3), ninguna de las dos situaciones


especiales anteriores se produzca, se dice que es un problema de ı́ndice cero.
256 APÉNDICE E. ANALISIS DE LAS ECUACIONES DEL MODELO
Apéndice F

EL ROBOT CARTESIANO

El robot cartesiano utilizado en algunos de los experimentos de esta tesis es un


sistema relativamente complejo, por lo que el presente anexo pretende servir de ayuda
para entender el extenso manual de parametrización, configuración y manejo.

257
258 APÉNDICE F. EL ROBOT CARTESIANO

F.1. Estructura mecánica


El robot se compone de una estructura porticada realizada con perfiles de aluminio,
donde se han dispuesto tres servomotores, uno en cada dirección espacial (eje ξ, eje
ψ, eje ζ) con sus respectivas cadenas dentadas para su traslación. Estos tres ejes se
encuentran conectados a tres convertidores de frecuencia colocados en un armario de
control.
La estructura va anclada al suelo, para evitar posibles desplazamientos con el
movimiento del robot. Los motores de los ejes se encuentran sujetos al pórtico me-
diante estructuras auxiliares también realizadas con perfiles de aluminio.

F.2. Variadores de frecuencia


Los variadores de frecuencia utilizados son de la marca Siemens de la serie Simovert
MasterDrives MC. En particular se han utilizado los siguientes:

Para el eje ξ: 6SE7022-1EP50 de 20.5 A.

Para el eje ψ: 6SE7071-OTP50-Z de 10 A.

Para el eje ζ: 6SE7016-OTP50-Z de 6 A.

F.2.1. Propiedades
SIMOVERT MASTERDRIVES MC (Motion Control) es parte integrante de la serie
de productos SIMOVERT MASTERDRIVES. Estos representan en su totalidad un
sistema modular digitalizado para realizar aplicaciones trifásicas. La existencia de un
gran número de componentes, ası́ como la disponibilidad de diferentes funcionalidades
de regulación, permiten su adaptación a las más diversas aplicaciones.
La funcionalidad de regulación se ajusta a través del software memorizado en los
módulos del ondulador y del convertidor. Dentro de la serie SIMOVERT MASTER-
DRIVES se diferencian las siguientes funcionalidades de regulación:

Vector Control (VC): regulación vectorial para altos requerimientos en exactitud


y dinámica.

Motion Control (MC): regulación vectorial para servoaplicaciones (opcional con


funciones tecnológicas).

El conjunto de elementos SIMOVERT MASTERDRIVES se compone de los sigu-


ientes dispositivos:

Convertidor completo.

Ondulador.

Unidades de alimentación.
F.2. VARIADORES DE FRECUENCIA 259

Unidades de alimentación/realimentación.

Unidades de frenado y resistencias de frenado.

Módulo de condensadores.

Módulos de acoplamiento.

Embarrado del circuito intermedio.

Filtro de red.

Bobinas de entrada.

Fusibles.

Tarjetas opcionales:


Sensor Boards (SBx) para detección de posición y velocidad.




Communication Boards (CBx) para conexión de bus de campo.




SIMOLINK (SLx) para la transmisión rápida de consigna y valores reales.

Opciones software.

Accesorios.

La funcionalidad de regulación “Motion Control” está especialmente diseñada para


cumplir con los requisitos que exige la técnica de servoaccionamientos. Su regulación
de intensidad vectorial posibilita accionar tanto motores sincrónicos como asincrónicos.
Para la detección de las señales de velocidad y de posición se pueden emplear diferentes
tipos de captadores.
La funcionalidad de regulación “Motion Control” se encuentra tanto en los módulos
convertidores como los onduladores. Estos están dimensionados para un margen de
tensión de red de 380 V −15 % a 480 V +10 %.
Todos los equipos disponen de una gran funcionalidad básica, que se puede ampliar
con numerosas funciones de comunicación y tecnológicas por medio de opciones soft-
ware y hardware [1]. Con esto se posibilita la adaptación a diferentes condiciones de
servicio. Todas las funciones de regulación se realizan con componentes funcionales (ver
figura F.7) de libre acceso. Estos se pueden combinar entre sı́ de diferentes formas. De
este modo, se logra una adaptación flexible del software a las diferentes aplicaciones.
En el software de los equipos existen menús, que junto con los diferentes paneles
de operación, permiten la puesta en servicio y la monitorización del accionamiento.
Las herramientas para el PC permiten una gran efectividad en la parametrización y la
protección de datos.
Los equipos Motion Control tienen las siguientes caracterı́sticas:

Disponibles como módulos de convertidores y de onduladores.

Alcance de potencia de 0.5 Kw a 250 Kw.


260 APÉNDICE F. EL ROBOT CARTESIANO

Posibilidad de diferentes configuraciones para transmisiones múltiples.

Embarrado de circuito intermedio integrado y protección por fusible.

Función integrada PARADA SEGURA.

Funcionalidad de regulación con servocaracterı́sticas para motores sincrónicos y


asincrónicos.

Conexión de diferentes captadores de posición y velocidad.

Interface USS para montar sistemas de bus sencillos.

Conexión de diferentes buses de campo.

Red de accionamiento con hasta 200 usuarios a través de SIMOLINK.

Funciones integradas para posicionar, marcha sincronizada y disco de levas.

Definición de estructuras de regulación mediante componentes funcionales (ver


figura F.7) que se pueden enlazar entre sı́.

Realización de puesta en servicio y procesos de diagnóstico.

Guı́a por menús.

Mando y monitorización por medio de los paneles (integrado, manual) o del PC.

Software unificado para PC (SIMOVIS/DriveMonitor).

Observación de las normativas europeas correspondientes, marcados CE.

Aprobación UL/CSA.

La terminologı́a especı́fica utilizada en este anexo se puede encontrar en [1].

F.3. Estructura general


La estructura general esta pensada para el accionamiento de múltiples ejes, en
concreto tres. Por tanto se dispone de un convertidor/ondulador y dos onduladores. La
función del convertidor es convertir la corriente alterna trifásica en corriente continua
y distribuirla a través del bus de continua a los onduladores. Cada motor se conecta a
un ondulador. Para el correcto funcionamiento y evitar la introducción de armónicos
en la red deben colocarse los correspondientes filtros y bobinas. En el esquema de la
figura F.1 puede verse la estructura general del montaje realizado para el robot.
Por otra parte, cada uno de los motores tiene un captador de velocidad y posición,
este envı́a la información al su correspondiente ondulador por medio de una tarjeta de
captador. Por último cada ondulador se comunica con el resto de equipos por medio de
una tarjeta de comunicación Profibus. Además cada ondulador es parametrizado por
F.3. ESTRUCTURA GENERAL 261

3CA 50 - 60 Hz PE
380 - 480 V L1
L2
L3
Interrup. principal
5 2 Opciones en gris
A1
CON./ DES.
1
A2 Q1
Tensión de
control Filtro de "PARADA segura"
14
CA 230 V red Resistencia Mensaje acuse Control
de frenado 0 V: abierto:
12 3 "Parada segura" "Parada segura"
16

X7 D' C' X6 X1 X6 X533.1 .2 .3 .4


Embarrado
D' C' U1 V1 W1PE1 H G circuito intermedio
PE3 X3 PE3 510 - 650 V X3 PE3 X3 PE3
X3
D D D D
C C C C

X9.2 Tensión de
.1 alimentación+24 V X100.33 X100.33
X100.33
+ 0V .34 .34
.34
24 V .35 .35
~ .35
== 4 .36 .36
230 V .36
Bus USS
X101 .1 X103 8 X101 .1 X103 X101 .1 X103
11
9 9 11 9 11
Fault
Run
Tensión de I
control .12 .12 .12
O P
CA 230 V 7 8 9
Módulo de Convertidor CA-CA Jog
Ondulador CC-CA Ondulador CC-CA
4 5 6
condensadores tipo Kompakt PLUS Kompakt PLUS Kompakt PLUS
Kompakt PLUS 1 2 3

U2 V2 W2 PE2 0 +/- Re set U2 V2 W2 PE2 U2 V2 W2 PE2


X2 OP1S X2 X2

15 15 15

13 13 13

Captadores de motor:
G - Resolver PTC/KTY PTC/KTY PTC/KTY
- Encoder SBx en SBx en SBx en
Slot C
M Slot C
M Slot C
M
- Generador de impulsos G G G
- Multiturn 3~ 3~ 3~

Figura F.1: Instalación realizada en el cuadro eléctrico del robot.

medio de interface USS y un PC.

Componentes de software.

En el software del convertidor y del ondulador se encuentran una serie de funciones


de control, regulación, comunicación, diagnóstico, etc. que se pueden activar con ayu-
da de componentes funcionales (ver figura F.7). Estos componentes funcionales son
parametrizables y se pueden enlazar libremente entre sı́. El método es comparable a
la técnica de conexiones en circuitos eléctricos, en la que se entrelazan las diferentes
unidades funcionales, e.g. circuitos de conmutación u otros componentes electrónicos
por medio de cables. Sin embargo, al contrario de la técnica de conexión eléctrica, el
“cableado” (enlace) de los componentes funcionales no se realiza por medio de cables,
sino a través del software.

Componentes funcionales.

En los componentes funcionales se encuentran funciones incorporadas. El alcance


262 APÉNDICE F. EL ROBOT CARTESIANO

Parámetro Parámetro para tabla


Kp para n-reg. Tn del n-reg.
funcional 0.0 ... 200.0 0 ... 1000 ms de niveles de tiempo
P235.F (1.0) P240.F (100) U953.14 = 2
Nivel de tiempo
N° de componente funcional
Kp Tn Componente funcional
Parámetro Dif. de regul.
de conector P228.B M(consigna)
KK0152 K0153 Conector

r238 Parámetro de observación


M(consigna)
Liberación de n-reg.
Enlace del control de secuencia B0310
[460.8]
fijo Binector
Remisión a otros diagramas funcionales [página.columna]

Figura F.2: Representación de un componente funcional (CF).

funcional de cada componente depende de su aplicación especı́fica. Los componentes


funcionales disponen de entradas, salidas, y parámetros y se procesan en niveles de
tiempo. En la figura F.2 se puede ver el componente funcional de la constante pro-
porcional del controlador de cada eje del robot y en la figura F.7 su enlace con otro
componente funcional.
Cada componente funcional dispone de un número de componente funcional (núme-
ro CF) que lo identifica claramente. En múltiples componentes se puede definir con
ayuda del número de CF, el nivel de tiempo en el que se van ha procesar. Con este fin,
a cada componente funcional le corresponde un parámetro indexado, cuyo número e
ı́ndice de parámetro contiene el número de CF referido.
Ejemplo:
U950.01 codifica el número de CF 001
U952.50 codifica el número de CF 250
U952.99 codifica el número de CF 299
U953.74 codifica el número de CF 374
En los diagramas funcionales se indica para cada componente funcional el parámetro
para seleccionar el nivel de tiempo y el ajuste de fábrica correspondiente. Estos datos
se encuentran dentro de una elipse para hacerlos resaltar ópticamente de los demás
elementos de un componente funcional. Junto al nivel de tiempo, en la mayorı́a de los
componentes funcionales; puede ser también determinada la secuencia de procesamien-
to.
Conectores y binectores (ver figura F.5) son elementos que sirven para el inter-
cambio de señales entre las componentes funcionales. Son alimentados cı́clicamente
por componentes funcionales con un valor de señal. Según se haya parametrizado, hay
otros componentes funcionales que están en la capacidad de llamar a esos valores. Los
conectores pueden ser considerados como casilleros de archivo para almacenar señales
“analógicas”. Cada denominación de conector está compuesta por el nombre y número
del conector y una letra indicativa. La letra indicativa depende de la representación
numérica:
K conector de una palabra (16 bits).
F.3. ESTRUCTURA GENERAL 263

Nombre del conector Nombre del conector

M(consig,n-reg.) n(cna.alisam.)
K0153 KK0150

Letra indicativa N° del conector Letras indicativas N° del conector

Figura F.3: Representación de conectores con palabras de 16 y 32 bits.

100 % 100 %

4000H 4000 0000H

1H = 0,006 % 1H = 0,000 000 093 %

199,994 % 7FFFH 0000H 0% 199,999999907 % 7FFF FFFFH 0000 0000H 0 %


-200 % 8000H FFFFH -0,006 % -200 % 8000 0000H FFFF FFFFH -0,000000093 %

C000H C000 0000H

-100 % -100 %

Conector con longitud de palabra (Kxxxx) Conector con longitud de palabra doble (KKxxxx)

Figura F.4: Valores y correspondencias del campo numérico de conectores.

KK conector de palabra doble (32 bits).

El número de conector se da siempre con cuatro cifras como se puede ver en la figura
F.3. Salvo algunas excepciones (por ejemplo conectores para las palabras de mando),
los valores archivados en los conectores están normalizados.
El campo de valores de estos conectores alcanza unos valores que van desde (en %):

-200 % (800H/8000 0000H en conectores de palabra doble) a

+199.99 %(7FFFH/7FFF FFFFH) en conectores de palabra doble)

El 100 % corresponderı́a al valor 4000H (4000 0000H en conectores de palabra doble).


En la figura F.4 se puede ver la correspondencia entre los valores porcentuales y los
numéricos, para palabras y para dobles palabras.
Los componentes funcionales depositan las informaciones digitales de salida en
conectores binarios llamados binectores (ver figura F.5). Los binectores pueden ser
considerados como casilleros de archivo para almacenar señales binarias. Cada denom-
inación de binector está compuesta por el nombre y número del binector y la letra
indicativa B. El número del binector se da siempre con cuatro cifras.
Los binectores, de acuerdo con su definición, pueden tomar los dos estados siguien-
tes: 0 (“no” lógico) y 1 (“si” lógico).
Los parámetros son las vı́as de acceso para la adaptación de los componentes fun-
cionales a la aplicación, para interconectar los componentes funcionales por medio de
conectores y binectores (ver figura F.5) y para la observación de señales internas. Los
parámetros se diferencian de acuerdo a sus funciones en:
264 APÉNDICE F. EL ROBOT CARTESIANO

Nombre de binector

Acelerac.activa
B0201

Letra indicativa N° de binector

Figura F.5: Representación de binectores.

Parámetros funcionales (se pueden leer y escribir)1 .

Parámetros BICO2 (se pueden leer y escribir).

Parámetros de observación (solo se pueden leer).

Cada parámetro está claramente definido. La identificación de parámetro consta


del nombre de parámetro y del número de parámetro. Junto al nombre y número de
parámetro muchos parámetros poseen también un ı́ndice. Con la ayuda de este ı́ndice
es posible archivar varios valores para un parámetro bajo un número. En los diagramas
funcionales se encuentran los ajustes de fábrica de cada parámetro BICO y de cada
parámetro funcional. Para los parámetros funcionales (Ver figura F.6) modificables, se
incluye además el campo de valores. Las letras se aplican de la siguiente forma:

Las mayúsculas (P, U, H y L) designan a los parámetros BICO y a los parámetros


funcionales (ambos tipos modificables).

Las minúsculas (r, n, d y c) designan a los parámetros de observación (no modi-


ficables).

La cifra de tres números abarca un campo de valores de 000 a 999, pero no se utilizan
todos. Con los parámetros funcionales (Ver figura F.6) se determina el comportamien-
to de los componentes funcionales. Ejemplos tı́picos de aplicación de un parámetro
funcional serı́an:

Normalización de una señal de entrada.

Tiempo de aceleración y deceleración en el generador de rampas.

Acción proporcional (Kp) y tiempos de reajuste (Tn) en el regulador de velocidad.

Los parámetros funcionales (Ver figura F.6) pueden estar indexados. El significado
de los valores que se encuentran en los ı́ndices depende de la definición del parámetro
correspondiente. Existe un grupo especial de parámetros que pertenecen a los llamados
juegos de datos funcionales.
1
Ver figura F.6.
2
Señales que determinan la fuente de las señales de entrada de un componente funcional.
F.3. ESTRUCTURA GENERAL 265

Nombre de parámetro

T1 elemento DT1
0.0 ... 10.0 ms Campo de
P249.F (0.0) valores

N° de parámetro Indice parámetro Ajuste de fábrica

Figura F.6: Representación de parámetros funcionales.

En los juegos de datos funcionales se encuentran recopilados parámetros funcionales


especiales. En los diagramas funcionales estos parámetros se designan con el ı́ndice de
parámetro F.
Los parámetros aludidos poseen cuatro ı́ndices. Esto significa que en cada parámetro,
bajo cada ı́ndice hay un valor, o sea bajo un número de parámetro se puede archivar
un total de cuatro valores de parámetro.
El juego de datos funcionales activo determina el valor que se utiliza. Si está activo
el juego de datos funcionales 1 se utilizará el valor que se encuentra en el ı́ndice de
parámetro 1. Si está activo el juego de datos funcionales 2 se utilizará el valor que se
encuentra en el ı́ndice de parámetro 2, etc.
La selección de cada uno de los juegos de datos funcionales se realiza por medio
de los bits 16 y 17 en la palabra de mando 2 (P576.B y P577.B). Se puede hacer la
conmutación en todo momento.
La visualización de los juegos de datos funcionales activos se realiza a través del
parámetro de observación r013 (JdD-Func. activo).
La conmutación (entre los ı́ndices de parámetro 1, 2, 3 y 4), se realiza siempre
conjuntamente en todos los parámetros indexados pertenecientes a los juegos de datos
funcionales.
Con los parámetros BICO se determina la fuente de las señales de entrada de
un componente funcional. Se puede definir con ayuda de ellos de que conectores y
binectores (ver figura F.5) debe leer, un componente funcional sus señales de entrada.
De está manera se puede “interconectar”, de acuerdo a las exigencias, los componentes
funcionales archivados en el equipo. A esta técnica se la denomina técnica BICO. En
la figura F.8 se muestra un ejemplo de enlaces posibles y no posibles.
Para cada parámetro BICO está determinado el tipo de señales de entrada (conector
o binector) que se pueden conectar en las entradas. Los parámetros BICO poseen los
siguientes indicativos:

B parámetro de binector para la conexión de binectores (ver figura F.5).

K parámetro de conector para la conexión de conectores con palabras de 16 bits.

KK parámetro de conector para la conexión de conectores con palabras dobles


de 32 bits.
266 APÉNDICE F. EL ROBOT CARTESIANO

Componen.funcional A Componen.funcional B
Fte. n(dif.reg.) Fte. n(dif.reg.)
n(dif.reg.) P228.B n(dif.reg.) P228.B
KK0152 KK KK0152 KK0152

P.ej.: P228.01 = 0152

Figura F.7: Enlace de dos componentes funcionales.

Pxxx.B Pxxx.B Pxxx.B


Bxxxx B K K KK KK
100 % = 100 % = 100 % = 100 % =
4000 H 4000 H 4000 0000 H 4000 0000 H

Pxxx.B Pxxx.B Pxxx.B


Bxxxx K K KK KK K
100 % = 100 % = 100 % = 100 % =
4000 H 4000 0000 H 4000 0000 H 4000 H

Pxxx.B Pxxx.B Pxxx.B


Bxxxx KK K B KK B

Figura F.8: Enlace BICO posibles y no posibles.

No esta permitida la “interconexión” entre binectores y conectores. Sin embargo se


puede enlazar siempre a parámetros de conectores de una palabra y de palabra doble.
Se denomina técnica BICO a la técnica con cuya ayuda se establecen enlaces entre
componentes funcionales. Esto se realiza con la ayuda de binectores y conectores, de
los cuales se deriva el nombre de técnica BICO.
Un enlace entre dos componentes funcionales consta, por un lado de un conector
o un binector y por otro de un parámetro BICO. La unión se establece siempre en la
entrada de un componente funcional. A una entrada siempre se le tiene que asignar una
salida. La asignación se realiza del siguiente modo: en un parámetro BICO se registra
el número del conector o del binector, del cual se leen las señales de entrada nece-
sarias. Está permitido registrar varias veces el mismo número de conector y binector
en diferentes parámetros BICO. Con esto se pueden utilizar las señales de salida de un
componente funcional como señales de entrada para varios componentes funcionales.

F.4. Interfaz USS


El protocolo USS es un protocolo de transmisión en serie sencillo, diseñado y ela-
borado por Siemens para realizar la comunicación serie entre sus accionamientos.
En la especificación “protocolo universal de interface en serie USS.” (Número de
pedido: E20125-D0001-S302-A1) se encuentra documentada una descripción detallada
de la especificación del protocolo, de la interface fı́sica, de la estructura del bus, ası́ como
F.4. INTERFAZ USS 267

la definición de los datos útiles a transmitir para controlar los accionamientos.


El usuario puede instalar, con ayuda del protocolo USS, un acoplamiento de bus
serie entre un maestro de jerarquı́a superior y varios sistemas de esclavos. Sistemas
maestros pueden ser por ejemplo controles lógicos programables (programmable logic
controler PLC) o PCs. En el sistema de bus, los accionamientos SIMOVERT MASTER-
DRIVES son siempre esclavos. Además, los convertidores SIMOVERT Micro Master,
SIMOVERT P 6SE21 y los convertidores de corriente 6RA23 y 6RA24 pueden actuar
como esclavos en USS. El protocolo USS ofrece la posibilidad, tanto de realizar la-
bores de automatización que exigen una transmisión de telegrama cı́clico (es necesaria
una longitud de telegrama fija, ver figura F.10 para ver la estructura del telegrama),
ası́ como tareas de visualización. En este caso es más favorable utilizar el protocolo con
longitud de telegrama variable (con n datos útiles, ver figura F.10), ya que ası́ se pueden
transmitir textos y descripciones de parámetros con un solo telegrama sin “desmem-
brar” la información.

Especificación del protocolo y estructura del bus.


Las caracterı́sticas del protocolo son:

Realización de un acoplamiento de varios puntos, por ejemplo Hardware vı́a EIA


RS 485 o un acoplamiento punto a punto por ejemplo RS 232.

Técnica de acceso maestro / esclavo.

Single Master-System.

Máximo 32 usuarios de bus (máximo 31 esclavos).

Funcionamiento opcional con largo de telegrama fijo o variable (ver figura F.10).

Marco de telegrama sencillo y seguro.

La misma estructura fı́sica de bus que en PROFIBUS (DIN 19245 parte 1).

Interfaz DE Datos hacia el aparato base según el “PERFIL de accionamiento de


velocidad variable”. Esto significa que las informaciones para el accionamiento
se transmiten con USS del mismo modo que con PROFIBUS-DP.

Aplicable para puesta en marcha, servicio de asistencia y automatización.

Programas de PC (por ejemplo SIMOVIS/DriveMonitor) para SIMOREG y


SIMOVERT.

De fácil incorporación a sistemas especı́ficos del cliente.

Especificación del protocolo.


El protocolo USS define una comunicación según el principio de maestro-esclavo
para la comunicación a través de un bus serie. También permite la comunicación punto
a punto (un solo maestro, un solo esclavo).
268 APÉNDICE F. EL ROBOT CARTESIANO

Ordenador de
jerarquía superior

"Maestro"

SIMOVERT SIMOVERT SIMOVERT SIMOVERT


MASTERDRIVES MASTERDRIVES MASTERDRIVES MASTERDRIVES

"Esclavo" "Esclavo" "Esclavo" "Esclavo"

Figura F.9: Acoplamiento en serie de equipos SIMOREG/SIMOVERT (esclavos) con


un ordenador de jerarquı́a superior como maestro.

STX LGE ADR 1. 2. n BCC

n Datos útiles

Figura F.10: Estructura del telegrama.

Al bus se le puede conectar un maestro y un máximo de 31 esclavos. El maestro


selecciona cada uno de los esclavos a través de un signo de “dirección” en el telegrama
(ver figura F.10). Un esclavo por sı́ mismo nunca puede tomar la iniciativa de emisión.
No es posible el intercambio de información directa entre los esclavos. La comunicación
se realiza con el sistema semiduplex.
La función de maestro no se puede transferir (Single-Master-System). La siguiente
figura muestra, a modo de ejemplo, una configuración de bus con accionamientos.
Acoplamiento serie de equipos SIMOREG/SIMOVERT (esclavos) con un ordenador
de jerarquı́a superior como maestro. Cada telegrama comienza con el signo STX (=
02 Hex), continúa con la longitud (LGE) y el byte de dirección (ADR). Siguen los
datos útiles y lo cierra el signo de chequeo de seguridad de datos BCC (Block Check
Character). Ver figura F.10.
Para información codificada como palabra (16 bits) en el bloque de datos útiles
(= bloque de signos útiles) se transmite siempre primero el High-Byte (primer sig-
no) y después el Low-Byte (segundo signo). Correspondiendo con lo anterior, cuando
la información se transmite como palabra doble: primero se transmite la High-Word
seguida de la Low-Word.
La codificación de órdenes en los signos útiles no es parte integrante del protocolo.
La información está codificada de la siguiente forma:
STX (Start of Text) Signo ASCII: 02 Hex.
LGE (longitud de telegrama) 1 Byte, contiene la longitud de telegrama.
ADR (byte de dirección) 1 byte, contiene la dirección del esclavo y el tipo de
telegrama (codificación binaria).
Signos útiles. Cada uno de los signos un Byte, el contenido depende de la función
a realizar.
F.4. INTERFAZ USS 269

byte de dirección.

STX LGE ADR 1. 2. n BCC

n datos útiles

Nr. Bit 7 6 5 4 3 2 1 0

N° de esclavo/usuario de 0 a 31

= 1: Broadcast, bits de dirección (N°0 a 4) no se evalúan


= 0: Ningún Broadcast

= 1: Telegrama espejo
= 0: Ningún telegrama espejo

= 1: Telegrama especial, véanse aclaraciones abajo


= 0: Estándar, los bits 0 a 6 son válidos y se tienen que evaluar

Figura F.11: Asiganción del byte de dirección (ADR).

BCC 1 byte, signo de chequeo de seguridad de datos (Block Check Charakter).

Asignación del byte de dirección (ADR).


En el byte de dirección se codifica, además del número de usuario, otras informa-
ciones adicionales. En la figura F.11 se indica la asignación para cada uno de los bits
en el byte de dirección.
El maestro (ver figura F.9) toma bajo custodia la transmisión cı́clica del telegrama
(ver figura F.10). Se comunica consecutivamente con cada uno de los esclavos a través
de un telegrama de tarea. El usuario con el que se ha comunicado el maestro manda
a su vez un telegrama de respuesta. De acuerdo con el procedimiento maestro-esclavo,
cuando el esclavo recibe un telegrama destinado a él tiene que enviar una respuesta al
maestro, antes que este se comunique con el siguiente esclavo. La secuencia de comu-
nicación con los esclavos participantes se puede realizar, por ejemplo, introduciendo
en el maestro los números de los usuarios (ADR) en una lista secuencial. Si este se
tiene que comunicar con algunos esclavos en un ciclo más rápido que con otros, puede
aparecer varias veces en la lista el número de ese usuario. También se puede realizar
por medio de la lista una comunicación punto a punto inscribiendo en ella solamente
un usuario. El valor de una secuencia de ciclo está determinado por el tiempo que tarda
el intercambio de datos con cada uno de los esclavos, como se puede ver en la figura
F.12.
El tiempo de ciclo no es determinable al no ser constante el tiempo que se emplea
en los procesos. El signo de comienzo STX (= 02 Hex) no es suficiente para que el
esclavo identifique el principio de un telegrama, ya que la combinación de bits 02/Hex
puede aparecer también en los datos útiles. Por ello, antes de la transmisión del signo
STX, se determina para el maestro un tiempo de espera equivalente por lo menos a 2
signos. La pausa de comienzo es parte integrante del telegrama.
El comienzo válido de un telegrama (ver figura F.10) se caracteriza por la pausa
seguida de STX (ver F.13). El intercambio de datos transcurre siempre de la forma
270 APÉNDICE F. EL ROBOT CARTESIANO

Tiempo de ciclo

0 0 1 1 0 0 t

Tiempo de transmisión de telegr. (respuesta), usuario 1

Tiempo de retardo de respuesta, usuario 1


Tiempo de transmisión de telegr. (tarea), usuario 1
Tiempo de procesamiento en el maestro

Figura F.12: Tiempo de ciclo.

Velocidad de transmisión en bit/s Pausa de comienzo en ms


9600 2,30 ms
19200 1,15 ms
38400 0,58 ms
76800 0,29 ms
93750 0,23 ms
187500 0,12 ms

Figura F.13: Valores de pausa mı́nimos para diferentes velocidades de transmisión.

que muestra en el esquema de la figura F.14.


La figura F.14 representa el intervalo de tiempo comprendido entre el último signo
del telegrama (ver figura F.10) de tarea (BCC) y el comienzo del telegrama de respues-
ta (STX). El máximo tiempo de retardo de respuesta permitido es de 20 ms, pero no
debe ser menor que la pausa de comienzo. Si el usuario “x” no responde dentro del
tiempo de retardo de respuesta máximo permitido, se almacena un mensaje de fallo en
el maestro y a continuación este emite el telegrama previsto para el siguiente esclavo
(la lista de fallos con su código correspondiente se puede ver en la figura F.26).

Estructura del bus.


El campo de aplicación del sistema de bus determina principalmente el medio de

STX LGE ADR 1. n BCC STX

Emisión (maestro) Emisión (esclavo)


Pausa de Retardo de Pausa
comienzo respuesta de comienzo

BCC STX LGE ADR 1. BCC

Figura F.14: Secuencia de emisión.


F.4. INTERFAZ USS 271

MAESTRO

máx. 32 esclavo
ESCLAVO ESCLAVO ESCLAVO

Primer usuario Ultimo usuario

Figura F.15: Topologı́a de bus USS.

transmisión y la interface fı́sica del bus. La base fı́sica de la interface del protocolo
USS es el “Standard RS-485”. Para la conexión punto a punto se puede utilizar como
base fı́sica para la interface una parte de la norma EIA RS-232 (CCITT V.24), TTY
(bucle de corriente 20 mA) o cable de fibra óptica. Las interfaces en SIMOVERT
MASTERDRIVES son siempre de tipo RS 485 con cable bifilar.
Excepción: En el conector SUB D de 9 polos en la PMU (unidad de mando y
parametrización) de los equipos base se puede optar por la conexión RS-485 ó RS-
232. En este anexo se describe como se tiene que estructurar un bus de campo USS
en aplicaciones estándar, para garantizar un transporte seguro de datos a través del
medio de transmisión. El bus USS está basado en una topologı́a de enlace sin cables
de derivación. Cada uno de los extremos de la lı́nea termina en un usuario.
La longitud máxima de cable y con esto la distancia máxima entre el maestro y
el último esclavo está limitada por las caracterı́sticas del cable, las condiciones del
entorno y la velocidad de transmisión. Para una velocidad de transmisión <100 kbit/s
la longitud máxima posible es de 1200 m. [EIA estándar RS-422-A diciembre 1978,
apéndice, página 14]. El lı́mite máximo de usuarios es 33 (1 maestro y 32 esclavos).
Ver figura F.15
Hay que conectar resistencias de terminación de bus a ambos extremos de la lı́nea
(primer y último usuario). Las conexiones punto a punto se tratan como las conexiones
de bus. Un usuario cumple la función de maestro, otro la función de esclavo.
La transmisión de datos se realiza según el estándar EIA-485. Para acoplamientos
punto a punto se puede emplear RS-232. La transmisión es generalmente semiduplex,
eso significa que las emisiones y las recepciones se realizan alternativamente y tienen
que ser controladas por el Software. El sistema semiduplex permite utilizar las mis-
mas lı́neas para transmitir en ambas direcciones. Esto posibilita un cableado sencillo,
funcionamiento en ambientes con perturbaciones y una alta velocidad de transmisión.
Para el cableado del bus se utiliza un cable apantallado de dos hilos trenzados (ver
F.16).
Todos los datos son a modo de recomendación. Puede ser necesario realizar cambios
de acuerdo a las condiciones de la instalación y a las exigencias y circunstancias de
aplicación especı́ficas. En la instalación desarrollada para esta tesis se han seguido
todas las recomendaciones realizadas en [1] y en las figuras F.16 y F.17.
Las longitudes de cable son dependientes de la velocidad de transmisión y de la
272 APÉNDICE F. EL ROBOT CARTESIANO

Ø del conductor 2 × ≈ 0,5 mm2


Conductor flexible ≥ 16 x ≤ 0,2 mm
Trenzado ≥ 20 pasos de cableado / m
Pantalla total Trenzado, hilo de cobre con superficie estañada
2
Ø≥1.1mm
85 % envoltura óptica
Ø total ≥ 5 mm
Envoltura exterior Según exigencias de inflamabilidad, residuos de
combustión, etc.

Figura F.16: Datos del cable.

Resistencia del conductor (20°C) ≤ 40 Ω/km


Resistencia de aislamiento (20°C) ≥ 200 MΩ/km
Tensión de funcionamiento (20°C) ≥ 300 V
Tensión de test (20°C) ≥ 1500 V
Margen de temperatura -40 °C ≤ T ≥ 80 °C
Capacidad de carga ≥5A
Capacidad ≤ 120 pF/m

Figura F.17: Caracterı́sticas térmicas y eléctricas.

cantidad de usuarios conectados. Tomando en cuenta las caracterı́sticas de cable ya


citadas es posible utilizar las longitudes de cable mostradas en F.18.

Estructura de datos útiles.


En el bloque de datos útiles de cada telegrama (ver figura F.10) se encuentran
las informaciones que, por ejemplo manda un control SIMATIC S7 (= maestro) al
accionamiento (= esclavo), o las que manda de regreso el accionamiento al control. El
bloque de datos útiles se divide en las dos partes siguientes (como se puede ver en las
figuras F.19 y F.20):

PKW (Parameter-Kennung-Wert) -Parámetro/Indicativo/Valor (la figura F.22


presenta la estructura de la parte de parámetros).

PZD (Prozeßdaten) -datos de proceso.

La estructura de los datos útiles se representa de la siguiente forma:

Velocidad de N° máximo de Longitud máxima de


transmisión usuarios cable
9,6 kbit/s 32 1200 m
19,2 kbit/s 32 1200 m
93,75 kbit/s 32 1200 m
187,5 kbit/s 30 1000 m

Figura F.18: Longitudes de cable.


F.4. INTERFAZ USS 273

Marco del protocolo

Datos útiles
STX LGE ADR Parámetro datos de proceso BCC
(PKW) (PZD)
PKW: Parámetro- Indicativo- Valor PZD: Prozeßdaten
(Parte para parámetros) (Parte para datos proceso)

Figura F.19: Estructura del telegrama.

PKE IND Elementos PKW PZD1 ... PZD16

Figura F.20: Estructura de las partes PKW y PZD.

La parte PKW (ver figura F.22) hace referencia a la manipulación de la interface


“Parámetro-Indicativo-Valor” (PKW). Bajo la denominación “interface PKW”
no hay que entender que se trata de una interface fı́sica, sino que se describe
un mecanismo que regula el intercambio de parámetros entre dos usuarios en
la comunicación (por ejemplo control y accionamiento). Esto significa: lectura
y escritura de valores de parámetros y lectura de descripciones de parámetros
y textos correspondientes. Todas las funciones que se efectúan a través de la
interface PKW son principalmente funciones de manejo y observación, servicio y
diagnóstico.

La parte PZD contiene las señales necesarias para el control:

Palabra/s de mando y consigna/s del maestro al esclavo.




Palabra/s de estado y valor/es real/es del esclavo al maestro.

Las dos partes juntas forman el bloque de datos útiles. Esta construcción es igual-
mente válida para el telegrama del maestro al esclavo y del esclavo al maestro.

Parte PKW.
Con el mecanismo PKW (ver figura F.22) se pueden procesar, por medio de cada
interface en serie con protocolo USS, las siguientes funciones:

Lectura y escritura de los parámetros en el equipo base, y si se tiene, en la tarjeta


tecnológica por ejemplo, T100.

Lectura de la descripción de parámetro. (Válido para los parámetros del equipo


base y de la tarjetas de ampliación).

Lectura de textos que corresponden a los ı́ndices de un parámetro indexado.


(Válido para los parámetros del equipo base y de la tarjetas).
274 APÉNDICE F. EL ROBOT CARTESIANO

1a palabra 2a palabra 3a palabra 4a palabra (m+2). pal.


PKE IND PWE1 PWE2 ... PWEm

Figura F.21: Parametrizada con una longitud variable de palabras.

Lectura de textos que corresponden a los valores de un parámetro. (Válido para


los parámetros del equipo base y de la tarjetas).

La parte PKW se puede ajustar de forma variable. Según los requisitos puede
parametrizarse una longitud de 3 palabras, 4 palabras o una longitud variable de pa-
labras (ver figura F.21).
De la figura F.21 se puede tener: Con

1 palabra = m = 110 palabras (máximo), cuando hay 16 palabras PZD (máximo)


en el bloque de datos útiles.
1 palabra = m = 126 palabras (máximo), Si no hay ningún PZD.

El intercambio de telegramas con longitud variable significa que a un telegrama del


maestro, el esclavo contesta con un telegrama cuyo largo no tiene que ser el mismo que
el largo de telegrama enviado por el maestro. El largo y el contenido de los elementos
PWE 1 hasta PWE m en el telegrama de respuesta, dependen del pedido del maestro.
Longitud variable significa que solo se transmiten tantas palabras como sean necesarias
para transmitir la información correspondiente. La longitud mı́nima es siempre de tres
palabras.
Si por ejemplo el esclavo transmite un valor de parámetro de 16 bits (por ejemplo,
la salida de tensión en el parámetro r003), solo se emiten 3 palabras en la parte PKW
del telegrama del esclavo al maestro. Si, por ejemplo, se tiene que leer en MASTER-
DRIVES MC/VC la velocidad actual (parámetro r002), la longitud de la parte PKW
del telegrama transmitido del esclavo al maestro es de 4 palabras, ya que la velocidad
está memorizada en el parámetro r002 con una dimensión de 32 bits.
La parametrización de un largo de palabra variable es obligatoria cuando, por
ejemplo, se deben leer de una vez todos valores de un parámetro “indexado”, o cuando
se debe leer completa, o en parte, la descripción de un parámetro. El ajuste a longitud
variable de palabras se realiza en la puesta en servicio (ver F.22).
El indicativo de parámetro (PKE) consta siempre de una palabra (16 bits). Los
bits 0 a 10 (PNU), junto con el bit 15 del ı́ndice de parámetro constituyen el número
del parámetro deseado (véase la lista de parámetros de [1] y la figura F.23).
El bit 11 (SPM) es el Toggle-Bit para mensajes espontáneos. Los mensajes espontáneos
no se procesan en los equipos MASTERDRIVES. Los bits de 12 a 15 (AK) contienen el
indicativo de orden (tarea) o de respuesta. Los indicativos de tarea se transmiten en el
telegrama desde el maestro al esclavo. El significado de cada uno de los indicativos se
encuentra en las tablas F.23, F.24 y F.25. Ası́ mismo se transmiten en el telegrama del
esclavo al maestro en este lugar indicativos de respuesta. Dependiendo del indicativo
de tarea solo son posibles algunos indicativos de respuesta determinados. Si el indica-
tivo de respuesta tiene el valor 7 (tarea no realizable), entonces el valor de parámetro
F.4. INTERFAZ USS 275

Indicativo de parámetro 1a palabra


N° de bit: 15 12 11 10 0
AK SPM PNU

Indice de parámetro 2a palabra


N° de bit: 15 87 0
Indice High Indice Low

Valor de parámetro
Valor de parámetro High (PWE1) 3a palabra
Valor de parámetro Low (PWE2) 4a palabra

AK: Indicativo de tarea o respuesta


SPM: Toggle-Bit para procesar mensajes espontáneos
PNU: Número de parámetro

Figura F.22: Estructura de las parte de parámetros (PKW).

Número PKE: Bits 0 a 10 Indice: Bit 15


(PNU)
1 - 999 1 - 999 0 Equipo base
2000 - 2999 0 - 999 1 Equipo base
1000 - 1999 1000 - 1999 0 Tarjeta tecnológica
3000 - 3999 1000 - 1999 1 Tarjeta tecnológica

Figura F.23: Indicativo de parámetro (PKE), 1 palabra.

2 (PWE2) contiene un número de fallo. Los números de fallo están documentados en


la tabla de fallos de [1].
Con la parte low del ı́ndice (bit 0 a 7) se identifica, dependiendo de la tarea, un
elemento determinado:

elemento array deseado en el caso de los parámetros indexados,

elemento deseado de la descripción de parámetro,

para parámetros indexados con “texto de ı́ndice”: texto de ı́ndice deseado,

para parámetros no indexados con texto de selección: texto de selección deseado.

Los bits 8 a 14 normalmente tienen que ser todos 0. La única excepción la consti-
tuyen aquellos parámetros que están indexados y poseen “texto de selección”. En este
caso se tiene que poner el bit 9 a 1 para determinar explı́citamente el tipo de texto
deseado (texto de selección). La parte Low determina entonces cual de ellos se elige.
El bit 15 sirve, junto con los bits 0 a 10 en la parte PKE, para formar el número
de un parámetro (véase identificación de parámetro de [1]). El valor de ı́ndice 255
adquiere una función especial cuando se da la orden “solicitud de elemento descriptivo
de parámetro” (= AK 4), o si la orden se refiere a la lectura / escritura de parámetros
indexados (=arrays). Ver tabla F.27.
276 APÉNDICE F. EL ROBOT CARTESIANO

Indica- Significado Indicativo de


tivo de respuesta
tarea Positivo Negativ
0 Ninguna tarea 0 7ó8
1 Solicitar valor de parámetro 1ó2 ↑
2 Modificar valor de parámetro (palabra) 1
3 Modificar valor de parámetro (palabra doble) 2
4 Solicitar elemento descriptivo 1 3
6 Solicitar valor de parámetro (array) 1 4ó5
7 Modificar valor de parámetro (array, palabra) 2 4
8 Modificar valor de parámetro (array, palabra doble) 2 5
9 Solicitar cantidad de elementos del array 6
10 Reservado -
11 Modificar valor de parámetro (array, palabra) y memorizar en EEPROM2 5
12 Modificar valor de parámetro (array, pal.doble) y memorizar en 4
EEPROM2
13 Modificar valor de parámetro (palabra doble) y memorizar enEEPROM 2
14 Modificar valor de parámetro (palabra) y memorizar en EEPROM 1 ↓
15 Leer o modificar texto (solo con OP o SIMOVIS/DriveMonitor) 15 7ó8
1 El elemento descriptivo de parámetro deseado se indica en el IND (segunda palabra)
2 El elemento deseado del parámetro indexado se indica en el IND (segunda. palabra)

Figura F.24: Indicativo de tarea (maestro → convertidor).

La transmisión del valor de parámetro (PWE) se realiza, según la parametriza-


ción de longitud de palabra en la parte PKW, como palabra o palabra doble. En un
telegrama solo se puede transmitir un valor de parámetro.
En el caso de que se haya parametrizado la longitud de palabra de la parte PKW con
3 palabras, solo se podrán transmitir parámetros de 16 bits. No se pueden transmitir
elementos descriptivos de parámetro que sean mayores de 16 bits o textos.
En el caso de que se haya parametrizado la longitud de palabra de la parte PKW con
4 palabras, se podrán transmitir parámetros de 16 y 32 bits. No se pueden transmitir
elementos descriptivos de parámetro que sean mayores de 32 bits o textos.
En el caso de que se haya parametrizado la longitud de palabra de la parte PKW
con ”longitud variable”, (127) se podrán transmitir parámetros de 16 y 32 bits. Se
pueden transmitir también elementos descriptivos de parámetro o textos. Además se
pueden leer o modificar todos los elementos de un parámetro indexado con una sola
tarea y solicitar toda la descripción de un parámetro (valor de ı́ndice: parte Low = 255).

Transmisión de un valor de parámetro de 16 bits:


1. Parte PKW: cantidad fija de 3 palabras:
PWE1 contiene el valor
2. Parte PKW: cantidad fija de 4 palabras:
PWE1 = 0,
PWE2 (palabra de orden inferior, 4a palabra) contiene el valor;
3. Parte PKW variable:
PWE1 contiene el valor.
No hay PWE2 ni superiores.
F.4. INTERFAZ USS 277

Indicativo de Significado
respuesta
0 Ninguna respuesta
1 Valor de parámetro transmitido (palabra)
2 Valor de parámetro transmitido (palabra doble)
3 Elemento de descripción transmitido
4 Valor de parámetro transmitido (array, palabra)
5 Valor de parámetro transmitido (array, palabra doble)
6 Cantidad de elementos del array transmitida
7 Tarea no realizable (con número de fallo)
8 Ninguna liberación de parametrización (interface PKW)
9 Mensaje espontáneo (palabra)
10 Mensaje espontáneo (palabra doble)
11 Mensaje espontáneo (array, palabra)
12 Mensaje espontáneo (array, palabra doble)
13 Reservado
14 Reservado
15 Texto transmitido

Figura F.25: Indicativo de respuesta (convertidor → maestro).

Transmisión de un valor de parámetro de 32 bits:

1. Parte PKW: cantidad fija de 3 palabras:


Se rechaza la orden con el mensaje de fallo 103.
2. Parte PKW: cantidad fija de 4 palabras:
PWE1 (palabra de orden superior; 3a palabra) contiene High-Word de la palabra
doble,
PWE2 (palabra de orden inferior, 4a palabra) contiene Low-Word de la palabra
doble.
3. Parte PKW variable:
Como 2.; No hay PWE3 ni superiores.

Parte de datos de proceso (PZD).


En esta parte se produce un intercambio permanente de datos de proceso entre el
maestro y el esclavo. Al comienzo de la comunicación se establece de forma fija los
datos que se van a intercambiar con el esclavo. Por ejemplo si se transmite al esclavo
“x” en la segunda PZD (= PZD2) la consigna de intensidad. Este ajuste queda fijo
durante toda la transmisión.
PZD1-PZD16 = Prozeßdaten (datos de proceso) (= palabra(s) de mando / de
estado y valor(es) de consigna / reales); En esta parte se transmiten los datos necesarios
para el control: palabra(s) de mando / de estado y valor(es) de consigna / reales.
La longitud de la parte PZD está determinada por el número y la dimensión de los
elementos PZD (por ejemplo palabra o palabra doble). Al contrario de la parte PKW
(que puede ser variable), en esta parte, se tiene que determinar siempre la longitud entre
los usuarios (maestro y esclavo). La cantidad máxima de palabras PZD por telegrama
está limitada a 16.
278 APÉNDICE F. EL ROBOT CARTESIANO

N°. Significado
0 Número de parámetro (PNU) no permitido; cuando el PNU no existe
1 Valor de parámetro no modificable; cuando se trata de un parámetro
de observación
2 Sobrepasados el límite de valor superior o inferior
3 Subíndice erróneo
4 Ningún array
5 Tipo de dato falso
6 No se admite valor diferente a 0
7 Elemento de descripción no modificable; en principio no es posible
11 Ninguna liberación de parametrización
12 Falta palabra clave:
Parámetros del equipo: "Clave de acceso" y/o "parámetro especial de
acceso" mal ajustados
15 Ningún array de textos a disposición
17 Tarea no realizable por el estado de servicio:
El estado del convertidor no permite momentáneamente realizar la
orden
101 Número de parámetro momentáneamente desactivado:
Parámetro sin función en el estado momentáneo del convertidor
(p. ej. tipo de regulación)
102 Ancho de canal demasiado pequeño; solo para canales cortos:
La longitud parametrizada de la parte PKW es demasiado grande "por
motivos de limitación interna del equipo". Este mensaje de fallo solo
puede aparecer en el protocolo USS de la tarjeta tecnológica T100,
cuando se accede a parámetros del equipo base desde esta interface.
103 Cantidad PKW errónea; solo para interfaces SST 1/2 y SCB (USS):
El número de fallo se transmite en los siguientes dos casos:
• Cuando la orden concierne a todos los índices de un parámetro
indexado (índice de tarea = 255) o se demanda la descripción de
parámetro total y no se ha parametrizado ninguna longitud variable
en el telegrama.
• Cuando para la tarea a realizar, la cantidad parametrizada de
datos PKW en el telegrama sea muy pequeña (P. ej.: modificación
de palabra doble y cantidad de PKW = 3 palabras).
104 Valor de parámetro no permitido:
Este número de fallo se transmite, cuando el valor de parámetro que
se debe tomar no tiene función asignada en el equipo o, en el
momento de la modificación no se puede transferir por motivos
internos (a pesar de encontrarse dentro de los límites).
105 El parámetro es de tipo indexado
P. ej. la orden: "Modificar PWE (palabra)" para parámetros indexados
106 Tarea no incorporada

Figura F.26: Número de fallo para indicativo de respuesta “tarea no realizable”.


F.4. INTERFAZ USS 279

Indicativo Significado
de tarea
4 Se demanda la descripción total del parámetro
6 Demanda de todos los valores del parámetro indexado.
Esta orden puede producir el mensaje de fallo 102
7, 8, 11 Se deben modificar todos los valores del parámetro.
ó 12 Estas órdenes pueden producir el mensaje de fallo 102

Figura F.27: Tareas con valor de indice = 255.

1 palabra 1 palabra 1 palabra 1 palabra


PZD1 PZD2 PZD3 ... PZD16

Máximo 16 palabras
Mínimo 0 palabras. Esto significa "ninguna parte PZD en el bloque de datos útiles"

Figura F.28: Estructura de la parte PZD.

Si solo se desea transmitir datos PKW en el bloque de datos útiles, el número de


PZD puede ser igual a 0. En el PZD1 (ver figura F.28) se debe transmitir siempre la
palabra de mando 1 o la palabra de estado 1 (según la dirección de transmisión). En la
PZD2 siempre el valor de consigna principal o el valor real principal (según la dirección
de transmisión). En los siguientes datos de proceso: de PZD3 a PZDn, se transmiten
valores adicionales de consigna o reales. En los SIMOVERT MASTERDRIVES si es
necesario, se puede transmitir con el PZD4 la palabra de mando 2 o la palabra de
estado 2.

Conexión.
Precauciones:

Los equipos trabajan con tensiones elevadas (565 voltios).

Cualquier manipulación del conexión deben realizarse en estado “sin tensión”.

Debido a la carga remanente de los condensadores del circuito intermedio, el


equipo mantiene tensiones peligrosas hasta 5 minutos después de la desconexión.

También aunque esté parado el motor, en los bornes de potencia y en los bornes
de mando puede haber aplicada tensión.

La conexión del cable de bus USS en los equipos SIMOVERT MASTERDRIVES


depende del sistema de regulación y en MC de la forma constructiva correspondiente.
En la forma constructiva “Kompakt Plus” se puede utilizar para conectar el cable
de bus USS la conexión del regletero de bornes X100 o el conector X103. La asignación
de pines exacta se encuentra en las correspondientes instrucciones [1].
280 APÉNDICE F. EL ROBOT CARTESIANO

¡Aquí no tiene que No deformar


pelarse la pantalla! 35 excesivamente
el resorte

Pantalla
15 mm Adaptar la longitud a la forma
constructiva Carcasa del convertidor

Enchufe

Desenchufar el
Cable de bus 1 conector de bus
sin interrumpir el bus
Cable de bus 2

Ejemplo de dos hilos de cobre


dentro de un borne

Figura F.29: Conexión de los cables de bus.

Montaje del cable de bus.


Exceptuando los conectores X103 ó X300 ó X448 (SUB D de 9 polos), la conexión
del cable de bus USS para todas las interfaces (electrónica de regulación CUMC, CU-
VC, tarjeta SCB2 y T100) se realiza por medio de bornes atornillados o enchufables.
La figura F.29 muestra el montaje adecuado del cable de bus en el conector.

Medidas adecuadas a la compatibilidad electromagnética.


Para que se produzca un funcionamiento con USS libre de interferencias, es obliga-
torio observar las siguientes medidas.
El apantallado es una medida para amortiguar interferencias magnéticas, eléctricas
y electromagnéticas. Las corrientes parásitas son conducidas a tierra por el apantallado
a través de la masa de la carcasa del armario.
Los cables de bus tienen que estar trenzados, apantallados y ser tendidos con una
separación mı́nima de 20 cm de los cables de potencia (en la medida de lo posible).
La pantalla hay que conectarla en ambos lados en forma extensa; esto significa que
la pantalla del cable de bus entre dos convertidores tiene que ser conectada en ambos
extremos a la carcasa de los convertidores. Lo mismo es válido para el apantallamiento
del cable de bus entre el maestro y el convertidor.
Los cables de bus y los cables de potencia solo deberán cruzarse con ángulo de 90 .


El cable de bus no hay que pelarlo en el conector de bus para acceder a la


pantalla. El apantallamiento se contacta a la carcasa del convertidor por medio
de abrazaderas de pantalla (equipos compactos) o abrazaderas y sujetacables
(equipos en chasis). La forma de manipular las abrazaderas se ilustra en la figura
F.4. INTERFAZ USS 281

F.30. Al pelar los conductores hay que tener cuidado de no ranurar el núcleo de
cobre macizo.
También hay que tener en cuenta, que la pantalla de cada uno de los cables de
bus se encuentre bien contactada tanto en la entrada del armario como en la
carcasa del convertidor.

Equipotencialidad.
Para evitar diferencias de potencial (por ejemplo, por diferentes alimentaciones de
red) entre cada uno de los usuarios de bus (convertidor y sistema maestro) se tiene que
realizar una conexión equipotencial.
Utilizar los siguientes cables para la conexión equipotencial:


16 mm2 Cu para lı́nea equipotencial de hasta 200 m de longitud.




25 mm2 Cu para lı́nea equipotencial de más de 200 m de longitud

Las lı́neas de conexión equipotencial hay que tenderlas de tal modo que entre el
conductor equipotencial y los de señalización se de la mı́nima superficie.
El conductor equipotencial hay que unirlo de forma extensa al conductor de tierra
/ protección.
Indicaciones para el tendido de cables:
No tender el cable de bus (cable de señales) paralelo junto a cables de potencia.
Tender los cables de señalización y sus correspondientes lı́neas de conexión equipo-
tencial lo más junto posible y por el trayecto más corto.
Tender los cables de potencia y los de señales en diferentes canales de cables.
Conectar las pantallas con la mayor superficie posible.
Para mayor información al respecto, véanse por ejemplo las descripciones en el
capı́tulo 3 del compendio [1] o en: “Indicaciones de instalación para un montaje de ac-
cionamientos adecuado a la CEM” (N de producto: 6SE7087-8CX87-8CE0). La figura


F.31 muestra el esquema de conexionado de la señal y de la pantalla.

Terminación de bus para protocolo USS.


Para que se de un funcionamiento con USS libre de interferencias hay que poner-
le, a ambos extremos del cable de bus, resistencias de terminación. El cable de bus
deberá considerarse como una sola lı́nea desde el primer usuario USS hasta el último
usuario USS, de tal forma que hay que terminar (“cerrar”) el bus dos veces. Las re-
sistencias de terminación de bus deben ser conectadas al primer usuario (e.g. maestro)
y al último (e.g. convertidor). La figura F.32 muestra la posición del interruptor de
terminación de bus en el convertidor Kompakt Plus.
La figura F.33 muestra la instalación de un enlace de bus a través del conector de
9 polos X103 (Kompakt Plus).
282 APÉNDICE F. EL ROBOT CARTESIANO

Enganchar la abrazadera
Ø≤15mm Ø≤7.5mm Ø≤5mm

Como soltar la abrazadera

Apretar la abrazadera con


la mano o con ayuda de un
desatornillador y tirar hacia arriba.

Figura F.30: Conexionado con las abrazaderas.

+5V +5V

390 390

Terminación de bus RS485 P


y red básica Cable de datos
220 220

RS485 N
390 Pantalla 390

Conexión
Nivel de la equipotencial
señal externa 0 V

Masa de la
carcasa.
Barras de pantalla

Figura F.31: Apantallado y compensación de equipotencial.


F.4. INTERFAZ USS 283

Kompakt Plus

S1

− OFF
SIEMEN S

ON

X100
A
S1
Interruptor
para terminación
de bus
X101 B

X103 C

Soporte de pantalla
para cables de Soporte de pantalla
señalización para cable de motor

Figura F.32: Conmutador S1 para la terminación del bus.

Al maestro SUB D de 9 polos SUB D de 9 polos


X103 X103

RS485 N RS485 P RS485 N RS485 P


RS485 N
RS485 P

8 3 8 3

SUB D de SUB D de
9 polos 9 polos

Ningúna terminación En el último usuario del bus


de bus: S1 "OFF" el conmutador S1 tiene que estar en "ON"

Figura F.33: Conexión del cable de bus bifilar en el regletero de bornes X103 (Kompakt
Plus).
284 APÉNDICE F. EL ROBOT CARTESIANO

Tornillo de sujeción
Conector
LED (verde)
LED (amarillo)
LED (rojo)

Conexión SUB D de
9 polos
Tornillo de sujeción X448

Figura F.34: Tarjeta de comunicación CBP.

F.5. Tarjeta de comunicaciones


La tarjeta de comunicación CBP (Communication Board PROFIBUS) permite la
conexión de accionamientos de la serie de equipos SIMOVERT MASTERDRIVES a
sistemas de automatización de mayor jerarquı́a (PLC) a través de PROFIBUS-DP.
Para la información sobre el estado de servicio actual, la tarjeta de comunicación,
dispone de tres LEDs (verde, amarillo y rojo). La alimentación de tensión proviene del
equipo base a través del conector principal (ver figura F.34). La conexión al sistema
PROFIBUS se realiza a través del conector SUB D de 9 polos (X448) según la norma-
tiva PROFIBUS. Todas las conexiones de la interface RS-485 están protegidas contra
cortocircuitos y tienen separación galvánica.
La CBP opera con velocidades de transmisión de 9,6 kBaud a 12 MBaud y se puede
conectar también por medio de conductores de fibra óptica a través de Optical Link
Plugs (OLPs).
BIBLIOGRAFÍA

285
286 APÉNDICE F. BIBLIOGRAFÍA
Bibliografı́a

[1] Siemens AG. Compendio de los simovert masterdrives motion control, 2002. Nr. de
producto: 6SE7087-8QX50.

[2] A.T. Alouani, P. Xia, T.R. Rice, and W.D. Blair. A two-stage kalman estimator for
state estimation in the presence of random bias and tracking maneuvering targets.
In Proceedings of 30th IEEE Conference on Decision and Control, pages 2059–2062,
Brighton, UK, 1991.

[3] T. Amishima, M. Ito, and Y. Kosuge. Stability condition and steady-state solution
of various α − β filters for linear fm pulse compression radars. In Electronics and
Communications in Japan, volume 87, Japan, 2004.

[4] B. Anderson and J. Moore. Optimal Filtering. Prentice-Hall, New Jersey, USA, 1979.

[5] R. Aracil, N. Garcı́a, C. Pérez, J.M. Sabater, J.M. Azorı́n, O. Reinoso, and R. Saltarén.
Performance analysis of a continuous vision-based control system for the navigation of
a mobile robot. In 16th IFAC World Congress, Praha, Czech Republic, 2005.

[6] C.C. Arcasoy. The tracking filter with a noisy jerk as the maneuver model: Frequency
domain solution. IEEE Transactions on Aerospace and Electronics Systems, 32(3), July
1996.

[7] C.C. Arcasoy. Analytical solution of tracking filter with a noisy jerk as correlated
target maneuver model. IEEE Transactions on Aerospace and Electronics Systems,
33(1), January 1997.

[8] X. Armangue and J. Salvi. A comparative review of camera calibrating methods with
accuracy evaluation. Pattern Recognition, 35(7):1617–1635, 2002.

[9] K.J. Aström and T. Hägglund. PID controllers: Theory, design, and tuning. ISA.
Instrument Society of America, Research Triangle Park, North Carolina, USA, 2nd
edition, 1995.

[10] J. Baeten, H. Bruyninckx, and J. De Schutter. Integrated vision/force robotic ser-


voing in the task frame formalism. The International Journal of Robotics Research,
22(10–11):941–954, October–November 2003.

[11] Y. Bar-Shalom. Update with out-of-sequence measurements in tracking: Exact solution.


IEEE Transactions on Aerospace and Electronics Systems, 38(3), July 2002.

[12] Y. Bar-Shalom and P.I. Lanzkron. A two-step method for out-of-sequence measure-
ments. In IEEE Aerospace Conference Proceedings, 2004.

287
288 BIBLIOGRAFÍA

[13] Y. Bar-Shalom, X. Li, and T. Kirubarajan. Estimation with Applications to Tracking


and Navigation. John Wiley & Sons, New York, USA, 2001.

[14] Y. Bar-Shalom, M. Mallik, and H. Chen. One-step solution for the multistep out-
of-sequence-measurement problem in tracking. IEEE Transactions on Aerospace and
Electronics Systems, 40(1), January 2004.

[15] Y. Bar-Shalom, M. Mallik, H. Chen, and R. Washburn. One-step solution for the gen-
eral out-of-sequence-measurement problem in tracking. In IEEE Aerospace Conference
Proceedings, 2002.

[16] K. Becker. The alpha-beta-gamma tracking filter with a noisy jerk as the manouvering
model. IEEE Transactions on Aerospace and Electronic Systems., 2(29), April 1993.

[17] T. Benedict and G. Bordner. Synthesis of an optimal set of radar track-while-scan


smoothing equations. IEEE Transactions on Automatic Control, AC-7(4):27–32, July
1962.

[18] S. Benhimane and E. Malis. Vision-based control with respect to planar and non-
planar objects using a zooming camera. In IEEE International Conference on Advanced
Robotics, volume 2, pages 991–996, Coimbra, Portugal, 2003.

[19] A. Bernardino and J. Santos-Victor. Binocular visual tracking: Integration of percep-


tion and control. IEEE Transactions on Robotics and Automation, 15(6):1080–1094,
1999.

[20] S. Blackman and R. Popoli. Design Analysis of Modem Packing Systems. Artech
House, Norwood, MA, USA, 1999.

[21] W.D. Blair. Fixed-gain two-stage estimators for tracking maneuvering targets. IEEE
Transactions on Aerospace and Electronics Systems, 29(3), July 1993.

[22] H.A.P. Blom and Y. Bar-Shalom. The interacting multiple model algorithm for systems
with markovian switching coefficient. In IEEE Transactions on Automatic Control,
AC-33:780–783, August 1988.

[23] E. Brookner. Tracking and Kalman Filtring Made Easy. John Wiley & Sons, New
York, USA, 1998.

[24] T.E. Bullock and S. Sangsuk-Iam. Maneuver detection and tracking with a noonlinear
target model. In In Proceedings of the Conference on Decision and Control, volume 1,
pages 1122–1126, Las Vega, NV, USA, 1984.

[25] S. Cao and R.R. Rhinehart. A self-tuning filter. Journal of Process Control, 7(2):139–
148, April 1997.

[26] J. Carusone and G. D’Eleurterio. The ”feature cmac”: a neural-network based vision
system for robotic control. In Proceedings of the IEEE International Conference on
Robotics and Automation, pages 2959–2964, 1998.

[27] E. Cervera and N. Garcı́a. International online course on visual servoing techniques,
2005. http://www.robot.uji.es/IOCoViST/.
BIBLIOGRAFÍA 289

[28] E. Cervera and P. Martinet. Visual servoing with indirect image control and a pre-
dictable camera trajectory. In Proceedings of the IEEE/RSJ International Conference
on Intelligent Robots and Systems, pages 381–386, Kyongju, Korea, 1999.

[29] F. Chaumette. La relation vision-commande: théorie et application à des tâches robo-


tiques. PhD thesis, Université de Rennes I, IRISA, July 1990.

[30] F. Chaumette. Potential problems of stability and convergence in image-based and


position-based visual servoing, 1997. F. Chaumette. Potential problems of stability
and convergence in image-based and position-based visual servoing. In Workshop on
Vision and Control, Block Island, USA, June 1997.

[31] F. Chaumette, P. Rives, and B. Espiau. Positioning of a robot with respect to an object,
tracking it and estimating its velocity by visual servoing. In Proceedings of the IEEE
International Conference on Robotics and Automation, pages 2248–2253, Sacramento,
USA, 1991.

[32] C. Cheah, S. Kawamura, and S. Arimoto. Visual servoing of robot manipulator without
camera calibration. In Proceedings of the 5th International Workshop on Advanced
Motion Control, pages 688–693, Coimbra, Portugal, 1998.

[33] G. Chesi and K. Hashimoto. A self-calibrating technique for visual servoing. In Pro-
ceedings of the 41st IEEE Conference on Decision and Control, pages 2878–2883, Las
Vegas, USA, 2002.

[34] G. Chesi, K. Hashimoto, D. Prattichizzo, and A. Vicino. Keeping features in the


cameras field of view: a visual servoing strategy. In Proceedings of the 15th International
Symposium on Mathematical Theory of Networks and Systems, South Bend, USA, 2002.

[35] C. Chiu and G. Chen. Kalman Filtering with Real-Time Applications. Spreinger-Verlag,
New York, USA, 1987.

[36] S. Chroust and M. Vincze. Improvement of the prediction quality for visual servoing
with a swithching kalman filter. International Journal of Robotics Research, 22(10-
11):905–922, 2003.

[37] P. Corke. Experiments in high-performance robotic visual servoing. T. Yoshikawa


and F. Miyazaki, editors, Experimental Robotics III, Lecture Notes in Control and
Information Sciences. Springer-Verlag., 200:193–205, October 1993.

[38] P. Corke. High-Performance Visual Closed-Loop Robot Control. PhD thesis, Uni-
versity of Melbourne, Dept. Mechanical and Manufacturing Engineering, Melbourne,
Australia, July 1994.

[39] P. Corke. Visual Control of Robots: High Performance Visual Servoing, Mechatronics.
Research Studies Press (John Wiley), 1996.

[40] P. Corke and M. Good. Controller design for high performance visual servoing. In
Proceedings of IFAC 12th World Congress, pages 9–395–9–398, Sydney, Australia, 1993.

[41] P. Corke and M.C. Good. Dynamic effects in visual closed-loop systems. IEEE Trans-
actions on Robotics and Automation., 12(5):671–683, April 1996.
290 BIBLIOGRAFÍA

[42] P. Corke and S. Hutchinson. A new hybrid image-based visual servo control scheme. In
Proceedings of the 39th IEEE Conference on Decision and Control, pages 2521–2526,
Sidney, Australia, 2000.
[43] P. Corke and S. Hutchinson. Real-time vision, tracking and control. In Proceedings of
the 2000 IEEE International Conference on Robotics and Automation, pages 622–629,
San Francisco, USA, 2000.
[44] P. Corke and S. Hutchinson. A new partitioned approach to image-based visual servo
control. IEEE Transactions on Robotics and Automation, 17(4):507–515, 2001.
[45] E. Cortina, D. Otero, and C.E. D´Attellis. Maneuvering target tracking using extended
kalman filter. IEEE Transactions on Aerospace and Electronics Systems, 27(1), January
1991.
[46] A. Crétual and F. Chaumette. Visual servoing based on image motion. International
Journal of Robotics Research, 20(11):857–877, 2001.
[47] R. Cumplido, S. Jones, R.M. Goodall, and S. Bateman. A high-performance processor
for embedded real-time control. IEEE Transactions on Control Systems Technology.,
13(3), December 2005.
[48] R.W. De Doncker and D.W. Novotny. The universal field oriented controller. In
Conference Record of the 1988 IEEE, volume 1, pages 450–456, 1988.
[49] K. Deguchi. Optimal motion control for image-based visual servoing by decoupling
translation and rotation. In Proceedings of the IEEE International Conference on
Intelligent Robots and Systems, pages 705–711, Victoria, B.C., Canada, 1998.
[50] D. DeMenthon and L.S. Davis. Model-based object pose in 25 lines of code. In European
Conference on Computer Vision, pages 335–343, 1992.
[51] M. Efe and D.P. Atherton. Maneuvering target tracking with an adaptative kalman
filter. In Proceedings of the 37th IEEE Conference on Decision and Control, pages
737–742, Tampa, Florida, USA, 1998.
[52] B. Espiau, F. Chaumette, and P. Rives. A new approach to visual servoing in robotics.
IEEE Transactions on Robotics and Automation, 8(3):313–326, 1992.
[53] C. Pérez et al. Tracking of manoeuvring visual targets, 2008. Lecture Notes in Electrical
Engineering -LNEE (artı́culo aceptado pendiente de publicación).
[54] O. Faugeras. Three dimensional computer vision, a geometric viewpoint. In MIT Press,
Cambridge, Massachusetts, USA, 1993.
[55] J.T. Feddema and O.R. Michell. Vision guided servoing with feature-based trajectory
generation. IEEE Transactions on Robotics and Automation, 5(5):691–700, 1989.
[56] M. Fujita, A. Maruyama, M. Watanabe, and H. Kawaai. Inverse optimal h1 disturbance
attenuation for planar manipulators with the eye-in-hand system. In Proceedings of the
39th Conference on Decision and Control, pages 3945–3950, Sidney, Australia, 2000.
[57] N. Gans, P. Corke, and S. Hutchinson. Performance tests of partitioned approaches to
visual servo control. In Proceedings of the IEEE International Conference on Robotics
and Automation, pages 1616–1623, Washington, USA, 2002.
BIBLIOGRAFÍA 291

[58] N. Gans and S. Hutchinson. A switching approach to visual servo control. In Proceed-
ings of the 2002 IEEE International Symposium on Intelligent Control, pages 770–776,
Vancouver, Canada, 2002.

[59] N. Gans and S. Hutchinson. An asymptotically stable switched system visual controller
for eye in hand robots. In Proceedings of the IEEE/RSJ International Conference on
Intelligent Robots and Systems, pages 735–742, Las Vegas, USA, 2003.

[60] N. Gans, S. Hutchinson, and P. Corke. Performance tests for visual servo control
systems with application to partitioned approaches to visual servo control. The Inter-
national Journal of Robotics Research, 22(10–11):955–981, October/November 2003.

[61] N. Garcı́a, P. Ñeco, J.M. Azorı́n, J.M. Sabater, and C. Pérez. Integration of eye-in-
hand/eye-to-hand architectures for visual servoing of industrial robot. In Proceedings of
the 3rd International Symposium on Robotics and Automation, Toluca, México, 2002.

[62] N. Garcı́a, E. Malis, R. Aracil, and C. Pérez. Continuous visual servoing despite the
changes of visibility in image features. IEEE Transaction on Robotics, 21(6):1552–3098,
December 2005.

[63] N. Garcı́a, C. Pérez, L. Payá, R. Ñeco, J.M. Sabater, and J.M. Azorı́n. Avoiding
visual servoing singularities using a cooperative control architecture. In Proceedings of
the 1st International Conference on Informatics in Control, Automation and Robotics,
Setúbal, Portugal, 2004.

[64] N. Garcı́a. Técnicas avanzadas para el control visual de robots basadas en caracterı́sti-
cas de la imagen. Aplicación a la solución de posibles singularidades. PhD thesis,
Universidad Miguel Hernández, Elche, Alicante, Spain, Mayo 2004.

[65] R. Garrido, A. Soria, P. Castillo, and I. Vásquez. A visual servoing architecture for
controlling electromechanical systems. In Proceedings of the 2001 IEEE International
Conference on Control Applications, Mexico City, Mexico, 2001.

[66] V. Gengenbach, H.H. Nagel, M. Tonko, and K. Schafer. Multi-cameras visual servoing.
In Proceedings of the IEEE International Conference on Robotics and Automation,
pages 1320–1325, Minneapolis, USA, 1996.

[67] R. Goodall. Perspectives on processing for real-time control. Annual Reviews in Con-
trol, 25:123–131, 2001.

[68] G. Goodwin and K. Sin. Adaptive filtering. Prediction and control. Prentice-Hall, New
Jersey, USA, 1984.

[69] L. Gracia and C. Pérez. Modelado de Sistemas Dinámicos. Aplicaciones. ECU, Ali-
cante, Spain, 1st edition, 2005.

[70] J.E. Gray and W. Murray. A derivation of an analytic expression for the tracking index
for the alpha-beta-gamma filter. IEEE Transactions on Aerospace and Electronics
Systems, 29(3), July 1993.

[71] J.E. Gray and W. Murray. The response of the transfer function of an alpha-beta filter
to various measurement models. In Proceedings Twenty-Third Southeastern Symposium
on System Theory, volume 22, pages 955–981, Columbia USA, 2003.
292 BIBLIOGRAFÍA

[72] K. Hashimoto. Visual servoing: Real time control of robot manipulators based on visual
sensory feedback. World Scientific Series in Robotics and Automated Systems, 7, 1993.

[73] K. Hashimoto. A review on vision-based control of robot manipulators. Advanced


Robotics, 17(10):969–991, 2003.

[74] K. Hashimoto, T. Ebine, and H. Kimura. Visual servoing with hand-eye manipulator-
optimal control approach. IEEE Transactions on Robotics and Automation, 12(5):766–
774, 1996.

[75] K. Hashimoto, T. Kimoto, M. Kawabata, and H. Kimura. Manipulator control with


image-based visual servo. In Proceedings of the IEEE International Conference on
Robotics and Automation, pages 2267–2272, Sacramento, USA, 1991.

[76] K. Hashimoto and T. Noritsugu. Performance and sensitivity in visual servoing. In


Proceedings of the IEEE International Conference on Robotics and Automation, pages
2321–2326, Leuven, Belgium, 1998.

[77] K. Hashimoto and T. Noritsugu. Potential switching control in visual servo. In Pro-
ceedings of the IEEE International Conference on Robotics and Automation, pages
2765–2770, San Francisco, USA, 2000.

[78] J. Hill and W. Park. Real time control of a robot with a mobile camera. 9th Interna-
tional Symposium on Industrial Robots, pages 233–246, March 1979.

[79] S.A. Hoffman and W.D. Blair. Comments on “the alpha-beta-gamma tracking filter
with a noisy jerk as the maneuver model”. IEEE Transactions on Aerospace and
Electronics Systems, 30(3), July 1994.

[80] K. Hosoda and M. Asada. Versatile visual servoing without knowledge of true jacobian.
In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and
Systems, pages 186–193, 1994.

[81] K. Hosoda, K. Igarashi, and M. Asada. Adaptive hybrid control for visual servoing and
force servoing in an unknown environment. IEEE Robotics and Automation Magazine,
4(5):39–43, 1998.

[82] S. Hutchinson, G. Hager, and P. Corke. A tutorial on visual servo control. IEEE
Transactions on Robotics and Automation, 12(5), October 1996.

[83] E. Iglesias. Adquisición y procesado de imagen usando hardware reconfigurable, Di-


ciembre, 2007. Proyecto Final de Carrera. Universidad Miguel Hernández.

[84] M. Jagersand, O. Fuentes, and R. Nelson. Experimental evaluation of uncalibrated


visual servoing for precision manipulation. In Proceedings of the IEEE International
Conference on Robotics and Automation, pages 186–193, 1994.

[85] W. Jang and Z. Bien. Feature-based visual servoing of an eye-in-hand robot with
improved tracking performance. In Proceedings of the IEEE International Conference
on Robotics and Automation, pages 2254–2260, Sacramento, USA, 1991.

[86] C.T. Johnston, D.G. Bailey, and K.T. Gribbon. Optimisation of a colour segmentation
and tracking algorithm for real-time fpga implementation. In Proceedings of Image and
Vision Computing Conference, page 422–427, Dunedin, New Zealand, 2005.
BIBLIOGRAFÍA 293

[87] T. Kailath. Lectures on Wiener and Kalman Filtering. Springer-Verlag, New York,
USA, 1981.

[88] P. Kalata. The tracking index: A generalized parameter for alpha-beta and alpha-
beta-gamma target trackers. IEEE Transactions on Aerospace and Electronic Systems,
AES-20(2):174–182, 1984.

[89] R.E. Kalman. A new approach to linear filtering and prediction problems. Transactions
of the ASME-Journal of Basic Engineering, 82-D:35–45, 1960.

[90] T. Kawase, H. Tsurunosono, N. Ehara, and I. Sasase. Alpha-beta tracking filter com-
bined with ellipsoidal prediction using generalized hough transform. Radar 97., (449),
October 1997.

[91] T. Kawase, H. Tsurunosono, N. Ehara, and I. Sasase. Alpha-beta tracking filter com-
bined with maneuver-driven circular prediction. Electronics and Comunications in
Japan., 80(10), 1997.

[92] T. Kawase, H. Tsurunosono, N. Ehara, and I. Sasase. Alpha-beta tracking filter com-
bined with ellipsoidal prediction using generalized hough transform. Electronics and
Communications in Japan., 81(8), 1998.

[93] R. Kelly. Robust asymptotically visual servoing of planar robots. IEEE Transactions
on Robotics and Automation, 12(5):759–766, 1996.

[94] R. Kelly, R. Carelli, O. Nasisi, B. Kuchen, and F. Reyes. Stable visual servoing of
camera-in-hand robotic systems. IEEE/ASME Transactions on Mechatronics, 5(1):39–
48, 2000.

[95] R. Kelly, J. Favela, J. Ibarra, and D. Bassi. Asymptotically stable visual servoing of
manipulators via neural networks. Journal of Robotic Systems, 17(12):659–669, 2000.

[96] D. Khadraoui, G. Motyl, P. Martinet, J. Gallice, and F. Chaumette. Visual servoing


in robotics scheme using a camera/laser-stripe sensor. IEEE Transactions on Robotics
and Automation, 12(5):743–750, 1996.

[97] J. Kolodziej and T. Singh. Target tracking via a dynamic circular filter/linear alpha-
beta filters in 2-d. In Proceedings of the American Control Conference, page 4343–4347,
Chicago, Illinois, USA, 2000.

[98] Y. Kosuge. Optimal gains of an alpha-beta filter derived from a tracking method using
a weighted measurement covariance matrix. Electronics and Communications in Japan,
89(10), 2006.

[99] Y. Kosuge and M. Ito. Evaluating an alpha-beta filter in terms of increasing a track
update-sampling rate and improving measurement accuracy. Electronics and Commu-
nications in Japan, 86(10), 2003.

[100] Y. Kosuge, M. Ito, T. Okada, and S. Mano. Steady-state errors of an alpha-beta-gamma


filter for radar tracking. Electronics and Communications in Japan, 85(12), 2002.

[101] Y. Kosuge and H. Kameda. Stability of a tracking filter based on an alpha-beta-gamma


filter. Electronics and Communications in Japan, 83(5), 2000.
294 BIBLIOGRAFÍA

[102] Y. Kosuge, H. Kameda, and S. Mano. Kalman filter and alpha-beta filters for radar
tracking. Electronics and Communications in Japan, 80(3), 1997.

[103] D. Kragic and H.I. Christensen. Using a redundant coarsely calibrated vision system for
3d grasping. In Proceedings of the Computational Intelligence for Modelling, Control
and Automation, pages 91–97, 1999.

[104] D. Kragic and H.I. Christensen. Robust visual servoing. the international journal of
robotics research. IEEE Transactions on Nuclear Science, 22(10-11):923–939, Octo-
ber/November 2003.

[105] E. Lefeberg, R. Kelly, R. Ortega, and H. Nijmeijer. Adaptative and filtered visual
servoing of planar robots. In Proceedings of the Fourth IFAC Symposium on Nonlinear
Control Systems Design, pages 563–568, Enschede, The Netherlands, 1998.

[106] R. Li and C. He. Optimal initialization of linear recursive filters. In Proceedings of the
37th IEEE Conference on Decision and Control, Tampa, Florida, USA, 1998.

[107] X.R. Li and Y. Bar-Shalom. Multiple model estimation with variable structure. In
IEEE Transactions on Automatic Control, 41(4):478–493, April 1996.

[108] R.D. Lorentz. Advanced flux & torque control methods for field oriented induction
motor drives. Univ. of Wisconsin-Madison. Course Notes.

[109] C. Lozano. Sistema de visión artificial para control teleoperado de robot, Enero, 2006.
Proyecto Final de Carrera. Universidad Miguel Hernández.

[110] E. Malis. Contributions à la modélisation et à la commande en asservissement visuel.


PhD thesis, Informatique, Traitement du Signal et Télécommunications. Université de
Rennes I, IRISA, November 1998.

[111] E. Malis. Visual servoing invariant to changes in camera intrinsic parameters. In


International Conference on Computer Vision, volume 1, pages 704–709, Vancouver,
Canada, 2001.

[112] E. Malis and F. Chaumette. Theoretical improvements in the stability analysis of a


new class of model-free visual servoing methods. IEEE Transactions on Robotics and
Automation, 18(2):176–186, 2002.

[113] E. Malis, F. Chaumette, and S. Boudet. Positioning a coarse-calibrated camera with


respect to an unknown object by 2D 1/2 visual servoing. pages 1352–1359, 1998.

[114] E. Malis, F. Chaumette, and S. Boudet. 2 12 d visual servoing. IEEE Transactions on


Robotics and Automation, 15(2):238–250, 1999.

[115] E. Malis, F. Chaumette, and S. Boudet. Multi-cameras visual servoing. In Proceedings


of the IEEE International Conference on Robotics and Automation, pages 3183–3188,
San Francisco, USA, 2000.

[116] N. Mansard and F. Chaumette. Tasks sequencing for visual servoing. In Proceedings of
the IEEE International Conference on Inteligent Robots and Systems, pages 992–997,
Sendai, Japan, 2004.
BIBLIOGRAFÍA 295

[117] P. Martinet, N. Daucher, J. Gallice, and M. Dhome. Robot control using monocular
pose estimation. In Workshop on New Trends in Image-based Visual Servoing. IEEE
International Conference on Robotics and Automation, pages 1–12, Grenoble, France,
1997.
[118] F. Matı́a, A. Jiménez, B.M. Al-Hadithi, D. Rodrı́guez, and R. Galán. The fuzzy kalman
filter: State estimation using possibilistic techniques. Fuzzy Sets and Systems, 157:2145–
2170, 2006.
[119] P.S. Maybeck. Stochastic models, estimation, and control. Mathematics in Science and
Engineering, 141(1), 1979.
[120] T. McGarty. Stochastic System and Estate Estimation. John Wiley & Sons, New York,
USA, 1974.
[121] E. Mechler, J. Rusell, and M. Preston. The basis for the optimum aided-tracking time
constant. Journal of Franklin Institute, 248:327–334, October 1949.
[122] Y. Mezouar and F. Chaumette. Path planning for robust image-based control. IEEE
Transactions on Robotics and Automation, 18(4):534–549, 2002.
[123] W. Miller. Real-time application of neural networs for sensor-based control of robots
with vision. IEEE Transactions on Systems Man and Cybernetics, 19(4):825–831, 1989.
[124] C. Monroy, R. Kelly, M. Artega, and E. Bugarin. Remote visual servoing of a robot
manipulator via internet. Journal of Intelligent and Robotic Systems, 49(2):171–187,
2007.
[125] M. Moore and J. Wang. Adaptive dynamic modelling for kinematic positioning. In
IAG Scientific Meeting, Budapest, Hungary, 2001.
[126] R. Morales. Diseño, configuración y programación de un robot porticado de 3 gdl,
Octubre, 2004. Proyecto Final de Carrera. Universidad Miguel Hernández.
[127] M. Munu, I. Harrison, D. Wilkin, and M.S. Woolfson. Comparison of adaptive target-
tracking algorithms for phased-array radar. IEE Proceedings-F, 139(5), October 1992.
[128] M. Munu, I. Harrison, and M.S. Woolfson. Comparison of the kalman and alpha-beta
filters for the tracking of targets using phased array radar, 1992.
[129] A. Namiki, K. Hashimoto, and M. Ishikawa. A hierarchical control architecture for
high-speed visual servoing. The International Journal of Robotics Research, 22(10-
11):873–888, October-November 2003.
[130] A. Namiki, Y. Nakano, I. Ichii, and M. Ishikawa. High speed grasping using visual and
force feedback. IEEE International Conference on Robotics and Automation, pages
3195–3200.
[131] C. Ogaja. On-line gps integrity monitoring and deformation analysis for structural
monitoring applications. In 14th Int. Tech. Meeting of the Satellite Division of the
U.S. Inst. of Navigation, pages 989–999, Salt Lake City, Utah, USA, 2001.
[132] T.L. Ogle and W.D. Blair. Derivation of a fixed-lag, alpha-beta filter for target tra-
jectory smoothing. In Proceedings of the Thirty-Fourth Southeastern Symposium on
System Theory, pages 26–30, Atlanta, GA, USA, 2002.
296 BIBLIOGRAFÍA

[133] T.L. Ogle and W.D. Blair. Derivation of a fixed-lag, alpha-beta filter for target trajec-
tory smoothing. IEEE Transactions on Aerospace and Electronic Systems, 40(4):1417–
1421, October 2004.
[134] T. Ortmaier and G. Hirzinger. Cartesian control of robots with working-position de-
pendent dynamics. In 6th International IFAC Symposium on Robot Control (Syroco),
Vienna, Austria, 2000.
[135] R.W. Osborne III and Y. Bar-Shalom. Radar measurement noise variance estimation
with targets of opportunity. In IEEE Aerospace Conference, 2006.
[136] J. Painter, D. Kerstetter, and S. Jowers. Reconciling steady-state kalman and alpha-
beta filter design. IEEE Transactions on Aerospace and Electronic Systems, 26(6):12,
November 1990.
[137] K.M. Passino and Yourkovich S. Fuzzy Control. Addison-Wesley, Ohio, USA, 1988.
[138] J. Peipmeier, G. McMurray, and H. Lipkin. A dynamic jacobian estimation method for
uncalibrated visual servoing. In Proceedings of the IEEE/ASME International Confer-
ence on Advanced Intelligent Mechatronics, pages 944–949, Atlanta, USA, 1999.
[139] J. Peipmeier, G. McMurray, and H. Lipkin. A dynamic quasi-newton method for
uncalibrated visual servoing. In Proceedings of the IEEE International Conference on
Robotics and Automation, pages 1595–1600, Detroit, USA, 1999.
[140] C. Pérez, N. Garcı́a, J.M. Azorı́n, J.M. Sabater, and L. Navarro. Image-based and
intrinsic-free visual navigation of a mobile robot defined as a global visual servoing
task. In Second Internacional Conference on Informatics in Control, Automation and
Robotics, Barcelona, Spain, 2005.
[141] C. Pérez, N. Garcia, O. Reinoso, J.M. Azorin, and R. Morales. Design, modeling and
identification of a cartesian robot for direct visual servoing applications. In Proceed-
ings of the International Conference on Visualization, Imaging, and Image Processing,
Palma de Mallorca, Spain, 2006.
[142] C. Pérez, N. Garcı́a, J.M. Sabater, J.M. Azorı́n, and O. Reinoso. Object trajectory
prediction. application to visual servoing. In European Control Conference, pages 2105–
2111, Kos, Greece, 2007.
[143] C. Pérez, L. Gracia, R. Morales, N. Garcı́a, and J.M. Azorı́n. Predicción de la posición
de caracterı́sticas para tareas de control visual. In XXVIII Jornadas de Automática,
Universidad de Huelva, 2007.
[144] C. Pérez, R. Morales, N. Garcı́a, J.M. Azorı́n, and J.M. Sabater. The visibility problem
in visual servoing. In The 3rd International Conference on Informatics in Control,
Automation and Robotics, Setúbal, Portugal, 2006.
[145] C. Pérez, O. Reinoso, N. Garcı́a, R. Ñeco, and M.A. Vicente. Gripper tracking with
trajectory prediction and adaptive fuzzy control. In World Automation Congress, vol-
ume 17, pages 513–518, Seville, Spain, 2004.
[146] C. Pérez, O. Reinoso, N. Garcı́a, R. Ñeco, and M.A. Vicente. Robot hand tracking
using adaptive fuzzy control. In International Conference on Fuzzy Systems, pages
1251–1256, Budapest, Hungary, 2004. IEEE Catalog Number: 04CH37542C.
BIBLIOGRAFÍA 297

[147] C. Pérez, O. Reinoso, N. Garcı́a, J.M. Sabater, and J.M. Azorı́n. Improvement of
the visual servoing task with a new trajectory predictor. the fuzzy kalman filter. In
International Conference on Informatics in Control, Automation and Robotics, Angers,
France, 2007.

[148] C. Pérez, O. Reinoso, N. Garcia, J.M. Sabater, and L. Gracia. Modelling of a di-
rect drive industrial robot. Transactions on Engineering, Computing and Technology,
17(1):329–334, 2006.

[149] C. Pérez, O. Reinoso, and M.A. Vicente. Robot hand visual tracking using an adaptive
fuzzy logic controller. In International Conferences in Central Europe on Computer
Graphics, Visualization and Computer Vision, Plzen, Czech Republic, 2004.

[150] D.P. Perrin, E. Kadioglu, S.A. Stoeter, and N. Papanikolopoulos. Grasping and tracking
using constant curvature dynamic contours. The International Journal of Robotics
Research, 22(10-11):855–871, October-November 2003.

[151] C. Pérez. Tracking visual de robots mediante el estudio de posición y orientación,


Septiembre, 2002. Trabajo de Suficiencia Investigadora. Universidad Miguel Hernández.

[152] A.B. Proca and A. Keyhani. Identification of variable frequency induction motor models
from operating data. IEEE Transactions on Energy Conversion, 17(1), March 2002.

[153] S. Puente. Desensamblado automático no destructivo para la reutilización de compo-


nentes. Aplicación al desensamblado de PC’s. PhD thesis, Escuela Politécnica Superior.
Universidad de Alicante, December 2002.

[154] J. Qian and J. Su. Online estimation of image jacobian matrix by kalman-bucy filter
for uncalibrated stereo vision feedback. In Proceedings of the International Conference
on Robotics and Automation, pages 562–567, Washington, USA, 2002.

[155] A. Remazeilles, F. Chaumette, and P. Gros. Robot motion control from a visual mem-
ory. In Proceedings of the IEEE International Conference on Robotics and Automation,
pages 4695–4700, New Orleans, USA, 2004.

[156] C. Robert and G. Casella. Monte Carlo Statistical Methods. Springer, 1999.

[157] B.H. Rocha and M. Madrigal. Análisis del comportamiento en controladores de ve-
locidad variable durante depresiones de voltaje. Revista IEEE América Latina, 3(5),
December 2005.

[158] Z. Roth, B. Mooring, and B. Ravani. An overview of robot calibration. IEEE Journal
of Robotics and Automation, 3(5):377–385, 1987.

[159] A. Sala. Apuntes de Ingenierı́a de Control. Sevicio de Pulicaciones de la Universidad


Politécnica de Valencia, Valencia, Spain, 1st edition.

[160] J. Santos-Victor. Visual servoing of cellular robots. In Proceedings of the European


Control Conference, Porto, Portugal, 2001.

[161] J. Santos-Victor, R. Carelli, and S. Van de Zwaan. Nonlinear visual control of remote
cellular robots. In Proceedings of the 10th Mediterranean Conference on Control and
Automation, Lisbon, Portugal, 2002.
298 BIBLIOGRAFÍA

[162] J. Santos-Victor and G. Sandini. Visual behaviors for docking. Computer Vision and
Image Understanding: CVIU, 67(3):223–238, 1997.

[163] C. Scheering and B. Kersting. Uncalibrated hand-eye coordination with a redundant


camera system. In Proceedings of the IEEE International Conference on Robotics and
Automation, pages 2953–2958, Leuven, Belgium, 1998.

[164] D.C. Schuurman and D.W. Capson. Robust direct visual servo using network-
synchronized cameras. IEEE Transactions on Robotics and Automation, 20(2):319–334,
2004.

[165] L. Sciavicco and B. Siciliano. Modeling and control of robot manipulators. The Mc-Graw
Hill Companies, 1996.

[166] P.J. Sequeira. Controlo Visual de Robôs Manipuladores. PhD thesis, Dissertação para
obtenção do Grau de Doutor em Engenharia Mecânica, Lisboa, Portugal, Abril 2005.

[167] P.J. Sequeira and J.R. Caldas. Camera configurations of a visual servoing setup for a
2 dof planar robot. In Proceedings of the 7th International IFAC Symposium on Robot
Control, pages 181–187, Wroclaw, Poland, 2003.

[168] P.J. Sequeira and J.R. Caldas. Dynamic visual servoing of robotic manipulators. In
Proceedings of the IEEE Conference on Emerging Technologies and Factory Automa-
tion, pages 560–565, Lisbon, Portugal, 2003.

[169] P.J. Sequeira and J.R. Caldas. Dynamic position-based visual servoing of robotic
manipulators. In Proceedings of the 35th International Symposium on Robotics, Paris,
France, 2004.

[170] P.J. Sequeira, L.F. Mendonça, J.M. Sousa, and J.R. Caldas. Fuzzy model based control
applied to image-based visual servoing. In Proceedings of the 1st International Con-
ference on Informatics in Control, Automation and Robotics, pages 143–150, Setubal,
Portugal, 2004.

[171] P.J. Sequeira, L.F. Mendonça, J.M. Sousa, and J.R. Caldas. Fuzzy model based control
applied to path planning visual servoing. Springer Berlin / Heidelberg, 10:224–231,
2004.

[172] P.M. Sharkey and D.W. Murray. Delays versus performance of visually guided systems.
In IEE Proceedings on Control Theory and Applications, volume 5, page 436–447, 1996.

[173] Y. Shirai and H. Inoue. Guiding a robot by visual feedback in assembly tasks. Pattern
Recognition, 5:99–108, 1973.

[174] D. Simon. Optimal State Estimation: Kalman, Hinf and Nonlinear Approaches. Wiley-
Interscience, Hoboken, NJ, USA, 2006.

[175] G. Siouris. An Engineering Approach to Optimal Control and Estimation Theory. John
Wiley & Sons, New York, USA, 1996.

[176] J. Sklansky. Optimizing the dynamic parameters of a track-while-scan system. RCA


Review, 18:163–185, June 1957.
BIBLIOGRAFÍA 299

[177] C. Smith and N. Papanikolopoulos. Computation of shape through controlled active


exploration. In Proceedings of the IEEE International Conference on Robotics and
Automation, pages 2516–2521, San Diego, USA, 1994.

[178] W. Splendey, G.R. Hext, and F.R. Himsworth. Sequential application of simplex designs
in optimization and evolutionary operation. Technometrics, 4:441–461, 1962.

[179] ST-Microelectronics. Datasheet of vl6524/vs6524 vga single-chip camera module, 2007.


http://www.datasheetarchive.com/preview/3627690.html.

[180] J.J. Sudano. The alpha-beta-sigma tracking filter with a noisy jerk as the maneuver
model. IEEE Transactions on Aerospace and Electronics Systems, 29(2), April 1993.

[181] M. Sugeno. Industrial applications of fuzzy control. Science Publications Company -


Elsevier, 1985.

[182] I.H. Suh and T.W. Kim. Fuzzy membership function based neural networks with
applications to the visual servoing of robot manipulators. IEEE Transactions on Fuzzy
Systems, 2(3):203–220, 1994.

[183] I.H. Suh and T.W. Kim. A visual servoing algorithm using fuzzy logics and fuzzy-neural
networks. Mechatronics, 10:1–18, 2000.

[184] H. Sutanto, R. Sharma, and V. Varma. Image based autodocking without calibration.
In Proceedings of the International Conference Robotics and Automation, pages 974–
979, Albuquerque, USA, 1997.

[185] O. Tahri and F. Chaumette. Application of moment invariants to visual servoing. In


Proceedings of the IEEE International Conference on Robotics and Automation, pages
4276–4281, Taipeh, Taiwan, 2003.

[186] D. Telford, M.W. Dunnigan, and B.W. Williams. On-line identification of induction
machine electrical prameters for vector control loop tuning. IEEE Transaction on
Industrial Electronics, 50(2), August 2003.

[187] D. Tenne and T. Singh. Characterizing performance of alpha-beta-gamma filters. IEEE


Transactions on Aerospace and Electronics Systems, 38(3), July 2002.

[188] D. Tenne and T. Singh. Circular prediction algorithms - hybrid filters. In Proceedings
of the American Control Conference, Anchorage, AK, USA, 2002.

[189] M. Tommiska. Area-efficient implementation of a fast square root algorithm. In IEEE


International Caracas Conference on Devices, Circuits and Systems, pages S18:1–S18:4,
Cancun, Mexico, 2000.

[190] F. Torres, P. Gil, S. Puente, J. Pomares, and R. Aracil. Automatic pc disassembly


for component recovery. International Journal of Advanced Manufacturing Technology,
23:39–46, 2004.

[191] F Torres and S. Puente. Intelligent disassembly in the demanufacturing process. Inter-
national Journal of Advanced Manufacturing Technology, 30(5/6/2007):479–480, 2006.

[192] E. Trucco and A. Verri. Introductory techniques for 3D computer vision. Prentice-Hall,
New Jersey, USA, 1998.
300 BIBLIOGRAFÍA

[193] J. Urbina. Control visual directo de un robot de 3 grados de libertad, Septiembre,


2006. Proyecto Final de Carrera. Universidad Miguel Hernández.

[194] R.K. Ursem and P. Vadstrup. Parameter identification of induction motors using dif-
ferential evolution. Evolutionary Computation, 2:790– 796, December 2003.

[195] M Vargas. Métodos para el control de robots manipuladores con realimentación visual.
PhD thesis, Tesis Doctoral de la Universidad de Sevilla, Sevilla, Spain, Julio 2001.

[196] Varios. Special issue on visual servoing, 1996. IEEE Transactions on Robotics and
Automation, Vol. 12, No. 5.

[197] Varios. Special issue on visual servoing, 1998. IEEE Robotics and Automation Maga-
zine, Vol. 5, No. 4.

[198] Varios. Special issue on visual servoing, 2003. International Journal of Robotics Re-
search, Vol. 22, No. 10-11.

[199] M. Vincze. Real-time vision, tracking and control dynamics of visual servoing. In IEEE
International Conference on Robotics and Automation, page 644–649, San Francisco,
CA, USA, 2000.

[200] M. Vincze and G.D. Hager. Robust Vision for Vision-Based Control of Motion. Wiley-
IEEE Press, Piscataway, New Jersey, USA, 2000.

[201] M. Vincze and C. Weiman. On optimizing window size for visual servoing. In IEEE
International Conference on Robotics and Automation, volume 22–24, page 2856–2861,
Albuquerque, New Mexico, USA, 1997.

[202] E. Wernholt. On multivariable and nonlinear identification of industrial robots. PhD


thesis, Linkoping Studies on Science and Technology.

[203] A. Whitworth. The control systems book, 2006.


http://en.wikibooks.org/wiki/Control Systems/All Versions.

[204] WikiArticle. Introducción a las fpga, 2007. http://es.wikipedia.org/wiki/FPGA.

[205] W.J. Wilson, C.C.W. Hulls, and G.S. Bell. Relative end-effector control using carte-
sian position-based visual servoing. IEEE Transactions on Robotics and Automation,
12(5):684–696, 1996.

[206] W.J. Wilson, C.C. Williams, and G.S. Bell. Robust image processing and position based
visual servoing. In Proceedings of the IEEE International Conference on Robotics and
Automation, pages 1–24, Leuven, Belgium, 1998.

[207] J. Yoo and Y. Kimb. Alpha–beta-tracking index. (Alpha–beta–Lambda) tracking filter.


Elsevier Science, 2003.

[208] E. Zergeroglu, D. Dawson, M. Queiroz, and S. Nagarkatti. Robust visual-servo con-


trol of robot manipulators in the presence of uncertainty. In Proceedings of the 38th
Conference on Decision and Control, pages 4137–4142, Phoenix, USA, 1999.
Índice alfabético

ı́ndice de maniobra, 73, 74 dynamic look-and-move, 13

agradecimientos, 13 ecuación de Riccati, 70, 75


aproximación de Euler, 148 el FMF, 79, 91, 99, 103, 108–110
ASIC, 106 código fuente, 128
hRT, 107, 110, 112, 114, 128, 140, 168
bias, 84 simulaciones, 115
introducción a, 90
cámara tiempo de ejecución, 124
CMOS, 200, 201, 203, 204, 207, 210, trasfondo teórico, 108
216 estancias de investigación, 6
2
I C, 201, 202, 206 experimentos
PCA9306, 201 disco giratorio, 172
VL6524, 163, 165, 191, 203, 206 implementación FPGA, 167
conclusiones, 178 lanzamiento de pelota, 100
contribuciones, 7 validación del modelo, 52
publicaciones, 8 eye-in-hand, 14, 16, 17, 29
control visual, 4–7, 17, 18, 21, 22, 26, 28, eye-to-hand, 14–17, 29
30, 31, 33, 143–145, 148, 149, 172,
175, 176 feature jacobian, 19
2 21 D, 26, 27 feature sensitivity matrix, 19
basado en filtro alpha-beta/gamma, 70, 73
imagen, 23, 24, 26, 27, 144 Benedict-Bordner, 80
movimiento, 18 Kalata, 80
posición, 23, 24, 26, 144 variabilidad de la ganancia, 89
cinemático, 13, 18, 28 filtro de Kalman, 62, 63, 65, 67–71, 73–75,
de altas prestaciones, 5 80, 87, 103
de robots, 4, 12–15, 17, 18, 27, 28, 30, antecedentes, 63
31 extendido, 66
dinámico, 13, 28 historia, 62
directo, 5, 13, 28, 144, 148 flujo, 36, 39
hı́brido, 13, 18, 26 del estator, 39
indirecto, 4, 5, 18, 100, 144, 148 del motor, 36
invariante, 30 del rotor, 39
realimentado, 144 magnético, 36, 46
principal, 39, 44
diagrama de flujo FPGA, 105–107, 123, 124, 128, 130, 132–
coordenadas, 214 134, 137–140, 142, 163, 166, 167
I2 C, 203, 205
direct visual servoing, 13 Hamiltoniano, 75, 77, 87
dymola/modelica, 53 hybrid visual servoing, 13

301
302 ÍNDICE ALFABÉTICO

identificación, 50 robot cartesiano


accionamientos, 52 diseño del, 37
robot, 52 medidas de seguridad, 37
image jacobian, 19 rotor flux oriented, 36
inicialización de filtros (TPD), 119 ruido, 67, 70, 73, 80–84, 86, 87, 89
Intel Core 2 Duo, 124, 135, 136, 140, 142 blanco, 70, 73, 80, 85, 88
interaction matrix, 19 de aceleración, 70, 73
inverse optimal H control, 29 de jerk, 81
de medida, 65, 75, 80–82, 88, 89
jacobian transpose approach, 29 de modelo, 84
joint velocities, 18 de proceso, 69, 75, 84, 86, 87, 89
Jury, 81, 89 ficticio, 85
observado, 84
maniobra, 81, 84–87
marcado CE, 37 servo control visual, 4
marco de la tesis, 5
matriz jacobiana, 22 Teorı́a Motus, 63, 64
modelado trabajo futuro, 179
análisis de las ecuaciones, 50 tracking, 84
consideraciones, 46 index, 80, 89
de convertidor y controlador, 44 turntable, 145, 169, 170, 175, 176
de motores, 39 two-ponit differencing, 119
Matlab/Simulink, 53
mecánico, 46 uncalibrated visual servoing, 30
validación, 52
velocity screw, 18
modelo no lineal, 54
VHDL, 106, 107, 123, 124, 128, 130, 132,
Monte Carlo, 82, 86, 116–122
133, 141, 162, 166, 168
motivación y objetivo de la tesis, 4
visual servoing, 12, 18
on-the-fly, 126, 166
Open-Loop-Robot-Control, 12

pose, 12, 13, 15, 17, 23–25, 31, 32


predictor
circular, 82, 83, 90
elipsoidal, 82, 90
no lineal, 82, 88
Proposición
cuarta, 152
primera, 150, 153
segunda, 150–153
tercera, 151
pulse compression, 84

radar, 63, 80, 83, 84, 88


random
acceleration, 84
velocity, 84
range rate of the target, 84
RD1215/97, 37

También podría gustarte