1 Objetivo Implantación del sistema operativo MaRTE OS en
un robot móvil Pioneer Desde cero …
2 Contenido Sistemas de Tiempo Real MaRTE OS y el robot Pioneer
Trabajo realizado Aplicaciones desarrolladas Conclusiones
3 Contenido Sistemas de Tiempo Real Definición Ejemplo.
Funcionamiento de un airbag Sistema de tiempo real en
robótica MaRTE OS y el robot Pioneer Trabajo realizado
Aplicaciones desarrolladas Conclusiones
4 Definición Sistema informático que interacciona
repetidamente con su entorno, realizando acciones de control en
intervalos de tiempo bien definidos (rápido) Los fallos
por no responder a tiempo son tan malos como un mal resultado
Sistema de propósito general: Busca el mayor rendimiento
medio del procesador (modifica la ejecución de tareas,
altera prioridades, …) Multiaplicación,
multiusuario, multiprocesador (Gp:) Entorno Algunos ejemplos:
Aviones Coches Trenes Móviles Electrodomésticos
Industria
5 Funcionamiento de un airbag 25 ms tiempo 50 ms 80 ms Actuar
tarde = FALLO Actuar antes = FALLO 1. Sensor de
deceleración 2. Procesamiento 3. Actuación. Inflado
de la bolsa Respetar los plazos estrictamente
6 ¿Necesario en robótica? Un robot es un sistema
compuesto por sensores, un ordenador que procesa la
información y actuadores Una aplicación de control
sobre el robot (navegación) se ejecuta con plazos fijos
Control basado en el periodo de muestreo Necesita ser
determinista ORDENADOR SENSORES ACTUADORES ROBOT
7 Hasta ahora Linux + Player Control de los dispositivos del
robot (navegación, visión, comunicación)
Entorno cómodo (compilar y listo) Ideal para simular
aplicaciones robóticas Pero: El SO (el planificador) puede
retrasar la lectura de los sensores y la actuación
Descontrol, no determinista (Gp:) Linux
8 Contenido Sistemas de Tiempo Real MaRTE OS y el robot Pioneer
MaRTE OS Robot Pioneer Entorno de desarrollo Trabajo realizado
Aplicaciones desarrolladas Conclusiones
9 MaRTE OS MaRTE OS (Minimal Real-time Embedded Operative System)
ofrece las herramientas necesarias para que nuestro sistema se
comporte en tiempo real Desarrollado en la Universidad de
Cantabria POSIX13, prioridades fijas, relojes de tiempo real,
mutexes, planificación expulsiva, servidor
esporádico, etc
10 Robot móvil Pioneer Elementos más
importantes:
11 Entorno de desarrollo Entorno de desarrollo cruzado Fallos
difíciles de encontrar (mirar los bytes, casi ensamblador,
etc.) Lento: Compilar en el ordenador, reiniciar el robot y
vuelta a empezar
12 Contenido Sistemas de Tiempo Real MaRTE OS y el robot Pioneer
Trabajo realizado Desarrollo de los controladores de los
dispositivos Recursos a disposición del usuario El
protocolo RT-WMP Aplicaciones desarrolladas Conclusiones
13 Desarrollo de los controladores de los dispositivos Se han
implementado los controladores de los sensores y actuadores A
nivel de driver MaRTE Capa software para acceder a los
dispositivos (Gp:) Análisis (Gp:) Diseño (Gp:)
Implementación (Gp:) Pruebas Corrección de la
línea serie Controlador para la tarjeta
inalámbrica
14 Recursos a disposición del usuario Conjunto amplio de
funciones para utilizar los dispositivos Probadas cada una de
ellas Se ha caracterizado temporalmente el sistema (relojes de
ejecución) ADA p2osGetXPos p2osSetSpeed(a,b) C
p2osGetXPos() p2osSetSpeed(a,b) p2osGetXPos
…………………
3’94 µs readLMSValues
……………… 1’867 ms
Entorno de programación listo para usar Ejemplos: En
conjunto: 70 funciones C 58 funciones Ada Más de 5000
líneas de código implementadas Otras miles
revisadas
15 El protocolo RT-WMP Protocolo de comunicaciones
inalámbricas en desarrollo en la Universidad de Zaragoza
Hasta ahora se utilizaba con Linux Se ha implementado en MaRTE
para comunicar el robot con el exterior Comunicación en
tiempo real para un SO de tiempo real Protocolo RT-WMP Tiempo de
transmisión acotado en el peor caso Protocolo 802.11
Tiempos sin acotar
16 Contenido Sistemas de Tiempo Real MaRTE OS y el robot Pioneer
Trabajo realizado Aplicaciones desarrolladas Navegación
autónoma Comunicación inalámbrica Algunos
resultados Conclusiones
17 Navegación autónoma El robot sigue a un objetivo
móvil, evitando obstáculos (tracking + ND) Estudio
completo de planificabilidad (planificación de tareas
anterior a la ejecución)
18 Navegación autónoma Cumplimiento de plazos
Utilización conocida (66.83%) RMS (prioridad al más
frecuente) y techo de prioridad inmediato
19 Comunicación inalámbrica Se maneja el robot
desde otra máquina (visualización y control).
Tiempo acotado en el peor caso
20 ¿Seguro que es mejor que el sistema anterior? En un
sistema convencional con carga en el procesador, el robot deja de
funcionar correctamente En MaRTE, las tareas de mayor prioridad
no se ven afectadas nunca por otras tareas Sin sobrecarga (0.2
m/s) Linux +10 cm MaRTE +2 cm Con sobrecarga (0.2 m/s) Linux +100
cm MaRTE +2 cm (Gp:) 4 m (Gp:) Inicio (Gp:) Fin (Gp:)
Demostración sencilla
21 Contenido Sistemas de Tiempo Real MaRTE OS y el robot Pioneer
Trabajo realizado Aplicaciones desarrolladas Conclusiones
Conclusiones Dificultades Trabajos futuros
22 Conclusiones Se dispone, por primera vez, de un entorno de
tiempo real para trabajar con los robots Pioneer Existe un
conjunto amplio de funciones para el programador (muy parecido a
lo que había hasta ahora) MaRTE OS ha sido ampliado y
mejorado Soporte en MaRTE para RT-WMP
23 Dificultades Se ha realizado el trabajo desde cero. No
existía nada relativo a robótica con MaRTE OS Se ha
trabajado con hardware, a bajo nivel. Algunos elementos no
funcionaban Es difícil “vender” sistemas de
tiempo real Nadie a mi alrededor conocía MaRTE OS
24 Trabajos futuros Ampliar la funcionalidad de MaRTE en el robot
(cámaras, joystick, gráficos, etc.) Adaptar otros
algoritmos que mejoren el sistema de control del robot Conseguir
aplicaciones robóticas robustas y fiables