Predicción de la posición de caracterı́sticas para tareas de control visual Carlos Pérez1 , Luis Gracia2 , Ricardo Morales1 , Nicolás Garcı́a1 , José M. Azorı́n1 1 Virtual Reality & Robotics Lab. Universidad Miguel Hernández de Elche 2 Departamento de Ingenierı́a de Sistemas y Automática. Universidad Politécnica de Valencia [email protected] Resumen El servo control visual en una temática de gran importancia dentro del campo de la visión dirigida al control de robots, pero uno sus sus principals problemas es el retardo introducido por la adquisición y el procesamiento de la imagen. Este retardo es la principal razón del lı́mite de velocidad y aceleración de los sistemas de tracking. Los algoritmos de estimación del movimiento se usan para predecir la localización de la caracterı́stica visual y generar la acción de control necesaria para mantener un grupo de caracterı́sticas dentro de la imagen. Existen diferentes algoritmos ampliamente extendidos que se pueden utilizar para realizar esta predicción como el filtro de Kalman, los filtros αβ/γ, los predictores circulares, etc. pero este artı́culo presenta un nuevo filtro basado en filtros existentes con el cual se mejora la predicción realizada por cualquiera de ellos. Este nuevo filtro está basado en la optimización fuera de lı́nea de los parámetros de un sistema borroso para la mezcla de filtros y por ello se ha llamado: Fuzzy Mix of Filters ( FMF). 1 INTRODUCCION Durante los últimos años, el uso de servo control visual y del seguimiento (tracking) están siendo cada vez más comunes debido al incremento de la potencia de los algoritmos y de los ordenadores. El servo control visual y el visual tracking son técnicas que se pueden usar para el control de mecanismos con base en la información visual. Esta información visual está disponible con un tiempo de retardo, por lo tanto, el uso de filtros predictivos se ha extendido ampliamente. El filtro de Kalman (Kalman, 1960) ha llegado a ser un estándar para proporcionar y solucionar el problema de los retardos (considerado uno de los problemas predominantes del servo control visual) en sistemas de control basado en visión [2], [3] y [4]. Para prácticamente todas las arquitecturas, el sis- tema de visión introduce un retardo mı́nimo de dos ciclos, pero para el procesado on-the-fly sólo se necesita un ciclo del lazo de control [5]. Los autores de [6] demostraron que el filtro de Kalman de estado estacionario funciona mejor que el KF (Kalman Filter) en presencia de cambios abruptos de trayectoria, pero no tan bien como el KF para movimientos suaves. Algunos trabajos de investigación referentes a la estimación del movimiento se presentan en [7] y [8]. Además, algunos algoritmos de planificación de trayectoria basados en la fórmula de Frenet-Serret se describen en [9], [10] y [11]. Para resolver estos problemas de retardos, teniendo en cuenta estas consideraciones, se propone un nuevo algoritmo de predicción, el Fuzzy Mix of Filters (FMF). Este filtro minimiza el error de tracking y funciona mejor que el KF clásico debido a que decide cuál de estos filtros usar (αβ slow /αβ f ast [5], αβγ, Kv, Ka o Kj ). La transición entre estos filtros es suave, evitando discontinuidades. Se han elegido estos cinco filtros para trabajar de forma combinada debido a que el filtro de Kalman puede abarcar todas las dinámicas consideradas para el objeto, por una parte, y por la otra debido a que cuando el objeto se encuentra fuera del plano de imagen la mejor predicción es la realizada por los filtros de estado estacionario (αβ/αβγ dependiendo de la dinámica del objeto: velocidadaceleración). Obviamente, considerando más filtros y más comportamientos, el FMF mejora la predicción pero el coste computacional es un problema en la ejecución en tiempo real. Este artı́culo está centrado en el nuevo filtro FMF y está estructurado de la siguiente forma: la sección 2 presenta las consideraciones de la dinámica del objeto. La sección 3 presenta el diagrama de bloques del sistema de control servo visual. Este diagrama es ampliamente utilizado en los trabajos de control visual [2] y [5]. La sección 4 presenta la idea básica aplicada (ver [15] y [16]), pero el trabajo principal se desarrolla sobre uno de los bloques de la sección 3, el filtro FMF se describe en la sección 5. En la sección 6 podemos ver los resultados con datos simulados. Estos resultados muestran que el FMF se puede utilizar para mejorar la tarea de control visual de alta velocidad. Esta sección se organiza en dos partes: en la primera se analiza el comportamiento del FMF y en la segunda se comparan los resultados con los obtenidos por Chroust y Vince [5] y con el algoritmo CPA [24] (algoritmo utilizado en aplicaciones aeroespaciales). Las conclusiones y el trabajo futuro se presentan en la sección 7. 2 Figura 1: Diagrama de bloques usando KF presentado por Corke LA DINAMICA DE UN OBJETO MOVIL El movimiento del objeto no es conocido a priori en el caso general. Por lo tanto, es tratado como una perturbación estocástica justificando el uso de un KF como un observador del mismo tipo. El algoritmo de KF presentado por Kalman empieza por la descripción del sistema hecha por las ecuaciones 1 y 2. xk+1 = F · xk + G · ξk (1) yk = C · x k + N · η k (2) Las matrices F y C se obtienen desde la expresión 3 hasta 7: ∆a a − ai = J0 = t − ti ∆t 1 1 x(t) = xi + vi (t − ti ) + ai (t − ti )2 + Ji (t − ti )3 2 6 1 v(t) = vi + ai (t − ti ) + J0 (t − ti )2 2 a(t) = ai + J0 (t − ti ) J(t) = J0 T 1 0 0 T 2 /2 T 1 0 T 3 /6 T 2 /2 ;C = 1 T 1 0 0 0 donde T es el periodo de muestreo. Este modelo se llama modelo de jerk constante porque asume que el jerk (dx3 (t)/dt3 ) es constante entre dos periodos de muestreo. (5) (6) (7) x(t) = f (t); ẋ(t) = v(t); ẍ(t) = a(t); v̈(t) = J(t) 3 DESCRIPCION DEL SISTEMA DE CONTROL El principal objetivo del control visual es llevar al objeto a la posición deseado del plano de imagen y que éste permanezca allı́ para cualquier movimiento del objeto. En la figura 1 se puede ver el lazo de control visual presentado por Corke en [2]. El diagrama de bloques se puede utilizar para una cámara móvil o para una cámara fija, controlando el movimiento del robot. Corke usa un KF para incorporar una estructura de realimentación. Para este trabajo se utiliza un bloque FMF en la misma estructura de esquema de control (ver figura 2) pero se reordenan los bloques para una comprensión más sencilla. En el caso general de tracking, el modelo usualmente considerado es el de aceleración constante [5], pero en este caso, se considera un modelo de jerk constante descrito por las matrices F y C: 1 0 F = 0 0 (4) donde, x es la posición, v es la velocidad, a es la aceleración y J es el jerk. Por lo tanto la relación entre ellas es: donde xk ∈ <nx1 es el vector de estado y yk ∈ <mx1 es el vector de salida. La matriz F ∈ <nxm es la llamada matriz del sistema, la cual describe la propagación del estado desde k hasta k + 1 y C ∈ <mxn describe la forma con la cual la medida afecta al estado xk . En el caso del control visual m es 1 (porque sólo se mide la posición) y n = 4. La matriz G ∈ <nx1 distribuye el ruido del sistema ξk a los estados y ηk es el ruido medida. En el KF la secuencia de ruido ηk y ξk son consideradas gaussianas, blancas y no correladas. Las matrices de covarianza de ξk y ηk son Q y R respectivamente (estas expresiones consideran movimientos 1D). Una explicación básica para la secuencia de ruido blanco gaussiano se puede encontrar en [17]. (3) V(z) en la figura 2 representa el comportamiento de la cámara, el cual es modelado mediante un simple retardo: V (z) = kv · z −2 (ver [2], [18], [19], [20] y [21]). C(z) es el controlador (un simple controlador proporcional se implementa para los experimentos presentados en este artı́culo). R(z) es el robot (para este caso: R(z) = z/z − 1) y el filtro de predicción genera la señal de realimentación para predecir la posición del objeto. ẋ(t) = R X (Ui x(t) + Vi u(t))µ(z(t)) i=1 R X (µ(z(t)) i=1 Figura 2: Diagrama de bloques usando FMF o ẋ(t) = La variable a ser minimizada es ∆x (generada por el sistema de visión) que representa la desviación del objeto respecto de la posición deseada (error). El controlador calcula la velocidad ẋd con la cual se ha de mover el robot en la dirección correcta para decrementar el error. Usando esta aproximación, no se necesita planificación de trayectoria (la eliminación de esta planificación de trayectoria es importante porque decrementa la carga computacional [2]). La función de transferencia del robot describe el comportamiento de éste frente a entradas de velocidad. Por lo tanto, fdt considerada es [5]: R(z) = z z−1 El bloque FMF se presenta en las siguientes secciones (secciones 4 y 5). 4 FUNDAMENTOS DEL FUZZY MIX OF FILTERS (FMF) El motor de inferencia borroso más comúnmente utilizado es el conocido como método de inferencia de Mamdani, pero existe otro método llamado Sugeno, o Takagi-Sugeno-Kang. Éste fue introducido en 1985 [22] y es similar al método de Mamdani en diferentes aspectos. Las dos primeras partes del proceso de inferencia, fuzificación de las entradas y aplicación del operador borroso, son exactamente las mismas. La mayor diferencia entre Mamdani y Sugeno es que la función de pertenencia de salida de Sugeno es lineal o constante (para más información ver [23]). R X ! (Ui ξi (z(t)) x(t)+ i=1 donde x(t) = [x1 (t), x2 (t), ..., xn (t)]T es el vector de estado, u(t) = [u1 (t), u2 (t), ..., um (t)]T , Ui y Vi son las matrices de estado y de entrada, y z(t) = [z1 (t), z2 (t), ..., zp (t)]T es la entrada del sistema fuzzy, de forma que: ! (Vi ξi (z(t)) u(t) i=1 donde ξ T = [ξ1 , ..., ξR ] = 1 R X [µ1 , ..., µR ] µi i=1 Este trabajo se basa en la idea expuesta y en estas expresiones (ver [23] para más detales). Se han mezclado los conceptos de Mamdani y Sugeno porque se ha implementado un algoritmo similar al de Sugeno pero para sistemas no lineales. Se obtiene un peso normalizado de diferentes expresiones recursivas no lineales. El sistema funciona como podemos ver en la figura 3 (ver sección ??). 5 EL FMF Se ha desarrollado un nuevo filtro que mezcla diferentes tipos de filtro de Kalman dependiendo de las condiciones de movimiento del objeto. La principal ventaja de este nuevo algoritmo es el cambio suave de la ponderación de los filtros. Considérese el sistema dinámico no lineal ẋ = f1 (x, u); y = g1 (x, u) como cada uno de los filtros utilizados. La aplicación del regulador borroso en este caso produce la siguiente expresión en el espacio de estados: N X fi (x, u) · ω(x, u) i=1 donde ω(x, u) = Para los reguladores de tipo Sugeno se tienen funciones de salida lineal de forma que la iesima regla tienen 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) R X µi (x, u) N X µj (x, u) i=1 El sistema final obtenido tiene la misma estructura que los filtros utilizados: ẋ = f2 (x, u); y = g2 (x, u) La figura 3 muestra el diagrama de bloques del FMF. En esta figura, se puede ver que la entrada general es la secuencia de posiciones del objeto THEN FKF=αβγ R10 : IF jerk IS high THEN FKF=Kj Estas reglas se han obtenido empı́ricamente, basándose en la experiencia de los autores usando el filtro de Kalman en diferentes aplicaciones. Cabe destacar que la regla R10 (cuando el jerk es alto) muestra que el mejor filtro que se puede considerar es el Kj cuando existe jerk, cosa completamente lógica. En cuanto al resto de caracterı́sticas del fuzzy system, se ha utilizado un motor de inferencia producto, un fuzificador singleton y defuzificador de la media. La figura 4 presenta los conjuntos borrosos donde (umax , vmax ) es el tamaño de imagen, µvel = µacc = 2m/s, σvel = σacc = 0.5, cvel = cacc = 1, dvel = dacc = 3, ivel = iacc = 1 y jvel = jacc = 1 (estos valores se han obtenido empı́ricamente). Figura 3: Fuzzy Mix of Filters − FMF (xk ). El conjunto de reglas que implementa el bloque llamado fuzzy system está recogido en el conjunto de reglas Ri . R1 : IF object IS inside AND velocity IS low AND acceleration IS low AND jerk IS low THEN FKF=Kv R2 : IF object IS inside AND velocity IS medium AND acceleration IS low AND jerk IS low THEN FKF=Kv R3 : IF object IS outside AND velocity IS low AND acceleration IS low AND jerk IS low THEN FKF=αβ slow R4 : IF object IS outside AND velocity IS medium AND acceleration IS low AND jerk IS low THEN FKF=αβ f ast R5 : IF object IS inside AND velocity IS high AND acceleration IS low AND jerk IS low THEN FKF=Kv R6 : IF object IS inside AND acceleration IS medium AND jerk IS low THEN FKF=0.2·αβγ + 0.8 · Ka R7 : IF object IS outside AND acceleration IS medium AND jerk IS low THEN FKF=0.8 · αβγ + 0.2 · Ka R8 : IF object IS inside AND acceleration IS high AND jerk IS low THEN FKF=Ka R9 : IF object IS outside AND acceleration IS high AND jerk IS low 6 RESULTADOS Esta sección se compone de dos partes: la primera (sección 6.1), analiza el algoritmo de predicción presentado en este artı́culo (diagrama de bloques del FMF mostrado en la figura 3) y la segunda (sección 6.2), muestra el resultado de los experimentos del esquema de control (ver figura 2). 6.1 RESULTADOS DEL FMF En la figura 5, se puede ver la efectividad del algoritmo propuesto en comparación con los métodos clásicos del KF. En esta figura, podemos ver las r posiciones Pkr (posición actual del objeto), Pk−1 r (posición del objeto en k − 1) y Pk−2 (posición del objeto en k − 2). La siguiente posición real del r 1 objeto será Pk+1 . Los puntos desde Pek+1 hasta 6 e Pk+1 , representan la predicción obtenida de cada filtro por separado. La mejor predicción es la proporcionada por el FMF. Este experimento se ha realizado para una trayectoria parabólica de un objeto afectado por la aceleración de la gravedad. (Ver figuras 5 y 6). Se han realizado diferentes experimentos para varios movimientos del objeto y podemos concluir que el algoritmo FMF funciona mejor que los otros filtros de la comparativa (los filtros comparados son: αβ, αβγ, Kv, Ka, Kj y CPA -ver sección 6.2- con FMF). La figura 6 muestra la trayectoria real y la predicción de cada filtro. Para este experimento, se han utilizado los cuatro primeros puntos reales de la posición del objeto como entrada a todos los filtros y éstos predicen la trayectoria en base a esta única información. Como se puede ver en esta figura, la mejor predicción es la del FMF. 6.2 RESULTADOS DEL ESQUEMA DE CONTROL VISUAL Para probar el esquema de control presentado en la figura 2, se ha utilizado el movimiento del objeto mostrado en la figura 7 (arriba). Este movimiento del objeto representa una rampa entre 1 < t < 4 segundos y un movimiento senoidal para t > 6 segundos. A este modelo de movimiento se le añade un ruido de σ=1 pixel. Este movimiento es usado por Stefan Chroust y Markus Vincze en [5] para analizar el Switching Kalman Filter (SKF). Figura 4: Definición de parámetros del sistema borroso 20 Real Position 18 Prediction Ab Prediction Abg Prediction Kv Prediction Ka Prediction Kj Prediction FKF 16 Position (pixels) 14 ∼ P6 k+1 ∼ P5 ∼ 2 Pk+1 ∼ 4 Pk+1 12 k+1 ∼ P7 k+1 r P k+1 ∼ 3 Pk+1 10 r Pk 8 6 r Pk−1 4 r k−2 P 2 0 18 18.5 19 19.5 20 20.5 21 21.5 t (miliseconds) Figura 5: Posición real vs predicción La figura 9 muestra en detalle la región 0 < t < 2 y −0.02 < ∆xp < 0.02 del mismo experimento. En esta figura, se puede ver la rápida respuesta del FMF propuesto. 50 40 Position (pixels) Para este experimento se compara el filtro propuesto (FMF) con el Circular Prediction Algorithm (CPA) [24]. En la figura 7 (abajo), se pueden ver los resultados de estos dos filtros. Para comportamientos con cambio de movimiento, el FMF produce menos error que el CPA. Para el cambio en t=1, el error del FMF es [+0.008,-0] y [+0.015,0.09] para el CPA. Para el cambio en t=4, el error del FMF es [+0,-0.0072] y el error del CPA es [+0.09,-0.015]. Para el cambio en t=6, el error del FMF es [+0.022,-0] y el error del CPA es [+0.122,0.76]. Para la región 6 < t < 9 (movimiento sinusoidal entre 2.5m y 0.5m) ambos algoritmos funcionan de una forma bastante similar: el error del FMF es [±0.0076] y el error del CPA es [±0.005]. El filtro CPA funciona bien porque está diseñado para movimientos similares a la forma de la función seno. Estos resultados de simulación se pueden comparar de forma directa con los resultados del filtro SKF propuesto en [5]. El SKF funciona mejor en la zona sinusoidal debido al efecto AKF (Adaptive Kalman Filter). Por lo tanto, el FMF propuesto funciona mejor que el CPA y que el SKF para algunos casos (FMF es mejor para t=1, t=4 y t=6 pero no para 6 < t < 9 (movimiento sinusoidal)). 30 20 6.3 RESULTADOS EXPERIMENTALES Real Position 10 Prediction Ab Prediction Abg Prediction Kv Prediction Ka Prediction Kj Prediction FKF 0 −10 0 2 4 6 8 10 12 14 16 t (miliseconds) Figura 6: Predicción de una trayectoria suave Los resultados experimentales se han obtenido para la siguiente configuración de componentes: cámara de alta velocidad Pulnix GE series high speed (200 frames por segundo), tarjeta Intel PRO/1000 PT Server Adapter, PC con procesador 3.06GHz de Intel, sistema operativo Windows XP Professional y las librerı́as de procesamiento OpenCV. Con esta configuración, se ha gravado el bote de una pelota contra el suelo para obtener los datos Target motion (m) αβ αβγ Kv Ka Kj FKF 40 40(bis) 50 70 90 150 0.619 0.547 0.588 0.619 0.630 0.646 0.559 0.633 0.663 0.650 0.661 0.682 0.410 0.426 0.439 0.428 0.458 0.477 0.721 0.774 0.809 0.700 0.818 0.848 0.877 0.822 0.914 0.821 0.857 0.879 0.353 0.340 0.381 0.365 0.343 0.347 3 2 1 0 0 1 2 3 4 5 6 7 8 9 Tabla 1: Comparativa numérica de la dispersión de los filtros implementados (experimento del bote de una pelota contra el suelo) 0.1 CPA FKF 0.08 0.06 0.04 ∆xp (m) Init. pos. 0.02 0 −0.02 −0.04 −0.06 0 1 2 3 4 5 6 7 8 9 t (seconds) Figura 7: Resultados de la simulación del seguimiento (tracking) de un objeto 0.02 CPA FKF que se muestran en la figura 10. Los resultados de aplicar todos los filtros a los datos del bote de la pelota se pueden ver en la tabla 1. En esta tabla, se puede ver la dispersión de todos los filtros comprobando que la menor es la del FMF. En la figura 11 se pueden ver algunos frames de este experimentos ’bote de la pelota contra el suelo’. Para cada uno de estos frames se obtiene el centro de gravedad de la pelota de tenis. 0.015 0.01 7 ∆xp (m) 0.005 0 CONCLUSIONES Y TRABAJOS FUTUROS −0.005 −0.01 −0.015 −0.02 0 1 2 3 4 5 6 7 8 9 t (seconds) Figura 8: Zoom de la simulacióm Se ha comparado el filtro propuesto con los filtros αβ, αβγ, Kv, Ka y Kj en experimentos para evaluar la predicción y con el filtro Circular Prediction Algorithm (CPA) reproduciendo el mismo experimento que [5] para una comparación directa con el trabajo realizado por Chroust y Vincze. El filtro propuesto funciona satisfactoriamente pero no mejor que el SKF para todos los casos, por lo que el FMF puede ser mejorado sensiblemente añadiendo entre sus filtros un AKF (trabajo futuro). 0.02 CPA FKF 0.015 0.01 ∆xp (m) 0.005 0 −0.005 −0.01 −0.015 −0.02 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 t (seconds) Figura 9: Zoom entre 0 y 2 segundos En la sección 6.1 (figuras 5 y 6), se puede ver la calidad del nuevo filtro presentado FMF el cual muestra un comportamiento satisfactorio para movimientos suaves o con discontinuidades. La posición del objeto es estimada aunque se encuentre fuera del plano de imagen o con oclusiones, lo que permite seguir realizando el control visual a pesar de estos inconvenientes. 2 El filtro FMF se ha evaluado con una rampa y un movimiento sinusoidal. ∆xp se ha reducido para todos los experimentos y el sobre impulso ha descendido significativamente. Los resultados presentados en este artı́culo se han obtenido para C(z) = KP por lo que uno de los trabajos futuros es experimentar con nuevos controladores (como PD, PID, ...). Referencias 40 Prediction Ab Prediction Abg Prediction Kv Prediction Ka Prediction Kj Prediction FKF 35 30 Position (pixels) [1] Kalman, R. E., ”A new approach to linear filtering and prediction problems”, IEEE Transactions on Pattern Analysis and Machine Intelligence, 1960. IEEE Computer Society. Real Position 25 [2] Corke, P. I., ”Visual Control of Robots: High Performance Visual Visual Servoing”, Research Studies Press. 1998. 20 15 10 5 0 −5 0 10 20 30 40 50 60 70 80 90 100 t (miliseconds) Figura 10: Bote de la pelota contra el suelo. Datos [3] Dickmanns, E. D. and Graefe V., ”Dynamic Monocular Machine Vision”, Applications of dinamyc monoclar machine vision. 1988. Machine Vision and Applications. [4] Wilson, W. J., Williams Hulls, C. C. and Bell, G. S. Relative, ”Relative end-effector Control Using Cartesian Position Based Visual Servoing”, IEEE Transactions on Robotics and Automation. 1996. IEEE Computer Society. [5] Stefan Chroust and Markus Vincze, ”Improvement of the Prediction Quality for Visual Servoing with a Switching Kalman Filter”. I. J. Robotic Res. vol. 22, num. 10-11, 2003, pages 905-922. [6] Chroust, S., Zimmerl, E. and Vincze, M., ”Pros and cons of control methods of visual servoing”, In Proceedings of the 10th International Workshop on Robotics in the AlpeAdria-Danube Region. 2001. [7] S. Soatto, R. Frezza and P. Perona, ”Motion Estimation Via Dynamic Vision”, IEEE Transactions on Automatic Control. 1997. IEEE Computer Society. [8] Z. Duric, J. A. Fayman and E. Rivlin, ”Function From Motion”, Transactions on Pattern Analysis and Machine Intelligence. 1996. IEEE Computer Society. [9] J. Angeles, A. Rojas and C. S. LopezCajun, ”Trajectory Planning in Robotics Continuous-Path Applications”, Journal of Robotics and Automation. 1988. IEEE Computer Society. [10] Z. Duric, E. Rivlin and A. Rosenfeld, ”Understanding the motions of tools and vehicles”, Proceedings of the Sixth International Conference on Computer Vision. 1998. IEEE Computer Society. Figura 11: Bote de la pelota contra el suelo. Frames [11] Z. Duric, E. Rivlin and L. Davis, ”Egomotion Analysis Based on the Frenet-Serret Motion Model”, Proceedings of the 4th International Conference on Computer Vision. 1993. IEEE Computer Society. [12] Nomura, H. and Natio. T., ”Integrated vsual servoing sysem to grasp industrial parts moving on conveyer by controlling 6DOF arm”, Internacional Conference on Systems, Man. and Cybernetics. 2000. IEEE Computer Society. [13] X. Li and V. Jilkov, ”A survey of maneuvering target tracking: Dynamic models”, Signal and Data Processing of Small Targets. 2000. The International Society for Optical Engineering. [14] Mehrotra, Kishore and Mahapatra, Pravas R., ”A Jerk Model for Tracking Highly Maneuvering Targets”, Transactions on Aerospace and Electronic Systems. 1997. IEEE Computer Society. [15] Wang, Li-Xin, ”Course in Fuzzy Systems and Control Theory”, Pearson US Imports & PHIPEs. Pearson Higher Education. 1997. Wiley, New York. [16] Wang, Li-Xin. ”Course In Fuzzy Systems and Control, A”, Prentice Hall. 1997. Wiley, New York. [17] Maybeck, P. S., ”Stochastic Models, Estimation and Control”, Academic Press. 1982. New York. 1982. [18] Hutchinson, S., Hager, G. D., and Corke, P., ”Visual servoing: a tutorial”, Transactions on Robotics and Automation. 1996. IEEE Computer Society. [19] Markus Vincze and Gregory D. Hager, ”Robust Vision for Vision-Based Control of Motion”, SPIE Press / IEEE Press. 2000. Bellingham, Washington. [20] Vincze, M., and Weiman, C., ”On optimizing windowsize for visual servoing”, International Conference on Robotics and Automation. 1997. IEEE Computer Society. [21] Vincze, M., ”Real-time vision, tracking and control—dynamics of visual servoing”, International Conference on Robotics and Automation. 2000. IEEE Computer Society. [22] Sugeno, M., ”Industrial applications of fuzzy control”, Elsevier Science Publications Company. 1985. Bellingham, Washington. [23] Passino, K. M. and Yourkovich S., ”Fuzzy Control”, Addison-Wesley. 1988. Ohio, USA. [24] Tenne, D. and Singh, T., ”Circular prediction algorithms-hybrid filters”, American Control Conference. 2002. IEEE Computer Society. [25] Mikhel E. Hawkins. ”High Speed Target Tracking Using Kalman Filter and Partial Window Imaging”, Thesis Presented to The Academic Faculty. 2002. Georgia, USA.