Obtención de barridos láser 3D nivelados conn el robot móvil Andábata en movimiento
Abstract
Este artículo describe la adquisición de barridos tridimensionales (3D) nivelados en el robot móvil Andábata sin necesidad de detener su movimiento. Para ello, la computadora de Andábata debe integrar cada uno de los rangos láser, adquiridos con unos determinados ángulos de cabeceo y guiñada, con la información odométrica y las medidas de inclinación del vehículo para producir coordenadas Cartesianas niveladas referenciadas al inicio de cada barrido. Todo ello se ha realizado bajo el sistema operativo de robots ROS con la ayuda de paquetes estándard. El correcto funcionamiento de este esquema local de Localización y Modelado Simultáneos (SLAM) se ha comprobado experimentalmente sobre terreno inclinado.
Full text
OBTENCI ´ ON DE BARRIDOS L ´ ASER 3D NIVELADOS CON EL ROBOT M ´ OVIL AND ´ ABATA EN MOVIMIENTO Jorge L. Mart´ınez, Jes´us Morales y Manuel Zafra [email protected], [email protected], man[email protected] Universidad de M´alaga, Andaluc´ıa Tech, Dpto. Ingenier´ıa de Sistemas y Autom´atica Calle Dr. Ortiz Ramos s/n, 29071-M´alaga Resumen Este art´ıculo describe la adquisici´on de barridos tridimensionales (3D) nivelados en el robot m´ovil And´abata sin necesidad de detener su movimiento. Para ello, la computadora de And´abata debe integrar cada uno de los rangos l´aser, adquiridos con unos determinados ´angulos de cabeceo y gui˜nada, con la informaci´on odom´etrica y las medidas de inclinaci´on del veh´ıculo para producir coordenadas Cartesianas niveladas referenciadas al inicio de cada barrido. Todo ello se ha realizado bajo el sistema operativo de robots ROS con la ayuda de paquetes est´andard. El correcto funcionamiento de este esquema local de Localizaci´on y Modelado Simult´aneos (SLAM) se ha comprobado experimentalmente sobre terreno inclinado. Palabras clave: Robots m´oviles, tel´emetro l´aser, nube de puntos 3D, SLAM local. 1. INTRODUCCI ´ ON Los robots m´oviles terrestres necesitan disponer de informaci´on detallada y actualizada del entorno que los rodea para poder navegar de forma segura. Los tel´emetros l´aser tridimensionales (3D) son sensores que se utilizan con asiduidad para obtener nubes de puntos de la superficie por la que se debe desplazar el veh´ıculo. As´ı, resulta frecuente emplearlos sobre terreno irregular en ´areas de cat´astrofes [ 8 ], zonas naturales [ 13 ] o superficies planetarias [11]. Muchos de los sensores l´aser 3D utilizados en rob´otica se construyen a˜nadiendo una rotaci´on a un tel´emetro l´aser comercial bidimensional (2D). Este tipo de esc´aner es m´as econ´omico, pero el tiempo de adquisi´on de un barrido l´aser 3D denso resulta bastante significativo [ 5 ]. Por ello, hasta no hace demasiado tiempo, era usual detener al robot para realizar la toma de datos 3D [ 9 ]. En la actualidad, para integrar sin detenerse todos los rangos medidos en un sistema de referencia com´un se requiere emplear alg´un m´etodo de Localizaci´on y Modelado Simult´aneos (SLAM) [ 1 ][ 14 ]. La nube de puntos 3D resultante puede servir para representar el terreno cercano al robot m´ovil durante la navegaci´on local [4]. Este art´ıculo describe la adquisici´on de barridos 3D nivelados en movimiento con el robot m´ovil And´abata (ver Figura 1) bajo el sistema operativo para robots ROS [ 10 ]. El correcto funcionamiento de este esquema de SLAM local para corregir distorsiones debidas al desplazamiento del veh´ıculo se ha comprobado de forma experimental a baja velocidad. El art´ıculo est´a organizado de la siguiente forma. En el apartado 2 se repasan las principales caracter´ısticas de And´abata incluyendo su sensor l´aser 3D. A continuaci´on se describen los nodos empleados en ROS y las relaciones entre los mismos. Los resultados experimentales se presentan en el apartado 4. Por ´ultimo, se muestran las conclusiones obtenidas. Figura 1: El robot m´ovil And´abata.
Figura 2: Conexiones entre los distintos elementos de And´abata. 2. EL ROBOT M ´ OVIL AND ´ ABATA And´abata es un robot m´ovil 4x4 alimentado por bater´ıas construido para la navegaci´on aut´onoma en entornos naturales [ 6 ]. El robot pesa 41 kg en total y sus dimensiones m´aximas son 67 cm de largo, 54 cm de ancho y 81 cm de alto (ver Figura 1). El robot tiene tres niveles: el inferior en el que se sit´uan las bater´ıas, el intermedio para las etapas de potencia de los motores y la computadora, y el superior para los sensores y el enrutador WiFi. La computadora posee un procesador Intel Core i7 4771 (3,5 GHz, 8 MB cache) y 16 GB RAM. And´abata se desplaza mediante tracci´on por deslizamiento (skid-steering) que le proporcionan sus cuatro ruedas de 20 cm de di´ametro. Cada rueda posee su propio motor con codificador, una reductora con relaci´on de 1 a 37, y un sistema de suspensi´on pasiva formado por dos muelles y una gu´ıa lineal de 6,5 cm de recorrido. La velocidad m´axima del veh´ıculo es de 0,68 m/s en l´ınea recta, pero decrece conforme se reduce el radio de giro. El control de bajo nivel de los motores de tracci´on se compone de dos etapas de potencia conmutadas Sabertooth 2x32 conectadas a dos placas de control Kangaroo x2. Estas ´ultimas reciben de la computadora las ´ordenes de velocidad de las ruedas, y le env´ıan las velocidades estimadas de cada rueda a trav´es de un puerto USB (ver Figura 2). And´abata cuenta con un tel´efono m´ovil para obtener datos de su GPS, inclin´ometros, gir´oscopos y magnet´ometros. El tel´efono tambi´en env´ıa im´agenes de v´ıdeo a una tableta para la supervisi´on remota del robot mediante el enrutador WiFi (ver Figura 2). Adem´as, se ha construido un tel´emetro l´aser 3D, llamado UNO-Motion, a partir del esc´aner bidimensional (2D) Hokuyo UTM-30LX-EW. El sensor 3D pesa 1,9 kg y sus dimensiones son 125 × 170 ×122 mm [ 5 ]. Tiene una cabeza giratoria, donde se ubica el tel´emetro l´aser 2D y una base que proporciona el giro adicional (ver Figura 3). La transmisi´on de energ´ıa y se˜nales entre la base y la cabeza giratoria se realiza mediante un anillo rozante. Figura 3: Principales componentes del esc´aner l´aser 3D.
El eje de giro est´a alineado con el centro ´optico del sensor 2D, por lo que el sensor 3D tiene el mismo rango de medidas de 0,1 m a 30 m (que se reduce a 15 m con luz solar directa) y la misma resoluci´on angular vertical de 0,25◦ que el esc´aner de Hokuyo. La resoluci´on horizontal puede modificarse actuando sobre la velocidad de giro de la cabeza, de la que depende la velocidad de adquisici´on de un barrido 3D. Por ejemplo, para una resoluci´on horizontal de 0,67◦ se necesitan 6,75 s para completar un barrido 3D con media vuelta de la cabeza. Adem´as, la zona ciega del sensor 2D de 90◦ se sit´ua debajo para evitar interferencias con la base del sensor 3D. As´ı, la zona ciega de UNO-Motion es un cono en el que el radio de la base h es igual a la altura del centro ´optico del esc´aner (ver Figura 4). Montado sobre And´abata, se ha estimado una altura sobre el suelo de h= 0,723 m [5]. 3. IMPLEMENTACI ´ ON EN ROS Sea XY Z el sistema de referencia asociado al robot situado en el centro geom´etrico del rect´angulo definido por los puntos de contacto de las ruedas con el suelo. El eje X est´a alineado con la direcci´on longitudinal del veh´ıculo y su sentido de avance, mientras que el eje Z es normal al plano de apoyo y apunta hacia arriba (ver Figura 5). Las coordenadas cartesianas de los puntos de un barrido 3D van a estar expresadas en un sistema de referencia XpYpZp cuyo origen coincide con el del veh´ıculo al inicio del barrido. El eje Zp se define con la misma direcci´on que la gravedad y sentido opuesto, el eje Xp coincide con la proyecci´on del eje X sobre el plano horizontal, y el eje Yp se sit´ua perpendicular al plano ZpXp formando un sistema dextr´ogiro (ver Figura 5). La Figura 6 muestra los nodos empleados en ROS para construir nubes de puntos 3D niveladas. En conjunto, se trata de un esquema de SLAM local a baja velocidad y sin cierre de bucles. Figura 4: Zona ciega del tel´emetro l´aser 3D. Figura 5: Sistemas de coordenadas del robot (XY Z) y del barrido nivelado (XpYpZp). En primer lugar se puede observar el nodo teleoperaci´on que env´ıa consignas de velocidad a las ruedas del robot usando una tableta. Este nodo recibe informaci´on de dos aplicaciones desarrolladas en el sistema operativo Android: andabata , que es una adaptaci´on de moverbot [ 2 ]. Esta aplicaci´on se ejecuta tanto en la tableta, donde cuenta con una interfaz de usuario, como en el tel´efono para comunicarse con la computadora a trav´es de un puerto USB (ver Figura 2), y android_sensor_driver , que publica en la computadora topics con datos sensoriales de la tableta y del tel´efono a trav´es de la red WiFi [12]. El nodo odometr´ıa se encarga de computar la velocidad longitudinal y angular del veh´ıculo. Para ello utiliza las medidas de las velocidades de las ruedas sobre un modelo cinem´atico 2D aproximado del sistema de locomoci´on [3]. El nodo robot_localizacion emplea un filtro de Kalman Unscented [ 7 ] para fusionar los ´angulos de alabeo y cabeceo, la velocidad de gui˜nada del tel´efono (que publica android_sensor_drivers ), y las velocidades proporcionadas por odometr´ıa . De esta forma se obtiene la relaci´on entre los sistemas de referencia XpYpZpyXY Z. Por su parte, el nodo uno_motion_node env´ıa comandos de velocidad de giro y recibe de forma peri´odica (cada 25 ms ) el ´angulo relativo entre la cabeza y la base al inicio de cada barrido 2D mediante la conexi´on USB del sensor 3D. Este nodo publica la transformaci´on entre el sistema de referencia del sensor l´aser 2D y el del robot XY Z . Adem´as, el nodo urg_node permite configurar el sensor Hokuyo y publica los barridos 2D que la
Figura 6: Nodos en ROS para implementar SLAM local. computadora recibe a trav´es de la conexi´on Ethernet (ver Figura 2). Por ´ultimo, el nodo cloudMaker_node publica la nube de puntos 3D nivelada combinando los barridos 2D mediante las transformaciones relativas entre el sistema de referencia del l´aser y el del veh´ıculo ( XY Z ), y entre este ´ultimo y el del barrido 3D (XpYpZp). 4. RESULTADOS EXPERIMENTALES Para comprobar el correcto funcionamiento del sistema de adquisici´on de datos programado en ROS, se han hecho experimentos en movimiento sobre terreno inclinado mientras And´abata se teleoperaba. En la Figura 7 se muestran detalles de dos barridos 3D tras un giro de 180◦ y de 360◦ del sensor l´aser 2D. En ambos casos se puede observar la zona ciega alrededor del robot m´ovil y que hay zonas que se han muestreado de forma redundante. Sin embargo, con media vuelta de la cabeza del esc´aner 3D no se alcanza a observar todo el terreno alrededor del robot debido al propio movimiento del veh´ıculo, por lo que resulta necesario dar una vuelta entera a la cabeza para poder tener una imagen completa. En el v´ıdeo que acompa˜na a este art´ıculo se muestra la superposici´on de sucesivos barridos l´aser 3D en el sistema de referencia del primer barrido. Estos barridos completos se han obtenido en una carretera en pendiente durante un recorrido de ida y vuelta a baja velocidad (ver Figura 8(b)). Se puede observar que todos los barridos l´aser forman una imagen n´ıtida del entorno cercano donde son claramente distinguibles los contornos de las barandillas y del edificio cercano (ver Figura 8(a)). De esta forma, se comprueba que el SLAM local no solo es v´alido para obtener por separado barridos l´aser 3D nivelados y sin distorsiones, sino que tambi´en puede funcionar bien para peque˜nos recorridos. 5. CONCLUSIONES En este art´ıculo se ha descrito el sistema de adquisici´on de barridos 3D nivelados con el robot m´ovil And´abata en movimiento. Este esquema de SLAM local se ha programado con una serie de nodos bajo el sistema operativo de robots ROS con la ayuda de paquetes est´andard. Para ello, se integran cada uno de los barridos 2D con la informaci´on odom´etrica e inercial, y las medidas de inclinaci´on del veh´ıculo para producir coordenadas Cartesianas niveladas referenciadas al inicio del barrido. De esta forma, se corrigen las distorsiones en la toma de datos debidas al movimiento del veh´ıculo. El correcto funcionamiento de todos los nodos desarrollados en ROS se ha comprobado experimentalmente con And´abata sobre terreno inclinado. En la actualidad, los barridos l´aser 3D nivelados se est´an utilizando para la construcci´on de mapas locales con los que se planifican caminos para la navegaci´on aut´onoma en entornos naturales mediante el GPS y el magnet´ometro del tel´efono m´ovil.
Agradecimientos Este trabajo ha sido subvencionado en parte por el proyecto espa˜nol DPI 2015-65186-R y por el proyecto andaluz PE-2010 TEP-6101-R. Referencias [1] H. Almqvist, M. Magnusson, and A. Lilienthal, Improving point cloud accuracy obtained from a moving platform for consistent pile attack pose estimation, Journal of Intelligent and Robotic Systems: Theory and Applications, vol. 75, no. 1, pp. 101-128, 2014. (a) (b) Figura 7: Detalle de dos barridos l´aser 3D obtenidos tras media vuelta (a) y tras una vuelta completa (b) del sensor l´aser 2D. [2] P. Bovbel and F. Andargie, Mover-bot, https://code.google.com/p/mover-bot/, 2014. [3] A. Mandow, J. L. Mart´ınez, J. Morales, J. L. Blanco, A. Garc´ıa-Cerezo and J. Gonz´alez Experimental kinematics for wheeled skid-steer mobile robots, Proc. IEEE International Conference on Intelligent Robots and Systems, San Diego, USA, pp. 1222-1227, 2007. [4] J. L. Mart´ınez, A. Mandow, A. Reina and T. J. Cantador, J. Morales and A. Garc´ıa-Cerezo, Navigability analysis of natural terrains with fuzzy elevation maps from ground-based 3D range scans, Proc. IEEE/RSJ International Conference on Intelligent Robots and Systems, Tokyo, Japan, pp. 1576-1581, 2013. [5] J. L. Mart´ınez, J. Morales, A. J. Reina, A. Mandow, A. Peque˜no-Boter and A. Garc´ıaCerezo, Construction and calibration of a lowcost 3D laser scanner with 360◦ field of view for mobile robots, in Proc. IEEE International Conference on Industrial Technology, Sevilla, pp. 149-154, 2015. (a) (b) Figura 8: Superposici´on de sucesivos barridos 3D obtenidos en movimiento (a) sobre una carretera con pendiente (b).
[6] J. L. Mart´ınez, Navegaci´on aut´onoma de un robot m´ovil 4X4, http://www.uma.es/cms/base/ver/section/ document/73618/navegacion-autonoma-deun-robot-movil-4x4/, 2016. [7] T. Moore and D. Stouch, A Generalized Extended Kalman Filter Implementation for the Robot Operating System, Proc. 13th International Conference on Intelligent Autonomous Systems, Padova, Italia, 2014. [8] K. Nagatani, N. Tokunaga, Y. Okada, K. Yoshida, Y. Hada, T. Yoshida and E. Koyanagi, Teleoperation of all-terrain robot using continuous acquisition of three-dimensional environment under time-delayed narrow bandwidth communication, Proc. IEEE International Workshop on Safety, Security & Rescue Robotics, Denver, USA, 2009. [9] A. N¨uchter, 3D Robotic Mapping: The Simultaneous Localization and Mapping Problem with Six Degrees of Freedom, Chapter 6: Experiments and Results, Springer-Verlag, 2009. [10] M. Quigley, B. Gerkey, K. Conley, J. Faust,T. Foote, J. Leibs, E.Berger, R. Wheeler, and A. Ng, ROS: an open-source robot operating system, Proc. Workshop on Open Source Software, IEEE International Conference on Robotics and Automation, Kobe, Japan, 2009. [11] I. Rekleitis, J. L. Bedwani, E. and Dupuis, T. Lamarche and P. Allard,Autonomous overthe-horizon navigation using LIDAR data, Autonomous Robots, vol. 34, num. 1-2, pp. 1-18, 2013. [12] C. Rockey and A. Furlan, ROS Android Sensors Driver, https://github.com/chadrockey/android sen sors driver, 2012. [13] J. Ser´on, J. L. Mart´ınez, A. Mandow, A. J. Reina, J. Morales, and A. Garc´ıa-Cerezo, Automation of the arm-aided climbing maneuver for tracked mobile manipulators, IEEE Transactions on Industrial Electronics, vol. 61, no. 7, pp. 3638-3647, 2014. [14] R. Zlot and M. Bosse, Efficient large-scale three-dimensional mobile mapping for underground mines, Journal of Field Robotics, vol. 31, no. 5, pp. 731-752, 2014.