A General Architecture for Autonomous Navigation of Unmanned Aerial Systems

La navegacion totalmente autonoma de una flota de robots aereos realizando misiones dinamicas complejas en entornos desafiantes no estructurados, es necesaria para simplificar el uso de los vehiculos aereos y extender su utilizacion a un mayor numero de aplicaciones, es necesaria. El desarrollo de un sistema inteligente multi-robot completamente autonomo sigue siendo un problema abierto con soluciones parciales e incompletas en robotica aerea, habiendose solo desarrollado algunas arquitectura abiertas para sistemas aereos, las cuales presentan limitaciones en su nivel de autonomia y versatilidad. Esta tesis presenta una arquitectura de sistema versatil para robotica aerea que permite el funcionamiento totalmente autonomo de un sistema multi-robot aereo, cumpliendo con los requisitos de ser agnostico a nivel de mision, plataforma y entorno. Se ha caracterizado a nivel abstracto y general, definiendo sus siete subsistemas, sus funcionalidades, y sus interfaces a alto nivel, garantizandose la versatilidad y flexibilidad. Los siete subsistemas propuestos son: Sistema de Extraccion de Caracteristicas, Sistema Motriz, Sistema de Conciencia Situacional, Sistema Ejecutivo, Sistema de Planificacion, Sistema de Supervision y Sistema de Comunicacion. Esta arquitectura de sistema proporciona a los disenadores una arquitectura inicial de la que partir cuando desarrollan sus propios sistemas inteligentes totalmente autonomos multi-robots aereo. La validacion de la arquitectura propuesta del sistema es una tarea compleja ya que el rendimiento del sistema completo depende de la mision, el entorno, la configuracion del hardware, los algoritmos empleados y su implementation software. Tres tipos de escenarios se utilizaron con exito para proporcionar una evaluacion global del sistema completo, validando el desempeno de la arquitectura de sistema propuesta: (1) competiciones internacionales de robotica aerea, (2) desafios auto-propuestos y (3) demostraciones publicas. Ademas, la tesis presenta varios algoritmos que permiten un aumento del nivel de autonomia de los sistemas roboticos aereos, desarrollados en el contexto de una aplicacion particular. Estos algoritmos se pueden agrupar en: (1) percepcion, (2) control, (3) planificacion y ejecucion de tareas, (4) inteligencia y cognicion, y (5) comunicacion e interaccion. Todos estos componentes han sido evaluados individualmente, demostrando su desempeno. Sin embargo, su importancia aparece cuando se integran en el sistema completo. Los componentes propuestos mas destacados, presentados con un alto nivel de detalle, son los siguientes: (1) deteccion y reconstruccion de helipuertos, (2) percepcion basada en odometria y marcadores visuales con reconstruccion del entorno, (3) percepcion basada en odometria y vision por computador para mapas con cuadricula, (4) percepcion basada en la fusion de multiples sensores con reconstruccion del entorno, y (5) planificacion de trayectorias libre de colision para entornos dinamicos. La tesis presenta tambien un entorno de software de codigo abierto, llamado Aerostack, que facilita la implementation eficiente de la arquitectura de sistema y los algoritmos desarrollados por medio de componentes de software. Este software se organiza de forma modular mediante paquetes agrupados por su funcionalidad, sus dependencias y su ciclo de vida. El entorno de software propuesto se basa en el middleware ROS para la comunicacion interprocesos y utiliza un paradigma asincrono multiproceso en el que cada funcionalidad elemental se implementa como un solo proceso, facilitando el desarrollo y permitiendo un procesamiento distribuido. El entorno de software propuesto ha demostrado ser versatil y escalable, siendo los desarrolladores capaces de reutilizar tantos modulos de software como sea necesario, y de modificar o desarrollar nuevos modulos sin necesidad de adaptar otros componentes. ABSTRACT Achieving a fully autonomous navigation of a fleet of aerial robots when performing complex dynamic missions in challenging unstructured environments is an essential requirement to simplify the use of micro aerial vehicles and to extend their utilization to a greater number of applications. The development of a multi-robot fully autonomous intelligent system is still an open problem with partial and incomplete solutions in aerial robotics, and only some open source architecture frameworks for aerial systems have been developed so far, which present limitations in their autonomy level and in their versatility. This thesis presents a versatile system architecture for aerial robotics that enables the fully autonomous operation of an aerial multi-robot system and fulfills the requirements of being mission, platform, and environment agnostic. It has been characterized in an abstract and general level, defining its seven subsystems, their functionalities, and their interfaces in a top-level way that guarantees the versatility and flexibility. The seven proposed subsystems are: Feature Extraction System, Motor System, Situation Awareness System, Executive System, Planning System, Supervision System, and Communication System. This system architecture provides system designers the initial architecture for developing their own fully autonomous intelligent aerial multi-robot systems. The validation of the proposed system architecture is a complex task since the performance of the complete system is highly dependent on the mission, the environment, the hardware setup, the employed algorithms, and their software implementation. Three kinds of scenarios were successfully used to provide a global evaluation of the complete system, validating the performance of the proposed system architecture: (1) international aerial robotics competitions, (2) self-proposed challenges, and (3) public demonstrations. In addition, this thesis presents several algorithms, with different level of detail, that yield to an increased level of autonomy of the aerial robotic systems, developed in the context of particular applications. These algorithms can be gathered in the following five groups: (1) perception, (2) control, (3) planning and task execution, (4) intelligence and cognition, and (5) communication and interaction. All these components have been evaluated isolatedly, demonstrating their individual performance. Nevertheless, their importance stands out when integrated into the complete system. The most important components presented in this thesis, analyzed with a high level of detail, are the following: (1) helipad detection and reconstruction for shipboard landing, (2) perception based on odometry and visual markers with environment reconstruction, (3) perception based on odometry and computer vision for gridded maps, (4) perception based on multi-sensor fusion with environment reconstruction, and (5) collision-free path planning for dynamic environments. This thesis presents as well, an open-source software framework, called Aerostack, that facilitates a cost and time effective implementation of the designed system architecture and the developed algorithms by means of software components. This framework is modularly organized in software packages gathered by their functionality, their dependencies, and their life state. The proposed software framework relies on the widely used ROS middleware for interprocess communication and uses an asynchronous multiprocess paradigm where every elementary functionality is implemented as a single process, easing the development and allowing a distributed processing. The proposed software framework has demonstrated to be versatile and scalable, being the developers capable of reusing its software modules as needed, and modifying or developing new modules without adaptations of any other components.