orientador!de!cÁmaraoperado!por!un!robot!de!dos!grados!de
Post on 08-Jul-2022
10 Views
Preview:
TRANSCRIPT
1
ORIENTADOR DE CÁMARA OPERADO POR UN ROBOT DE DOS GRADOS DE LIBERTAD ROTACIONALES
Javier Eduardo Ángel Alarcón
‘
UNIVERSIDAD DE LOS ANDES
Facultad de Ingeniería
Departamento de Ingeniería Mecánica
Bogotá
2013
2 Orientador De Cámara Operado Por Un Robot De Dos Grados De Libertad
ORIENTADOR DE CÁMARA OPERADO POR UN ROBOT DE DOS GRADOS DE LIBERTAD ROTACIONALES
Javier Eduardo Ángel Alarcón
Tesis para optar por el titulo de Ingeniero Mecánico
PROFESOR ASESOR
Carlos Francisco Rodríguez, Ph.D
‘
UNIVERSIDAD DE LOS ANDES
Facultad de Ingeniería
Departamento de Ingeniería Mecánica
Bogotá
2013
3
ORIENTADOR DE CÁMARA OPERADO POR UN ROBOT DE DOS GRADOS DE LIBERTAD ROTACIONALES
4 Orientador De Cámara Operado Por Un Robot De Dos Grados De Libertad
Tabla de contenidos. 1. Introducción. .............................................................................................................................. 6 1.1. Objetivos. ................................................................................................................................................ 6 1.1.1. Objetivo general. ............................................................................................................................. 6 1.1.2. Objetivos específicos. .................................................................................................................... 6 1.2. Requerimientos y restricciones. .................................................................................................. 6
2. Diseño conceptual. ................................................................................................................... 7 2.1. Modelo de la cámara ......................................................................................................................... 8
3. Metodología y solución. .......................................................................................................... 9 3.1. Selección de algoritmo de procesamiento de imagen. ....................................................... 9 3.1.1. Captura de imagen. ........................................................................................................................ 9 3.1.2. Determinación de posición del indicador visual. ........................................................... 10 3.1.2.1. Por patrón. .................................................................................................................................. 10 3.1.2.2. Por color. ...................................................................................................................................... 11 3.2. Selección del algoritmo de control. ......................................................................................... 11 3.2.1. Métodos basado en el jacobiano de la imagen. ............................................................... 11 3.2.2. Estimador de Hesheng Wang ................................................................................................. 12 3.2.3. Métodos independientes del Jacobiano de la imagen. ................................................. 12 3.2.4. Ajuste del controlador P. .......................................................................................................... 13
4. Pruebas realizadas. ............................................................................................................... 13 5. Resultados. ............................................................................................................................................. 14 5.1.1. Movimiento lineal. ....................................................................................................................... 14 5.1.2. Movimiento rotacional. ............................................................................................................. 16 5.1.3. Caracterizacion ................................................................ Error! Bookmark not defined.
6. Anexos ....................................................................................................................................... 17 6.1. Tutorial para configuración básica del robot en MotionWorks IEC 2 Pro. ............. 17 6.2. Secuencia para programación básica del robot en MotionWorks IEC 2 Pro. ........ 19 6.3. Tutorial para configuración de variables en el servidor OPC. ..................................... 21 6.4. Ejemplo de importación de variables a LabView. ............................................................. 23
7. Bibliografía .............................................................................................................................. 24
5
Tabla de figuras. Figura 1. Apuntador laser ...................................................................................................................... 7 Figura 2. Esquemas de configuración. .............................................................................................. 7 Figura 3. Esquema eye-‐in-‐hand. .......................................................................................................... 8 Figura 4. Esquema de cámara. ............................................................................................................. 8 Figura 5. Bloque de adquisición de video. ...................................................................................... 9 Figura 6. Bloque de asistente de vision. ......................................................................................... 10 Figura 7. Esquema de Hesbeng Wang. ............................................................................................ 12 Figura 8. Esquema de función de error. ......................................................................................... 13 Figura 9. Resultados para excitación rotacional en el eje X. ................................................. 14 Figura 10. Resultados para excitación lineal en el eje Y. ........................................................ 15 Figura 11. Resultados para excitación lineal en el eje Z. ........................................................ 15 Figura 12. Resultados para excitación rotacional en el eje X. ............................................... 16 Figura 13. Resultados de excitación rotacional en el eje Y. ................................................... 16 Figura 14. Resultados de excitación rotacional en el eje Z. ................................................... 16 Figura 15. Resultados de prueba de caracterización. .............................................................. 17
Tabla de ecuaciones. Ecuación 1. Vector de velocidades. .................................................................................................. 11 Ecuación 2. Jacobiano de la Figura. .................................................................................................. 12 Ecuación 3. Constantes de proporcionalidad. ............................................................................. 13
6 Orientador De Cámara Operado Por Un Robot De Dos Grados De Libertad
1. Introducción. Tradicionalmente, la aplicación de sistemas automatizados únicamente ha sido viable en entornos adaptados y diseñados para el uso de los mismos; para acciones repetitivas y con poca capacidad de adaptación. Uno de los retos de la utilización de robots adaptativos, es la baja costo eficiencia de la implementación de sistemas de detección y control. Para lo cual el uso de cámaras es una opción muy interesante para la implementación en sistemas de control, debido a la gran cantidad de información que se puede extraer de la imagen de entrada y la facilidad de instalación en ambientes no controlados. Adicionalmente, el desarrollo de computadores de gran capacidad de bajo costo, ha permitido que la implementación de este tipo de sistemas de detección que demandan alta capacidad de procesamiento sean posibles a bajo costo.
1.1. Objetivos.
1.1.1. Objetivo general. Implementar un controlador para un robot de dos grados de libertad rotacionales que oriente una cámara, con el fin de mantener una marca visual en una posición definida dentro de la imagen.
1.1.2. Objetivos específicos. • Capturar en tiempo real la imagen de una cámara. • Lograr determinar la posición de una marca visual dentro de una imagen
capturada en tiempo real. • Establecer la función de error, entre la posición deseada de la marca
visual y la posición deseada. • Establecer el método de control del robot.
1.2. Requerimientos y restricciones. • El dispositivo debe ser capaz de proporcionar la posición de la marca visual
dentro del campo visual de la cámara. • Debe ser capaz de seguir la marca visual en la totalidad del rango de
operación del robot designador. • Se debe diseñar y manufacturar un soporte para la cámara. • La forma de fijación de la cámara en el campo de acción es sobre el robot
designador. • Se deben cuantificar las capacidades operacionales resultantes del robot.
7
2. Diseño conceptual. Se cuenta con el robot designador de 2 grados de libertad, diseñado por Francesco Monachello Araujo, el cual ha sido utilizado como soporte para un laser de oficina.
Figura 1. Apuntador laser
El propósito es utilizar este designador como base para soportar una cámara, cuya imagen adquirida sirva como entrada al sistema de control, de los servomotores con los que cuenta el robot, los que seguidamente actuaran para mantener el objetivo en una posición dada de la imagen. Lo que resulta en una configuración de tipo Image-‐based visual servo (IBVS) (Hutchinson,1996).
Figura 2. Esquemas de configuración.
Debido a que la cámara está ubicada el final del efector, la configuración utilizada resulta en este caso ser eye-‐in-‐hand (Hutchinson,1996), por lo que la posición de la cámara respecto al efector 𝑥!! es conocida y constante.
8 Orientador De Cámara Operado Por Un Robot De Dos Grados De Libertad
Figura 3. Esquema eye-‐in-‐hand.
Adicionalmente, ya que el propósito del robot es; lograr seguir un objeto, únicamente basado en la imagen capturada, el vector de posición del objetivo respecto al robot 𝑥! es desconocida. Finalmente, debido a que se cuenta con una única cámara, no existe forma de estimar la posición del objetivo respecto a la cámara 𝑥!! . Esto obliga a que el controlador no dependa de la medición de este valor.
2.1. Modelo de la cámara Para hacer uso de la cámara, se utilizó un modelo simplificado del pinhole (Forsyth ,2003) en el cual se ignoran los efectos ópticos relacionados con el reflejo invertido de la imagen y se utiliza únicamente la imagen adquirida. Lo que deja como únicos parámetros: la coordinadas u y v en la imagen y la distancia focal λ.
Figura 4. Esquema de cámara.
Se desea implementar el nuevo sistema de seguidor con el menor numero de modificaciones posibles al robot con el que cuenta la universidad. Por lo que la selección de los componentes a adicionar, debe asegurar que no se pierda ni reduzca la utilidad anterior con la que contaba el robot.
9
3. Metodología y solución.
3.1. Selección de algoritmo de procesamiento de imagen. Dado que se requiere una comunicación transparente entre el sistema de procesamiento de imagen y el control del robot, se eligió LabView como el software conveniente para realizar las funciones de determinación de posición de la marca visual. Adicionalmente la utilización de LabView como sistema para ejecutar las funciones de control, permite a futuro, implementar nuevos usos para el designador con relativa facilidad.
3.1.1. Captura de imagen. LabView cuenta con un bloque específico para realizar captura de imagen en tiempo real, que permite adquirirlas de todo tipo de cámaras, utilizando los buses comunes en la industria (USB, Ethernet etc.). Ese bloque permite configurar diferentes frecuencias de adquisición de imagen, diferentes calidades de imagen y diferentes tamaños de exportación de imagen. Se utilizó este medio para asegurar la posibilidad de utilizar cámaras comerciales o ya existentes en la universidad.
Figura 5. Bloque de adquisición de video.
Debido a limitación de memoria RAM (2 Gb) en el computador donde se va a procesar la imagen. Se utilizaron las variables anteriormente mencionadas como variables a modificar, para asegurar que el procesador sea capaz de ejecutar las pruebas a realizar por un tiempo mayor a 5 minutos. Aunque estas variables inciden directamente en la calidad de la imagen, no lo hacen sobre la calidad del proceso de identificación del objetivo. Sin embargo no se debe hacer una selección arbitraria sobre las variables a modificar y sus limitaciones. Por lo que se recomiendan los siguientes parámetros límites de operación, para reducir la calidad de la imagen, minimizando la pérdida de calidad en el proceso de identificación.
10 Orientador De Cámara Operado Por Un Robot De Dos Grados De Libertad
• Mantener el tamaño de la imagen al mínimo, asegurando que el objetivo a rastrear ocupe un porcentaje mínimo de 5%.
• Asegurar que las características a rastrear en el objetivo, no se pierdan con cada renderización nueva de los pixeles de la imagen.
• Asegurar que las características a rastrear en el objetivo, no se pierdan con el incremento o disminución de la distancia desde el objeto hasta la cámara.
• Mantener la frecuencia de adquisición de imagen al mínimo, asegurando que las características del objeto a rastrear no aparezcan alargadas o transparente, al momento de moverse en el plano de la imagen.
3.1.2. Determinación de posición del indicador visual. LabView cuenta con un bloque específico para realizar procesamiento de imagen, en el cual existen dos opciones para realizar localización de objetos: por patrón o por color. El resultado de cualquiera de las opciones de búsqueda a utilizar, es un vector cuyos valores corresponden a las coordenadas de la posición (u,v) de dos esquinas opuestas de un rectángulo que envolvería el objetivo localizado. A continuación se presenta la comparación de las diferentes opciones.
Figura 6. Bloque de asistente de vision.
3.1.2.1. Por patrón.
Para el uso de este método de reconocimiento, se debe establecer un patrón de imagen en formato .png, el cual se “busca” dentro de la imagen capturada para establecer su posición. El uso de este tipo de determinación, no es lo suficientemente robusto en condiciones donde la luz pueda cambiar, existan distorsiones por blacklight o reflejos detrás de la marca visual, debido a que estas distorsiones alteran de fondo las características de color y geometría capturada por la cámara. Adicionalmente, situaciones en donde la orientación de la cámara, cause que el objetivo sea visto de forma invertida parcial o totalmente, tampoco son recomendables para este tipo de metodología, debido a la distorsión aparente del objetivo. Sin embargo, de poder utilizar un gran tamaño de imagen, en una aplicación donde la distancia desde la cámara hasta el objetivo varíe significativamente, este método
11
sería el apropiado para asegurar una correcta ubicación del objetivo. Ya que el patrón de rastreo sería encontrado en un tamaño diferentes dentro de la imagen. Esto solo es válido dentro del rango en el que se asegure que el patrón a buscar únicamente sufra cambio de tamaño y no cambio en sus características.
3.1.2.2. Por color. Para el uso de este método de reconocimiento, se debe igualmente establecer un patrón de imagen a seguir en formato .png, de donde se calcula el color medio de ese patrón para luego realizar su búsqueda dentro de la imagen adquirida. Debido a la naturaleza del método de búsqueda, en caso de existir pixeles de un color similar al buscado dentro de la imagen, la posición entregada por el bloque como la posición donde se encontró el objetico será equívoca. Este problema se solucionar, al utilizar como patrón un color que no sea posible encontrar en el rango de visión del robot. Sin embargo esta solución no permite que el sistema opere en condiciones donde el fondo de la imagen capturada varíe. Por otro lado, en este caso, como el parámetro a seguir es únicamente el color; la distancia entre el objetivo y la cámara, la rotación aparente del objetivo y el cambio de luz no afecta significativamente, por lo que se decidió utilizar este método.
3.2. Selección del algoritmo de control. Como se indicó en el diseño conceptual, el sistema de control es de tipo Image-‐Based, sin embargo, a diferencia de los ejemplos expuestos por (Hutchinson,1996), la configuración utilizada no permite medir la posición del objetivo, por lo que se debe utilizar algún método de robusto que no necesite el uso del calculo del jacobiano de la imagen (Hutchinson,1996)o realice la estimación de este. Debido a que la salida del algoritmo de localización, es la posición en pixeles de las cuatros esquinas donde se ha identificado el patrón a localizar, se calculó el promedio de las coordenadas, tanto el X como en Y, para establecer el centro de posición capturada.
3.2.1. Métodos basado en el jacobiano de la imagen. Siendo r, el vector de posición del efector y 𝑟 el vector de velocidades del mismo, suyas componentes tanto lineales como rotacionales serian:
Ecuación 1. Vector de velocidades.
12 Orientador De Cámara Operado Por Un Robot De Dos Grados De Libertad
Y siendo f, el vector de posición del efector y 𝑓 el vector de velocidades del mismo, el
Jacobiano de la imagen, definido de la siguiente manera seria:
Ecuación 2. Jacobiano de la imagen.
3.2.2. Estimador de Hesheng Wang Existe la opción de estimar en tiempo real el Jacobiano de la imagen. Sin embargo para lograr esto se necesitaría una cámara de gran capacidad y un sistema de procesamiento capaz de calcular el Jacobiano a la misma o mayor frecuencia de la que se utiliza para controlar el robot. Sin embargo debido al limitante de capacidad computacional con la que se cuenta en este proyecto, se evitó hace uso de esta metodología.
Figura 7. Esquema de Hesbeng Wang.
3.2.3. Métodos independientes del Jacobiano de la imagen.
Basado únicamente en la función de error, definida como la distancia en pixeles desde el objetivo hasta el centro de la imagen adquirida, se puede hace uso de controladores de tipo PID, lo que supera la incapacidad computacional de estimar en tiempo real el Jacobiano de la imagen.
13
Figura 8. Esquema de función de error.
Debido a que se busca diseñar un controlador que sea rápido y viable de operar con limitada capacidad computacional, se optó por utilizar un controlador P, el que controlara los dos grados de libertar disponibles en este robot de la siguiente manera.
Ecuación 3. Función de error.
3.2.4. Ajuste del controlador P. Se limitaron los valores kx y ky, de forma iterativa a valores que permitieran que se mantuviera el objetivo identificable dentro de la imagen capturada para rangos de Z entre 15cm y 3m. Encontrando como resultados
Ecuación 4. Constantes de proporcionalidad.
4. Pruebas realizadas. Se pretendían evaluar las capacidades del sistema bajo condiciones dinámicas conocidas. Por lo que se efectuaron pruebas del comportamiento del robot, montando éste sobre la plataforma Stewart con la que cuenta la Universidad. Manteniendo el objetivo fijo en una posición aproximada inicial respecto a la cámara (0m, 0m, 1.96m). Se realizaron pruebas de desempeño; ejerciendo movimiento lineal sobre el robot en las tres direcciones (X, Y, Z) y movimiento rotacional sobre los mismos ejes. Para
14 Orientador De Cámara Operado Por Un Robot De Dos Grados De Libertad
comparar las posiciones en pixeles, en la que se hubiera encontrado el objetivo en la imagen si no se hubiera utilizado el controlador y las posiciones en las que se encontró el objetivo con el uso del controlador. Debido a que la posición del robot sobre la plataforma Stewart, hace que esta se desestabilice a altas aceleraciones sobre el plano horizontal (direcciones X y Y), se utilizó esta restricción como limitante para las pruebas realizadas. Posteriormente se aplicaron pruebas de caracterización del sistema, en las cuales se tomaron datos de, la posición del objetivo en la imagen y tiempo durante la ejecución del controlador, para la condición en la cual el objetivo inicialmente se encuentra en el borde de la imagen, tanto en X como en Y. Lo que representa una aparición del objetivo sobre la imagen cuando el robot está completamente estático.
5. Resultados. A continuación se presentan los resultados de ubicación del objetivo en una imagen de 160x120 pixeles.
5.1.1. Movimiento lineal. Se utilizaron dos frecuencias (1Hz y 0.5Hz) para las pruebas, en las que se mantenía el objetivo reconocible dentro de la imagen capturada (ver 3.1.1) función necesaria para la operación. Para dichas frecuencias se encontró por ensayo y error, la máxima amplitud a la que la plataforma Stewart deja de estar completamente apoyada en la superficie de apoyo del laboratorio. La limitante para la frecuencia y amplitud de la excitación fue 5cm a 1Hz.
Figura 9. Resultados para excitación rotacional en el eje X.
15
Figura 10. Resultados para excitación lineal en el eje Y.
Figura 11. Resultados para excitación lineal en el eje Z.
16 Orientador De Cámara Operado Por Un Robot De Dos Grados De Libertad
5.1.2. Movimiento rotacional. La limitante para la frecuencia y amplitud de la excitación fue 0.2Rad a 1Hz.
Figura 12. Resultados para excitación rotacional en el eje X.
Figura 13. Resultados de excitación rotacional en el eje Y.
Figura 14. Resultados de excitación rotacional en el eje Z.
17
5.1.3. Caracterización Se operó el controlador ubicando el objetivo inicialmente en una esquina de la imagen, para determinar el comportamiento de forma estática.
Figura 15. Resultados de prueba de caracterización.
7. Conclusiones.
-‐Se logró implementar el controlador P de manera que el sistema logra ubicar de manera estática el objetivo en el centro de la imagen en un tiempo cercano a un segundo, sin sobreoscilación y de manera convergente.
-‐La selección y ajustes aplicados al controlador fueron suficientes para mitigar los errores de ubicación del objetivo introducidos por el sistema de adquisición, tanto en condición estática como dinámica.
6. Anexos
6.1. Tutorial para configuración básica del robot en MotionWorks IEC 2 Pro. Conecte los motores, actuadores lineales y amplificadores según el robot a configurar. Ya que dicha configuración depende únicamente del robot a configurar, en este documento no se dan aclaraciones respecto al tema. Inicialice el programa MotionWorks IEC 2 Pro, cuya licencia debe ser suministrada por el distribuidor de Yaskawa. Vaya al configurador de hardware.
18 Orientador De Cámara Operado Por Un Robot De Dos Grados De Libertad
Dele al PLC la dirección 192.168.1.1 y de click en Connect. Corra una configuración del controlador, para que esta descubra automáticamente el tipo y el número de actuadores conectados.
Asegúrese de que el resultado final coincida tanto en número y en tipo, de los actuadores en la configuración, y los actuadores conectados.
Inicialmente se deben ajustar los límites de posición y velocidad para la aplicación a utilizar.
19
En este punto se deben verificar las configuraciones de tipo de carga, ajuste de revoluciones del actuador y la carga, las unidades a utilizar y el número de eje asignado al actuador.
Posteriormente se debe configurar el tipo de alimentación eléctrica y la secuencia a seguir en caso de sobrepasar alguno de los límites delimitados anteriormente.
6.2. Secuencia para programación básica del robot en MotionWorks IEC 2 Pro.
20 Orientador De Cámara Operado Por Un Robot De Dos Grados De Libertad
En la ventana principal de MotionWorks IEC 2 Pro, en el proceso de inicialización, nombre los actuadores a programar con nombres de variables tipo eje, actuador lineal etc. según corresponda.
En el proceso Main, utilice estas variables de actuador, booleanas y numéricas para programar el robot. Para esto cuenta con los bloques pre programados del fabricante ubicados a la derecha de la ventana principal.
21
Por ejemplo, utilice los bloques MC_Power para proveer de corriente los actuadores. Los campos a la derecha son campos de entrada y los campos a la izquierda son campos de salida. El ejemplo presentado, se le da corriente al anteriormente nombrado EjeY, al momento de que esto ocurra la variable booleana On_Y será verdadera. El resto de variables de entrada se fijaron en verdadero ya que en este punto no debe haber ninguna restricción para que se ejecute esta orden.
6.3. Tutorial para configuración de variables en el servidor OPC. Al momento de crear las variables, asegúrese de seleccionar si estas van a ser locales o globales (privadas o visibles/editables con otros programas en la red). En caso de ser variables globales, especifique cual va a ser el medio para publicarlas, para este caso se utilizó OPC. Asegúrese se dar un valor inicial, que haga que el comportamiento del robot sea seguro en caso de que se pierda la conexión de lis datos.
En este punto debe asegurar que tanto el MWIEC OPC Server como el Cogent DataHub estén corriendo.
22 Orientador De Cámara Operado Por Un Robot De Dos Grados De Libertad
Abra el Cogent DataHub y en la página principal, en la opción de OPC haga click en Add.
En la ventana que surge, seleccione el MWIEC OPC como el servidor a utilizar y la frecuencia se acceso para leer valores. Es útil dar valor de cero a los valores que se pierdan, para asegurar que el robot se comporte de forma segura.
23
Al dar clic en View data, en la página principal, se deben ver los valores actuales de las variables vistas ahora por el DataHub.
6.4. Ejemplo de importación de variables a LabView. En LabView, abra un nuevo proyecto Blank VI. Haga clic derecho en My Computer para adicionar un nuevo I/O server. Seleccione OPC Client para luego seleccionar el servidor creador por Cogent
24 Orientador De Cámara Operado Por Un Robot De Dos Grados De Libertad
7. Bibliografía Forsyth, D. A. (2003). Computer Vision: A Modern Approach (Vol. Fourth). Pearson/Prentice Hall. Araujo, F. M. (2011). DISEÑO DE UN DESIGNADOR LÁSER. Bogotá: Universidad de Los Andes. Palpacelli, M., Palmieri, G., & Callegari, M. A Redundantly Actuated 2-‐Degrees-‐of-‐Freedom Mini Pointing Device . Polytechnic University of Marche, Department of Industrial Engineering and Mathematical Sciences. Wang, H. Adaptive Visual Servoing Using Point and Line Features With an Uncalibrated Eye-‐in-‐Hand Camera . IEEE TRANSACTIONS ON ROBOTICS, VOL. 24, NO. 4, AUGUST 2008 . Jianbo Su, W. Q.-‐Y. Calibration-‐FreeRoboticEye–HandCoordinationBased on an Auto Disturbance-‐Rejection Controller . IEEE TRANSACTIONS ON ROBOTICS, VOL. 20, NO. 5, OCTOBER 2004 . Hutchinson, S. A Tutorial on Visual Servo Control . IEEE TRANSACTIONS ON ROROTLCS AND AUTOMATION, VOL. 12, NO. 5, OCTOBER 1996 .
top related