• No se han encontrado resultados

TítuloDesarrollo de librerías de control para aplicaciones de coordinación de robótica colectiva

N/A
N/A
Protected

Academic year: 2020

Share "TítuloDesarrollo de librerías de control para aplicaciones de coordinación de robótica colectiva"

Copied!
71
0
0

Texto completo

(1)Escola Politécnica Superior Trabajo Fin de Grado CURSO 2018/19. DESARROLLO DE LIBRERÍAS DE CONTROL PARA APLICACIONES DE COORDINACIÓN EN ROBÓTICA COLECTIVA. Grado en Ingeniería en Tecnologías Industriales. ALUMNO Marcos Parada Pombo TUTORAS/ES Abraham Prieto García FECHA DICIEMBRE 2018.

(2) 1 TÍTULO Y RESUMEN Desarrollo de librerías de control para aplicaciones de coordinación en robótica colectiva En el presente proyecto se desarrollarán librerías de control de coordinación de robótica colectiva para el mapeado de las condiciones ambientales en un determinado espacio de trabajo. Para el desarrollo de este, se han empleado un grupo de robots de plataforma móvil con smartphone llamada Robobo. Además, se ha realizado una calibración del robot, tanto de sus movimientos como de los sensores. Se ha desarrollado un sistema de navegación en interior, con sus respectivos algoritmos para su correcto funcionamiento, incluyendo algoritmos de evasión de obstáculos y choques entre robots, mediante etiquetas QR. Estas etiquetas serán visualizadas por los robots a través de la cámara del Smartphone. Por último, se han sincronizado los datos obtenidos de los sensores con la posición en la que se han tomado, y así de esta manera realizar un mapeado inteligente..

(3) Desenvolvento de librerías de control para aplicacións de coordinación en robótica colectiva No presente proxecto desenvolveranse librerías de control de coordinación robótica colectiva para o mapeado das condiciones ambientais dun determinado espazo de traballo. Para o desenvolvemento de este, empregouse un grupo de robots de plataforma móvil con smartphone chamada Robobo. Ademais, realizarase unha calibración do robot, tanto dos seus sensores coma dos seus movementos. Desenvolveuse un sistema de navegación en espazos interores, cos seus respectivos algoritmos para un funcionamento correcto de este, incluindo algoritmos de evasión de obstáculos e choques entre robots, mediante etiquetas QR. Estas etiquetas seran visualizadas polos robots a traves da cámara do smartphone. Por último, sincronizaranse os datos obtidos polos sensores ca posición na que se tomou esos valores a un servidor e desta maneira realizar un mapeado intelixente..

(4) Development of control libraries for robotics coordination applications collective This Project carries out the development of colective robotical coordination control for mapping the enviromental conditions of a concrete workspace. For this development, a group of robots have been used along with the Smartphone robotic platform called Robobo. Also, movement and sensors from these robots were calibrated. An indoor navigation system has been developed, with its respective algorithms for correct operation, including algorithms for obstacle avoidance and robot collisions, using QR tags. These tags will be visualized by the robots through the camera of the Smartphone. Finally, sensor data have been synchronized with the position where they where taken in order to carry out an intelligent mapping..

(5) Escola Politécnica Superior TRABAJO FIN DE GRADO CURSO 2018/19. DESARROLLO DE LIBRERÍAS DE CONTROL PARA APLICACIONES DE COORDINACIÓN EN ROBÓTICA COLECTIVA. Grado en Ingeniería en Tecnologías Industriales. Documento I. MEMORIA.

(6) Contenido 1 Título y Resumen ......................................................................................................... 2 2 Introducción ................................................................................................................. 9 3 Objetivos .....................................................................................................................10 4 Robótica......................................................................................................................11 4.1 Plataformas móviles con smartphone ...................................................................14 4.2 Robótica colectiva .................................................................................................15 5 Robobo .......................................................................................................................17 5.1 Hardware ..............................................................................................................17 5.1.1 El smartphone ................................................................................................17 5.1.2 La base...........................................................................................................17 5.2 Software ...............................................................................................................18 5.2.1 Javascript .......................................................................................................18 5.2.2 ROS (Robot Operating System) ......................................................................18 5.2.3 Elección del entorno de programación ............................................................19 6 Odometría ...................................................................................................................20 6.1.1 Calibración del movimiento del Robobo ..........................................................20 6.1.2 Desplazamiento recto .....................................................................................21 6.1.3 Rotación pura .................................................................................................22 7 Localización ................................................................................................................25 7.1 Balizas naturales ..................................................................................................25 7.1.1 SLAM (Simultaneous Localization and Mapping) ............................................26 7.2 Balizas artificiales. .............................................................................................27. 7.2.1 April Tags Fiducial System .............................................................................27 7.3 Elección del sistema de orientación ......................................................................28 7.4 Etiquetas QR ........................................................................................................28 7.5 Posición relativa respecto al QR ...........................................................................29 7.6 Ángulo de orientación respecto al QR ...................................................................33 7.7 Factor de correlación coordenadas a centímetros.................................................33 8 Navegación .................................................................................................................34 8.1 Esquemas de navegación en robots móviles ........................................................34 8.2 Movimiento entre dos puntos ................................................................................34 8.3 Navegación absoluta con balizas QR....................................................................35 8.4 Navegación mixta con balizas QR ........................................................................36 6.

(7) 8.5 Algoritmo de evasión de obstáculos ......................................................................37 9 Mapeado .....................................................................................................................41 10 Caso de aplicación: monitorización de niveles de contaminantes .............................42 10.1 Riesgos laborales en el centro de trabajo ...........................................................42 10.1.1 La prevención de los riesgos laborales (PRL) ...............................................42 10.1.2 Factores de riesgo ........................................................................................42 10.1.3 Iluminación ...................................................................................................43 10.1.4 Ruido ............................................................................................................47 10.2 Calibración de sensores de Robobo ...................................................................51 10.2.1 Calibración del sensor de luminosidad ..........................................................51 10.2.2 Calibración sensor de sonido ........................................................................53 10.3 Mapeado de contaminantes a tiempo real...........................................................54 10.3.1 Resultados....................................................................................................56 11 Presupuesto ..............................................................................................................58 12 Conclusiones ............................................................................................................59 13 Bibliografía ................................................................................................................60 14 Anexo........................................................................................................................62. 7.

(8) Índice de Figuras Figura 1 Primer robot móvil ............................................................................................11 Figura 2 Robot moderno ................................................................................................12 Figura 3 Tipos de robots según su arquitectura .............................................................13 Figura 4 Plataforma móvil con smartphone móvil ...........................................................14 Figura 5 Sistema multi-robot ..........................................................................................15 Figura 6 Robobo ............................................................................................................17 Figura 7 Base Robobo ...................................................................................................18 Figura 8 medición distancia calibración movimiento recto ..............................................21 Figura 9 Robot guiado por April TagsGráfica 2 Calibración movimiento recto ................22 Figura 10 Medición giro calibración ................................................................................23 Figura 11 Robot guiado por April Tags ...........................................................................27 Figura 12 Etiqueta QR ...................................................................................................28 Figura 13 Desplazamiento entre dos puntos ..................................................................35 Figura 14 Pseudocódigo navegación absoluta con balizas QR ......................................36 Figura 15 Pseudocódigo navegación mixta ....................................................................37 Figura 16 Algoritmo de evasión de obstáculos ...............................................................38 Figura 17 Pseudocódigo salvar obstáculos ....................................................................39 Figura 18 Refracción de luminancia sobre una superficie ..............................................44 Figura 19 Incidencia de luz sobre una superficie............................................................45 Figura 20 Sonómetro .....................................................................................................50 Figura 21 Calibración luxómetro ....................................................................................52 Figura 22 Calibración luxómetro ....................................................................................52 Figura 23 Calibración sonómetro ...................................................................................53 Figura 24 Mapa de espacio de trabajo ...........................................................................54 Figura 25 Medición de niveles contaminantes con sistema multirobot ...........................55. 8.

(9) Introducción Marcos Parada Pombo. 2 INTRODUCCIÓN En la actualidad, la sociedad presenta un proceso de avance continuo, este hecho es gracias a la capacidad del ser humano para progresar y crear conocimiento. Este avance es palpable en todos los aspectos de esta, tanto en el ámbito personal como en el profesional. En los últimos años la robótica ha presentado un avance de gran índole en nuestra sociedad, insertándose en nuestra vida de tal forma que la consideramos indispensable en determinados ámbitos. La robótica en la actualidad está tendiendo a sustituir al ser humano en procesos peligrosos, procesos de repetición o de precisión o simplemente como una ayuda al individuo. En los últimos tiempos ha empezado a dar sus primeros pasos la robótica colectiva, esto es cuando un conjunto de robots colabora en la realización de una misma tarea. Hoy en día una gran parte de las personas tienen como espacio de trabajo una oficina. De esta manera está estipulado por ley una serie de condiciones que se tienen que tener los espacios de trabajo. Está estudiado que los trabajadores son más productivos cuando las condiciones de trabajo son las óptimas, estos son los principales motivos por los cuales las empresas buscan adecuar las condiciones de trabajo a unos estándares estipulados. Dicho esto, en el presente trabajo de fin de grado se ha desarrollado un sistema de navegación autónoma con una plataforma de robótica móvil con smartphone, llamada Robobo, desarrollada en el Grupo Integrado de Ingeniería (GII) de la Universidade Da Coruña (UDC), capaz de detectar los diferentes obstáculos e identificar los otros robots que están desempeñando la misma tarea. Este robot recogerá los datos de luminosidad y ruido obtenidos con los sensores del smartphone. Una vez obtenidos los datos anteriores se realizará un mapeado de los mismos para determinar las condiciones más desfavorables para el desempeño del trabajo requerido en óptimas condiciones.. 9.

(10) Objetivos Marcos Parada Pombo. 3 OBJETIVOS El objetivo principal del presente proyecto es desarrollar una serie de herramientas que permita la navegación y localización en interiores de uno o más robots. Este objetivo se divide en tres subobjetivos: - Calibración de movimientos y sensores - Localización - Navegación y mapeado Donde en el primero se realizará un estudio de la respuesta de los diferentes sensores y movimientos del robot que se utilizará para la ejecución del presente trabajo de fin de grado. En segundo lugar, realizaremos un sistema de localización del robot en cuestión mediante la visualización de balizas QR y de esta manera conocer nuestra posición en un sistema de coordenadas absolutas. Por último, se desarrollará un sistema de navegación multirobot en interiores, monitorizando los resultados de los sensores de luminosidad y ruido y de esta manera realizaremos un mapeado de las condiciones ambientales en un determinado espacio de trabajo.. 10.

(11) Robótica Marcos Parada Pombo. 4 ROBÓTICA En este capítulo repasaremos la historia de la robótica y realizaremos una visión global de la robótica en la actualidad. Además, se presentarán diferentes plataformas robóticas con smartphone y de su utilidad. Para concluir hablaremos de la robótica colectiva y sus diversos enfoques. La robótica es la ciencia que está involucrada en el diseño, fabricación y utilización de robots. Por otra parte, un robot es una máquina que puede ser programada para que interactúe con objetos y que realice un comportamiento deseado. En la robótica se combinan la electrónica, la informática, la mecánica, y la ingeniería entre otras muchas disciplinas. El objetivo principal de la misma es realizar dispositivos que funcionen de forma automática y que realicen una o varias tareas deseadas, estas tareas pueden ser de diversa índole, como tareas simples en las que se sustituye al ser humano, automatizándolas, o de manera que ayude o complemente a este, tareas de elevada precisión o tareas peligrosas. El inicio de la robótica puede establecerse en el siglo XVIII en diferentes industrias, desde la textil hasta la de facturación de piezas, con la automatización de ciertos procesos. También durante el siglo XVII y XVIII se construyeron en Europa ciertas máquinas que tenían ciertas cualidades de robots. A mediados del siglo XVIII Jacques de Vauncansos varios robots mecánicos capaces de hacer música. En 1805, Henri Maillardert, mecánico suizo, fue capaz de construir una muñeca mecánica que realizaba dibujos, esta muñeca utilizaba una serie de levas para escribir y dibujar. Cabe decir, que estos casos se deben considerar aislados y adelantados a su época. El término “robot” surgió por primera vez en 1921, en una obra de teatro llamada “R.U.R.” o “Los Robots Universales de Rossum” del escritor checo Karel Capek, este término surgió de la unión de los términos “robota” que puede definirse como “trabajo forzado” y en “rabota” cuyo significado es el de “servidumbre”. El escritor Isaac Asimov es considerado como el precursor del término “robótica”, es también el padre de las “tres leyes de la robótica”, una norma para el accionamiento de los robots, ya que en sus novelas de ficción se relataban como los robots invadían mundos y sometían a los seres humanos. Las primeras patentes de robots aparecieron en 1946 con los robots de Devon, cuya función era el traslado de maquinaria. Ese año también estaría marcado por la aparición de las primeras computadoras, el ENAC construido en la Universidad de Pensinvalnia por J. Presper Eckert y John Maulchy, y la primera máquina digital de propósito general desarrollada en el MIT.. Figura 1 Primer robot móvil. 11.

(12) Robótica Marcos Parada Pombo. Gracias a los diferentes avances de la tecnología en lo que restaba de siglo, tanto en capacidad de computación, sensorización y sistemas de actuación a la par de la investigación sobre las diferentes teorías de inteligencia artificial, la robótica seguiría avanzando. De aquí nace el robot como conocemos hoy en día. A parte de los hechos citados anteriormente se le tiene que unir una gran demanda de los robots, debido a la revolución industrial en las diferentes industrias para explicar el increíble auge de estos. La aparición de la producción en cadena en la industria fue uno de los hechos vitales para el gran aumento de la demanda de estos, ya que podían sustituir al trabajador en ciertas tareas por robots y así abaratar costes o mejorar el proceso productivo. En los últimos tiempos la robótica ha contemplado un inmenso desarrollo, de tal forma que los robots llegaron a ser considerados como el paradigma de la automatización, se han convertido en nuestros días en un elemento más de dicha automatización. Hoy en día, gracias a los avances en los campos como la informática y la electrónica entre otros muchos, los robots han sido dotados de una gran flexibilidad y capacidad de adaptación al entorno. En la actualidad los robots inteligentes además de detectar las modificaciones del entorno, estos tienen la capacidad de memorizar sus acciones. De este modo los robots tienen un periodo de aprendizaje y una vez se le presente una tarea similar puede inspeccionar su memoria para realizarla de manera más eficiente.. Figura 2 Robot moderno. Estas cualidades son las que hacen a los robots como una herramienta de gran utilidad para la sociedad, pudiendo reemplazar en ciertas tareas al ser humano. Principalmente en las cuales sean peligrosas, monótonas o simplemente tengan una capacidad mayor a la del ser humano. Los robots se pueden clasificar de diversas maneras, según su cronología (primera generación, segunda…), de esta manera se clasifican en función de las capacidades que podría tener el mismo según su época de lanzamiento. Según su arquitectura, así se clasifican los robots en función de su tipo de configuración general del robot. Y por último según su aplicación. A continuación, incidiremos más detalladamente en las dos últimas. La clasificación según su estructura establece una diferenciación entre los robots según su diseño, el cual enfocara al robot en una actividad más específica. La clasificación de los robots en base a su arquitectura es la siguiente: -. Poliarcitulados Robots inmóviles prácticamente que están diseñados para la realización de una tarea en un determinado espacio de trabajo, como se puede observar en la figura 1.. 12.

(13) Robótica Marcos Parada Pombo. -. -. -. -. Móviles Se caracterizan por tener una gran capacidad de desplazamiento. Realizan un recorrido por telemando o guiándose por la información recibida del entorno a través de sus sensores. Androides Estos robots intentan reproducir parcialmente o en su totalidad el comportamiento cinemático del ser humano. Su principal utilidad es la investigación debido a su escaso desarrollo. Zoomórficos Dentro de este grupo también se podrían considerar los androides, ya que los robots zoomórficos intentan reproducir el comportamiento de los diversos seres vivos. Híbridos Son aquellos de difícil clasificación cuya estructura se sitúa en combinación con alguna de las anteriores.. Figura 3 Tipos de robots según su arquitectura. Según su aplicación podemos distinguir entre los robots industriales y los de servicios. Los robots industriales es una máquina de manipulación automática, reprogramable y multifuncional con varios grados de libertad que le hacen capaz de posicionar y orientar materiales, piezas, herramientas o dispositivos para la realización de tareas. Este tipo de robots suelen ser poliarticulados, ya que su movilidad es limitada y el entorno en el que se desenvuelve, el centro de trabajo está bajo control. Los robots de servicios son dispositivos electromecánicos que actúan de forma parcial o totalmente autónoma que realizan servicios que mejoran el bienestar de las personas. Dentro de este grupo se encuentra robots de diversa índole, de investigación, militares, médicos, nano robots, educacionales y de entretenimiento.. 13.

(14) Robótica Marcos Parada Pombo. Robobo, el robot empleado en el presente trabajo de fin de grado es un robot móvil de servicios que sus principales cualidades son su precio reducido en combinación con sus capacidades computacionales. Estas hacen a Robobo perfecto para un sistema de multirobots. Se puede programar tanto a nivel educacional con herramientas como Scratch como para investigación con herramientas de alto nivel.. 4.1 Plataformas móviles con smartphone Unos de los principales problemas de los robots son su alto precio y que se quedan obsoletos rápidamente en temas como investigación. Una solución a estos problemas es el aprovechamiento de los smartphones como “cerebro” gracias a su gran capacidad de actualización y su accesibilidad. A parte de este hecho, el smartphone nos permite una enorme conectividad, cualidad que lo hace aún más interesante ya que nos permite conectarnos a otros dispositivos. En cuanto a la actualización de hardware, consiste en cambiar de móvil por uno más actual, este hecho hace que la plataforma tenga una vida útil más larga. El primer robot plataforma con smartphone fue el ROMO, esta plataforma robótica compatible con sistema operativo IOS permitía una programación básica, aunque carecía de software de programación de bajo nivel, el cual no lo hace apto para la investigación. A este inconveniente le hay que sumar la carencia de sensores en la plataforma.. Figura 4 Plataforma móvil con smartphone móvil. Seguidamente se fabricaron otros robots de este tipo, pero siempre con alguna característica que no lo hacía idóneo para la investigación. Por ejemplo, el ODDWERX, el cual, si disponía de un software de programación de bajo nivel, pero carecía de sensores en la plataforma que le aportasen autonomía. Esta carencia la cubría el WHEELPHONE, pero carecía de elementos para comunicarse con el exterior y la conexión con el smartphone se realizaba mediante un cable. Las diferentes carencias anteriormente de los diferentes robots llevaron al Grupo Integrado de Ingeniería (GII) de la Universidad de La Coruña (UDC) a desarrollar su propia plataforma móvil con smartphone. Este será el robot empleado para la realización del presente trabajo de fin de grado.. 14.

(15) Robótica Marcos Parada Pombo. 4.2 Robótica colectiva Un sistema multi-robot se puede definir como un conjunto de robots que operan sobre la misma tarea. Suele ser aplicado para resolver problemas colectivos (aquellos que requieren m a ́ s de un robot para ser resueltos) y distribuidos, pero también se puede utilizar en problemas que no requieren una solución colectiva, pero en los que resolver la tarea colectivamente produce algún beneficio. De manera general, las principales ventajas de los sistemas multi-robot son las siguientes: - son capaces de resolver tareas complejas al dividir la tarea global en otras más sencillas. - aumentan la eficiencia en la resolución de la tarea sí esta se puede realizar en paralelo - son robustos y tolerantes a fallos debido a su redundancia - son flexibles y escalables. Pueden estar formados con robots de diferentes capacidades (sensores y actuadores) o con las mismas, y pueden ser tolerantes a cambios en el número de integrantes del equipo. Y sus principales desventajas son la de aumentar la complejidad de los problemas y la comunicación entre los diferentes robots y o un servidor. Los enfoques de la robótica colectiva son muy diversos debido a la gran variedad de problemas a solucionar mediante esta tecnología. De esta manera, se estudia desde los principales comportamientos del ser humano hasta los diversos modelos Figura 5 Sistema multi-robot computacionales para aplicarlos a este campo y así buscar la mejor opción para la resolución de cada problema. Por consiguiente, los diferentes enfoques son: -. -. -. Etología Estudiando como cooperan y se comunican los animales y humanos. Organizacional Observando cómo funcionan las estructuras sociales y humanas. Modelos computacionales Aplicando conceptos de multiprocesamiento y diseño de sistemas paralelos. Inteligencia artificial distribuida Imitando soluciones de problemas de agentes distribuidos como la negociación, comunicación y evaluación. Análisis de movilidad Estudiando los modelos cinéticos y dinámicos de los problemas multiagente. 15.

(16) Robótica Marcos Parada Pombo. -. Vida artificial Estudio de los ecosistemas artificiales, principalmente en la relación del conjunto con el entorno.. La comunicación es un recurso indispensable para cualquier trabajo en conjunto, la cual sirve para la sincronización, el intercambio de información y la negociación entre otras muchas aplicaciones. De este recurso se deben tener en cuenta los diferentes aspectos de esta: -. -. -. -. Necesidad A veces, la comunicación no es imprescindible, también cabe destacar que puede haber cooperación sin comunicación debido a que esta puede ser implícita a través del medio. Rango No siempre a mayor rango mejor, ya que existen diversos mensajes que no son importantes para individuos alejados. Contenido No siempre cuanto mayor detalle mejor, sino que debe de ser la información justa y necesaria. Robustez y rendimiento Debe transmitirse el mensaje de forma sólida y eficiente.. 16.

(17) Odometría Marcos Parada Pombo. 5 ROBOBO Robobo es una combinación de una base robótica móvil, que será el cuerpo del robot, y un smartphone, que será el cerebro de este. Debido a la gran cantidad de sensores de los smartphones actuales y a la tecnología de estés, añadiéndole las capacidades de movilidad, la detección a bajo nivel y las capacidades gestuales proporcionadas por la base, Robobo se convierte en una buena herramienta para realizar determinadas tareas. Para programar el Robobo necesitamos 3 componentes, la base robótica y el smartphone citados anteriormente, y un ordenador. Estos 3 elementos son los que hacen del Robobo una herramienta tan atractiva, debido a que los elementos del mismo son de una gran accesibilidad. El funcionamiento de los distintos elementos es la siguiente, la base y el smartphone se sincronizan mediante bluetooth, mientras que a la vez el smartphone se conecta al ordenador a través de WIFI.. Figura 6 Robobo. 5.1 Hardware El hardware del Robobo está compuesto por el smartphone y la base, desarrolladas a continuación.. 5.1.1 El smartphone Se encuentra sobre la base mediante un soporte. El smartphone es el principal elemento de Robobo. Este proporciona al robot una gran variedad de sensores de una gran calidad como la cámara, micrófono, giroscopio o acelerómetro entre muchos otros. Este también proporciona un gran abanico de comunicaciones y la capacidad de procesamiento necesaria para gestionar todos los elementos y ejecutar programas complejos.. 5.1.2 La base Esta contiene dos ruedas motorizadas, en la parte delantera de la base, con un motor cada una, que permite que el Robobo se mueva por la superficie con libertad ayudado por una deslizadera en la parte trasera del Robobo. Un trípode, el cual es el soporte del smartphone, este también esta motorizado con dos motores que le dan libertad de movimientos en el eje “z” e “y”, con los movimientos tilt y pan. También contiene 8 infrarrojos, 5 delante y 3 detrás, que le sirven para detectar la proximidad o no de objetos o superficies, cabe destacar que tiene otros dos en la parte inferior, uno en la parte delantera y otro en la trasera, para evitar los desniveles que no puede superar 17.

(18) Odometría Marcos Parada Pombo. y evitar caídas. En la base también se encuentran 7 luces LED que le permiten a Robobo comunicarse con el entorno. A parte de todos estos elementos de movimiento y sensorización, en el cuerpo están contenidos tanto la gran batería de 5000 mAh y la placa base de esta.. Figura 7 Base Robobo. 5.2 Software En este punto tenemos que describir de los dos tipos de software diferentes que tenemos, la aplicación y el entorno de programación. En primer lugar, vamos a hablar de la aplicación para móvil, en concreto para el sistema operativo Android, es la aplicación que debemos instalar en el smartphone para programar el Robobo. Esta es la que interactúa con todos los elementos tanto del smartphone como de la base, y tiene la capacidad a la vez de comunicarse con el entorno de programación. El entorno de programación, que será utilizado desde un ordenador, de los cuales existen tres niveles, Scratch para programadores principiantes, este software se utiliza principalmente en la enseñanza, javascript, para programadores intermedios y ROS para programadores avanzados. Combinando los dos softwares citados anteriormente tendremos acceso a todos los sensores y actuadores del Robobo. Ahora describiremos un poco más detalladamente los entornos de programación que se han contemplado para realizar este proyecto, argumentando por cual nos hemos decantado para la ejecución del mismo.. 5.2.1 Javascript Javascript es un lenguaje ligero de programación interpretado, orientado a objetos. Para la programación de Robobo con JavaScript se utiliza el entorno de ejecución Node.js. Es un entorno de ejecución multiplataforma, de código abierto, creado principalmente para el desarrollo de programas de red.. 5.2.2 ROS (Robot Operating System) ROS es un framework con base de sistema operativo Ubuntu, para la escritura de software robot. Se puede decir que es un sistema operativo de código abierto que surgió para proporcionar a los desarrolladores y programadores de robots un conjunto de normas y herramientas estándar que permitan trabajar a los profesionales de manera más rápida y sencilla.. 18.

(19) Odometría Marcos Parada Pombo. ROS lo que nos aporta son una serie de herramientas y atajos que nos permite una sencilla comunicación entre los diferentes nodos que intervienen en la programación de un robot. Por lo tanto, la principal ventaja de esto es que tenemos un lenguaje universal del cual no nos tenemos que preocupar por la comunicación de los diferentes nodos y además nos da mucha versatilidad en la programación.. 5.2.3 Elección del entorno de programación Cabe decir que uno de los principales problemas de la robótica es la implementación del lenguaje y la optimización de la comunicación de los diferentes servidores. Tras haber probado los dos entornos de programación citados anteriormente los retardos de ROS son mucho mayores de los de javascript, por lo tanto, se ha optado por este último para la elaboración del montante del siguiente trabajo de fin de grado.. 19.

(20) Odometría Marcos Parada Pombo. 6 ODOMETRÍA La odometría es el estudio de la estimación de la posición de vehículos con ruedas durante su navegación. En los robots se utiliza para estimar su posición relativa frente a su localización inicial. El principal factor para que la odometría es tener un modelo preciso de las acciones del robot. De esta forma si conocemos las ordenes de movimiento podremos estimar la posición en la que nos encontramos después de dicho movimiento. De todos modos, es inevitable que existan ciertos errores y que por tanto a medida que se acumulan acciones se va acumulando el error en la estimación de la posición.. 6.1.1 Calibración del movimiento del Robobo La calibración es un proceso para ajustar los parámetros que definen el modelo de comportamiento de un robot. El comportamiento tiene ruido y eso producirá un error inherente al modelo independiente de que esté calibrado. Los comandos no tienen asociado una respuesta exacta a su aplicación pues no es posible calcular la respuesta mecánica del robot ni la del motor en función de las ordenes enviadas porque influyen un gran número de factores que la modifican y es por eso por lo que hay que basarse en datos obtenidos en pruebas reales para generar el modelo. En la calibración se pueden combinar varios sensores para disminuir errores de medida. La calibración de Robobo la dividiremos en dos partes, movimientos y sensores. En este apartado nos dedicaremos a la calibración de los diferentes desplazamientos que puede realizar. La calibración de los movimientos es fundamental para el desplazamiento del robot, de esta manera a parte de determinar los desplazamientos reales respecto a los movimientos programados, determinaremos a qué velocidad se deben de hacer los mismos debido a los deslizamientos con la superficie para evitar grandes errores.. 20.

(21) Odometría Marcos Parada Pombo. 6.1.2 Desplazamiento recto Para la calibración de este movimiento se ha utilizado el comando de Robobo: moveWheelsByTimeBLK(Vr, Vi, T) Donde Vr es la velocidad de rotación de la rueda derecha, Vi la velocidad correspondiente a rueda izquierda y T el tiempo durante el cual se ejecutará el comando. De esta manera se ordenará a el robot que se mueva a diferentes velocidades durante diferentes periodos de tiempo para ver su respuesta. Para realizar la medición de manera correcta se ha de coger la medida de desplazamiento de la forma más precisa posible, de esta manera se ha optado por realizar la medida en el eje de las ruedas debido a su escasa distancia respecto al suelo y evitar errores ópticos.. Figura 8 medición distancia calibración movimiento recto. Los datos de distancia en centímetros respecto a el tiempo obtenidos en la calibración son los observados en la taba 1. En la gráfica Y podemos observar que el Robobo se comporta de manera lineal en los desplazamientos rectos, con una regresión de 0,9994. El desplazamiento corresponde a la ecuación que se encuentra en el gráfico donde “x” es el tiempo en segundos e “y” a la distancia en centímetros. De las 21.

(22) Odometría Marcos Parada Pombo. ecuaciones obtenidas podemos concluir que el desplazamiento es lineal pero que este tiene no arranca en el instante cero debido a un pequeño retraso en la respuesta del robot.. tiempo (s) distancia (cm). 0,4 0,4 0,4 0,4 0,4 0,4 0,4 0,4 0,4 1 1 1 1 1,2 1,2 1,3 1,5 1,1 1,2 1,2 1,2 0,8 5,4 4,2 4,5 4,8. 1 1 5 5,1. 0 0. Tabla 1 Datos calibración movimiento recto. Calibración distancia-tiempo velocidad 10 70. Distancia (cm). 60 50 40 30 y = 6,3161x - 1,4243 R² = 0,9994. 20 10 0 0. 2. 4. 6. 8. 10. 12. Tiempo (s) Gráfica 1 Calibración movimiento recto. La calibración se ha hecho a diferentes velocidades, pero pudimos observar que a cuanto mayor velocidad más variación en la respuesta debido a deslizamientos por causa deFigura la baja adherencia depor lasApril ruedas en la superficie. 9 Robot guiado TagsGráfica 2 Calibración movimiento recto. 6.1.3 Rotación pura En la siguiente calibración se estudiará el comportamiento del robot en un movimiento de rotación en estático. Este movimiento podría estimarse a partir de la respuesta en línea recta, pero hemos comprobado que este hecho se corrobora debido a la variación de la fuerza de oposición al movimiento y los pequeños deslizamientos que siempre aparecen en un movimiento circular. En esta calibración se realizará la medición de la misma manera que en la calibración anterior. Midiendo el movimiento sobre un transportador de ángulos impreso sobre una hoja de papel poniendo sobre esta el Robobo con el eje de giro de este en el centro de nuestro transportador impreso, haciéndolo girar con el comando anterior con velocidades con signos opuestos.. 22.

(23) Odometría Marcos Parada Pombo. Figura 10 Medición giro calibración. Una vez obtenidos los datos de la tabla 2 vemos que no se comporta de forma tan regular como el movimiento frontal, este hecho tiene como motivo la medida de este ya que con un desplazamiento pequeño que puede ser causado por diversos motivos como los deslizamientos de las ruedas o el tiempo de respuesta del robot entre otros, puede hacer variar varios grados la medida. Aun así, la ecuación a pesar de usar un polinomio más complejo para ajustar el movimiento podemos obtener una aproximación completamente satisfactoria con un coeficiente de regresión de 0,99.. 23.

(24) Odometría Marcos Parada Pombo. tiempo grados por secuencia. 0,25 0,25 0,25 0,25 0,25 0,25 0,25 0,25 0,25 0,25 1 0,5 1 0,5 0,5 0,5 1 1 1 1,5. 0,3 1,5. tiempo grados por secuencia. 0,3 1,5. 0,3 2. 0,3 1,5. 0,3 1,5. 0,3 2. 0,3 2,5. 0,3 1,5. 0,3 1,5. 0,3 1,5. 0,4 3. 0,4 7. tiempo grados por secuencia. 0,4 6,5. 0,4 6,5. 0,4 6. 0,4 5. 0,4 6. 0,4 6,5. 0,4 4,5. 0,7 17. 0,7 20. 0,7 19. 0,7 20. tiempo grados por secuencia. 0,7 17. 0,7 21. 0,7 22. 0,7 21. 0,7 23. 1 29. 1 38. 1 38. 1 36. 1 36. 1 36. tiempo grados por secuencia. 1 36. 1 34. 1 34. 2 80. 2 85. 2 78. 2 87. 2 80. 2 92. 2 90. 2 71. tiempo grados por secuencia. 2 82. 0,4 6. 0,7 20. 1 37. 2 87. Tabla 2 Mediciones de ángulos de giro respecto al tiempo. Grados. Calibración tiempo-grados 100 90 80 70 60 50 40 30 20 10 0. y = -10,023x3 + 33,027x2 + 18,735x - 6,1987 R² = 0,9907. 0. 0,5. 1. 1,5. 2. 2,5. Tiempo (s) Gráfica 2 Calibración rotación pura. Gráfica ¡Error! Marcador no definido. Calibración rotación pura. Hemos tenido que recurrir a un polinomio de mayor grado para realizar el ajuste, pero como se puede observar también se puede observar que son correctos debido a su regresión.. 24.

(25) Localización Marcos Parada Pombo. 7 LOCALIZACIÓN En el presente proyecto se busca hacer un mapeado de un espacio interior, el principal problema de este es la localización en el área que se quiere estudiar y de esta manera poder conocer la posición y la orientación en cada instante de tiempo. Como ya se ha dicho anteriormente el método más común y más sencillo de aplicar es el odométrico, donde se integra la trayectoria para estimar la posición y orientación del robot por el movimiento de las ruedas motrices. Su principal inconveniente es el error acumulativo, también llamado deriva, debido a errores intrínsecos del modelo que hacen que tras una serie de acciones la posición sea totalmente impredecible. Por este motivo es por el cual es necesario complementar este método con diferentes procesos que actualicen la posición del robot para mantener el error acotado dentro de un rango a lo largo de toda la secuencia de acciones. Al proceso que se encarga de determinar la posición y orientación del robot móvil, utilizando la información procedente de los sensores externos, se le denomina relocalización. Los métodos desarrollados para la resolución de esta problemática se pueden agrupar en dos grupos, la detección de marcas, tanto naturales como artificiales, presentes en el entorno, y la correspondencia entre la información suministrada por los sensores y un mapa a priori del entorno. Las características que se deberán tener en cuenta a la hora de diseñar el sistema sensorial vendrán dadas por: tamaño, consumo, simplicidad, redundancia, capacidad de operar en tiempo real, capacidad para detectar todo tipo de objetos en el entorno, resolución, exactitud, máxima y mínima distancia efectiva, y campo de visión. Los sensores más utilizados son los siguientes: - Sensores de proximidad: ultrasonidos, infrarrojos y láseres. - Sistemas basados en visión artificial: monoculares, estéreos o luz estructurada. - Sistemas de posicionamiento global. - Sistemas de navegación inercial. En este trabajo de fin de grado utilizaremos el reconocimiento de marcas para resolver la problemática de conocer nuestra posición. Como ya se ha dicho anteriormente se pueden clasificar en dos grupos, marcas naturales como artificiales.. 7.1 Balizas naturales El principal problema del uso de las marcas naturales o del entorno, es poder detectar y extraer información de objetos que se encuentran en el entorno a través del sistema sensorial del vehículo. Este es el motivo principal por la cual en la mayoría de los casos se emplean sistemas de visión artificial, que permiten por ejemplo la detección de los bordes verticales del entorno, asociados a puertas, ventanas, esquinas, así como las luces del techo, etc. Presentan la ventaja de no tener que introducir modificaciones en el entorno de trabajo. El estudio de este problema es el problema de SLAM (Simultaneous Localization and Mapping), este es un problema de gran relevancia en la robótica, en el cual se investiga actualmente y existen diferentes aproximaciones para resolverlo. 25.

(26) Localización Marcos Parada Pombo. 7.1.1 SLAM (Simultaneous Localization and Mapping) El SLAM o Simultaneous Localization and Mapping ha sido uno de los éxitos más importantes de la comunidad robótica para la solución a la problemática dada por la navegación. Esta técnica consiste en establecer bases estadísticas para describir las relaciones entre los objetos de referencia (conocidos como landmarks) y la manipulación de la incertidumbre geométrica. Un elemento clave de estos trabajos fue mostrar que debía existir una gran correlación entre las estimaciones de la localización de diferentes landmarks, y que esta estimación debía crecer con las sucesivas observaciones. Con los primeros avances de la navegación visual y en la navegación por sónar, usando algoritmos basados en filtros de Kalman. Estas dos ramas separadas de investigación combinadas ayudaron en la investigación de la navegación de robots móviles basada en landmarks. Estas investigaciones demostraron que para un robot móvil moviéndose a través de un entorno desconocido y capturando observaciones relativas de puntos de referencia, las estimaciones de éstas están necesariamente correlacionadas entre sí a causa del error común en la estimación de la posición del vehículo. La implicación de esto era profunda: una solución consistente al problema combinado de la localización y el mapeado requeriría un estado conjunto compuesto por la posición de cada uno de los objetos de referencia, que debería ser actualizado con cada observación de unos de estos objetos. Esto requeriría que el estimador de posición almacenara un gran vector de estados (de orden igual al número de landmarks que se conserven del mapa), con un coste computacional escalado al doble del cuadrado de landmarks. En primera instancia los estudios no fueron fructíferos los estudios sobre este tipo de práctica por errores de convergencia en las estimaciones. Así, dada la complejidad computacional del problema del mapeado y con un completo desconocimiento del comportamiento convergente del mapa, los investigadores se centraron en una serie de aproximaciones a la solución al problema del mapeado consistente que asumía, e incluso forzaba, la minimización de las correlaciones entre los objetos de referencia, reduciendo así el filtro completo en una serie de filtros vehículo-referencia sin relación entre sí. El descubrimiento más importante fue que el problema del mapeado y la localización, una vez formulado como un único problema de estimación, era de naturaleza convergente. Aún más, se reconoció que las correlaciones entre los objetos de referencia, que otros científicos intentaban minimizar o eliminar, eran la pieza clave del problema y que, de hecho, cuanto más ricas fueran estas correlaciones, mejor sería la solución. El proceso del SLAM consiste en un cierto número de pasos: extracción de características, asociación de datos, estimación del estado y actualización de las características. La finalidad del proceso es usar el entorno para actualizar la posición del robot. Dado que la odometría del robot no es enteramente fiable, no podemos depender directamente de ella. Debemos usar sensores de distancia para corregir esta posición. Esto se consigue extrayendo características del entorno y observándolas mientras el robot se encuentre en movimiento, de esta manera captamos la variación del punto de referencia respecto al movimiento. Un filtro extendido de Kalman es responsable de actualizar la estimación de la posición del robot basándose en estas características, a las que hemos llamado puntos de referencia o landmarks. 26.

(27) Localización Marcos Parada Pombo. Este método hoy en día tiene muchas limitaciones y es necesaria un gran poder computacional para poder llevarlo a cabo. Por estos motivos no es posible la implantación de este sistema en nuestro proyecto.. 7.2 Balizas artificiales La detección de las balizas artificiales simplifica el problema, pero requieren de una actuación sobre el entorno, como pegar los marcadores y localizarlos en el entorno. Al ser conocido su tamaño y forma, permitiendo poder determinar la posición del robot a través de la relación posicional existente entre la cámara y la marca, por la proyección bidimensional de ésta última sobre el plano de imagen. Los marcadores artificiales más importantes en este campo son los April Tags debido a su sencillez y a la información proporciona por estés.. 7.2.1 April Tags Fiducial System Este sistema utiliza una serie de marcadores artificiales desarrollados en la Universidad de Michigan que son utilizados en una gran cantidad de tareas, realidad aumentada, robótica o calibración de cámaras, entre muchas otras. Estos Tags son unos patrones de cuadrados blancos y negros que pueden estar impresos en un folio. Este sistema es tan extendido ya que las librerías de detección están puestas a disposición pública (implementables en los leguajes Java y C). Estos marcadores nos permiten obtener la posición 3D, la orientación y el identificador del Tag respecto a la cámara.. Figura 11 Robot guiado por April Tags. Los sistemas basados en la localización de objetos referencia son los más interesantes en el ámbito de la navegación ya que se basan en detectar características del entorno para la orientación y la localización del robot, pero este sistema tiene una serie de necesidades para su correcto funcionamiento, como una enorme capacidad de computación y una gran precisión de sus sensores. Por este motivo la aplicación de marcadores gana interés, ya que su disponibilidad es muy amplia y con una sencilla aplicación.. 27.

(28) Localización Marcos Parada Pombo. Existen también otro tipo de Tags, como por ejemplo los QR, este tipo de tags son más utilizados en el mundo de los smartphones debido a que pueden contener información de forma de cadena de texto, como por ejemplo una página web, a pesar de que en nuestro caso no sería preciso. Los April Tags tienen la ventaja en el objetivo de la navegación de que no es necesaria una gran resolución para su detección ya que están compuestos por una menos cantidad de pixeles, entre 49 y 100, frente a los 268 de los QR. También un hecho diferencial entre los April Tags y los QR es el hecho de que los April Tags pueden ser detectados de manera múltiple en una sola imagen, al contrario de los QR.. 7.3 Elección del sistema de orientación En este proyecto se opta por un sistema de navegación basado en la localización de QR por los motivos que se van a exponer a continuación. Se ha descartado el sistema de navegación SLAM (Simultaneous Localization and Mapping) debido a la complejidad del mismo frente a las ventajas que nos ofrece en nuestro caso, aparte de los requerimientos del sistema para que este funcione de forma correcta. Por estos motivos se ha optado por la detección de balizas artificiales para la elaboración de nuestro sistema de navegación. Dentro de estos se han optado por las etiquetas QR ya que estas librerías de detección ya estaban implementadas en Robobo, a pesar de que los ideales en nuestro caso serían los April Tags. De todas formas, se ha implementado un algoritmo en el que nos da la información que nos resulta de utilidad para dicha navegación como la posición respecto al QR y el ángulo de orientación del Robobo frente al QR.. 7.4 Etiquetas QR Las etiquetas QR se caracterizan por tener cuadrados concéntricos en 3 de sus esquinas como parámetro de identificación de la etiqueta, estos cuadrados concéntricos siempre son del mismo tamaño, y como ya se ha dicho, sirven para reconocer a este tipo de etiquetas. En el contorno que forman estos 3 cuadrados se encuentran 268 pixeles de color blanco o negro, que contienen algún tipo de información. En nuestro caso nos centraremos en la visualización de los 3 cuadrados concéntricos de las esquinas para obtener nuestra posición relativa. Figura 12 Etiqueta QR. 28.

(29) Localización Marcos Parada Pombo. 7.5 Posición relativa respecto al QR En cuanto a la colocación de los QR se ha optado por situarlos en el techo de la sala que se esté monitorizando ya que esto nos permitirá por un lado hacer menos invasiva la modificación del entorno y por otro facilitar la visualización del mismo mediante la cámara de Robobo. En el setup experimental utilizado, el Robobo se desplazará en el suelo de la oficina y por tanto los QRs se encontrarán a 2.5 metros de distancia de la cámara. Para mejorar la visualización de los mismos los hemos imprimido en tamaño A3 lo cual junto con la calidad de las cámaras de los smartphones actuales nos han permitido detectarlo adecuadamente. Una vez detectado el QR toca establecer nuestra posición relativa respecto a este, para ello se han de utilizar los parámetros dados por el comando de Robobo que lee el QR, readQR(). Este comando nos devuelve la posición de los tres cuadrados concéntricos de las esquinas en nuestra imagen y la distancia de la diagonal del QR. Según el esquema seguido podemos diferenciar cuatro sistemas de referencia. En primer lugar, el sistema de referencia global, Sg, de la sala que permanece fijo y es el que nos interesa utilizar. En segundo lugar, el sistema de referencia de cada QR, S QR_i cuya orientación y posición son fijas respecto al sistema de referencia global. A continuación, tenemos el sistema de referencia de la cámara del Robobo, Scam, y que es el que va a definir las coordenadas que obtendremos del comando readQR y por último el sistema de referencia del Robobo, SROB, que está centrado en el punto medio entre sus dos ruedas y alineado con el eje principal del Robobo. Nuestro objetivo es transformar obtener la posición y orientación de SROB en el sistema de referencia global. Para ello utilizamos el siguiente modelo. En el sistema de referencia Scam: Vector distancia entre los puntos 2 y 1.. x1 = qr. p1.x − qr. p 2.x y1 = qr. p1. y − qr. p 2. y v1 = ( x1 , y1 ) Vector distancia entre los puntos 2 y 3.. x2 = qr. p3.x − qr. p 2.x y2 = qr. p3. y − qr. p 2. y. v2 = ( x2 , y2 ) Haremos una matriz cuya composición sea cada Figura 13 Visualización sistemas de referencia vector anterior una columna de esta.. A =  v1 : v2  Esta matriz A va a representar la base del sistema de referencia de un QR, S qr_i en el sistema de referencia de la cámara. Y la inversa de la matriz A nos permitiría expresar cualquier vector en Scam en función del sistema de referencia del QR. Para poder expresar la ubicación del Robobo en SQR sólo nos faltaría conocer la posición del centro del Robobo en Scam y formar un vector entre esta y el origen del QR. Para hacer esto se 29.

(30) Localización Marcos Parada Pombo. ha colocado el Robobo en diferentes posiciones y se han obtenido datos haciendo girar al Robobo sobre su centro. Todas estas posiciones deben transformarse las mismas coordenadas en el sistema de referencia del QR, a las cuales hemos denominado [C1,C2]. Vector distancia entre el centro de la imagen y el punto 2.. x3 = xcentro − qr. p 2.x y3 = ycentro − qr. p 2. y.  x3  Vorigen =    y3   C1  A−1 Vorigen =    C2 . Coordenadas X del centro del QR. Esta calibración se ha realizado para distintas posiciones del Robobo para tener en cuenta las distorsiones ópticas de la lente de la cámara. Una vez obtenidos los datos y mediante el uso de un solver, se han obtenidos los valores de las coordenadas del centro (xcentro, ycentro) que minimizan la varianza de las coordenadas C1 y C2, pues deberían mantenerse fijas en cada maniobra de giro. Los datos obtenidos nos dan las siguientes gráficas con sus respectivas varianzas: Varianza C1 Varianza C2 Varianza cuadrática media. Calibración centro posición 1 390 370. 0,52097336 1,04432854 0,82523795. Tabla 3 Varianzas posición 1. 350 330 310 290 270 190. 210. 230. 250. 270. 290. Coordenada Y del centro del QR Gráfica 3 Calibración centro posición 1. 30. 310.

(31) Localización Marcos Parada Pombo. Varianza C1 Varianza C2 Varianza cuadrática media. Coordeenada X del centro del QR. Calibración centro posición 2 390 370. 1,00433743 0,29439957 0,74005566. Tabla 4 Varianzas posición 2. 350 330 310 290 270 190. 210. 230. 250. 270. 290. 310. Coordenada Y del centro del QR Gráfica 4 Calibración centro posición 2. Varianza C1 Varianza C2 Varianza cuadrática media. Coordenada X del centro del QR. Calibración centroposición 3 440 390. 3,18733534 2,42893063 2,83362053. Tabla 5 Varianzas posición 3. 340 290 240 150. 200. 250. 300. 350. Coordenada Y del centro del QR. Coordenada X del centro del QR. Gráfica 5 Calibración centro posición 3. Calibración centro posición 4. Varianza C1 Varianza C2 Varianza cuadrática media. 440 390. Tabla 6 Varianzas posición 4. 340 290 240 150. 200. 250. 300. Coordenada Y del centro del QR Gráfica 6 Calibración centro posición 4. 31. 350. 1,39077257 0,69099376 1,09811673.

(32) Localización Marcos Parada Pombo. Coordenada X del centro del QR. Calibración centro posición 5. Varianza C1 Varianza C2 Varianza cuadrática media. 490 440 390. Tabla 7 Varianzas posición 5. 340 290 240 190 100. 150. 200. 250. 300. 350. 400. Coordenada Y del centro del QR. Gráfica 7 Calibración centro posición 5. Gráfica observar 5 Calibración posición 5 Podemos que centro los datos obtenidos son de gran concordancia gracia a la varianza, ya que es baja, con una varianza total de los datos obtenidos de 3,4237. Gráficamente se puede observar que los puntos obtenidos del experimento forman un Gráfica 6 Calibración óvalo casi perfecto, esto noscentro quiereposición decir que5 no hubo deslizamientos y que el centro de giro se ha mantenido siempre en el mismo sitio. De los datos obtenidos se establece que nuestro centro de la imagen es 244,4 en el eje “x” y 330,3 en el eje “y”. Gráfica 7 Calibración centro posición 5. Figura 14 Calibración centro eje. 32. 1,39077257 0,69099376 1,09811673.

(33) Localización Marcos Parada Pombo. 7.6 Ángulo de orientación respecto al QR El ángulo de orientación respecto al QR conociendo los datos anteriores se puede calcular con los diferentes componentes de cualquier vector, v1 o v2, de esta forma haciendo la arcotangente de alguno de los dos vectores con la componente “x” y la componente “y”. De esta manera aplicando las siguientes ecuaciones obtendremos el ángulo de orientación respecto al QR.. y  arctg  1  o  x1 . y  arctg  2   x2 . 7.7 Factor de correlación coordenadas a centímetros Estas coordenadas obtenidas por los cálculos anteriores no están en centímetros, factor que nos causará un problema ya que las calibraciones de los distintos movimientos del Robobo se han hecho utilizando esta unidad de medida. Por lo tanto, tendremos que buscar un factor de correlación para pasar las unidades de las coordenadas que nos dan las ecuaciones anteriores a centímetros. Este factor de correlación se encontrará simplemente haciendo las mediciones de ciertas distancias en diferentes ejes y las compararemos con los valores de las coordenadas dadas. Los resultados de esta prueba son los siguientes:. Coordenadas Distancia real Coeficiente 21,165. 10. 2,1165. 44,8. 20. 2,24. 65,82. 30. 2,194. 11,8. 5. 2,36. Tabla 8 Relación de distancias y coordenadas. Seguidamente haremos una media de los distintos coeficientes y esta será de 2,256. Por lo tanto, los valores de nuestra posición obtenidos por los QR los tendremos que dividir por este coeficiente para hallar nuestra posición en centímetros. De esta manera ya podremos utilizar los datos de posición para el cálculo de los diferentes movimientos que queramos realizar.. 33.

(34) Navegación Marcos Parada Pombo. 8 NAVEGACIÓN La navegación es la metodología que permite guiar a un determinado vehículo a través de un entorno. Las tareas involucradas en la navegación de un robot móvil son principalmente la percepción del entorno a través de sus sensores, de este modo el robot debe de tener una visión lo suficientemente clara para la interacción del mismo para así realizar la planificación de una trayectoria libre de obstáculos, para alcanzar el punto destino seleccionado. El guiado del vehículo a través de la referencia construida. De forma simultánea, el vehículo puede interaccionar con ciertos elementos del entorno. Esta es la definición del concepto de operación como la programación de las herramientas de a bordo que le permiten realizar la tarea especificada.. 8.1 Esquemas de navegación en robots móviles Realizar una tarea de navegación para un robot móvil significa recorrer un camino que lo conduzca desde una posición inicial hasta otra final, pasando por ciertas posiciones intermedias o submetas. El problema de la navegación se divide en las siguientes cuatro etapas: -. -. -. Percepción del entorno Observar el entorno de navegación para de esta manera observar los obstáculos y sortearlos. Planificación de la ruta Crea una secuencia de posiciones a las que debemos ir para así sortear los diferentes obstáculos del área en el que se mueve. Seguimiento del camino: Efectúa el desplazamiento del vehículo, según el camino generado mediante el adecuado control de los actuadores del vehículo.. 8.2 Movimiento entre dos puntos El movimiento entre dos puntos, una posición final y otra final, es la función principal de la navegación, ya que como se ha dicho anteriormente el objetivo fundamental de la navegación es establecer una secuencia de posiciones a la que debemos de ir en un determinado orden para evitar los diferentes obstáculos del entorno. El funcionamiento de esta función es la siguiente. Nos encontramos en una posición conocida en un sistema de referencia global y nos indican a la posición a la que debemos ir en el mismo sistema de referencia. En primer lugar, tendremos que hacer un vector que vaya desde la posición inicial hasta la final. Una vez conocido este vector podremos. 34.

(35) Navegación Marcos Parada Pombo. conocer el ángulo que forma este vector respecto a un eje de coordenadas global conocido este podremos hallar el giro a realizar para tener el sentido de este vector que será la trayectoria del movimiento con las calibraciones hechas anteriormente en este proyecto. Una vez estemos en la dirección de la trayectoria que debemos seguir solo hará falta realizar un movimiento recto hasta el punto final.. Figura 13 Desplazamiento entre dos puntos. Por último, cabe citar que deberemos referirnos a todos los parámetros en un sistema de coordenadas global.. 8.3 Navegación absoluta con balizas QR Este algoritmo tiene como base de funcionamiento la función de moverse entre dos puntos. En este programa daremos por hecho que el QR siempre estará dentro de nuestro campo de visión, lo que no hará falta el uso de la odometría, también cabe decir que entre dos puntos consecutivos dados no puede haber ningún obstáculo. Una vez aclarado las condiciones para su correcto funcionamiento el algoritmo hará lo siguiente: Una vez dados los puntos que se tienen que recorrer por orden, Robobo observa en qué posición se encuentra mediante la visualización del QR que se encuentra en el techo, seguidamente calcula a que numero de posición ha de ir, esto se averiguará por medio de un contador que se inicializará en cero al inicio del programa y dividiendo este contador entre el número de posiciones diferentes por las que habrá que pasar y quedándonos con el resto de dicha división. Nos movemos a la posición resultante con la función de movimiento entre dos puntos y una vez llegamos al destino actualizamos nuestra posición e incrementamos el contador de las posiciones recorridas en una unidad. Este proceso lo repetiremos las veces que sea necesaria.. 35.

(36) Navegación Marcos Parada Pombo. El pseudocódigo de este programa es el siguiente:. Figura 14 Pseudocódigo navegación absoluta con balizas QR. 8.4 Navegación mixta con balizas QR Este algoritmo realiza la misma función que el anterior, pero con la salvedad de que este programa sí utiliza la odometría para estimar su posición en caso de no visualizar algún QR. De esta forma su funcionamiento es el que se define a continuación. Conociendo nuestra posición relativa respecto al QR podemos desarrollar nuestro algoritmo de navegación, este recibirá como parámetros de entrada una matriz con los diferentes puntos que debe recorrer con su posición “x” e “y” respectivamente. El funcionamiento del mismo será el siguiente, miramos si se detectó alguna vez una etiqueta QR. De no ser ese el caso, el programa no se iniciará hasta que se detecte por primera vez un QR, una vez visto por primera vez un QR guardamos nuestra posición dada por el mismo y no actualizaremos esta posición hasta que termine el movimiento por problemas de convergencia. Nos movemos al destino que corresponda, este se calculara dividiendo el número de posiciones que llevamos recorridas entre el número de puntos que hay que recorrer, calculando los movimientos a realizar por medio de trigonometría y con los datos obtenidos de la calibración de los movimientos. Seguidamente calculamos el ángulo final en el que terminaremos por si en la posición final no conseguimos visualizar ningún QR, incrementamos el número de posiciones recorridas en una unidad e inicializamos un contador de tiempo. El contador de tiempo tendrá la función de que si durante un determinado periodo de tiempo no consigue visualizar ningún QR haga los movimientos necesarios para llegar a la siguiente posición considerando que su ubicación es la del destino exacto del movimiento anterior. Este proceso se repetirá el número de veces que se desee. El algoritmo completo se encontrará en el anexo. 36.

(37) Navegación Marcos Parada Pombo. A continuación, se muestra un pseudocódigo del algoritmo:. Figura 15 Pseudocódigo navegación mixta. 8.5 Algoritmo de evasión de obstáculos Una vez desarrollado el algoritmo para la navegación entre unas determinadas posiciones hemos realizado un algoritmo que nos permite esquivar obstáculos poligonales. De manera que, pasándole los puntos de las esquinas de cualquier obstáculo, nuestra posición final y el destino a cuál queremos ir en un sistema de coordenadas global todos los parámetros citados será capaz de evadir el obstáculo en cuestión. El funcionamiento de dicho algoritmo será el próximo, como ya se ha dicho anteriormente los parámetros que le pasamos a dicho algoritmo son los de las esquinas del objeto a evadir mediante una matriz que contenga la coordenada “x” y la coordenada “y” de cada esquina, y por otra parte nuestra posición inicial y el destino al que queremos ir.. 37.

(38) Navegación Marcos Parada Pombo. En primera instancia se calcula cual será la mejor manera de rodear el obstáculo, esto se calcula hallando la longitud de la trayectoria por la derecha y por la izquierda del objeto, y consecuentemente se cogerá el criterio que nos dé la menor distancia. Esta longitud de la trayectoria se calcula con la siguiente secuencia de operaciones, mientras la distancia entre nuestra posición inicial y la final sea menor de un umbral, como por ejemplo 5 centímetros, calculamos el punto de corte más cercano entre las rectas del obstáculo y la recta que irá desde nuestra posición inicial y el destino. Si existen puntos de corte calcularemos a la posición que debemos ir, que esta será la esquina de la izquierda o derecha, según el criterio establecido, de la recta con la que existe el punto de corte más cercano con un umbral de seguridad para que no colisione con el objeto, como se observa en la figura Z. En caso de que no exista punto de corte con el objeto, este no se encontrará entre el destino y nuestra Figura 16 Algoritmo de evasión de obstáculos posición. De esta manera se ira contabilizando la distancia recorrida. La manera de calcular el punto de corte más cercano entre nuestra posición y el objeto será la siguiente, primero calcularemos todas las rectas que conforman entre las esquinas contiguas del objeto, seguidamente se hallará la recta que irá entre la posición final y la de destino, y calcularemos los puntos de corte con dichas rectas, miraremos si estos puntos de corte se encontrarán dentro del objeto y cogeremos el punto de corte que haya menos distancia respecto nuestra posición inicial. Una vez calculado el mejor criterio para rodear el obstáculo haremos el proceso anterior para calcular los puntos a los que debemos ir para sortear el objeto y moviéndonos al mismo tiempo. Este proceso se hará intentando actualizar nuestra posición por medio de las etiquetas QR. El pseudocódigo de este algoritmo será el siguiente:. 38.

(39) Navegación Marcos Parada Pombo. Figura 17 Pseudocódigo salvar obstáculos. 39.

(40) Navegación Marcos Parada Pombo. Este algoritmo es de gran importancia ya que es el que nos servirá para la coordinación de varios robots. De esta manera podemos traducir a los diferentes robots en obstáculos poligonales de unas determinadas dimensiones móviles en el espacio, de esta manera cuando se presente un robot en la trayectoria de otro el primero lo sorteará sin problemas y sucesivamente seguirá con su camino. El código completo de este algoritmo se encuentra en el anexo.. 40.

(41) Mapeado Marcos Parada Pombo. 9 MAPEADO El mapeado es la representación cartográfica de determinados factores en una zona específica. Este mapa es de gran utilidad porque determina el grado de cualquier aspecto al que está sometido un espacio concreto. A partir de este mapeado se pueden determinan las zonas críticas de cualquier factor y se podrán realizar medidas para actuar sobre dichas zonas. En el presente trabajo de fin de grado se va a diseñar el algoritmo para el mapeado de un área de trabajo midiendo los niveles de ruido y luminosidad del mismo. De esta manera estudiar las zonas críticas en las cuales no se pueda realizar la labor requerida en las condiciones óptimas. Este mapeado se ha realizado combinando los programas de navegación mixta y el algoritmo de evasión de obstáculos para su correcta navegación en el centro de trabajo, y los comandos de Robobo “readBrightnessSensor();” y “readNoiseLevel()” para contabilizar los niveles de luminosidad y ruido respectivamente. Estas lecturas se realizarán en parado en los distintos puntos indicados para realizar la navegación, principalmente no tener una cantidad inmensa de datos y también de esta manera no distorsionamos la medida de luminosidad. Los datos serán guardados en una matriz en el cual almacenará en cada fila de la misma la posición “x” e “y” del Robobo, el ángulo de orientación de este, si se ha detectado algún QR en la posición de medida, y los valores de intensidad lumínica y ruido respectivamente. El programa completo se encontrará en el anexo.. 41.

Figure

Figura 1 Primer robot móvil
Figura 2 Robot moderno
Figura 3 Tipos de robots según su arquitectura
Figura 4 Plataforma móvil con smartphone móvil
+7

Referencias

Documento similar

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)