AgroFieldDetect: Sistema robótico guiado por RTK-GPS para identificación en campo de viñedos [Parte 3]

AgroFieldDetect es uno de los proyectos seleccionados por la Cátedra Telefónica de la UEx en 2020 para los premios de Proyectos IoT, BigData, Machine Learning y Blockchain para el Sector Agroganadero.

Como expusimos en entradas anteriores, abordamos el desarrollo de un sistema basado en un robot móvil para identificar elementos de interés en viñedos sobre el terrero utilizando Deep Learning y RTK-GPS.

En esta tercera entrega vamos a explicar cómo hacemos la integración del sistema de RTK-GPS con la navegación del robot. En la primera entrada de este proyecto en el blog (http://catedratelefonica.unex.es/agrofielddetect-sistema-robotico-guiado-por-rtk-gps-para-identificacion-en-campo-de-vinedos/), expusimos que nuestro sistema GPS está basado en el uso de un receptor GPS (del fabricante ublox), la librería RTKLIB y el uso de la Red Extremeña de Posicionamiento para obtener la solución RTK fija. Incluir este sistema en ROS (Robotic Operating System) es sencillo y se puede hacer directamente o utilizar alguna de las integraciones existentes y que proporcionan el mensaje GPS adecuado dentro del entorno ROS.

La cuestión es cómo integrar esas posiciones GPS en el sistema de navegación de ROS. El sistema de navegación de ROS (http://wiki.ros.org/navigation) tiene tres elementos fundamentales:

  • map_server’: proporciona una mapa conocido por el que el robot deberá navegar y moverse.
  • move_base’: es el encargado de la navegación en sí, se le fija un destino y con el origen conocido (gracias al sistema de localización), genera la trayectoria dentro del mapa para alcanzar el destino (planificador global), evitando obstáculos que puedan surgir (planificador local). Es el encargado de comandar los motores del robot.
  • Localización: permite al robot saber dónde está en cada momento, para ello, se basa en la odometría (generalmente giros de las ruedas y un sensor inercial (IMU)), junto a un sistema de estimación de la localización (‘amcl’) basado en un sensor de distancias (un LIDAR, por ejemplo).

En la siguiente figura (tomada de la web de ROS) podemos ver la relación entre estos componentes.

Por tanto, debemos integrar la información de RTK-GPS en el sistema de localización, como una fuente más de odometría. Esa integración la podemos realizar con el paquete ‘robot_localization’ (http://wiki.ros.org/robot_localization), que nos permite fusionar diferentes fuentes en una sola odometría utilizando Filtros Extendidos del Kalman (EKF), consiguiendo calcular la relación entre el sistema de referencia del robot, el de la odometrís y el del mapa y de esta forma posicionar el robot en el mapa.

La forma propuesta en el paquete ‘robot_localization’ incluye la ejecución de varios nodos (tareas en ROS), según el siguiente esquema (tomado de la documentación del paquete).

Como podemos observar tenemos, por un lado, el nodo ‘navsat_transform’ que recoge la posición GPS y la transforma a coordenadas del mapa utilizando la odometría fusionada (procedente del nodo “EKF Global”) y los datos del sensor inercial (para establecer la orientación). Esta estimación se realimenta de nuevo al nodo “EKF global” para así conseguir la transformación entre los marcos de referencia del mapa y el de la odometría. Debido a que esta tranformación puede no ser continua se propone una segunda fusión entre la odometría de las ruedas y la del IMU para así disponer de una transformación continua entre el sistema de referencia de la odometría y el de la base del robot, algo que necesario para el sistema de navegación.

Para verificar la viabilidad de esta propuesta hemos realizado pruebas con nuestro robot Summit-XL, equipado con el receptor GPS, un LIDAR de exteriores y una cámara PTZ. Dado que en este momento no podemos ir al campo (por no ser la fecha adecuada para la poda de viñedos, pero esperamos poder ir en otoño), hemos realizado las pruebas en la terraza del edificio del ICCAEx (Instituto de Computación Científica Avanzada de Extremadura, en Badajoz), situando fotografías ampliadas de los viñedos en paneles, como podemos observar en la fotografía.

Para realizar las pruebas hemos realizado un nodo de ROS que, facilitándole las coordenadas GPS de las viñas (en este caso de los paneles con las fotografías), va realizando el recorrido mediante navegación y deteniéndose delante de cada viña para tomar la fotografía correspondiente. Todo el proceso puede seguirse en un ordenador a través del visualizador de ROS, que podemos ver en la figura. En nuestro caso, hemos incluido un mapa parcial de la azotea, pero dicho mapa no sería necesario (se podría utilizar uno vacío) y el sensor LIDAR solamente se utilizaría para la detección de obstáculos (con el planificador local).

Entradas relacionadas:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.