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