• No se han encontrado resultados

Adaptación de un LPS visual basado en marcas artificiales codificadas para la navegación de una silla de ruedas en interiores

N/A
N/A
Protected

Academic year: 2020

Share "Adaptación de un LPS visual basado en marcas artificiales codificadas para la navegación de una silla de ruedas en interiores"

Copied!
117
0
0

Texto completo

(1)UNIVERSIDAD DE ALCALÁ Escuela Politécnica Superior GRADO EN INGENIERÍA EN ELECTRÓNICA Y AUTOMÁTICA INDUSTRIAL Trabajo Fin de Grado Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores. Autor: Pedro López Miguel Director: Marta Marrón Romera. TRIBUNAL:. Presidente: Juan Carlos García García. Vocal 1º: Ernesto Martín Gorostiza. Vocal 2º: Marta Marrón Romera. FECHA: ....................................................

(2)

(3) ÍNDICE I. Resumen ................................................................................................................... 1 II. Abstract ..................................................................................................................... 3 III. Palabras clave ........................................................................................................... 5 IV. Resumen extendido .................................................................................................. 7 V. Memoria ................................................................................................................. 11 1. Introducción ........................................................................................................ 11 2. Trabajos previos ................................................................................................. 13 3. Descripción global del sistema ........................................................................... 15 3.1. Sistema de navegación de la SRA ................................................................ 15 3.2. Estructura del mapa nodal del edificio ......................................................... 17 3.3. Sistema de visión artificial ........................................................................... 19 4. Sistema de odometría y visualización de la trayectoria...................................... 21 4.1. Cinemática de la silla de ruedas. .................................................................. 22 4.2. Funcionamiento de la realimentación real del sistema................................. 24 4.3. Errores cometidos por el Sistema Odométrico ............................................. 26 5. Sistema de posicionamiento mediante marcas artificiales ................................. 27 5.1. Sistemas de coordenadas establecidos ......................................................... 28 5.2. Ecuaciones fundamentales ........................................................................... 29 5.2.1. Transformaciones de perspectiva entre el SCA y el SCC ........................ 30 5.2.2. Proyecciones sobre el plano imagen: punto de fuga................................. 32 5.2.3. Transformación de rectas entre el SCA y el PI ........................................ 33 5.3. Descripción de la marca ............................................................................... 34 5.3.1. Dimensiones del patrón ............................................................................ 36 5.3.2. Características del código de barras ......................................................... 37 5.4. Detección y decodificación de la marca artificial ........................................ 38 5.4.1. Introducción .............................................................................................. 38 5.4.2. Proceso de detección del patrón ............................................................... 38 5.4.3. Búsqueda de la señal de reloj ................................................................... 39 5.4.4. Tipos de decodificación ............................................................................ 40 5.4.5. Proceso de cálculo de la posición-orientación absoluta cámara-mundo .. 40 6. Sistema de comunicación de datos entre procesos ............................................. 41 6.1. Introducción ................................................................................................. 41 6.2. ¿Qué es un socket? ....................................................................................... 41 6.3. Diagrama general del proceso de comunicación .......................................... 41 7. Resultados........................................................................................................... 45 7.1. Resultados del ensayo 1 ............................................................................... 45 7.2. Resultados del ensayo 2 ............................................................................... 49 7.3. Resultado del ensayo 3 ................................................................................. 53 7.4. Conclusiones ................................................................................................ 57 7.5. Trabajos Futuros ........................................................................................... 58 VI. DIAGRAMAS ........................................................................................................ 59 1. Aplicación encargada de la Odometría ............................................................... 59 i.

(4) 2.. Aplicación encargada de la detección y procesado de marcas artificiales ......... 73 2.1. Fichero GPS.cpp........................................................................................... 73 2.2. Archivo LP.cpp ............................................................................................ 75 VII. PLIEGO DE CONDICIONES ............................................................................... 79 1. Equipos físicos.................................................................................................... 79 2. Equipos lógicos .................................................................................................. 80 VIII. PRESUPUESTO..................................................................................................... 81 1. Coste de los materiales ....................................................................................... 81 1.1. Recursos hardware ....................................................................................... 81 1.2. Recursos software ........................................................................................ 82 1.3. Material de oficina ....................................................................................... 82 2. Coste de la mano de obra.................................................................................... 83 3. Presupuesto de ejecución de material ................................................................. 83 4. Importe de ejecución por contrata ...................................................................... 83 5. Honorarios facultativos....................................................................................... 84 6. Derechos de Visado ............................................................................................ 84 7. Presupuesto total ................................................................................................. 85 IX. MANUAL DE USUARIO ..................................................................................... 87 1. Requisitos para el programador .......................................................................... 87 1.1. Sistema Operativo ........................................................................................ 87 1.2. Entorno de Programación ............................................................................. 87 1.3. OpenCV........................................................................................................ 88 1.4. ARToolKit.................................................................................................... 88 1.5. CANUSB DLL ............................................................................................. 88 1.6. Configuración de Visual Studio ................................................................... 89 1.6.1. Instalación de las librerias OpenCv 2.4.2 y Artoolkit........................... 89 2. Requisitos para el usuario ................................................................................... 95 2.1. Hardware requerido ...................................................................................... 95 2.2. Instalación de la aplicación .......................................................................... 95 2.3. Configuración de los archivos adicionales ................................................... 96 2.4. Crear nuevo patrón de marca ....................................................................... 99 2.5. Ejecutar la aplicación ................................................................................. 102 2.6. ¿Cómo funciona la aplicación? .................................................................. 105 X. BIBLIOGRAFÍA .................................................................................................. 109 1. Trabajos previos ............................................................................................... 109 2. Enlaces web ...................................................................................................... 111. ii.

(5) ÍNDICE DE FIGURAS Figura 1 Visión general de la aplicación. ....................................................................... 12 Figura 2 Diagrama funcional del sistema de navegación. .............................................. 15 Figura 3 Diagrama de comunicación entre los diferentes procesos ............................... 17 Figura 4 Diagrama explicativo de la cinemática de la SRA. .......................................... 18 Figura 5 Ubicación de las marcas artificiales. ................................................................ 18 Figura 6 Diagrama funcional del algoritmo de fusión para el posicionamiento de la silla mediante un EKF. ........................................................................................................... 19 Figura 7 Variables usadas en el posicionamiento de una silla de ruedas ....................... 21 Figura 8 Relaciones cinemáticas de la silla de ruedas .................................................... 23 Figura 9 Sistema real de realimentación......................................................................... 25 Figura 10 Esquema de la aplicación y paso de mensajes entre módulos. ...................... 27 Figura 11 Sistemas SCA, SCM, SCC y PI. .................................................................... 29 Figura 12 Transformación de la recta L sobre el SCC. .................................................. 30 Figura 13 Proyección de sendas rectas paralelas sobre el PI: punto de fuga.................. 33 Figura 14 Estructura de una Marca Artificial de ejemplo. ............................................. 35 Figura 15 Dimensiones y proporciones del patrón empleado. ....................................... 36 Figura 16 Rangos para diferentes tamaños del patrón. ................................................... 36 Figura 17 Detalle de las dimensiones del código bidimensional empleado. .................. 37 Figura 18 Órdenes y sentidos de lectura del código. ...................................................... 39 Figura 19 Diagrama general del proceso de comunicaciones ........................................ 43 Figura 20 Visualización de la trayectoria inicial en línea recta simulada ...................... 46 Figura 21 Detección de la marca artificial...................................................................... 46 Figura 22 Visualización de la recepción de los datos proporcionados por el sistema de visión .............................................................................................................................. 47 Figura 23 Visualización de la corrección de la posición relativa a la absoluta .............. 48 Figura 24 Visualización de la dirección corregida de la trayectoria .............................. 48 Figura 25 Diagrama del sentido correcto de la dirección de la trayectoria .................... 49 Figura 26 Visualización de la trayectoria inicial en línea recta simulada ...................... 50 Figura 27 Detección de la marca artificial...................................................................... 50 Figura 28 Visualización de la recepción de los datos proporcionados por el sistema de visión .............................................................................................................................. 51 Figura 29 Visualización de la corrección de la posición relativa a la absoluta .............. 51 Figura 30 Visualización de la dirección corregida de la trayectoria .............................. 52 Figura 31 Diagrama del sentido correcto de la dirección de la trayectoria .................... 52 Figura 32 Instante inicial del ensayo. Vehículo en trayectoria recta .............................. 53 Figura 33 Detección de la primera marca artificial ........................................................ 54 Figura 34 Visualización de los datos recibidos por el sistema de visión artificial ......... 54 Figura 35 Corrección de la trayectoria inicial del vehículo............................................ 55 Figura 36 Vehículo siguiendo la trayectoria corregida .................................................. 55 Figura 37 Detección de la segunda marca artificial ....................................................... 56 iii.

(6) Figura 38 Visualización de los datos recibidos por el sistema de visión artificial ......... 56 Figura 39 Segunda corrección de la trayectoria del vehículo ......................................... 57 Figura 40 Vehículo siguiendo la trayectoria corregida .................................................. 57 Figura 41 Configuración de las Variables de Entorno del Sistema Operativo ............... 89 Figura 42 Modificación de la Variable Global del sistema “Path” ................................ 90 Figura 43 Configuración de las propiedades del proyecto en Visual Studio.................. 91 Figura 44 Opciones del Vinculador del proyecto en Visual Studio ............................... 93 Figura 45 Detalle del fragmento de código implementado ............................................ 93 Figura 46 Activación dirección localhost ....................................................................... 94 Figura 47 Contenido del CD de instalación ................................................................... 95 Figura 48 Aspecto de la carpeta destino de la instalación .............................................. 96 Figura 49 Detección del patrón errónea ....................................................................... 100 Figura 50 Forma incorrecta de la ventana de búsqueda del código de barras .............. 101 Figura 51 Detección correcta del patrón durante su configuración .............................. 101 Figura 52 Forma correcta de la ventana de búsqueda del código de barras ................. 102 Figura 53 Aplicación servidor esperando conexión ..................................................... 102 Figura 54 La conexión no ha sido establecida y la aplicación se cerrará ..................... 103 Figura 55 La conexión se ha establecido correctamente .............................................. 103 Figura 56 Ventana de configuración de los parámetros de la imagen .......................... 104 Figura 57 Aplicación odométrica y de visualización de la trayectoria......................... 104. iv.

(7) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. I. Resumen Desde hace varias décadas el Departamento de Electrónica ha venido desarrollando numerosos trabajos relacionados con la ayuda a la movilidad, con objeto de facilitar el desplazamiento de personas con discapacidad en sillas de ruedas. En este proyecto se pretende integrar en la nueva plataforma un sistema que sincroniza dos procesos software desarrollados en los últimos años para obtener la posición absoluta del vehículo: mediante técnicas deadreckoning y mediante el procesado de marcas visuales artificiales. El sistema desarrollado muestra la trayectoria del móvil en tiempo real en función de la posición relativa y su posterior corrección mediante la posición absoluta.. Pedro López Miguel. 1.

(8)

(9) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. II. Abstract. For several decades, the Electronics Department has developed numerous works related to mobility aids, in order to facilitate the movement of handicapped people in wheelchairs. The aim of this project is to integrate into the new platform, a system which synchronizes two processes, developed in recent years, to obtain the absolute position of the vehicle. On one hand, using the deadreckoning technique, and on the other hand, detecting and processing visual landmarks. The developed system displays the vehicle path in real time, based on the relative positioning system and its subsequent correction by means of the absolute positioning system.. Pedro López Miguel. 3.

(10)

(11) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. III. Palabras clave. Posición absoluta en interiores, Ayuda a la movilidad, Marcas artificiales, Comunicación de procesos.. Pedro López Miguel. 5.

(12)

(13) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. IV. Resumen extendido. El presente proyecto pretende continuar con la línea de investigación en el campo de la ayuda a la movilidad desarrollada por Departamento de Electrónica de la Universidad de Alcalá durante estos últimos años. En concreto este proyecto pretende adaptar en una plataforma las diferentes ideas desarrolladas en proyectos anteriores relacionadas con este campo, en concreto con la navegación autónoma de vehículos para personas con movilidad reducida.. El proyecto aquí expuesto sigue esta línea y se centra principalmente en el desarrollo de un sistema que adapta dos de los procesos fundamentales para el funcionamiento del sistema de posicionamiento y localización para la navegación autónoma de una silla de ruedas en interiores. El primer proceso, está basado en la obtención del posicionamiento. y autolocalización mediante la detección. y. decodificación de marcas artificiales ubicadas en los interiores de edificios parcialmente estructurados, esta parte es la que se ha desarrollado en anteriores proyectos realizados en el departamento de electrónica [López-02][Hernández-11]. El segundo proceso es el encargado del control, mediante técnica deadreckoning, del sistema de motores de la silla de ruedas, proporcionando la posición relativa y velocidad del vehículo, esta parte fue desarrollada también en anteriores proyectos [Marrón-00].. La adaptación realizada para este proyecto, se basa en el desarrollo de un sistema conjunto, encargado de la ejecución de los dos procesos descritos anteriormente,. de manera simultánea. Estos procesos. estarán. estrechamente. interrelacionados mediante un modulo de comunicación que les permitirá compartir las Pedro López Miguel. 7.

(14) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. coordenadas de la posición y el ángulo de giro obtenidas por cada proceso de manera individual. Esta información recibida por parte de los dos procesos permitirá disponer de un sistema concurrente el cual, a su vez, permite corregir de manera visual sobre una interfaz gráfica la trayectoria trazada del vehículo en tiempo real. En este trabajo se pretende describir el proceso global del sistema, incluyéndose todas y cada una de las partes necesarias para poder llegar a un completo entendimiento del mismo y poder en un futuro desarrollar otras plataformas basadas en el mismo concepto empleado.. El trabajo aquí descrito se puede dividir en cinco bloques principales:. Un primer bloque, en el cual se describe la finalidad del proyecto y la estructura completa del sistema. A modo de introducción se comentan los trabajos previos realizados y que han servido como base en el desarrollo del sistema de navegación. Se resumen los algoritmos implementados de autolocalización, describiendo las partes que lo forman y su utilidad en el campo de ayuda a la movilidad. Todo este bloque lo forman los capítulos 1, 2 y 3.. Un segundo bloque, formado por el capítulo 4, que describe el funcionamiento del sistema de posicionamiento mediante técnicas deadreckoning. Se realiza una descripción del sistema de posicionamiento, que utiliza los sensores odométricos de un vehículo (encoders) para la obtención de su posición relativa.. Un tercer bloque, formado por el capítulo 5, que describe el funcionamiento del sistema de posicionamiento basado en la detección y decodificación de marcas artificiales mediante visión artificial. En este bloque se describe la base matemática en la que se fundamenta el sistema de obtención de la posición y orientación de la silla de ruedas mediante el procesado de imágenes con marcas artificiales.. Un cuarto bloque, formado por el capítulo 6, en el cual se describe el mecanismo de comunicación entre los procesos de obtención de la posición absoluta tanto mediante técnicas deadreckoning, como la utilización del sistema de visión artificial. La. Pedro López Miguel. 8.

(15) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. información tratada de los dos procesos, permite trazar la trayectoria correcta y visualizarla en una interfaz gráfica.. El quinto bloque lo forma el capítulo 7, y en él se describen y se justifican los resultados obtenidos y se proponen nuevas ideas a realizar en futuros trabajos para conseguir mejorar el sistema actual.. Además de los capítulos a desarrollar, en este documento se incluyen otras secciones como son el pliego de condiciones, el manual de usuario y los diagramas del proyecto. En la sección de diagramas se muestra el código fuente de todos los algoritmos implementados.. Pedro López Miguel. 9.

(16)

(17) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. V. Memoria. 1.. Introducción En el presente proyecto se implementa un sistema que permite enviar la. información de la posición absoluta, obtenida mediante la detección y procesado de marcas artificiales a través de visión artificial [Lopez-02][Hernandez-11] a un sistema de visualización. En este sistema de visualización de la trayectoria se muestra la posición relativa mediante la lectura del valor de los encoders de los motores de la silla. Esta posición es corregida a medida que se reciben los datos de la posición absoluta proporcionados por el sistema de visión artificial. El objetivo del sistema global que se pretende desarrollar conjuntamente con trabajos que se están desarrollando en paralelo es permitir que la silla de ruedas pueda desplazarse de forma autónoma, siendo únicamente necesario que el usuario le indique por medio de algún mecanismo (ya sea por joystick, teclado, voz, etc.) el destino al cual quiere dirigirse dentro del edificio. Por lo tanto, el objetivo del proyecto es crear por un lado una interfaz de monitorización de la posición y por otro un sistema de posicionamiento absoluto que permita corregir la posición relativa conseguida mediante deadreckoning. Este doble objetivo permitirá, por tanto, obtener un vehículo que sea realmente autónomo y que disponga de la suficiente seguridad y fiabilidad como para que su desplazamiento por edificios estructurados, como puede ser el caso de la Escuela Politécnica de la Universidad de Alcalá (Figura 1), se haga de la forma más cómoda posible para el usuario. De esta forma el sistema diseñado se podría usar en edificios. Pedro López Miguel. 11.

(18) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. públicos como hospitales, los cuales suelen ser también fuertemente estructurados, para el traslado de pacientes, etc.. Figura 1 Visión general de la aplicación.. Pedro López Miguel. 12.

(19) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. 2.. Trabajos previos Muchos son los trabajos desarrollados por el Departamento de Electrónica de la. Universidad de Alcalá, sobre la navegación autónoma durante estos últimas decadas, como por ejemplo, el proyecto SIAMO (Sistema de ayuda a la movilidad). El trabajo aquí documentado se basa principalmente en los realizados en la misma línea siendo los más importantes [García 01] y [Marrón 00]. Estos trabajos son la base fundamental de este proyecto, junto a [Bellon09] y [Batarrechea09] en los que se plantea el diseño de una nueva plataforma de silla de ruedas semi-autónoma, ya que lo que se pretende realmente es crear una plataforma conjunta que incorpore las ideas expuestas en todos ellos. Partiendo del trabajo [Marrón-00] en el que se conseguía un movimiento autónomo de la silla en un entorno parcialmente estructurado y se obtenía la información de posicionamiento relativo, así como de [Bellón09] en el que se plantea el nuevo sistema de comunicación con el bajo nivel (control de velocidad de las ruedas) basado en bus CAN, y el desarrollo de un sistema de posicionamiento absoluto gracias a la visión artificial y a un sistema de marcas artificiales que se añade al edificio [García01][Lopez 02][Hernandez-11], se ha desarrollado un sistema de comunicación entre ambos procesos de posicionamiento, odometría y visión, que permite de este modo, estimar la posición real del vehículo.. Pedro López Miguel. 13.

(20)

(21) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. 3.. Descripción global del sistema. El sistema global de navegación se podría subdividir, a grandes rasgos, en cuatro partes, las cuales son:. •. El sistema de posicionamiento relativo de la silla de ruedas (odometría) [Bellón09].. •. El sistema de posicionamiento absoluto de la silla de ruedas (visión artificial y marcas artificiales) [García-01][Lopez 02][Hernandez-11].. •. El mapa nodal representativo del edificio [Marrón-00], [Gualda-11].. •. El sistema de comunicación entre los diferentes procesos.. 3.1.. Sistema de navegación de la SRA. A continuación se explica a grandes rasgos cuál es el funcionamiento general del mismo. El sistema de navegación de la silla de ruedas se organiza en las siguientes tareas (ver figura 2):. Bajo Nivel. Figura 2 Diagrama funcional del sistema de navegación.. Pedro López Miguel. 15.

(22) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. •. Planificador de rutas: mediante un diagrama de nodos se obtiene el camino de nodos óptimo entre dos puntos.. •. Generador de trayectorias: diseña la trayectoria que debe realizar el móvil en cada instante.. •. Controlador de posición: se basa en técnicas deadreckoning, se encarga de obtener de los encoders situados en los ejes de las ruedas la realimentación de posición para corregir a partir de éste los errores en la trayectoria. Todas estas tareas están sincronizadas gracias a un gestor de procesos que se. encarga de supervisar todas las operaciones. El mecanismo de navegación necesita del conocimiento del mapa nodal del edificio. Este mapa servirá de referencia al generador de trayectorias, ya que le permitirá conocer la posición absoluta del punto origen y del punto destino pudiendo trazar el conjunto de trayectorias más idóneo (ya sea una curva o recta entre ellos). El trabajo [Gualda-11] plantea un nuevo sistema de mapeado y generación de rutas frente al diseñado en [Marta-00], siendo uno de los propósitos del presente trabajo, la integración del nuevo sistema de bajo nivel presentado en [Bellón-09], al sistema de mapeo propuesto en [Gualda-11] Mediante el control de posición basado en técnicas deadreckoning la trayectoria se va corrigiendo a medida que el móvil se desplaza del origen al destino, pero este mecanismo se ve insuficiente, de ahí la necesidad de usar otro sistema de posicionamiento que permita conocer con más precisión la posición instantánea del vehículo para corregir los errores en la medida asociados a los encoders. Este sistema de posicionamiento añadido se basa en obtener la posición y orientación del móvil mediante la detección y procesado de las marcas artificiales con un sistema de visión artificial. El sistema de posicionamiento absoluto se basa en el diseñado en [Hernandez-11], adaptación de la propuesta [García-01] a un nuevo sistema de codificación de marcas (ver figura 3), desarrollándose también en el presente trabajo la integración de este posicionador absoluto al sistema global de navegación. Mediante la implementación de un sistema de comunicación, se han adaptado los dos procesos, de tal modo, que en una misma interfaz gráfica se muestran los datos de la posición absoluta ofrecida por el sistema basado en técnicas deadreckoning y la proporcionada por el sistema de visión artificial. La posición y la Pedro López Miguel. 16.

(23) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. trayectoria es corregida en el sistema de monitorización, en tiempo real, a medida que cada proceso proporciona su respectivo vector de coordenadas de posición y el ángulo de giro respectivo (ver figura 3).. Mapa autocontenido en el edificio. Sistema de Visión Artificial. Interfaz de Usuario. Visualización de la trayectoria del vehículo. Controlador Movimiento Vehículo. Figura 3 Diagrama de comunicación entre los diferentes procesos. 3.2.. Estructura del mapa nodal del edificio La información del entorno de movimiento se encuentra codificada en un fichero. .xls mediante un conjunto de nodos [Gualda-11]. Cada nodo representa un punto estratégico del edificio, el cual puede ser el acceso a un pasillo, habitación, etc. La información principal que proporciona el mapa acerca de cada nodo, es su posición absoluta dentro del edificio representada mediante las coordenadas X, Y y θ (pitch de la cámara), como se muestra en la figura 4.. Pedro López Miguel. 17.

(24) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. Figura 4 Diagrama explicativo de la cinemática de la SRA. Esta información permite al sistema de navegación poder trazar las trayectorias más adecuadas entre los diferentes nodos. Por otro lado mediante un sistema de visión artificial se detecta y procesa la información contenida en cada marca artificial. La información encerrada en la marca consiste en una entrada a la tabla .xls donde se encuentran las coordenadas la posición de la marca dentro del edificio. Además, el procesado de la imagen de la marca obtenida desde el vehículo, permite obtener la posición relativa de la silla de ruedas respecto de la marca.. Figura 5 Ubicación de las marcas artificiales. De este modo, al ser la propia marca la que codifica de forma indirecta la información de la posición, el sistema de navegación puede trazar las trayectorias de Pedro López Miguel. 18.

(25) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. una manera más fiable, ya que a medida que detecta una marca conoce exactamente el lugar en el cual se encuentra respecto del edificio y es capaz de corregir la información proporcionada por los encoders de la silla. 3.3.. Sistema de visión artificial. Se utiliza un sistema de visión artificial para obtener la posición-orientación de la silla debido principalmente a que el sistema odométrico de la silla es insuficiente para permitir una navegación segura y sin errores [López-02].. Figura 6 Diagrama funcional del algoritmo de fusión para el posicionamiento de la silla mediante un EKF. El sistema de posicionamiento basado en la detección de marcas artificiales permite obtener una posición-orientación más exacta que la dada por los encoders de la silla, pero tampoco es los suficientemente exacta como para trabajar como único sistema de posicionamiento, por lo que la idea final combina las dos vectores de coordenadas proporcionados por los dos sistemas de posicionamiento mediante un filtro de Kalman Extendido (EKF) (ver figura 6). Aunque este filtro no es objeto de estudio en este proyecto, mencionar que permitirá a partir de la entrada de las consignas de posición-orientación de los dos sistemas de posicionamiento, obtener, mediante una estimación, la posición-orientación real minimizando el error.. Pedro López Miguel. 19.

(26)

(27) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. 4.. Sistema de odometría y visualización de la trayectoria. El sistema odométrico y de visualización de las trayectoria, es una aplicación basada en los trabajos realizados anteriormente en el departamento de Electrónica de la Universidad de Alcalá [Marrón-00][Baterrechea-09] [Bellón-09] [Gualda-11]. Esta aplicación es la encargada de mostrar la trayectoria del vehículo en un plano mientras éste está en movimiento. Para ello, se basa en la utilización de técnicas deadreckoning, que es una técnica que utiliza los sensores odométricos de un robot para la obtención de su posición relativa. Como método de navegación, este método es el más utilizado para el posicionamiento de robots móviles entre otras razones porque es un sistema que proporciona una relativa exactitud en poco tiempo y además porque su montaje no supone un coste excesivo. Otra de las ventajas de este sistema es que se basa en ecuaciones fácilmente implementables a partir de los datos obtenidos de los encoders incrementales acoplados a los ejes de las ruedas. Pero no todo son ventajas, este sistema también se caracteriza por producir una inexactitud en las medidas de posición como consecuencia, básicamente, de dos errores: del deslizamiento de las ruedas motrices y de la diferencia de diámetro existente entre las ruedas, que deberán ser tenidos en cuenta a la hora de diseñar el sistema de navegación. Por este motivo, tal y como se ha comentado anteriormente se utiliza un sistema de visión artificial que proporcionará un sistema de corrección de la trayectoria del vehículo.. Y V. Yr θr. Xr. X. Figura 7 Variables usadas en el posicionamiento de una silla de ruedas. Pedro López Miguel. 21.

(28) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. El uso de técnicas deadreckoning permite recuperar la posición de un móvil (Xr, Yr, θr) a partir las velocidades angulares de las ruedas (ωD y ωI). Debido a los errores comentados quizás no sea el método más adecuado debido principalmente a que el error cometido es acumulativo ya que la técnica de por sí lo es. En sucesivos apartados se irá detallando el funcionamiento de este algoritmo y se demostrará que, por si sólo, no es un método eficaz para la obtención de la posición, necesitando de otros sistemas que permitan corregir los errores que produce.. 4.1.. Cinemática de la silla de ruedas.. Para caracterizar la posición de la silla con respecto a un sistema de coordenadas fijo, se requiere el conjunto de las siguientes variables (ver figura 7): •. Xr e Yr son las coordenadas cartesianas del centro de movimiento de la silla, con respecto a dicho sistema de coordenadas.. •. θr proporciona la orientación de la silla, es el ángulo que forman el eje de movimiento de la silla y el semieje positivo de abscisas del sistema de referencia fijo (X). Mediante el vector (Xr, Yr, θr) queda definida la ubicación exacta de la silla. respecto al sistema de coordenadas fijo. De la figura 7, se obtienen las ecuaciones del modelo de la silla, siendo éstas:. θ&r = Ω X& r = V ⋅ cos θ Y&r = V ⋅ senθ. [rad / s ] [m / s ] [m / s ]. Los controladores de los motores requieren como consignas, las velocidades angulares de las ruedas derecha (ωD) e izquierda (ωI). La relación entre todas estas variables se deduce fácilmente de la figura 8.. Pedro López Miguel. 22.

(29) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. Centro instantáneo de giro. VI V VD. Ω. r R. D. Figura 8 Relaciones cinemáticas de la silla de ruedas La velocidad lineal de avance de la silla se define como la velocidad con que se mueve el punto de intersección entre el eje longitudinal de la silla y el eje de distancia al centro instantáneo de giro, esto es: V = Ω⋅R. Por lo tanto la velocidad lineal de cada una de las ruedas se puede obtener de la misma forma, siendo estas: D  VI = Ω ⋅  R −  2 . D  VD = Ω ⋅  R +  2 . Relacionando las ecuaciones anteriores se obtienen las velocidades lineales de cada rueda en función de la velocidad lineal de avance de la silla de ruedas, quedando de la siguiente manera:. VI = V − Ω ⋅. Pedro López Miguel. D 2. VD = V + Ω ⋅. D 2. 23.

(30) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. A partir de la ecuación anterior se puede obtener la velocidad angular de cada una de las ruedas simplemente dividiendo la velocidad lineal por el radio de cada rueda, siendo estas: 1  r . ω I = ⋅ V − Ω ⋅. D  2. 1  r . ω D = ⋅ V + Ω ⋅. D  2. A esto se le llama “cinemática directa de un robot diferencial”. Si se relacionan las ecuaciones anteriores entre si, se obtienen las ecuaciones que relacionan la velocidad de avance V y el ángulo de giro Ω con las velocidades angulares. ωI y ωD : V =. ωI + ωD 2. ⋅r. Ω=. ωD − ωI 2. ⋅r. Siendo esto la “cinemática inversa”.. 4.2.. Funcionamiento de la realimentación real del sistema. La información que proporcionan los encoders al sistema de navegación de la silla de ruedas esta formada por los siguientes parámetros:. •. TD = Acumulación de tiempo de la rueda derecha.. •. TI = Acumulación de tiempo de la rueda izquierda.. •. PD = Acumulación de pulsos de la rueda derecha.. •. PI = Acumulación de pulsos de la rueda izquierda.. A partir de estos parámetros se puede obtener la velocidad angular de cada una de las ruedas en mrad/s (miliradianes por segundo):. ωD =. Pedro López Miguel. PD [n] − PD [n − 1] ⋅ K CONV TD [n] − TD [n − 1]. [mrad / s ]. 24.

(31) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. ωI =. PI [n] − PI [n − 1] ⋅ K CONV TI [n] − TI [n − 1]. [mrad / s]. La constante KCONV permite realizar una conversión de magnitudes. El valor de esta variable se calcula de la siguiente forma:. K CONV =. 2 ⋅π N p ⋅ N R ⋅ TPS. Siendo, NP el número de pulsos por vuelta que proporcionan los encoders; NR la relación reductora del motor; y TPS la constante que permite pasar a segundos la información temporal proporcionada por el bajo nivel, siendo estos datos los específicos del robot que se va a utilizar en esta aplicación. Obtenidas las velocidades angulares de las ruedas, el siguiente paso es obtener, mediante el sistema deadreckoning, las variables de posición (Xr, Yr, θr) (ver figura 9). Para ello mediante las ecuaciones de Fresnel se puede integrar el incremento de posición consiguiendo en cada Ts, obteniendo finalmente la terna Xr, Yr, θr. Estas ecuaciones son las que constituyen la técnica deadreckoning, siendo de la forma:. ωDc. Vc Ωc. CINEMÁTICA DIRECTA. ωIc. ωDR. SILLA ωIR. CINEMÁTICA INVERSA. VR ΩR. ∆x MODELO DE LA SILLA. ∆Y ∆θ. ∫. DEADRECKONING Figura 9 Sistema real de realimentación. θ [n] = θ [n − 1] + Ω[n] ⋅ Tm [n]. [rad ]. x[n ] = x[n − 1] + V [n] ⋅ cos(θ [n ]) ⋅ Tm [n]. [m]. y[n ] = y[n − 1] + V [n ] ⋅ sin (θ [n]) ⋅ Tm [n ]. [m]. siendo Tm el valor medio de incremento temporal existente entre dos lecturas de los encoders, medidas en la rueda derecha y la rueda izquierda:. Pedro López Miguel. 25. Xr Yr θr.

(32) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. Tm [n ] =. TD [n ] + TI [n ] ⋅ TPS 2. [s ]. La velocidad de avance V y de giro Ω se puede rescribir para cada incremento de tiempo de la forma:. V [n] =. ω I [n] + ω D [n]. ⋅r 2 ω [n] − ω I [n] Ω[n ] = D ⋅r 2. 4.3.. [m / s ] [rad / s ]. Errores cometidos por el Sistema Odométrico Los sistemas odométricos proporcionan una buena exactitud en un corto tiempo. permitiendo un amplio rango de medidas. Pero, sin embargo, la idea fundamental de los sistemas odométricos radica en la integración a lo largo del tiempo de la información de incremento de movimiento que experimenta el móvil, y esto produce un problema: la acumulación de los errores en la medida. Dentro de estos errores existen dos categorías:. o Errores sistemáticos, debidos a: •. Diferente diámetro de las ruedas.. •. Medida del diámetro real diferente del diámetro nominal.. •. Desalineamiento de las ruedas.. •. Resolución limitada de los encoders.. •. Rango de medida limitada de los encoders.. o Errores no sistemáticos, debidos a: •. Recorrido sobre un suelo irregular.. •. Recorrido sobre objetos inesperados que se encuentran en el suelo.. •. Deslizamiento de las ruedas producido por:. Pedro López Miguel. -. Suelos deslizantes.. -. Excesiva aceleración.. 26.

(33) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. 5.. -. Giros rápidos.. -. Fuerzas externas (golpes con objetos externos).. -. Fuerzas internas (producidas por las ruedas).. -. Pérdida de contacto de las ruedas con el suelo.. Sistema de posicionamiento mediante marcas artificiales. La siguiente figura muestra los distintos módulos que forman parte del sistema global.. Figura 10 Esquema de la aplicación y paso de mensajes entre módulos.. Para conseguir todo lo mencionado, el módulo de visión artificial será el que permita detectar y procesar la información contenida en las marcas artificiales. Este sistema está formado por una cámara, un sistema de procesamiento y un ordenador empotrado ubicado en la silla de ruedas.. El sistema de posicionamiento mediante visión artificial se basa, como se comentado anteriormente, en la detección de Marcas Artificiales situadas en el entorno de movimiento de la SRA. Estas marcas están provistas de unos elementos que permiten la recuperación de la posición-orientación relativa del móvil respecto de la marca, además de informar para cada marca cual es el código de ésta dentro del entorno, y por tanto su posición-orientación absoluta en el mapa global.. Pedro López Miguel. 27.

(34) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. 5.1.. Sistemas de coordenadas establecidos. Se considerarán cinco sistemas de coordenadas: •. SCA (Sistema de Coordenadas Absolutas) → O = [X,Y,Z] Este sistema de coordenadas es el que representa a la posición donde está ubicada la marca. Se considera que su origen, será el origen del mundo. Los ejes X e Y, delimitan el plano horizontal (plano de rodadura del móvil), mientras que el eje Z representa la elevación sobre el suelo. Se supondrá el plano X Y a una altura Z como el lugar donde estará situada la marca. Los ángulos de giro respecto a los ejes de coordenadas se definen como positivos en el sentido opuesto a las agujas del reloj, y se corresponden como: (α → X) alabeo (roll); (β → Y) cabeceo (pitch); y (γ → Z) guiñada (yaw).. •. SCM (Sistema de Coordenadas del la Marca) → M = [xm, ym, zm] Se trata de un sistema tridimensional el cual tiene su origen en la esquina superior derecha del patrón de la marca y que servirá como sistema de coordenadas de la marca completa. Los ángulos de giro respecto a los ejes de coordenadas se definen, como en el SCA y el SCC, positivos en el sentido opuesto a las agujas del reloj y se corresponden como: (α’ → xm) alabeo (roll); (β’ → ym) cabeceo (pitch); y (γ’ → zm) guiñada (yaw).. •. SCC (Sistema de Coordenadas de la Cámara) → C = [x, y, z] Además de ser el sistema de coordenadas de la cámara será también el del móvil ya que tanto la cámara como el móvil irán ligados uno al otro y tiene su origen en el centro óptico de la cámara. Los ejes x e y forman un plano paralelo al de formación de la imagen, siendo el eje x el correspondiente al eje horizontal y el eje y el correspondiente al vertical. El eje z toma la dirección del eje óptico y representa las distancias a los objetos, siendo éstas positivas hacia los objetos. Los ángulos de giro respecto a los ejes de coordenadas se definen, como en el SCA, positivos en el sentido opuesto a las agujas del reloj y se corresponden como: (φ → x) alabeo (roll); (θ → y) cabeceo (pitch); y (ξ → z) guiñada (yaw).. •. PI (Sistema de coordenadas del Plano Imagen) → I = [u, v] Se trata de un sistema bidimensional y sufre una inversión respecto al plano (x, y) del SCC, este plano se encuentra a una distancia –λ (distancia focal) del. Pedro López Miguel. 28.

(35) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. centro óptico de la cámara y en el eje z. Para simplificar colocaremos el plano imagen delante del centro óptico de la cámara a una distancia igual a la distancia focal, pero positiva, esto es en z = +λ, de esta manera, la imagen proyectada no está invertida, desaparecen los signos negativos y el sentido de los ejes (u, v) coincide con el de los ejes (x, y) del SCC.. Figura 11 Sistemas SCA, SCM, SCC y PI.. 5.2.. Ecuaciones fundamentales Las ecuaciones que a continuación se muestran son la base principal para. obtener la posición-orientación absoluta del móvil. Como se comentó al principio del. Pedro López Miguel. 29.

(36) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. capítulo, se trata de encontrar la posición y orientación de la cámara-móvil respecto del origen O del SCA, esto es el vector C=(So, Ω)=(Xo, Yo, Zo, α, β, γ) .. 5.2.1. Transformaciones de perspectiva entre el SCA y el SCC Partiendo de una recta L situada en el SCA y que está siendo visualizada por la cámara, podemos definir dicha recta respecto a C, ya que conocemos los parámetros de dicha recta, de la siguiente manera (ver figura 12):. Figura 12 Transformación de la recta L sobre el SCC.. Χ1 + k ⋅ a Χ  L = ( Χ, Υ , Ζ) = Υ1 + k ⋅ bΥ  = P1 + kD  Ζ1 + k ⋅ c Ζ  En donde P1 = ( X 1 , Y1 , Z 1 ) T son las coordenadas de un punto cualquiera, perteneciente a la recta, y D = (ax, by, cz) son las componentes del vector director. A partir de las coordenadas de P1 las nuevas coordenadas respecto del SCC se obtendrán mediante la siguiente transformación: p1 = ( x1 , y1 , z1 ,1) T = TRP1 = TR( Χ1 , Υ1 , Ζ1 ,1) T ,. Pedro López Miguel. 30.

(37) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. siendo T y R las matrices de traslación y rotación respectivamente del SCC respecto del SCA.. Como se observa en la figura 12, el desplazamiento del centro óptico C respecto de O sería So = (Xo,Yo,Zo), por lo que la matriz T quedaría de la siguiente manera: 1 0 T = 0  0. 0 0 − Χo  1 0 − Υo  0 1 − Ζo   0 0 1 . Al tratarse de un problema de localización de la cámara respecto al SCA, se definirán las rotaciones en el siguiente orden α → β → γ, es decir, primero alrededor del eje X, luego alrededor del eje Y, y finalmente alrededor del eje Z; quedando la matriz de rotación de la siguiente manera:. 0 0  cos γ − sin γ 0  cos β 0 sin β  1      1 0  0 cos α − sin α  = R = Rγ Rβ Rα =  sin γ cos γ 0  0  0 0 1 − sin β 0 cos β  0 sin α cos α  cos γ cos β − sin γ cos α + cos γ sin β sin α sin γ sin α + cos γ sin β cos α   sin γ cos β cos γ cos α + sin γ sin β sin α − cos γ sin α + sin γ sin β cos α  =   − sin β  cos β sin α cos β cos α  r11 r21 r31  r   12 r22 r32  r13 r23 r33  Teniendo en cuenta como quedaría la matriz de transformación T y la de rotación R, la transformación de un punto P1 perteneciente a la recta L sobre el SCC quedaría como sigue:  r11 r T p1 = ( x1 , y1 , z1 ,1) = TRP1 =  12 r13  0. r21. r31. r22. r32. r23. r33. 0. 0. 0 1 0 0 0  0  1  0. 0 0 − Χo  1 0 − Υo  ( Χ 1 , Υ1 , Ζ1 ,1) T = 0 1 − Ζo   0 0 1 . = Rγ Rβ Rα ( Χ 1 − Χ o , Υ1 − Υo , Ζ1 − Ζ o ,1) T. Pedro López Miguel. 31.

(38) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. En lo que se refiere al vector director d, como su orientación es independiente del desplazamiento So, sólo es necesario conocer la matriz de rotación R, quedando de la siguiente manera:. d = (a x , b y , c z ) T = RD = Rγ Rβ Rα (a Χ , bΥ , c Ζ ) T Con todo lo anteriormente expuesto podemos definir la ecuación de la recta L referida al SCC, de forma reducida, como sigue:. l = p1 + kd. 5.2.2. Proyecciones sobre el plano imagen: punto de fuga Conocidas las componentes de la recta l respecto al SCC, podemos obtener su transformación sobre el plano imagen PI. Siendo i la proyección de la recta l sobre el PI, sus parámetros serán:  xi + ka x  λ u   z i + kc z  , i= = v   λ yi + b y   z + kc  z   i. siendo λ la distancia focal de la cámara; k es un parámetro con dimensiones de longitud; (xi,yi,zi) son las coordenadas de un punto de referencia cualquiera de la recta l, y (ax,by,cz) las componentes de su vector director.. La ecuación i muestra varias propiedades importantes:. 1.. La proyección de una recta cualquiera en el SCA se transforma en otra línea. recta en el PI. 2.. Si existieran N rectas paralelas en el espacio SCA (X,Y,Z), también serán. paralelas en el SCC (x,y,z). Si además estas rectas tienen una pendiente no nula a lo largo del eje óptico de la cámara (eje z) todas ellas se cortarían en un punto del plano (u,v), llamado punto de fuga PF (figura 13). La demostración es la siguiente:. Pedro López Miguel. 32.

(39) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. Figura 13 Proyección de sendas rectas paralelas sobre el PI: punto de fuga. Sea el conjunto de N rectas paralelas en el SCC definido como:. l n = p n + λ d 1≤ n≤ N , al ser paralelas, todas tienen el mismo vector director d=(ax,by,cz), si forzamos a que este vector sea unitario se cumplirá que a x2 + b y2 + c z2 = 1 coincidiendo con los cosenos directores de la recta ln. Si hacemos k → ∞ en la ecuación anterior, se obtiene el punto de fuga de las N rectas:. PF = i k →∞.  ax  λ u∞   c z   = = v∞  λ b y   c   z. 5.2.3. Transformación de rectas entre el SCA y el PI A partir de las ecuaciones descritas anteriormente, se puede obtener la relación que hay entre las coordenadas de una recta situada en el SCA sobre el PI: ii ← l i = p i + kd ← Li = Pi + kD P.I . ← S .C.C. ← S .C. A.. ,. se obtienen las componentes del punto pi de la siguiente manera:. Pedro López Miguel. 33.

(40) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. xi = r11 ( Χ i − Χ o ) + r21 (Υi − Υo ) + r31 ( Ζ i − Ζ o ) yi = r12 ( Χ i − Χ o ) + r22 (Υi − Υo ) + r32 ( Ζ i − Ζ o ) z i = r13 ( Χ i − Χ o ) + r23 (Υi − Υo ) + r33 ( Ζ i − Ζ o ) Al aplicar la matriz de rotación sobre el vector D original se obtiene las componentes individuales del vector director d: a x = r11 a Χ + r21bΥ + r31c Ζ b y = r12 a Χ + r22 bΥ + r32 c Ζ c z = r13 a Χ + r23 bΥ + r33 c Ζ. Obteniendo finalmente las componentes de la recta i en el PI a partir de los parámetros de la recta L en el SCA:. 5.3.. u=λ. r11 ( Χ i − Χ o ) + r21 (Υi − Υo ) + r31 ( Ζ i − Ζ o ) + k (r11 a Χ + r21bΥ + r31c Ζ ) r13 ( Χ i − Χ o ) + r23 (Υi − Υo ) + r33 ( Ζ i − Ζ o ) + k (r13 a Χ + r23 bΥ + r33 c Ζ ). v=λ. r12 ( Χ i − Χ o ) + r22 (Υi − Υo ) + r32 ( Ζ i − Ζ o ) + k (r12 a Χ + r22 bΥ + r32 c Ζ ) r13 ( Χ i − Χ o ) + r23 (Υi − Υo ) + r33 ( Ζ i − Ζ o ) + k (r13 a Χ + r23 bΥ + r33 c Ζ ). Descripción de la marca Para el caso de esta aplicación se usará una marca compuesta de dos elementos,. un patrón de identificación y un código de barras bidimensional. Dicha marca de localización y posicionamiento (MLP) esta formada, como se observa en la figura 14, por las partes que se describen a continuación: •. Patrón de identificación: compuesto por un conjunto de dos cuadrados. concéntricos y otro que no lo es. Éste patrón es idéntico para todas las marcas, y permite su identificación en cada imagen para no ser confundido con otras estructuras formadas por el resto de objetos que se encuentren en la imagen. La comparación del patrón captado con un archivo de patrón base será lo que permita obtener la posición y orientación relativa del móvil respecto de la marca. El patrón puede ser diferente si se desea siempre y cuando mantenga la forma del cuadrado externo y el archivo de patrón base sea modificado.. Pedro López Miguel. 34.

(41) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. Figura 14 Estructura de una Marca Artificial de ejemplo.. • Código de barras bidimensional: de i x j dígitos, compuesto por un grupo de cuadrados blancos y negros, propio y distinto para cada marca, y que se lee en dirección vertical y en sentido descendente y ascendente según la señal de reloj superior o inferior respectivamente. Este código de barras será el que proporcione el valor de entrada a la base de datos de posición-orientación de todas las marcas dentro del edificio en cuestión con el fin de obtener la posiciónorientación absoluta global.. Este formato de marca presenta unas cualidades que lo hacen óptimo para el uso en sistemas de visión artificial, y de fácil y barata implementación, pues únicamente se necesita disponer de un ordenador, una impresora y una hoja formato DIN-A4. Una de las ventajas más importantes del uso de marcas artificiales es su reducido coste, pero no sólo por utilizar una simple hoja de papel, sino porque además el soporte hardware necesario, es decir, la cámara, no es excesivamente cara. Además, en el caso de usar una cámara de blanco y negro se consigue una mayor exactitud a nivel de píxel, además de que el tiempo de procesado de las imágenes capturadas es bastante inferior al que se invierte en imágenes a color (alrededor de tres veces menos pues sólo se procesa un canal RGB).. A continuación se detallarán algunas de las características fundamentales de las diferentes partes de la marca.. Pedro López Miguel. 35.

(42) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. 5.3.1. Dimensiones del patrón Para este proyecto se ha elegido, como se ha explicado brevemente antes, un patrón que consta de los siguientes elementos:. Figura 15 Dimensiones y proporciones del patrón empleado. •. Cuadrado negro exterior: el cual es concéntrico con el cuadrado blanco y cuyo lado deberá medir 17 cm. Aunque puede ser de otra medidas:. Tamaño patrón marca (cm) Área habilitada (cm) 6,99. 40,64. 8,89. 63,5. 11,43. 86,36. 18,72. 127. Figura 16 Rangos para diferentes tamaños del patrón. •. Cuadrado blanco: el cual es concéntrico con el cuadrado negro exterior con un área cuatro veces menor que éste y cuyo lado deberá medir 8,5 cm.. •. Cuadrado negro interior: el cual no es concéntrico con ninguno de los otros dos cuadrados y esto es lo que lo hace al patrón único e irrepetible a cualquier otra estructura que pudiese parecerse a la formada únicamente por los otros dos. Pedro López Miguel. 36.

(43) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. cuadrados concéntricos, es decir, es la identidad del patrón. Éste elemento deberá tener unas dimensiones de 1,7 x 1,7 cm.. 5.3.2. Características del código de barras La marca consta a su vez de un código de barras bidimensional que deberá estar situado a la derecha del patrón de identificación y se ha considerado que esté formado por 8 filas (i=8=número de bits binarios decodificables por lectura) y 4 columnas (j=4=número de lecturas a realizar) con una medida de cada elemento cuadrado de 1,7 x 1,7 cm. Las características de esté código bidimensional son las siguientes:. Figura 17 Detalle de las dimensiones del código bidimensional empleado.. •. Señal de reloj superior: formada por la sucesión de los tres primeros cuadrados superiores (negro, blanco, negro) del área de código (rectángulo verde).. •. Bits decodificables: formado por el conjunto de cuadrados blancos y negros comprendidos dentro del área de código decodificable (rectángulo rojo). Se. Pedro López Miguel. 37.

(44) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. puede incorporar información de cuatro palabras de 8 bits lo que permite codificar códigos en ASCII. •. Señal de reloj inferior: formada por la sucesión de los tres últimos cuadrados inferiores (negro, blanco, negro) del área de código (rectángulo verde).. 5.4.. Detección y decodificación de la marca artificial. 5.4.1. Introducción. La aplicación, la cual parte de la captura de una imagen obtenida por la cámara instalada en el móvil, ha sido diseñada en lenguaje C para Windows según el estándar ANSI C [Lopez-02][Hernandez-11]. Mediante una exploración de dicha imagen capturada, se detecta si existe alguna Marca Artificial, y en caso afirmativo, se procede a la extracción de la información contenida en la marca con el fin de obtener la posición-orientación relativa del móvil respecto de la marca e implícitamente la posición-orientación absoluta respecto del origen del edificio. La estructura de esta aplicación consta de las siguientes partes: •. Captura de la imagen mediante la cámara.. •. Reconocimiento de la marca artificial dentro de la imagen capturada.. •. Obtención de la matriz de transformación cámara-marca.. •. Lectura del código de barras bidimensional y extracción del dato codificado.. •. Interpretación del dato codificado y cálculo del posicionamiento absoluto del móvil respecto al entorno global en el que se encuentra.. 5.4.2. Proceso de detección del patrón El proceso de identificación del patrón a partir de la imagen capturada permite el cálculo de la posición-orientación relativa marca-cámara y se realiza mediante el paquete de librerías que ofrece ARToolKit. Para ello, dichas librerías proporcionan una. Pedro López Miguel. 38.

(45) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. serie de funciones para la búsqueda de ciertos patrones en las imágenes capturadas, mediante técnicas de visión por computador.. 5.4.3. Búsqueda de la señal de reloj En primer lugar, se produce la búsqueda de la señal de reloj, la cual es la encargada de indicar el orden en el que las columnas deben ser leídas así como el sentido de lectura. Dicha lectura viene especificada por una única señal de reloj la cual se divide en otras dos señales, superior e inferior, entre las cuales se va alternando para conseguir el orden y sentido especificado. La búsqueda de estas señales de reloj es adaptativa, es decir, se inicia siempre a la altura la mitad del primer cuadrado negro, superior e inferior, respectivamente. Las subseñales procedentes de la señal de reloj son las siguientes: •. Señal de reloj superior: parte siempre de la esquina superior derecha del patrón (origen del SCM) y se inicia a la altura de la mitad del cuadrado negro numero 1, avanzando así en el sentido de la flecha azul descrita como “señal de reloj superior” en la figura 18 hacia cuadrados sucesivos al cuadrado 1.. Figura 18 Órdenes y sentidos de lectura del código. •. Señal de reloj inferior: parte siempre de la esquina inferior derecha del patrón y se inicia a la altura de la mitad del cuadrado negro numero 2, avanzando así en. Pedro López Miguel. 39.

(46) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. el sentido de la flecha azul descrita como “señal de reloj inferior” en la figura 18 hacia cuadrados inferiores sucesivos al cuadrado 2.. De esta forma se establece el orden de lectura de las columnas, es decir, la primera columna en ser leída será la correspondiente al cuadrado numero 1, la siguiente la correspondiente al cuadrado numero 2 y así sucesivamente. Al mismo tiempo se está estableciendo implícitamente el sentido de lectura de cada columna, es decir, las columnas impares se leerán en sentido descendente y las pares en sentido ascendente.. 5.4.4. Tipos de decodificación Este modulo ha sido diseñado para ser capaz de realizar dos tipos de decodificación: binaria pura y ASCII (parcial o completa). En cualquier caso la decodificación binaria es directa, mientras que la decodificación ASCII es consecuencia de la decodificación binaria para un uso más cómodo de la aplicación, siempre y cuando la tabla ASCII cubra la totalidad del código que se quiere codificar. •. Decodificación binaria pura: Se trata de interpretar la matriz bidimensional como tal, es decir, los cuadrados negros serán ceros y los blancos serán unos.. •. Decodificación ASCII: La decodificación ASCII se hace posible a partir de la decodificación binaria pura, teniendo en cuenta la endianidad especificada, por ello es consecuencia de ésta última.. 5.4.5. Proceso de cálculo de la posición-orientación absoluta cámara-mundo A partir de la posición-orientación relativa de la cámara (SCC) respecto del patrón (SCM), el último paso a realizar para lograr el objetivo final de la aplicación es conseguir la posición-orientación absoluta de la cámara (SCC) respecto del origen del mundo (SCA). Para ello es necesario el cálculo previo de la posición-orientación relativa matriz del patrón (SCM) respecto del mundo (SCA) y una vez hecho esto se trata de relacionar todas las matrices correctamente para conseguir lo mencionado.. Pedro López Miguel. 40.

(47) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. 6. 6.1.. Sistema de comunicación de datos entre procesos Introducción Para desarrollar el sistema de comunicación entre los dos procesos encargados. de la obtención de la posición del móvil, y teniendo en cuenta que dichos procesos se podrían ejecutar en diferentes máquinas conectadas a una misma red o como en el caso desarrollado, utilizar la misma máquina, se ha procedido a implementar un sistema de comunicación mediante sockets. La posición del vector de coordenadas (X, Y) y del ángulo de giro (Pitch) obtenidos por el proceso de visión artificial es enviada a través del enlace socket, al proceso encargado de la detección de la posición mediante técnicas deadreckoning. Con la nueva información recibida, se recalcula la posición y el sentido de la dirección de la trayectoria real. Esta nueva trayectoria corregida es visualizada sobre el plano incluido en la interfaz gráfica.. 6.2.. ¿Qué es un socket?. Un Socket es una interfaz de entrada-salida de datos que permite la intercomunicación entre procesos. Los procesos pueden estar ejecutándose en el mismo o en distintos sistemas, unidos mediante una red. Los sockets han de ser capaces de utilizar el protocolo de streams TCP (Transfer Contro Protocol) y el de datagramas UDP (User Datagram Protocol). Utilizan una serie de primitivas para establecer el punto de comunicación, para conectarse a una máquina remota en un determinado puerto que esté disponible, para escuchar en él, para leer o escribir y publicar información en él, y finalmente para desconectarse.. 6.3.. Diagrama general del proceso de comunicación El diagrama representado en la figura 19, muestra la secuencia que los dos. procesos siguen durante la ejecución de la aplicación.. Pedro López Miguel. 41.

(48) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. Pedro López Miguel. 42.

(49) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. Figura 19 Diagrama general del proceso de comunicaciones. Pedro López Miguel. 43.

(50)

(51) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. 7.. Resultados En este capítulo se pretenden mostrar algunos de los resultados obtenidos de las. pruebas realizadas con el sistema completo. A partir de estos resultados se sacarán las conclusiones oportunas que validan el trabajo realizado y permitirán desarrollar, en trabajos futuros, mejoras al sistema de posicionamiento expuesto en este proyecto.. 7.1.. Resultados del ensayo 1 En este primer ensayo se pretende simular que el vehículo, con el sistema de. visión incorporado, se está moviendo siguiendo una trayectoria totalmente recta y cuya única información de su posición, viene inicialmente dada por la lectura de los encoders de cada rueda del móvil. En un instante determinado el sistema de visión detecta una marca, cuyo plano de colocación se encuentra inclinado hacia un lado con respecto al plano de la cámara de visión. Con esta prueba se pretende comprobar, en primer lugar, que el sistema de visualización de la trayectoria recibe correctamente los datos de la posición proporcionados por el sistema de visión; y segundo, que la trayectoria trazada sobre el plano de visualización es corregida, tanto en sus coordenadas como en el sentido de la dirección, que depende del ángulo de colocación de la marca respecto de la cámara. En la figura 20, se visualiza la trayectoria en línea recta que toma inicialmente el vehículo. Esta información es adquirida a partir de la lectura proporcionada por los encoders instalados en las ruedas, por lo tanto, se trata de una posición relativa. El vehículo sabe que sigue una trayectoria recta pero no cual es su ubicación real respecto del entorno en el cual se encuentra. En un momento determinado, se simula que el sistema de visión detecta una marca (ver figura 21). Esta marca es procesada proporcionando la posición absoluta de la misma respecto del entorno en el cual navega el vehículo. La información que muestra el sistema de visión es la siguiente: • Valor de X = 449,838 m. • Valor de Y = 9,498 m • Valor de Z = 0,004 m • Valor de Roll = -92,882º. Pedro López Miguel. 45.

(52) Adaptación de un LPS Visual Basado en Marcas Artificiales Codificadas para la Navegación de una Silla de Ruedas en Interiores.. • Valor de Pitch = 48,559º • Valor de Yaw = -8,952º. Figura 20 Visualización de la trayectoria inicial en línea recta simulada. Figura 21 Detección de la marca artificial Tal como se ha comentado anteriormente, estos valores son el resultado de sumar a las coordenadas y ángulos de la cámara respecto de la marca, las coordenadas y. Pedro López Miguel. 46.

Figure

Figura 3 Diagrama de comunicación entre los diferentes procesos
Figura 4 Diagrama explicativo de la cinemática de la SRA.
Figura 6 Diagrama funcional del algoritmo de fusión para el posicionamiento de la  silla mediante un EKF
Figura 7 Variables usadas en el posicionamiento de una silla de ruedas               V θθθθr  YrXr X Y
+7

Referencias

Documento similar

trañables para él: el campo, la vida del labriego, otra vez el tiempo, insinuando ahora una novedad: la distinción del tiempo pleno, el tiempo-vida, y el tiempo

Sólo que aquí, de una manera bien drástica, aunque a la vez coherente con lo más tuétano de sí mismo, la conversión de la poesía en objeto -reconocida ya sin telarañas

6 José Carlos Rovira, en su estudio Léxico y creación poética en Miguel Hernández, expone lo que para él simboliza la figura del rayo: “El poeta es rayo que no cesa,

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

La siguiente y última ampliación en la Sala de Millones fue a finales de los años sesenta cuando Carlos III habilitó la sexta plaza para las ciudades con voto en Cortes de