Download construcion de un brazo robótico e interface de control

Document related concepts
no text concepts found
Transcript
CONSTRUCION DE UN BRAZO ROBÓTICO
E INTERFACE DE CONTROL PARA UN
SISTEMA EMPOTRADO BASADO EN EL
SISTEMA OPERATIVO RTEMS
AUTOR: ROBERTO RICA GUTIÉRREZ
TUTOR: JUAN ZAMORANO FLORES
D.A.T.S.I.
Facultad de Informática
Universidad Politécnica de Madrid
MARZO, 2002
Objetivos
• Definir el entorno de desarrollo
• Construcción del hardware
• Diseño y programación del software de
control
• Aplicación de demostración
• Conclusiones y líneas futuras
Sistema Operativo RTEMS
•
•
•
•
•
Real Time Executive for
•
Multiprocesor Systems = Sistema
operativo de tiempo real para
sistemas multiprocesador.
Se puede utilizar con los leguajes
C/POSIX o Ada.
Disponible para una amplia variedad
de familias de procesadores.
Prácticamente todo el sistema está
escrito en lenguaje de alto nivel =>
fácil de adaptar a nuevas familias de
procesadores
Herramientas abiertas: GNAT, GCC,
GDB...
Características principales:
– Capacidad multitarea.
– Sistemas multiprocesador
homogeneos y heterogeneos.
– Planificación basada en prioridades
y expulsión.
– Comunicación y sincronización de
hilos.
– Gestor de interrupciones.
– Gestión de memoria dinámica.
– Alto nivel de configuración por el
usuario.
– Cumple con el estándar POSIX.
Entorno de desarrollo
• Sistema empotrado = Sistema informático integrado en el
•
•
•
•
aparato que controla.
Sistema de tiempo real = Sistema en el que para que una
aplicación sea correcta, debe entregar sus resultados dentro
de un intervalo de tiempo.
Lenguaje de programación C + Estándar POSIX
Sistema de desarrollo cruzado = La creación del programa
ejecutable no se realiza en el mismo sistema que luego la
ejecutará.
Sistema Operativo de Tiempo Real RTEMS
Hardware
• Host: PC con GNU Linux y Windows 95
• Target: PC con tarjeta de E/S digitales
• Brazo: Kit de brazo robótico Fischertechnik
• Interfaz entre Brazo y Target: tarjeta propia
de control de motores y alimentación.
HOST
• Ordenador de propósito general PII400Mhz,
128 Mb RAM, 4Gb HD.
• Windows 95 para documentación y
conexiones a Internet.
• LINUX para alojar el sistema de desarrollo
cruzado.
Host
Linux
RTEMS
Herramientas GNU
----------------Windows
Office
Acceso a internet
...
Target
P. Potencia
• E/S Digitales
• Entradas TTL.
• Soportado
por RTEMS
• Salidas de
potencia.
• Fuente de
alimentación.
Sistema
Físico
• Brazo robótico
TARGET
• Sistema informático integrado en el aparato
final al que controla.
• Ejecuta el programa desarrollado en el
Host.
PC486:
Efi332:
• Fácil de encontrar
• Muy pequeño tamaño
• Conocimiento anterior
• Motorola 68332
• Fácil de ampliar
• Unidad de control PWM
BRAZO I
Puntos a tener en cuenta:
• Grados de libertad que tiene.
• Posibilidades de ampliación y mejora.
• Potencia y velocidad de sus motores.
• Relación entre precio y prestaciones.
BRAZO II
•
•
•
•
•
•
•
•
Kit de la empresa Fischertechnik
4 grados de libertad.
Motores de 9VDC.
Construcción modular a base de
piezas que encajan unas en otras.
Motores de baja potencia.
Piezas de plástico.
8 sensores de movimiento
(interruptores).
4 posibles brazos con este kit.
Interface entre Target y Brazo I
• Placa de entrada / salida digital.
• Nivel de señales TTL.
• 8 puertos de 8 pines cada uno
programables como entrada o
salida.
• El primer puerto se usa para el
control de los 4 motores.
• El segundo puerto se utiliza
para la entrada de la
información de los sensores.
Interface entre Target y Brazo II
• Placa de potencia.
• Traduce las señales TTL
enviadas por el target en
señales con potencia suficiente
para activar los motores.
• Basada en el L293B.
• Fuente de alimentación de
9VDC integrada.
• Posibilidad de fuente de
alimentación externa.
Software de control
• Interface de programación
• Diseño del sistema de control
– Arquitectura
– Hilos y procedimientos
• Hilo Movimiento
• Hilo Velocidad
Inteface de programación hardware
Puertos:
•
•
•
0x180  Control de motores (salida).
0x181  Lectura del estado de los sensores (entrada).
0x182  Lectura del estado de los sensores extra (entrada).
Palabra puerto 0x180: PPAAFFGG donde:
PP = dos bits motor Pinza
AA = dos bits motor Altura
FF = dos bits motor Fondo
GG = dos bits motor Giro
Palabra puerto 0x181: PpFcpPaFcaPfFcfPgFcg donde:
Pp = bit paso pinza.
Fcp = bit fin carrera pinza.
Pa = bit paso altura.
Fca = bit fin carrera pinza.
Pf = bit paso fondo.
Fcf = bit fin carrera fondo.
Pg = bit paso giro.
Fcg = bit fin carrera giro.
Interface de programación del brazo
• Objetivo: Abstraer los detalles de la implementación, como puertos,
valores hexadecimales, concurrencia de movimientos...
• Métodos utilizados para conseguir el objetivo:
– Constantes: elimina la necesidad de tratar con nºs hexadecimales.
– Procedimientos:
• InicializarBrazo(): Inicializa el sistema para el control del brazo.
• Lugar (int sentido): Devuelve la posición en grado de libertad
indicado.
• leerInt (int puerto, int numero): Da el estado del Interruptor indicado.
– Hilos:
• Movimiento (*param_mov): Hilo que hace que el brazo se situe en un
punto de uno de sus grados de libertad.
• EsperaInt (*espera_int): Hilo que no finaliza hasta que el interruptor
indicado en la estructura pasada como parámetro es pulsado.
Arquitectura del Sistema de Control
APLICACIÓN DE USUARIO
INTERFACE BRAZO
INTERFACE POSIX
RTEMS
HARDWARE DEL TARGET
Hilos y procedimientos
Crear 4
IniciarBrazo
InicializaVariables
Posicion
Velocidad
Variables
Globales
Movimiento
FinCarr
Motor
EstMovimiento
EsperaInt
LeerInt
Lugar
Aplicación de demostración
• Descripción del problema:
Variante del juego de las torres de Hanoi
• Diseño de la solución usando el interface
del brazo creado.
Descripción del problema
• Se tienen tres zonas contiguas.
• En una de las zonas se tiene una pila de tres cajas de igual
tamaño y distinto color.
• Se debe mover la columna de cajas de la primera zona a la
última respetando las siguientes reglas:
– En cada jugada solo se puede mover una caja de una
zona a otra.
– No se puede situar una caja encima de otra si en la
configuración inicial del problema la que se quiere
poner encima no estaba en una posición más elevada
que la otra.
Diseño de la solución
• Se aplica un algoritmo de “divide y venceras”.
– Caso base: mover una caja de una zona a otra  Ordenar
al brazo llevar a cabo dicho movimiento.
– Si no se está en caso base  Mover x piezas de la zona
“a” a la zona “c”, dividir el problema de la siguiente
forma:
• Mover x-1 piezas de “a” a “b”.
• Mover 1 pieza de “a” a “c”.
• Mover x-1 piezas de “b” a “c”.
Árbol de solución para 3 cajas
1
2
3
Hanoi (3,1,3)
Hanoi (2,1,2)
Hanoi (2,2,3)
Hanoi (1,1,3)
Hanoi (1,3,2)
Mover (1,3)
1
2
3
Mover (1,2)
1
2
3
Mover (3,2)
1
2
3
Hanoi (1,2,1)
Mover (1,3)
1
2
3
Mover (2,1)
1
2
3
Hanoi (1,1,3)
Mover (2,3)
1
2
3
Mover (1,3)
1
2
3
Brazo solucionando el problema
Conclusiones
• Se ha construido un sistema que:
– permite la docencia e investigación sobre sistemas de tiempo real
empotrados
– muy versátil y fácilmente ampliable.
– es de fácil construcción y reducido precio.
• Se ha adquirido experiencia en:
–
–
–
–
–
–
RTEMS.
Estándar POSIX.
Programación en C.
Robótica y sistemas empotrados.
Tratamiento de señales eléctricas controladas desde un ordenador.
Control de movimiento y velocidad de motores con sistemas
informáticos.
Líneas Futuras
• Ampliación con otros kits de Fischertechnik para
crear sistemas más complejos y que tengan que
cooperar y permitan docencia e investigación con
sistemas de tiempo real distribuidos.
• Cambio de la tarjeta de I/O por una con
posibilidad de interrupciones.
• Cambio de los motores por motores paso a paso.
• Mejora del hardware para detectar sobrecargas.
Dudas y preguntas
FIN