Design and construction of a robotic platform for 3D ... · su vez, estas tarjetas permiten...

6
1 Abstract—The design and construction of an autonomous Simultaneous Localization and Mapping embedded system by means of a visual sensor and a mobile robotic system, which are controlled via a modular environment is described. The complete system is driven by an embedded system. The information and communication of each module is handled with the Robotic Operation System. Experimental results are provided to validate the effectiveness of the proposal. Keywords—Robot vision, Mobile robots, Image fusion, Embedded systems, Computer vision. I.INTRODUCCIÓN a reconstrucción tridimensional ha tenido gran auge en los últimos años [1-3]. En particular, la mezcla entre dispositivos autónomos y sistemas de reconstrucción ha permitido acceder a espacios de difícil acceso en entornos controlados, esto se debe a la miniaturización y procesamiento de información en sistemas dedicados, ya sea a través del procesamiento externo en unidades dedicadas, o en sistemas embebidos de alta capacidad. El uso de sistemas robóticos autónomos requiere un equilibro con los sistemas de procesamiento, el compromiso entre gasto energético y capacidad de procesar información debe estar involucrado en los procesos de diseño e implementación de sistemas globales. De manera mínima, es necesaria una instrumentación que permita el posicionamiento y planeación de trayectorias para conocer en qué parte de un espacio se encuentra y poder planificar sus movimientos, además de obtener un mapa tridimensional del entorno. Por otra parte, con la introducción en el mercado de cámaras de profundidad de bajo costo como el sensor Kinect, 1 E. Amaya-Cruz está en la Sección de Estudios de Posgrado e Investigación, Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas, Instituto Politécnico Nacional, Ciudad de México, México, [email protected] O. Gutiérrez-Frías está en la Sección de Estudios de Posgrado e Investigación, Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas, Instituto Politécnico Nacional, Ciudad de México, México, [email protected] A. Luviano-Juárez está en la Sección de Estudios de Posgrado e Investigación, Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas, Instituto Politécnico Nacional, Ciudad de México, México, [email protected] H. Sossa-Azuela está en el Centro de Investigación en Computación, Instituto Politécnico Nacional, Ciudad de México, México, [email protected] Asus Xtion Pro Live, etc, se ha creado un gran interés por el desarrollo de todo tipo de aplicaciones, publicándose una gran cantidad de documentos que se centran en el uso de estos dispositivos como sensor principal para llevar a cabo reconstrucción tridimensional, como en [4-6], entre otros. También se utilizan cámaras estéreo, mono, y escáneres láser, pero rara vez superan a un sensor RGB-D en la combinación de ligereza, precisión y simplicidad. En general, un sistema móvil realiza la reconstrucción utilizando una computadora personal integrada, la cual garantiza el procesamiento apropiado y trabajo en tiempo real, aunque un sistema de esta naturaleza tiene las siguientes limitantes: es sensible a vibraciones, es susceptible a sobrecalentamiento, tiene velocidad de procesamiento alta en equipos pesados, solo se pueden utilizar en robots de tamaño mediano, entre otros. Como una alternativa que pueda ser más competitiva en los ámbitos de volumen, peso, sin perder la capacidad de procesamiento mínima requerida, han surgido los sistemas embebidos [7-8]. Estos sistemas se caracterizan por tener altos niveles de integración, con un mínimo de periféricos pero con una alta capacidad de procesamiento. A su vez, estas tarjetas permiten incorporar sistemas operativos dedicados para la administración de las tareas específicas, como sería: el Sistema Operativo para Robots [9](ROS por las siglas en inglés de Robot Operating System) en conjunto con la Biblioteca de Nube de Puntos (PCL por las siglas en inglés de Point Cloud Library)[10] que permiten la adquisición y procesamiento de señales para el mapeo de un entorno 3D. Existen varios trabajos relacionados con la navegación, mapeo y construcción de entornos en 2D y 3D. Por ejemplo, en [11] se describe un sistema de odometría visual y modelado en 3D utilizando la información de un sensor RGB-D. En [12], se presenta un procedimiento de SLAM visual (vSLAM). Y en este caso, se usa el algoritmo de consenso de muestra aleatoria (RANSAC) para que coincidan las características extraídas desde de la imagen RGB y profundidad. Los sistemas anteriores muestran la tendencia que los sensores de visión reemplazarán el buscador tradicional de rayos láser en la Localización y Mapeo Simultáneo, ya que tiene varias ventajas clave, incluyendo el precio bajo, tamaño y peso, así como la cantidad de información que se puede obtener desde el medio ambiente. Por otra parte, el uso de sistemas de procesamiento embebido considerando las restricciones de peso y tamaño y evitando la necesidad de una plataforma de procesamiento adicional como se presenta en [13] donde utilizan el uso de cámaras RGB-D mediante un sistema embebido usando la plataforma Raspberry Pi y un sistema de cómputo para L Design and construction of a robotic platform for 3D reconstruction through an embedded processing system E. Amaya-Cruz, O. Gutiérrez-Frías, A. Luviano-Juárez and H. Sossa-Azuela IEEE LATIN AMERICA TRANSACTIONS, VOL. 16, NO. 1, JAN. 2018 19

Transcript of Design and construction of a robotic platform for 3D ... · su vez, estas tarjetas permiten...

1Abstract—The design and construction of an autonomous Simultaneous Localization and Mapping embedded system by means of a visual sensor and a mobile robotic system, which are controlled via a modular environment is described. The complete system is driven by an embedded system. The information and communication of each module is handled with the Robotic Operation System. Experimental results are provided to validate the effectiveness of the proposal.

Keywords—Robot vision, Mobile robots, Image fusion,

Embedded systems, Computer vision.

I.INTRODUCCIÓN

a reconstrucción tridimensional ha tenido gran auge en los últimos años [1-3]. En particular, la mezcla entre

dispositivos autónomos y sistemas de reconstrucción ha permitido acceder a espacios de difícil acceso en entornos controlados, esto se debe a la miniaturización y procesamiento de información en sistemas dedicados, ya sea a través del procesamiento externo en unidades dedicadas, o en sistemas embebidos de alta capacidad.

El uso de sistemas robóticos autónomos requiere un equilibro con los sistemas de procesamiento, el compromiso entre gasto energético y capacidad de procesar información debe estar involucrado en los procesos de diseño e implementación de sistemas globales. De manera mínima, es necesaria una instrumentación que permita el posicionamiento y planeación de trayectorias para conocer en qué parte de un espacio se encuentra y poder planificar sus movimientos, además de obtener un mapa tridimensional del entorno.

Por otra parte, con la introducción en el mercado de cámaras de profundidad de bajo costo como el sensor Kinect,

1E. Amaya-Cruz está en la Sección de Estudios de Posgrado e Investigación, Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas, Instituto Politécnico Nacional, Ciudad de México, México, [email protected] O. Gutiérrez-Frías está en la Sección de Estudios de Posgrado e Investigación, Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas, Instituto Politécnico Nacional, Ciudad de México, México, [email protected] A. Luviano-Juárez está en la Sección de Estudios de Posgrado e Investigación, Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas, Instituto Politécnico Nacional, Ciudad de México, México, [email protected] H. Sossa-Azuela está en el Centro de Investigación en Computación, Instituto Politécnico Nacional, Ciudad de México, México, [email protected]

Asus Xtion Pro Live, etc, se ha creado un gran interés por el desarrollo de todo tipo de aplicaciones, publicándose una gran cantidad de documentos que se centran en el uso de estos dispositivos como sensor principal para llevar a cabo reconstrucción tridimensional, como en [4-6], entre otros. También se utilizan cámaras estéreo, mono, y escáneres láser, pero rara vez superan a un sensor RGB-D en la combinación de ligereza, precisión y simplicidad.

En general, un sistema móvil realiza la reconstrucción utilizando una computadora personal integrada, la cual garantiza el procesamiento apropiado y trabajo en tiempo real, aunque un sistema de esta naturaleza tiene las siguientes limitantes: es sensible a vibraciones, es susceptible a sobrecalentamiento, tiene velocidad de procesamiento alta en equipos pesados, solo se pueden utilizar en robots de tamaño mediano, entre otros. Como una alternativa que pueda ser más competitiva en los ámbitos de volumen, peso, sin perder la capacidad de procesamiento mínima requerida, han surgido los sistemas embebidos [7-8]. Estos sistemas se caracterizan por tener altos niveles de integración, con un mínimo de periféricos pero con una alta capacidad de procesamiento. A su vez, estas tarjetas permiten incorporar sistemas operativos dedicados para la administración de las tareas específicas, como sería: el Sistema Operativo para Robots [9](ROS por las siglas en inglés de Robot Operating System) en conjunto con la Biblioteca de Nube de Puntos (PCL por las siglas en inglés de Point Cloud Library)[10] que permiten la adquisición y procesamiento de señales para el mapeo de un entorno 3D.

Existen varios trabajos relacionados con la navegación, mapeo y construcción de entornos en 2D y 3D. Por ejemplo, en [11] se describe un sistema de odometría visual y modelado en 3D utilizando la información de un sensor RGB-D. En [12], se presenta un procedimiento de SLAM visual (vSLAM). Y en este caso, se usa el algoritmo de consenso de muestra aleatoria (RANSAC) para que coincidan las características extraídas desde de la imagen RGB y profundidad. Los sistemas anteriores muestran la tendencia que los sensores de visión reemplazarán el buscador tradicional de rayos láser en la Localización y Mapeo Simultáneo, ya que tiene varias ventajas clave, incluyendo el precio bajo, tamaño y peso, así como la cantidad de información que se puede obtener desde el medio ambiente.

Por otra parte, el uso de sistemas de procesamiento embebido considerando las restricciones de peso y tamaño y evitando la necesidad de una plataforma de procesamiento adicional como se presenta en [13] donde utilizan el uso de cámaras RGB-D mediante un sistema embebido usando la plataforma Raspberry Pi y un sistema de cómputo para

L

Design and construction of a robotic platform for 3D reconstruction through an embedded

processing system E. Amaya-Cruz, O. Gutiérrez-Frías, A. Luviano-Juárez and H. Sossa-Azuela

IEEE LATIN AMERICA TRANSACTIONS, VOL. 16, NO. 1, JAN. 2018 19

realizar la tarea de SLAM. En [14] se presenta la implementación de una plataforma aérea para tareas SLAM, cuya principal característica radica en una utilizar con dispositivos comerciales como sería la tarjeta embebida MinnowBoard y el protocolo MAVLINK demostrando la pertinencia de sistemas embebidos para tareas de reconstrucción tridimensional. Respecto a la implementación de sistemas de robótica móvil integrando ROS por ejemplo, en [15] se muestran las ventajas de la arquitectura modular que permite ROS en aplicaciones de robótica móvil presentando una plataforma que facilita el uso de varias herramientas para el análisis de datos y la interacción entre múltiples robots, sensores y dispositivos de teleoperación, utilizando robots reales y virtuales, pero no aborda el uso de sistemas de visión por computadora. De lo anterior, se puede mencionar que las aplicaciones de robótica móvil empleando sistema de cómputo embebido es un campo en desarrollo.

En este artículo se trata el tema de la integración de un sistema robótico con un sistema embebido integrado para las tareas de captura de imágenes, mapeo y localización de entornos. El sistema principal tiene un robot con doble tracción diferencial, cámaras RGB-D, así como un sistema embebido de procesamiento mediante la tarjeta Odroid, todos ellos manipulados a través del sistema ROS.

El trabajo se divide en las siguientes secciones: La plataforma robótica se describe en la sección II. El sistema de procesamiento y los algoritmos empleados se mencionan en la sección III. Las pruebas y validación del sistema se presentan en la sección IV y finalmente se dan algunas conclusiones.

II. PLATAFORMA DE ROBOT MÓVIL

En este trabajo se desarrolló un robot móvil diferencial, el

cual tiene los siguientes componentes: cuatro motores de CD., controlador para motores, tarjeta embebida Odroid XU3, una tarjeta Arduino Nano, Batería LiPo y sensor de visión Asus Xtion Pro Live, los cuales ser describen a continuación:

La plataforma de robot móvil cuenta con cuatro motores de corriente continua con una relación de engranaje de 34:1 y un par torsional de 3.5 Kg-cm por cada motor. Los motores trabajan a un voltaje de 7.2 V a 6.6 A teniendo una velocidad máxima de 2 m/s. Para controlar los motores se utiliza el controlador Roboclaw cuya capacidad máxima de corriente por canal es de 15 A, en la parte izquierda del robot se colocaron dos motores conectados en paralelo y en la parte derecha del robot se colocaron otros dos motores con la misma configuración, de esta forma se permiten conectar a las dos salidas del driver.

El sistema de alimentación se divide para los componentes de procesamiento y los de locomoción, para alimentar el controlador de los motores se utiliza un batería tipo LiPo de 2 celdas de 7.4 V a 2200 mAh. Los componentes electrónicos como la tarjeta Arduino Nano, sensor de visión y la tarjeta Odroid XU3 se alimentan con una batería tipo LiPo de 4 celdas de 14.8 V a 6000 mAh.

Se seleccionó el sensor de visión Xtion Pro Live [16], por su tamaño, peso y voltaje de alimentación. El sensor utilizado

proporciona información RGB y datos de profundidad, obteniendo los datos de distancia de toda la imagen que captura.

Además, se utilizó una tarjeta Arduino Nano como interfaz de lectura entre la tarjeta Odroid, los sensores (IMU MPU6050, encoders, sensor ultrasónico), así como el controlador de motor. En la Fig. 1 se muestran las conexiones entre los componentes mencionados.

Figura 1. Conexión de la tarjeta arduino con los componentes.

El elemento principal de procesamiento del robot es una tarjeta embebida Odroid XU3 [17], cuyas sus pequeñas dimensiones hacen que se adapte al robot móvil sin ocupar mucho espacio, ver Fig. 2, considerándose una buena opción costo-desempeño, comparado con un sistema de cómputo portátil.

En esta tarjeta se conecta por medio de un puerto USB el sensor de visión, la tarjeta Arduino y el adaptador WiFi. El control de motores se realiza mediante el controlador Roboclaw, el cual recibe datos del Arduino Nano provenientes de la tarjeta Odroid XU3. En la Fig. 3 se muestra el dispositivo robótico instrumentado. Los datos del sensor MPU6050 y los decodificadores ópticos se envían a la tarjeta Arduino y posteriormente a la tarjeta Odroid mediante comunicación USB entre ambos dispositivos.

Figura 2. Conexiones de la tarjeta Odroid XU3.

Figura 3. Robot móvil implementado.

III. SISTEMA DE PROCESAMIENTO

A. Integración de sistemas de procesamiento con ROS La Fig. 4 muestra la configuración de la comunicación

entre los nodos que forman el sistema general. La información del sensor de visión RGB-D se envía a la tarjeta Odroid XU3

Con troladordemot or

R obocla w

Ar duinoNano

SensorUlt rasÛnic o

HC-SR04

MPU6 050

T rig g er

E cho

M1+

-

M2+

-B

A

B

A

S2

S1

BA

BA

Enc oder1

BA

Enc oder2

BA

SD A

SCL

SD A

SCL

PIN1 0

PIN9

RX

TX

20 IEEE LATIN AMERICA TRANSACTIONS, VOL. 16, NO. 1, JAN. 2018

utilizando el esquema publicación/subscripción de ROS [18]. El nodo Arduino recibe los datos del sensor ultrasónico, de la IMU MPU6050 y de los codificadores ópticos de cada motor, funciona como tarjeta auxiliar en donde se procesan los datos de los sensores. Posteriormente, se envían al nodo maestro para ubicar al robot en el entorno. Cabe mencionar que si bien se cuenta con una computadora portátil, está solo se usa para visualizar el mapa en reconstrucción y no tiene participación activa en el proceso.

La configuración de red es un aspecto importante para establecer la comunicación entre los nodos de ROS, el nodo maestro es la tarjeta Odroid XU3, la cual realiza el procesamiento de los datos provenientes del sensor RGB-D y el nodo esclavo es una computadora portátil que muestra la información de la reconstrucción tridimensional mediante un visualizador, de tal forma que la configuración queda como cliente-servidor (esclavo-maestro). Además se utiliza el intérprete de ordenes seguro (SSH) [19], para acceder al nodo maestro de forma remota desde la computadora portátil para ejecutar comandos en la terminal de la tarjeta embebida, dicha configuración se realiza en cada dispositivo modificando el archivo de sistema .bashrc, con la finalidad de incluir la dirección IP de cada nodo. Un esquema que representa la configuración se muestra en la Fig. 5

Figura 4. Conexiones de la tarjeta Odroid XU3.

Figura 5. Configuración de red del robot móvil

B. Navegación del robot móvil

La navegación del robot móvil se realiza mediante

teleoperación, utilizando la computadora personal. Cabe mencionar que la plataforma cuenta con los elementos necesarios para realizar la tarea de navegación autónoma, que están fuera de los alcances de este trabajo.

Por otra parte, el Arduino Nano se convierte en el nodo “Robot”, en el cual se crean los tópicos para el sensor MPU6050, codificadores ópticos comunicándose con la tarjeta Odroid mediante USB-serial y con el fin de ejecutar varios nodos de forma simultánea sin necesidad de ejecutar previamente el nodo maestro de ROS se creó un nodo lanzador. Este nodo se denomina nodo controlador del robot móvil y se crea con los datos de los sensores.

Después de configurar el nodo controlador se requiere conectar el robot móvil con el nodo de navegación de ROS, en la Fig. 6 se muestran los tópicos y nodos que se ejecutan con la finalidad de realizar navegación, calcular los datos de posición por odometría y generar las transformaciones que se tienen durante el desplazamiento de las mismas, que son enviadas a la pila de navegación. Finalmente, se implementaron controladores tipo PID para regular la velocidad de los motores del robot.

Figura 6. Conexión de tópicos y nodos.

C. Algoritmos implementados en la reconstrucción

tridimensional

Para realizar la reconstrucción tridimensional se emplean los datos obtenidos con el sensor RGB-D, el cual procesa tres tipos de imágenes: RGB, IR y Profundidad, las cuales se muestran en la Fig. 7.

Figura 7. a) Imagen RGB, b) Imagen IR, c) Imagen de profundidad. Con la información de estas imágenes el sensor genera una

nube de puntos de la escena, obteniendo dos mapas de profundidad, uno mediante la malla que produce el proyector IR y otro generado a partir del sensor de visión, como se muestra en la Fig. 8.

Debido a la cantidad de información en la adquisición de

datos en la nube de puntos se requiere realizar acciones de

AMAYA-CRUZ et al.: DESIGN AND CONSTRUCTION OF 21

filtrado para reducir la cantidad de ruido y reducir la densidad de puntos sin perder información valiosa. Para este caso se utiliza el filtro de eliminación estadística de valores atípicos, el cual se encuentra la Biblioteca de Nube de Puntos [20].

Figura 8. Nube de puntos. Este algoritmo realiza un análisis de la nube de puntos y

elimina aquellos puntos que no satisfacen una propiedad estadística específica, que en este caso, es la distancia media en una zona y mediante el visualizador pcl_viewer se verificó que la escena tridimensional se redujo en la cantidad de puntos, pasando de 307,200 a 297,785 puntos.

Para reducir el tamaño del archivo se emplea el filtro Voxel

Grid, que utiliza como entrada el resultado del filtro de reducción de ruido y consiste en dividir la nube de puntos en voxels, o una cuadrícula 3D, y sustituye a todos los puntos contenidos en cada voxel con el centroide de ese conjunto de voxels [21], reduciendo de 11.6 MB a 7.64 MB. La Fig. 9 muestra el diagrama de flujo del algoritmo de reducción de puntos y en la Fig. 10 se muestra la escena después de aplicar un filtro Voxel Grid, de esta forma se disminuye el nivel de procesamiento durante la reconstrucción tridimensional. De forma similar utilizando el visualizador de PCL (pcl_viewer) se verificó que la escena tridimensional se redujo en la cantidad de puntos, pasando de 297,785 a 4,664 puntos.

Figura 9. Diagrama de flujo del algoritmo de reducción de puntos.

Los algoritmos presentados para filtrar una escena

capturada fueron implementados en la tarjeta Odroid XU3 antes de implementar los algoritmos de SLAM y el RtabMap [22]. El diagrama de flujo se muestra en la Fig. 11.

Figura 10. Filtro Voxel_Grid para reducción de puntos de la nube.

Figura 11. Diagrama de flujo para la reconstrucción tridimensional

implementado en la tarjeta embebida.

IV. RESULTADOS EXPERIMENTALES A. Reconstrucción tridimensional A continuación se presentan las pruebas realizadas con el

robot móvil y se muestran los mapas reconstruidos. Para la reconstrucción del entorno se utilizó la navegación por teleoperación, es importante aclarar que el robot móvil cuenta con los elementos que permiten navegación autónoma, cuyo resultado estaría en función de un controlador automático, lo cual queda fuera de los alcances de este trabajo. Las pruebas experimentales que se presentan enseguida y se hicieron en el Laboratorio de Robótica Avanzada de la UPIITA-IPN.

El procesamiento principal se hace en la tarjeta embebida Odroid XU3, la cual reconstruyó el entorno utilizando al robot móvil mediante navegación a una velocidad de 0.2 m/s. El lugar es un ambiente cerrado y estático, además tiene la característica de poder regular la intensidad de luz natural que entra. Para realizar esta prueba, se utilizó la odometría del sensor de visión y se utilizó la configuración cliente - servidor para la comunicación entre la computadora personal (visualización) y el robot móvil respectivamente. En esta prueba se registraron 854 nodos en la reconstrucción tridimensional. El tiempo que tardó en concluir el mapa fue de 5 minutos, siendo las esquinas el lugar que mayor tiempo consumió, mismo que puede mejorarse mediante la autonomía del robot.

En la Fig. 12 se muestra el mapa tridimensional que cuenta con 18,176,643 puntos y se observan las escenas capturadas durante el recorrido del robot móvil, las cuales muestran detalles de los objetos e información de la escena. Los puntos

22 IEEE LATIN AMERICA TRANSACTIONS, VOL. 16, NO. 1, JAN. 2018

se capturaron dependiendo de los diferentes tipos de superficies de los objetos, entre más reflejante la superficie, la probabilidad de que el sensor de visión capture la información es menor. Esto ocurrió en el caso de superficies como vidrio o plásticos transparentes, cuyos datos tuvieron poca información o en algunos casos, ningún punto de la escena.

Adicionalmente, la altura del sensor con respecto al piso fue de 36 cm, a esta distancia se realizó la prueba y se obtuvieron suficientes datos del entorno para crear el mapa tridimensional. Cabe resaltar que cuando hay mesas o sillas solo se almacena la nube de puntos de los costados de los objetos, ya que el sensor no captura las superficies de objetos con mayor altura.

En la Fig. 13 se observa un área con acercamiento del mapa tridimensional reconstruido, en donde se pueden observar detalles de la escena y de algunos objetos, así como, zonas en color blanco que representan puntos no definidos debido a la intensidad de luz natural y el material de la superficie como por ejemplo el vidrio, en el lado izquierdo se observa la escena en valores RGB (Fig. 13a) y en el lado derecho se observa la misma escena pero en valores RGB-D (Fig. 13b).

Figura 12. Reconstrucción tridimensional en la tarjeta embebida.

Figura 13. a) Imagen RGB, b) Imagen RGB-D

B. Validación experimental de la reconstrucción Para validar la exactitud en la reconstrucción

tridimensional se realizaron 5 mediciones a distancias diferentes de los objetos que se reconstruyeron durante el recorrido del robot. En la tabla I se presentan los datos correspondientes a diferentes distancias del objeto de prueba de donde se encontraba el sensor RGB-D. El objeto medido fue una caja de 18 x 18 x 7 cm, un lado de una mesa que mide

60 cm, así como el ancho de la puerta de 90 cm.

TABLA I MEDICIÓN DE OBJETOS DE LA ESCENA TRIDIMENSIONAL

Objeto Dist. 50cm

Dist. 100cm

Dist. 150cm

Dist. 200cm

Dist. 250cm

Valor Real

Caja 16.6 15.3 14.2 13.4 12.5 18 Mesa 58.7 57.8 57.8 55.3 54.3 60 Puerta 89.3 88.8 88.8 87.1 85.4 90

Se puede apreciar que entre más cerca se encuentran los

objetos (tomando en cuenta la distancia mínima definida por el fabricante) la reconstrucción es más cerca al valor real y entre más lejos el error va aumentando de manera lineal, como se muestra en la Fig.14. La medición se realizó con un flexómetro en los lugares de prueba y los mapas generados se midieron con el Software Libre MeshLab [23] en el cual se obtuvieron las distancias de los objetos de los mapas reconstruidos.

Figura 14 Error en la medición de los objetos.

Figura 15. Comparación de la medición.

Como una segunda prueba y con la finalidad de comparar el desempeño del sistema propuesto respecto a una mini computadora personal, se usó un equipo que cuenta con un procesador Intel Celeron a 2.08 GHz, 4 Gb en RAM y un disco de estado sólido de 60 GB, realizando la misma tarea del experimento anterior, bajo las mismas condiciones para verificar las ventajas entre ambos sistemas. Cabe mencionar, que con la tarjeta embebida el tiempo utilizado en la tarea de reconstrucción es de 5 minutos, mientras que la mini computadora toma 20 minutos, ya que cuando lleva a cabo una captura de escena se tiene que esperar entre 2 o 3 minutos en procesar y enviar la información al nodo cliente para desplegar la información visual. En la Fig. 15 se presenta la comparación del error de la medición de los objetos del entorno, obtenida al llevar a cabo el procesamiento en ambos

AMAYA-CRUZ et al.: DESIGN AND CONSTRUCTION OF 23

sistemas. V. CONCLUSIONES

En este trabajo se presenta una alternativa para la

reconstrucción de entornos tridimensionales mediante un manipulador móvil, la principal aportación que se presenta es la adaptación del diseño para el uso de una tarjeta embebida con arquitectura ARM en lugar de una computadora portátil [24], reduciendo el costo de prototipos portátiles con la capacidad de procesamiento de SLAM, facilitando el desarrollo de estas aplicaciones En la actualidad estas tarjetas comienzan a ganar terreno en el desarrollo de prototipos robóticos, teniendo capacidades similares y, en algunos casos, mejores que algunas computadoras portátiles. La alternativa presentada logra buen desempeño siendo una opción económica y se espera que este trabajo sea un precedente de la implementación de un algoritmo de SLAM en una tarjeta embebida para escenarios no controlados tanto en terreno como en iluminación mediante el uso de robots de ruedas caminantes, la implementación de filtros de uso específico para imágenes en exteriores, así como, algoritmo de planeación de trayectoria y navegación autónoma mediante técnicas de control automatico.

AGRADECIMENTOS

Este trabajo es financiado por la SIP-IPN, con número de registro 20172245, 20170487 and 20170693.

REFERENCIAS [1] S. Lee, and S. Lee. Embedded visual slam: Applications for low-cost consumer robots. IEEE Robotics & Automation Magazine, vol. 20, no 4, pp. 83-95, 2013. [2] J. Fuentes-Pacheco, J. Ruiz-Ascencio, and, J. Rendón-Mancha. Visual simultaneous localization and mapping: a survey. Artificial Intelligence Review, vol. 43, no 1, pp. 55-81, 2015. [3] E. Hitomi, J. Silva, and G. Ruppert. 3D scanning using RGBD imaging devices: A survey. Wseas Transactions on Systems Developments in Medical Image Processing and Computational Vision, Springer, pp. 379–395., 2015. [4] J. Gonzalez-Jimenez, J. Ruiz-Sarmiento, and C. Galindo. Improving 2D reactive navigators with Kinect. 10th International Conference on Informatics in Control, Automation and Robotics (ICINCO). [5] A. Hornung, M. Phillips, E. G. Jones, M. Bennewitz, M. Likhachev, and, S. Chitta. Navigation in three-dimensional cluttered environments for mobile manipulation. IEEE International Conference on Robotics and Automation (ICRA), pp. 423-429, 2012. [6] A. N. Staranowicz, G. R. Brown, F. Morbidi, and G. L. Mariottini. Practical and accurate calibration of RGB-D cameras using spheres. Computer Vision and Image Understanding, vol. 137, pp. 102-114, 2015. [7] C. Imes, and H. Homann. Minimizing energy under performance constraints on embedded platforms: resource allocation heuristics for homogeneous and single-ISA heterogeneous multi-cores. ACM SIGBED Review, vol. 11, no 4, pp. 49-54, 2015. [8] S. Mattoccia, I. Marchio, and M. Casadio. A compact 3D camera suited for mobile and embedded vision applications. IEEE Conference on Computer Vision and Pattern Recognition Workshops, pp. 195-196, 2014. [9] M. Quigley, K. Conley, B. Gerkey, J. Faust. T. Foote, J. Leibs, R. Wheeler, and A.Y. Ng, ROS: an open-source robot operating system. ICRA IEEE workshop on open source software, pp. 1-6, 2009. [10] R. B. Rusu, and S. Cousins. 3d is here: Point cloud library (pcl). IEEE Conference on Robotics and Automation (ICRA), pp. 1-4, 2011. [11] A. S. Huang, A. Bachrach, P. Henry, M. Krainin, D. Maturana, D. Fox and N. Roy. Visual odometry and mapping for autonomous flight using an RGB-D camera. Robotics Research, pp. 235-252, 2017. [12] C. Tao, and G. Liu. RGB-D sensor-based vSLAM in indoor environment. Advances in Information Sciences & Service Sciences, vol. 5, no 10, pp. 1208, 2013.

[13] S. Zheng, J. Hong, K Zhang, B Li, and X. Li, A multi-frame graph matching algorithm for low-bandwidth RGB-D SLAM. Computer-Aided Design, vol. 78, pp.107-117, 2016. [14]J.Liénard, A. Vogs, D. Gatziolis, and N. Strigul,. Embedded, real-time UAV control for improved, image-based 3D scene reconstruction. Measurement, vol.81, pp. 264-269, 2016 [15] A. Araújo, D. Portugal,M. S. Couceiro, J. Sales and R. P. Rocha. Desarrollo de un robot móvil compacto integrado en el middleware ROS. Revista Iberoamericana de Automática e Informática Industrial RIAI, vol. 11 no. 3, pp. 315-326, 2014. [16] F. Weichert, D. Bachmann, B. Rudak, and D. Fisseler. Analysis of the accuracy and robustness of the leap motion controller. Sensors, vol. 13, no 5, pp. 6380-6393, 2013. [17] D.Canzobre, C. Regueiro, L. Calvo-Varela, and R. Iglesias. Integration of 3-D perception and autonomous computation on a nao humanoid robot. Robot 2015: Second Iberian Robotics Conference, pp. 161-173, 2015. [18] J. Pulido-Fentanes, E. Zalama, and J. Gómez García-Bermejo. Plataforma robótica para tareas de reconstrucción tridimensional de entornos exteriores. Revista Iberoamericana de Automática e Informática Industrial RIAI, vol. 9, no 1, pp. 81-92, 2012. [19] D. J. Barrett, and R. E. Silverman. SSH, the Secure Shell: the definitive guide. O Reilly Media Inc., 2001. [20] A. Aldoma, Z. C. Marton, F. Tombari, W. Wohlkinger, C. Potthast, B. Zeisl, and M. Vincze, Tutorial: Point cloud library: Three-dimensional object recognition and 6 dof pose estimation. IEEE Robotics & Automation Magazine, vol. 19, no 3, pp. 80-91, 2012. [21] A. Adan, and D. Huber. Análisis de datos 3D para generación automática de modelos BIM de Interiores Habitados. Revista Iberoamericana de Automática e Informática Industrial RIAI, vol. 8, no 4, pp. 357-370, 2011. [22] M. Labbe, and F. Michaud. Online Global Loop Closure Detection for Large-Scale Multi-Session Graph-Based SLAM. IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 2661-2666, 2014. [23] P. Cignoni, M. Corsini, and G. Ranzuglia. Meshlab: an open-source 3D mesh processing system. Ercim news, vol. 73, pp. 47-48, 2008. [24] A. Caverzasi, F. Saravia, O. Micolini, L. Mathe, and L. F. Lichtensztein. Robot móvil autónomo para crear mapas 3D en un ambiente acotado. IEEE Biennial Congress of Argentina (ARGENCON), pp. 786-791, 2014.

Eduardo Amaya-Cruz was born in Oaxaca, Mexico. He obtained the B. S degree in Mechatronics from in 2013 from the Universidad Tecnológica de la Mixteca. His postgraduate studies were obtained at UPIITA-IPN in 2016. His research interests include automatic control, mobile robots and computer vision.

Octavio Gutiérrez Frias received in 2003 a B.S. degree in Mechatronics from the Instituto Politécnico Nacional (IPN). From the Computing Research Center of the National Polytechnic Institute he received the M. S. degree in Computing Engineering in 2006. In 2009, he received a Ph.D. in Computer Sciences from the CIC-IPN. Since 2011 he is a member of the SNI of México. His research focuses in control

of non-linear systems, under- actuated systems, robotics and automation.

Alberto Luviano-Juarez received the B.S. degree in mechatronics engineering from the Instituto Politécnico Nacional (IPN) in 2003, the M.Sc. degree in automatic control and the Ph.D. degree from the Centro de Investigación y de Estudios Avanzados (CINVESTAV), Mexico, in 2006, and 2011 respectively. Since 2011, he has been with the Graduate Section at UPIITA - IPN. His

research interests include robotic systems, estimation and control of mechatronic systems.

Humberto Sossa-Azuela received his BS degree in Communications and Electronics from the University of Guadalajara in 1980. He obtained his Master degree in Electrical Engineering from CINVESTAV-IPN in 1987 and his PhD in Informatics form the INPG, France in 1992. He is currently a full-time professor at the Robotics and Mechatronics Laboratory of the Center for Computing Research of the National Polytechnic Institute from Mexico

since 1996. He has more than 350 journal and conference publications. He is a Senior Member of the IEEE.

24 IEEE LATIN AMERICA TRANSACTIONS, VOL. 16, NO. 1, JAN. 2018