Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TESIS DOCTORAL
Por
Carlos Pérez Vidal
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
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
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.
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.
A Cristina
Agradecimientos
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
i
II ÍNDICE GENERAL
II Anexos 181
A. Glosario 183
Bibliografı́a 285
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
v
VI ÍNDICE DE FIGURAS
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
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
xiii
XIV ÍNDICE DE TABLAS
Parte I
Tesis
1
CAPÍTULO 1
INTRODUCCIÓN
3
4 CAPÍTULO 1. INTRODUCCIÓN
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.
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.
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.
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
ARQUITECTURA DEL
CONTROL VISUAL
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:
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;
Figura 2.1: Visión monocular con una cámara colocada en el efector final y mirando
hacia el objeto, eye-in-hand.
visual).
Figura 2.2: Visión monocular con una cámara mirando hacia el objeto y hacia el robot
manipulador, eye-to-hand.
Figura 2.3: Visión estéreo con las cámaras colocadas en el efector final y mirando hacia
el objeto.
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:
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:
∂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 :
La velocidad del punto x3D , respecto a una referencia en movimiento viene dada por:
" #
Ẋ·Z−X·Ż
X
Ẋ
1 1 0 −
ṁ = [ẋ ẏ]T = Z2 = · Z
Y · Ẏ (2.5)
Ẏ ·Z−Y ·Ż Z 0 1 − Z
Z2 Ż
X
1 −1 0 Z
Jv (m) = Y (2.7)
Z 0 −1 Z
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:
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;
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.
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
ė = ṡ − ṡ∗ = ṡ (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)
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.
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.
c
ṫ0 = [−I3 S(c t0 )] · v (2.23)
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 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:
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. 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.
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.
F (Υk )
Υk+1 = Υk + εk · , εk > 0 (2.36)
|| F (Υk ) ||
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
sp (t) = Ak · t3 + Bk · t2 + Ck · t + Dk (2.38)
en la que: (k + 1) · ∆T ≤ t ≤ (k) · ∆T .
−1 1 −1
q̇ = −λ · J2D · (ep ) + · J2D · (epp ) (2.39)
∆T
PLATAFORMA DE PRUEBAS
PARA ALGORITMOS DE
CONTROL VISUAL
35
CAPÍTULO 3. PLATAFORMA DE PRUEBAS PARA ALGORITMOS DE
36 CONTROL VISUAL
3.1. Introduction
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].
(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
Lmo im ≤ imo
Lm = Lmo 2 im > imo (3.11)
1 1
1 + α · Lmo · im · −
imo im
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
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
$ 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)
Φρψ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)
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
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.
µξ , µ ψ , µ ζ = 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
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).
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)
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:
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)
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)
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)
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
−
Velocidad
referencia1
Par to Isq2
3
simpar
To Workspace2
Powergui
−Discrete, tempo
Ts = 3.8e−005 s.
Clock To Workspace1 butter
Filter
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).
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
+
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
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
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.
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.
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.
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:
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).
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).
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:
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).
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”).
−
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
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)
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)
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
−
−
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
+
P11 = K1 R
+
P12 = K2 R
− K1 K2 −
P22 = + P12 (4.22)
T 2
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)
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)
λ
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
+
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].
(HPk H T + R)−1 = R−1 − R−1 H(H T R−1 H + Pk−1 )−1 H T R−1 (4.30)
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 = Sk Zk−1 (4.33)
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
−1 −1 0 I
J HJ = H donde J = (4.37)
−I 0
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.
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
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
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.
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 [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 [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 [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 [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.
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).
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).
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).
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).
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.
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)
Multiplicar la nueva velocidad por un coeficiente (e.g. 0.8) que reduce la velocidad
justo después del bote.
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.
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
−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).
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:
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)
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)
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)
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)
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)
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
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.
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
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
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αβγ , ...).
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 %.
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
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.
Figura 5.16: Secuencia de imágenes del experimento realizado por el robot cartesiano
para coger la pelota en el aire.
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
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.
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.
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.
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)
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 :
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.
σ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
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
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.
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).
Nf
X
Ki (k) · xi (k)
i=1
xFMF (k) = Nf
(6.26)
X
Ki (k)
i=1
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.
(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.
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
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)
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)
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)
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)
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)
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
αβ)
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)
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].
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)
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.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.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.
(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 .
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.
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
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.
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
−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
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
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)
(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).
−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.
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).
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
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.
αβ αβγ 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
Tabla 6.4: Comparativa de coste computacional usando un Intel Core 2 Duo (2,13GHz)
y una Spartan3E-FPGA (50MHz)
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.
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).
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
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
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]).
Figura 7.2: Esquema de control visual propuesto en [38][41] con la reorganización ha-
bitual (mostrada en [147]).
Figura 7.3: Nuevo esquema de control visual (se puede utilizar el predictor FMF en
lugar del KF).
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.
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.
ẍ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)
e(∞) = 0 si, y sólo si ẍrRef (∞) = 0 ↔ ẍt (∞) − ∆ẍRef (∞) = 0 (7.15)
Q.E.D.
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}).
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
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)
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
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
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)
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)
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:
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.12
−0.1202
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).
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.
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)
xr Ref(t)
0
xr(t) Corke
−0.5
xr Ref , xr
xr(t) prop.
−1
−1.5
−2
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)
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)
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.02
2 2.2 2.4 2.6 2.8 3
Tiempo (segundos)
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)
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)
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.
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)
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)
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
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
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.15
Y−Position
0.1 ŷt
0.05 yc
ẏc
−1
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):
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.
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)
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)
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.)
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.)
CONCLUSIONES Y TRABAJOS
FUTUROS
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:
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).
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.
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
EQUIPOS EMPLEADOS EN LA
EXPERIMENTACIÓN
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:
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:
Dimensiones: 51 x 51 x 85mm.
Montura C.
Encapsulado de 320 pines FBGA (del inglés, Fine Ball Grid Array, se trata
de un tipo de montaje superficial utilizado en circuitos integrados).
64 MByte (512 Mbit) de DDR SDRAM, x16 interfaz de datos para el almace-
namiento de la imagen durante el procesado.
2 puertos RS-232 de 9 pines (del tipo DTE y DCE) para comunicación con PC
realizando intercambio de datos.
Zócalo de 8 pines DIP para oscilador de reloj auxiliar de 12MHz necesario para
adquirir la imagen.
Tarjeta PCI con control Xilinx Spartan2 FPGA, con software pre-configurado.
B.5. MICRO CÁMARA VGA VL6524 191
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.
montaje en una placa de circuito impreso. Como se puede observar, la cámara posee
unas reducidas dimensiones.
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.
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.
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.
Engranajes reductores.
B.7. PTU 195
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.
Figura B.9: Pan Tilt Unit (PTU), representación funcional y sistema real de movimien-
to.
UI-1410-M.
Sus principales caracterı́sticas son:
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.
Reset
CE Microprocessor
VREG
VDD
GND
FSO
AVDD
VSYNC
HSYNC
VGA Video pipe PCLK
Pixel array
D[0:7]
GND
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
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
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.
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)
PreStart
Start
Dir. Sensor
NO
ACK='0' ?
SI
Índice 1/2
NO
ACK='0' ? Trama=Trama+1
SI
Cargar nuevo dato
Índice 1/2
SI
Dato
ACK='0' ?
SI/NO
Stop
NO
Trama<7?
SI
SDA=1
clk24mhz IN: entrada del reloj auxiliar. Utilizado para generar las señales de
reloj SCL y SDA.
sda l: entrada de lectura del 9◦ bit (bit ACK). Utilizado por implantar la elec-
trónica antes descrita.
SALIDAS:
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.
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--
------------------------------------------------------------------------------------
-- 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.
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
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
BLANKING V=0
V=1
ACTIVE
VIDEO vsync
BLANKING V=0
V=1
ACTIVE
VIDEO
1460 PCLKs
1280 PCLKs
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
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
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
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
D[0:7] D0 D1 D2 D3 D4 D5
VGA
PCLK
QVGA
Figura C.19: Representación de las I/O del bloque ORDENAR INFO-datos v1.
212 APÉNDICE C. LA INFORMACIÓN VISUAL
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:
datos video: señal que envuelve la información válida de vı́deo, sin considerar
los tiempos de front y back porch.
Figura C.20: Criterio para establecer las coordenadas del objeto (n = 640, m = 480).
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:
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
eu (k)
ē(k) = (C.1)
ev (k)
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.29: Detalle del sincronismo horizontal con medidas temporales junto con
sincronismo vertical para calcular los 480 pulsos.
Figura C.31: Representación de las I/O del bloque MOV SERVOS-Control Servos v1.2
SALIDAS:
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.
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.
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.
EL
FILTRO DE KALMAN DISCRETO
223
224 APÉNDICE D. EL FILTRO DE KALMAN DISCRETO
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)
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
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:
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).
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).
∂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):
∂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
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
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}.
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
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:
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
[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.
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.
)
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)
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
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
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
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.
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];
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)
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)
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)
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)
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).
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
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.
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
(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
251
252 APÉNDICE E. ANALISIS DE LAS ECUACIONES DEL MODELO
..., 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).
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
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.
EL ROBOT CARTESIANO
257
258 APÉNDICE F. EL ROBOT CARTESIANO
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:
Convertidor completo.
Ondulador.
Unidades de alimentación.
F.2. VARIADORES DE FRECUENCIA 259
Unidades de alimentación/realimentación.
Módulo de condensadores.
Módulos de acoplamiento.
Filtro de red.
Bobinas de entrada.
Fusibles.
Tarjetas opcionales:
Opciones software.
Accesorios.
Mando y monitorización por medio de los paneles (integrado, manual) o del PC.
Aprobación UL/CSA.
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
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
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~
Componentes de software.
Componentes funcionales.
M(consig,n-reg.) n(cna.alisam.)
K0153 KK0150
100 % 100 %
-100 % -100 %
Conector con longitud de palabra (Kxxxx) Conector con longitud de palabra doble (KKxxxx)
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 %):
Nombre de binector
Acelerac.activa
B0201
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:
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
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
Single Master-System.
Funcionamiento opcional con largo de telegrama fijo o variable (ver figura F.10).
La misma estructura fı́sica de bus que en PROFIBUS (DIN 19245 parte 1).
Ordenador de
jerarquía superior
"Maestro"
n Datos útiles
byte de dirección.
n datos útiles
Nr. Bit 7 6 5 4 3 2 1 0
N° de esclavo/usuario de 0 a 31
= 1: Telegrama espejo
= 0: Ningún telegrama espejo
Tiempo de ciclo
0 0 1 1 0 0 t
MAESTRO
máx. 32 esclavo
ESCLAVO ESCLAVO ESCLAVO
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
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)
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:
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
Valor de parámetro
Valor de parámetro High (PWE1) 3a palabra
Valor de parámetro Low (PWE2) 4a palabra
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
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
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
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
Máximo 16 palabras
Mínimo 0 palabras. Esto significa "ninguna parte PZD en el bloque de datos útiles"
Conexión.
Precauciones:
También aunque esté parado el motor, en los bornes de potencia y en los bornes
de mando puede haber aplicada tensión.
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
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:
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
Enganchar la abrazadera
Ø≤15mm Ø≤7.5mm Ø≤5mm
+5V +5V
390 390
RS485 N
390 Pantalla 390
Conexión
Nivel de la equipotencial
señal externa 0 V
Masa de la
carcasa.
Barras de pantalla
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
8 3 8 3
SUB D de SUB D de
9 polos 9 polos
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
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.
[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
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[188] D. Tenne and T. Singh. Circular prediction algorithms - hybrid filters. In Proceedings
of the American Control Conference, Anchorage, AK, USA, 2002.
[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
[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.
[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.
301
302 ÍNDICE ALFABÉTICO