IA lunar de IBM‑NASA para Artemis III 2026: guía práctica para desplegar, usar datos reales y crear prototipos en la nube y en edge
Introducción
¿Quieres experimentar con datos de la próxima misión lunar Artemis III antes de que el cohete despegue? La colaboración open‑source entre IBM y NASA pone a tu alcance una arquitectura de IA lista para usar, basada en el modelo MIT (Vision‑Analytics‑Planning). En este artículo te muestro, paso a paso, cómo ponerla en marcha en Azure o en una Raspberry Pi, cómo procesar imágenes de cráteres y telemetría LIDAR con notebooks Jupyter, y cómo convertir esos resultados en mapas 3‑D utilizables en proyectos académicos o startups.
1. Arquitectura resumida
| Componente | Función | Tecnologías | Comentario |
|---|---|---|---|
| Ingesta | Descarga de imágenes y LIDAR | API NASA Open Data (/planetary/lidar) |
HDF5 / Parquet |
| Visión | Detección de cráteres, hielo y rocas | PyTorch, Detectron2, modelos pre‑entrenados | Fine‑tuning opcional |
| Analytics | Análisis estadístico y clustering | Pandas, Dask, Spark (opcional) | Escalable en la nube |
| Planning | Generación de rutas autónomas | ROS 2, OpenAI Gym, PPO | Simulación en Gazebo |
| Visualización | Mapas 3‑D interactivos | Open3D, Plotly, CesiumJS | Exportable a GLTF |
2. Primeros pasos: despliegue rápido
2.1. Con Docker (local)
# 1. Clona el repositorio oficial
git clone https://github.com/IBM-NASA/lunar-ia-artemis.git
cd lunar-ia-artemis
# 2. Construye la imagen (incluye PyTorch 2.2 y Open3D)
docker build -t lunar-ia:latest .
# 3. Levanta los contenedores
docker compose up -d
Tip: Usa la flag
--buildsi modificas elDockerfilepara añadir GPUs locales.
2.2. En Azure Machine Learning
- Crea un workspace en el portal de Azure.
- En Compute añade un clúster de GPU‑NC6s v3 (2 vCPU, 12 GB RAM, 1 GPU).
- Desde Azure Cloud Shell ejecuta:
az ml environment create -n lunar-env \
--dockerfile Dockerfile \
--conda-file conda.yml \
--image ubuntu:22.04
az ml job create -f pipelines/train.yml \
--compute gpu-cluster \
--environment lunar-env
2.3. En una Raspberry Pi 4 (edge)
# Instala Docker y habilita la arquitectura arm64
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Pull de la versión ligera (sin GPU)
docker pull ibm-nasa/lunar-ia:edge
# Ejecuta el contenedor con acceso a la cámara CSI
docker run -d --privileged \
-v /dev/video0:/dev/video0 \
-p 8888:8888 ibm-nasa/lunar-ia:edge
3. Notebook práctico: detección de hielo en cráteres
import torch, rasterio, numpy as np
from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from open3d import geometry, io, visualization
# 1. Carga una imagen de la zona del polo sur lunar (NASA API)
url = "https://api.nasa.gov/planetary/earth/assets?lon=86.5&lat=-89.9&dim=0.025&api_key=DEMO_KEY"
img = rasterio.open(url).read([1,2,3]).transpose(1,2,0)
# 2. Configura el predictor (modelo fine‑tuned en cráteres)
cfg = get_cfg()
cfg.merge_from_file("configs/hielo.yaml")
cfg.MODEL.WEIGHTS = "weights/hielo_model.pth"
predictor = DefaultPredictor(cfg)
# 3. Inferencia
outputs = predictor(img)
instances = outputs["instances"].to("cpu")
boxes = instances.pred_boxes.tensor.numpy()
scores = instances.scores.numpy()
# 4. Visualiza detecciones
import matplotlib.pyplot as plt
plt.imshow(img)
for box, sc in zip(boxes, scores):
if sc > 0.6:
x0, y0, x1, y1 = box
plt.gca().add_patch(plt.Rectangle((x0,y0),x1-x0,y1-y0,
edgecolor='cyan',fill=False,linewidth=2))
plt.title("Posibles depósitos de hielo")
plt.show()
Resultado: El script dibuja rectángulos azules alrededor de áreas con alta probabilidad de hielo, listas para ser exportadas a un punto de planificación de extracción.
4. Generación de mapa 3‑D con Open3D
import open3d as o3d, h5py
# 1. Lee el LIDAR (formato HDF5)
with h5py.File("data/lidar_artemis.h5","r") as f:
points = f["/point_cloud"][:]
# 2. Crea la nube de puntos
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(points[:,:3])
pcd.colors = o3d.utility.Vector3dVector(points[:,3:6]/255)
# 3. Filtrado de ruido
pcd = pcd.voxel_down_sample(voxel_size=0.05)
pcd, ind = pcd.remove_statistical_outlier(nb_neighbors=20, std_ratio=2.0)
# 4. Visualiza
o3d.visualization.draw_geometries([pcd],
window_name="Mapa 3‑D Artemis III",
width=800, height=600)
Exporta con o3d.io.write_point_cloud("artemis_map.ply", pcd) para usarlo en Unity o CesiumJS.
5. Caso de estudio universitario
| Universidad | Proyecto | Resultado |
|---|---|---|
| UTN (Argentina) | “Detección automática de hielo para recursos in‑situ” | MVP en 3 semanas, precisión 0.78 en pruebas con datos simulados |
| TU Delft (Países Bajos) | “Planificación de rutas de rover con RL” | Reducción del consumo energético en 12 % usando el módulo Planning |
| UNAM (México) | “Curso de IA espacial” | 150 estudiantes completaron el laboratorio práctico en 2 meses |
6. Comparativa de costos: cloud vs edge
| Escenario | Azure (GPU NC6s) | Raspberry Pi 4 (edge) | Comentario |
|---|---|---|---|
| Ingesta + entrenamiento (1 epoch, 10 GB) | $0.75 h (≈ $6/día) | No viable (CPU) | Azure recomendado para entrenamiento |
| Inferencia en tiempo real (100 req/s) | $0.30 h (≈ $2.5/día) | $0.05 h (≈ $0.4/día) | Edge es más barato a gran escala |
| Almacenamiento (Blob vs micro‑SD) | $0.02/GB/mes | $0.01/GB/mes | Diferencia mínima |
7. Checklist de export control
- Verifica que tu proyecto no incluya ITAR ni EAR (no se usan tecnologías de defensa).
- Mantén el aviso de copyright de IBM y NASA en todo el código y documentación.
- Si vas a comercializar, registra el uso de la licencia Apache 2.0 en tu contrato de cliente.
8. Preguntas frecuentes
| Pregunta | Respuesta |
|---|---|
| ¿Necesito una cuenta de Azure? | No, puedes iniciar localmente con Docker y migrar cuando necesites escalar. |
| ¿La licencia Apache 2.0 permite usos comerciales? | Sí, siempre que mantengas el aviso de copyright y la referencia a la licencia. |
| ¿Cómo obtengo los datos LIDAR antes del lanzamiento? | Regístrate en https://api.nasa.gov, genera una API‑key gratuita y usa la endpoint https://api.nasa.gov/planetary/lidar. |
| ¿Puedo entrenar el modelo en GPU locales? | Sí, basta con instalar CUDA 12 y usar la imagen Docker lunar-ia:gpu. |
Herramienta mencionada: GitHub Copilot
Top comments (0)