Title: Control de Tiempo Real estricto en un robot m
1Control de Tiempo Real estricto en un robot móvil
basado en MaRTE OS
- Francisco Javier Feijoo Cano
- Director José Luis Villarroel Salcedo
2Objetivo
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- Implantación del sistema operativo MaRTE OS en un
robot móvil Pioneer
Desde cero
3Contenido
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- Sistemas de Tiempo Real
- MaRTE OS y el robot Pioneer
- Trabajo realizado
- Aplicaciones desarrolladas
- Conclusiones
4Contenido
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- 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
5Definición
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- 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
- Algunos ejemplos
- Aviones
- Coches
- Trenes
- Móviles
- Electrodomésticos
- Industria
6Funcionamiento de un airbag
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
tiempo
1. Sensor de deceleración 2. Procesamiento 3.
Actuación. Inflado de la bolsa
Respetar los plazos estrictamente
Actuar tarde FALLO Actuar antes FALLO
7Necesario en robótica?
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- 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
SENSORES
ROBOT
ORDENADOR
ACTUADORES
8Hasta ahora
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- 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
9Contenido
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- Sistemas de Tiempo Real
- MaRTE OS y el robot Pioneer
- MaRTE OS
- Robot Pioneer
- Entorno de desarrollo
- Trabajo realizado
- Aplicaciones desarrolladas
- Conclusiones
10MaRTE OS
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- 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
11Robot móvil Pioneer
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- Elementos más importantes
12Entorno de desarrollo
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- 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
13Contenido
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- 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
14Desarrollo de los controladores de los
dispositivos
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- Se han implementado los controladores de los
sensores y actuadores - A nivel de driver MaRTE
- Capa software para acceder a los dispositivos
Corrección de la línea serie Controlador para la
tarjeta inalámbrica
15Recursos a disposición del usuario
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
Ejemplos
- 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 394 µs readLMSValues
1867 ms
En conjunto
- 70 funciones C
- 58 funciones Ada
- Más de 5000 líneas de código implementadas
- Otras miles revisadas
Entorno de programación listo para usar
16El protocolo RT-WMP
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- 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 802.11 Tiempos sin acotar
Protocolo RT-WMP Tiempo de transmisión acotado en
el peor caso
17Contenido
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- 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
18Navegación autónoma
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- 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)
19Navegación autónoma
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- RMS (prioridad al más frecuente) y techo de
prioridad inmediato
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
- Utilización conocida (66.83)
20Comunicación inalámbrica
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- Se maneja el robot desde otra máquina
(visualización y control). Tiempo acotado en el
peor caso
21Seguro que es mejor que el sistema anterior?
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- Sin sobrecarga (0.2 m/s)
- Linux 10 cm
- MaRTE 2 cm
- Con sobrecarga (0.2 m/s)
- Linux 100 cm
- MaRTE 2 cm
- 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
22Contenido
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- Sistemas de Tiempo Real
- MaRTE OS y el robot Pioneer
- Trabajo realizado
- Aplicaciones desarrolladas
- Conclusiones
- Conclusiones
- Dificultades
- Trabajos futuros
23Conclusiones
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. 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
24Dificultades
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- 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
25Trabajos futuros
1. Tiempo Real 2. MaRTE OS 3. Trabajo 3.
Aplicaciones 4. Conclusiones
- 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
26Gracias por su atención!
27Control de Tiempo Real estricto en un robot móvil
basado en MaRTE OS
- Francisco Javier Feijoo Cano
- Director José Luis Villarroel Salcedo