Control de Tiempo Real estricto en un robot móvil basado en
MaRTE OS
Francisco Javier Feijoo Cano
Director: José Luis Villarroel Salcedo
2Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
Objetivo
• Implantación del sistema operativo MaRTE OS en un robot móvil Pioneer
Desde cero …
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
3Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
Contenido
• Sistemas de Tiempo Real
• MaRTE OS y el robot Pioneer
• Trabajo realizado
• Aplicaciones desarrolladas
• Conclusiones
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
4Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
5Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
Entorno
Algunos ejemplos:-Aviones-Coches-Trenes-Móviles-Electrodomésticos-Industria
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
6Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
7Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
¿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
RO
BO
T
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
8Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
Linux
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
9Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
Contenido
• Sistemas de Tiempo Real
• MaRTE OS y el robot Pioneer
– MaRTE OS
– Robot Pioneer
– Entorno de desarrollo
• Trabajo realizado
• Aplicaciones desarrolladas
• Conclusiones
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
10
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
11
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
Robot móvil Pioneer
• Elementos más importantes:
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
12
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
13
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
14
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
Análisis
Diseño
Implementación
Pruebas
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
Corrección de la línea serie
Controlador para la tarjeta inalámbrica
15
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
16
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
17
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
18
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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)
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
19
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
Navegación autónoma1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
• Cumplimiento de plazos
• Utilización conocida (66.83%)
Tarea Periodo Cómputo Bloqueo Techo de prioridad
Prioridad
INT láser 0.4196 0.029 0 HW
INT Micro 0.833 0.029 0 HW
Actualiza P2OS 100 0.062 0.02186 22
Navegación 100 50 1.1226 21
Visualización 200 12 0.001 20
Actualiza Láser 397.5 1.867 0 19
Servidor P2OS 22
Servidor Láser 21
• RMS (prioridad al más frecuente) y techo de prioridad inmediato
20
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
Comunicación inalámbrica
• Se maneja el robot desde otra máquina (visualización y control). Tiempo acotado en el peor caso
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
21
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
¿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
4 mInicio Fin
Demostración sencilla
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
22
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
Contenido
• Sistemas de Tiempo Real
• MaRTE OS y el robot Pioneer
• Trabajo realizado
• Aplicaciones desarrolladas
• Conclusiones
– Conclusiones
– Dificultades
– Trabajos futuros
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
23
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
24
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
25
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
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
1. Tiempo Real2. MaRTE OS 3. Trabajo3. Aplicaciones4. Conclusiones
26
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
¡Gracias por su atención!
Control de Tiempo Real estricto en un robot móvil basado en
MaRTE OS
Francisco Javier Feijoo Cano
Director: José Luis Villarroel Salcedo