(dO2s) =>{(Drone Online Open source System)}
Hace unos meses publicaba un artículo en mi blog de linkedin sobre las bondades del Código Libre y sobre la iniciativa que habíamos llevado en SRM Consulting, junto con el Departamento de Vehículos Aeroespaciales de la ETSIAE (UPM), con el objeto de realizar un software de código libre para el mando y control de flotas de drones.
Después de un caluroso verano en Madrid y de un desarrollo exhaustivo, dicho software está a punto de salir a la luz, se llama dO2s (Drone Online Open source System). En este artículo explicaré las claves del desarrollo de dicho software.
Antecedentes
Hace algo más de dos años, el 6 de mayo de 2015, publiqué 2 artículos en linkedin sobre la necesidad de crear un software open source para el mando y control de drones. En un primer artículo explique los aspectos conceptuales, y en un segundo artículo expliqué el funcionamiento del software. Si bien este software no lo liberé como Open Source, utilizamos el código como base para la primera versión del software que desarrollamos en SRM denominado IAS (Ipsilum Aereal Solution). El software fue vendido al Ministerio del Interior (Programa RAPAZ) como una solución integral en la que nuestros socios CONYCA se encargaban del diseño y construcción del drone (un ala fija de altísimas prestaciones) y nosotros nos encargábamos de la estación de tierra (IAS).

En este mismo blog, en un primer artículo, expliqué todos los pormenores para el despliegue de una misión con el ala fija y en un segundo artículo expliqué todos los detalles para la planificación de un vuelo fotogramétrico con dicha plataforma.
Durante nueve meses estuvimos haciendo pruebas con los propios pilotos de Conyca y los pilotos del CGET (Centro Geográfico del Ejercito de Tierra). El feedback obtenido de casi un año ha sido volcado en dO2s gracias a la colaboración conjunta SRM Consulting y el Departamento de Vehículos Aeroespaciales de la ETSIAE (UPM).

Características de la Primera Versión: IAS
El lanzamiento de la versión 1.0 de IAS (septiembre- 2016), supuso un hito en SRM Consulting; pocos proyectos en colaboración con una universidad ven la luz en el ámbito empresarial y, aún menos, tienen una implantación tan rápida. En poco menos de 10 meses, junto con dos alumnos de la ETSIAE fuimos capaces de desarrollar el producto y en otros dos meses más, ya lo estábamos utilizando en un entorno de producción con el CGET.
La principal diferencia con otros planificadores de misiones, por ejemplo Mission Planner o QGroundControl son:
- - No necesitan de ningún proceso de instalación. La estación de tierra, un pequeño dispositivo de 10*7*3 cm se conecta vía telemetría con el drone y despliega una red wifi para que los distintos dispositivos (que dispongan de credenciales) se puedan conectar con un navegador web. Es una aplicación 100% online, utilizando las últimas tecnologías web que estudiaremos más adelante.
- Sistema seguro libre de virus: la Ground Station es una caja negra que no puede verse afectada por virus, en tanto que el usuario no interactúa con ella, solo con el servicio web que despliega.
- Sistema multiusuario: varios usuarios pueden estar conectados simultáneamente compartiendo la misma vista o con perspectivas distintas (el vuelo de un drone puede ser controlado por un piloto y por un operador de cámara simultáneamente) .
- Una Ground Station se puede conectar con uno o con varios drones. Un drone puede ser visto desde varias Ground Station. Un drone, o una flota de drones se puede controlar en remoto, desde los headquarters.
- Sistema de gestión de proyectos y usuarios, lo que facilita la gestión de la información a la misma vez que implementa una política básica de permisos.
Evolución hacia una segunda versión: dO2s
Sin embargo, pese a todas estas mejoras, a lo largo de los 10 meses que duró la versión 1.0 (IAS), nos dimos cuenta que el conjunto de funcionalidades que nos demandaban los pilotos requerían de un nuevo diseño y una nueva estrategia. Hacía falta involucrar más activos para llevar el conjunto de funcionalidades del papel a la realidad.
Objetivos estratégicos:
Desde SRM propusimos a la ETSIAE, donde soy profesor asociado, hacer un plan de formación para los alumnos de último curso de grado y de master basado en seminarios, prácticas en empresa y readapar el plan pedagógico sin modificar el Plan Didáctico aprobado por la ANECA.
La formación estaría basada en la últimas técnicas de programación web, y el objetivo sería formar al alumno como un “full stack developer”; es decir como un programador que fuese capaz de cubrir los distintos aspectos de la aplicación tanto del lado del servidor como del lado del cliente.
Por otro lado la aplicación tendría que ser open source, de tal manera que los alumnos tuviesen acceso al código en cualquier momento y circunstancia y que estos se involucrasen más allá del estricto plan pedagógico. Creemos que el mejor curriculum de un alumno que tiene un background como programador, es su contribución en Github.
La empresa (SRM) obviamente se reserva ciertas librerías de compatibilidad con su Sistema de Información Geográfica (ortoSky) y ciertas herramientas de integración con otros productos software que permiten dar un uso profesional a IAS. Actualmente en SRM somos miembros del ESRI Startup Program, llegando a acuerdos a nivel nacional e internacional con la que posiblemente sea la empresa más importante a nivel internacional en Sistemas de Información Geográfica.
El último objetivo estratégico y tal vez, el detonante de escribir este artículo, es el de introducir dO2s como software de referencia a los alumnos de Simulación de Vehículos Aeroespaciales y Programación, asignaturas en las que soy profesor. Con este software los alumnos tendrán una guía real de programación y podrán hacer aportaciones cumpliendo ciertos estándares de buenas prácticas. El premio a su buen hacer será una buena nota y, por supuesto (y pienso que más importante), el comienzo de la configuración de su perfil digital a través de Github; escaparate mundial para cualquier desarrollador.
Objetivos funcionales:
El objetivo de la primera versión de nuestro software fue el de la programación y seguimiento de misiones cartográficas ejecutadas por un drone ala fija (contando, por supuesto, con los requerimientos anteriormente comentados). A través de las necesidades expresadas por los pilotos y operadores con los que hemos tenido feedback a lo largo de estos diez meses, detectamos una serie de funcionalidades que hemos sintetizado en un listado básico de requerimientos:
- Control de ala fija y multirrotor (Hasta ahora solo se podía planificar un ala fija)
- Gestión integral de baterías, cargas de pago y drone. El sistema compuesto por estos tres componente determinará el tipo y funcionalidad de la misión (hasta ahora solo se tenía en cuenta el drone como pieza inmutable => drone+carga de pago+batería).
- Gestión de usuarios y perfiles (se amplía la gestión administrativa y política de permisos).
- Gestión del mantenimiento del drone por medio del análisis de los logs de vuelo.
- Pilotaje del drone por medio de dispositivos hápticos en entornos de Realidad Virtual.
- Apertura de la telemetría al protocolo de DJI (actualmente solo opera con MAVLINK)
- Motorization en tiempo real de aeronaves comerciales próximas (en un radio de 200 km)

Objetivos técnicos:
dO2s es, entre otras cosas, el producto de una reingeniería total del código. El título de este artículo es un guiño al nuevo estándar de programación para JavaScript: ECMAScript 6 (o más conocido como ES6) en el que se ha basado el nuevo desarrollo. En concreto el framework de trabajo está basado al 100% en Meteor. Hemos usado como capa de presentación ReactJS y Bootstrap con sistema de enrutación en cliente basado en React Router (V4 +), gestor de mapas Leaflet y, en general, hemos aplicado un conjunto de buenas prácticas y documentación, que permitirá a los alumnos o cualquier otro colaborador concentrase en su aportación, sin perder energías en curvas de aprendizaje demasiado inclinadas.
Conclusiones
La primera versión de dO2s se liberará este próximo mes de septiembre, y presentará un conjunto de funcionalidades básicas que atañen a la planificación de varias tipologías de misiones carográficas (superficiales, lineales, orbitales y libres) y a la gestión integral del drone y sus componentes (sobre todo carga de pago y baterías).
A lo largo del curso académico 2017–18 está prevista la incorporación de 8 alumnos de la ETSIAE con el objetivo de liberar una segunda versión a finales de julio de 2018 con el conjunto de funcionalidades expuestas en este artículo.
