niubit dev

Un espacio de contenidos "tech" dedicado a los desarrolladores más inquietos.

Presentamos el proyecto educativo Astro Pi Mission Space Lab de la Agencia Espacial Europea (ESA) en el que niubit ha participado los dos últimos años.

Introducción

La Agencia Espacial Europea (ESA) cuenta desde hace años con un programa educativo, del que Astro Pi forma parte y se desarrolla en colaboración con la Fundación Raspberry Pi. Astro Pi son un par de micro ordenadores basados en Raspberry Pi preparados para trabajar en el ambiente de la Estación Espacial Internacional (ISS) y al que se le han instalado una serie de sensores que permiten a los estudiantes realizar algunos sencillos experimentos en microgravedad. Pueden optar al proyecto estudiantes de hasta 19 años de cualquiera de los países que integran la ESA además de los países asociados Eslovenia, Canada, Lituania, Letonia y Malta.

En el sitio oficial de Astro Pi puede verse que existen dos modalidades de misión a las que los estudiantes pueden optar:

  • Mission Zero: Es el proyecto básico, para principiantes en programación y/o niños en edad escolar. Los estudiantes escriben un sencillo programa que muestra un mensaje en la matriz de LEDs de las Astro Pi y miden la humedad relativa en el ambiente de la ISS. Todos los programas (siempre que cumplan unas mínimas condiciones) son elegidos para ser ejecutados, tras lo cual los estudiantes reciben un certificado que refleja el momento y posición exactos que ocupaba la estación durante su ejecución.
  • Mission Space Lab: Es el proyecto avanzado. Aunque pueden optar a él estudiantes de hasta 19 años, se recomienda para estudiantes de Secundaria o primeros años de Universidad. En este caso no todos los proyectos son admitidos. Los criterios para adquirir el "Flight status" son bastante más exigentes y la ESA escoge de entre las propuestas recibidas, un par de centenares de las que le parecen más interesantes.

Team Atlantes 20-21

En la pasada edición (2020-2021) niubit presentó un equipo a la modalidad Mission Space Lab. Tras superar todas las fases, el equipo Atlantes de niubit resultó ser uno de los 10 ganadores finales. Reproducimos a continuación la reseña que se hace en el comunicado oficial sobre nuestro equipo, que incluye los enlaces al informe final y el vídeo que ilustra el proyecto:

Atlantes from Niubit Coding Club in Spain, who used a sonification process to convert data captured by the Astro Pi’s sensors into music, inspired by Commander Chris Hadfield’s performance of Space Oddity on the ISS in 2013. You can see more about their experiment here.

Como puede leerse en el informe, nuestro proyecto consistió en sonificar algunas de las series de datos capturadas en la Astro Pi a bordo de la estación durante la ejecución de nuestro programa. La sonificación consiste en convertir las series de datos en notas musicales mediante algoritmos. No todas las series de datos se prestan a ser sonificadas. Interesa que en ellas existan ciertos patrones rítmicos que hagan que la "partitura" resultante sugiera una estructura musical. Con una serie de datos que cumpla con el criterio anterior, el problema se reduce a escalar los datos a unos rangos adecuados de octavas y tempo.

Aunque los productos resultantes del proyecto (las sonificaciones) no eran difíciles de idear ni finalmente de obtener, el análisis de la gran cantidad de datos y fotos capturadas por Astro Pi requirió bastante esfuerzo. También constituyeron un poderoso aprendizaje las cuestiones relativas a la gestión del proyecto en sí y la organización interna del equipo.

El siguiente vídeo que como comentábamos antes fue enlazado en el informe final de la ESA sobre el resultado de la Mission Space Lab 20-21, incluye varias de las sonificaciones, así como detalles sobre algunas de las enseñanzas que recibimos por el camino:

Team Atlantes 21-22

En el proyecto del presente curso 2021-2022, la propuesta de proyecto fue una evolución de la anterior. Esta vez en lugar de sonificar los datos pretendemos craftearlos, es decir convertirlos en bloques de Minecraft de manera que luego podamos manipularlos o simplemente caminar sobre ellos dentro del ambiente virtual de este videojuego.

En esta ocasión el origen de datos al que nos queremos enfocar es el de las fotografías. En enero de este año 2022, la ESA envió una nueva versión (mark II) de las unidades Astro Pi con un hardware actualizado. Además de una placa base más potente basada en Raspberry Pi 4, se incluyen mejoras en algunos instrumentos como la cámara fotográfica de infrarrojo cercano instalada en una de las dos Astro Pi. Esta nueva cámara permite hacer un análisis bastante eficiente de marcadores biológicos en la superficie de la Tierra. Ante la incertidumbre que nos produjo el cambio en el hardware de este año, decidimos empezar a experimentar con el uso de la cámara de infrarrojo cercano, pero sin diseñar un proyecto que dependiera de su desempeño, ya que ni siquiera existían datos de muestra.

Con estas ideas en mente, este año hemos aprendido a utilizar el Índice de Vegetación de Diferencia Normalizada o NDVI (por sus siglas en inglés) que básicamente es un valor entre -1 y +1 que se puede obtener para cada pixel de las fotografías obtenidas con una cámara sensible al infrarrojo cercano y con un filtro rojo o azul (la cámara de Astro Pi lleva un filtro rojo). Valores mayores que 0 suelen correlacionar muy bien con presencia de vegetación, lo que en general se puede asimilar a vida. Una vez obtenido el índice se suelen mapear a una escala de color para apreciar mejor la intensidad del índice medido. En concreto nosotros usamos el mapa de color fastie que podemos ver a continuación:

Aplicando este mapa de color sobre las fotos convertidas en NDVI se obtendrán imágenes en las que las partes con índice menor que 0 (sin vida vegetal) se visualizarán en blanco y negro y las de índice mayor que 0 se verán con colores tanto más cálidos como alto sea el valor del índice. Por ejemplo, la siguiente foto es una de las que elegimos para realizar el análisis, al parecer evidente que contenía campos de cultivo (se observan los característicos patrones regulares):

El cálculo del NDVI para sus píxeles y el posterior mapeo de los valores a la escala de color introducida anteriormente, resulta en la siguiente imagen:

Como puede verse las zonas que parecen contener más materia vegetal (o en mejor estado de salud) son las coloreadas en naranja.

Una de las ideas que tuvimos para trasladar estos datos a Minecraft, fue utilizar bloques de lana que admiten 16 colores distintos para representar este tipo de imágenes. Obtuvimos el siguiente mapa de colores equivalente al fastie:

Con la foto original convertida a NDVI, un poco de código Python y el mapa de color anterior, conseguimos generar la foto original en la superficie de un mundo Minecraft:

Como vemos el resultado es bastante próximo a la imagen obtenida de forma convencional.

Como la representación anterior es demasiado 2D para un entorno como Minecraft, lo siguiente que hicimos es convertir los valores NDVI en altura del terreno. Adoptamos el criterio de no elevar el terreno cuando el índice fuera negativo, es decir que las zonas que no alberguen vida vegetal (según el índice) se representarán como planas (estableciendo una especie de analogía con los desiertos de arena) y las que tengan índice mayor que 0 tanto más elevadas como lo esté el NDVI. Así la foto se convierte en algo más parecido a un mundo Minecraft normal:

Por último mostramos el resultado de la combinación de los dos métodos anteriores, es decir la conversión del índice NDVI en relieve y color:

Los resultados del concurso fueron publicados el 4 de agosto de 2022. ¡El equipo Atlantes de nuevo resultó ser uno de los 10 ganadores!

El siguiente vídeo fue parte del informe final remitido a la ESA y mencionado, al igual que el año anterior, como uno de los trabajos destacados en el post de la Fundación Raspberry Pi:

¡Bravo Atlantes!

Esta página web utiliza cookies para que sea posible mejorar tu experiencia de navegación.