Programación concurrente en Linux

# Proyecto UE: Un robot explorador marciano

## Objetivo del proyecto

Se pretende desarrollar un robot explorador para la Agencia Espacial Europea que trabaje autónomamente sobre la superficie de un planeta o asteroide en busca de indicios de vida.

## Especificaciones generales (versión preliminar)

Se trata de diseñar y construir un vehículo con dos ruedas motrices, cada una propulsada con un motor, y una rueda trasera loca. Los motores de las ruedas motrices reciben pulsos que hacen que el vehículo avance o gire, dependiendo de si los pulsos los reciben ambos motores o solo uno de ellos.

En ausencia de un sistema de posicionamiento global, el vehículo mantiene datos de localización autónomamente a partir de la relación de pulsos enviados a cada rueda y la frecuencia de estos, generando una interrupción cuando calcula que el vehículo ha variado su posición significativamente.

El vehículo contará con varios sensores que permiten detectar la presencia de sustancias químicas en el suelo, como agua, CO2, etc. Mediante las medidas de los sensores en cada posición, el robot podrá cartografiar la probabilidad de vida en el territorio explorado con el objetivo de encontrar microorganismos o cualquier otra forma de vida.

La UE apuesta por el software libre y abierto, por lo que todo el soporte software a utilizar será libre. Se sugiere Linux como plataforma candidata, ya que está soportado por numerosas plataformas de sistemas empotrados. En consecuencia, también el software desarrollado será libre y abierto. Se recomienda también la utilización de soluciones estándares, evitando la utilización de herramientas o mecanismos particulares que podrían no ser compatibles con la plataforma que se elija finalmente para el robot.

Las especificaciones concretas del funcionamiento del robot serán acordadas entre los miembros del consorcio más adelante.

## Participación de los estudiantes del Programa OCW de la UPV/EHU

Nosotros somos responsables del desarrollo del Módulo de Cartografiado de Probabilidad de Vida (MCPV), la parte software encargada de obtener un mapa de la probabilidad de vida en cada punto del territorio explorado. Para ello contamos con los datos de posicionamiento y de los sensores de materia orgánica para inferir indicios de vida en los lugares explorados por el robot. La parte hardware y de sensores es responsabilidad de otros grupos. Nuestro Módulo proporciona sus resultados al Módulo de Planificación del Recorrido, que desarrolla otro grupo participante en el proyecto.

El MCPV no requiere tiempo real estricto. Sin embargo, los resultados no pueden retardarse indefinidamente, ya que, por ejemplo, el Módulo de Planificación del Recorrido deberá tomar decisiones de navegación en función de estos resultados (por ejemplo, para volver a explorar una zona). Además, nuestro módulo del robot deberá realizar varias tareas simultáneamente, como atender la entrada de varios sensores, contar tiempos y otras que probablemente nos irán encargando.