[en] In this thesis Monocular Visual SLAM (VSLAM in the following) techniques implemented on Micro Aerial Vehicles (MAV in the following) are studied. These techniques use only one camera to estimate the position and depth in order to create a map of robot's environment. After a study of the state-of-art monocular VSLAM algorithms, we decided to implement two of these algorithms in our system: LSD-SLAM (Large-Scale Direct Monocular SLAM) and ORB-SLAM (Oriented FAST and Rotated BRIEF SLAM), although there will be a study of PTAM too. PTAM is a VSLAM technique developed years before ORB and LSD but helps to understand both so we can establish a comparative. These algorithms are implemented in the context of rescue and/or recognition navigation tasks in indoor environments. In this kind of applications, the MAV must rely on its own onboard sensors to autonomously navigate in unknown, hostile and GPS denied environments –such as ruined or semi-demolished buildings–. For the estimation of MAV's position, the obtained information from VSLAM is fused with the one obtained from the Inertial Measurement Unit (IMU in the following) –present in all MAVs– and other onboard sensors, using an Extended Kalman Filter (EKF in the following). Furthermore, the information from the onboard sensors is used to solve the problem of scale ambiguity common in most of monocular VSLAM algorithms. Finally, and from the previous position estimation, the frontal camera and the IMU are used to develop the ability of control the MAV in 3D. This control works in MAV's thrusters depending on the real-time or previously programmed sent commands. The system has been implemented over a commercial low-cost aerial robot. This robot is not easily programmed, so the control has been managed from a Ground System. This system is a remote PC with ROS (Robot Operating System) installed as an Integrated Development Environment.

[es] En este Trabajo de Fin de Máster se estudian técnicas de Monocular Visual SLAM (VSLAM a partir de ahora) implementadas sobre robots aéreos. Estas técnicas se caracterizan por el uso de una sola cámara para estimar la posición y la profundidad para así poder crear un mapa del entorno del robot. Tras un estudio del estado del arte de algoritmos de monocular VSLAM se ha decidido implementar las técnicas LSD-SLAM (Large-Scale Direct Monocular SLAM), y ORB-SLAM (Oriented FAST and Rotated BRIEF SLAM). También se realiza un estudio de PTAM, una técnica desarrollada previamente a las anteriormente mentadas pero que sirve para entenderlas mejor de forma que se pueda establecer una comparativa. Los algoritmos mencionados en el anterior párrafo se implementan sobre el contexto de rescate y/o navegación de reconocimiento con micro vehículos aéreos (Micro Aerial Vehicles - MAV). En este tipo de aplicaciones, el MAV debe utilizar sus propios sensores incorporados para navegar de forma autónoma en entornos interiores desconocidos, hostiles y sin cobertura de GPS –como ruinas o edificios semiderruidos–. Para su aplicación en la estimación de la posición de un robot aéreo, la información obtenida mediante VSLAM se fusiona con la obtenida de la Unidad de Medición Inercial (Inertial Measurement Unit - IMU) –presente en todos los vehículos aéreos–y otros sensores abordo, utilizando un Filtro de Kalman Extendido (Extended Kalman Filter - EKF). Además, se utiliza la información de los sensores a bordo del robot para resolver el problema de la ambigüedad de escala propia de los algoritmos de VSLAM monocular. Por último, y utilizando la estimación de posición obtenida anteriormente, se desarrolla la capacidad de controlar el robot aéreo en tres dimensiones mediante el uso de la cámara frontal y la IMU, actuando sobre los motores del robot en función de órdenes enviadas en tiempo real o programadas previamente. La implementación se ha realizado sobre un robot aéreo comercial de bajo coste, el cual no es posible programar de forma sencilla. Por esta razón el control se realiza desde un Ground System siendo éste un PC remoto. Este PC tendrá instalado ROS (Robot Operating System) como entorno de desarrollo.