ESCUELA POLITÉCNICA NACIONAL XXI JORNADAS EN INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ROBOT ARTICULADO QUE EMULA EL MOVIMIENTO DE UN GUSANO Patricio J. Cruz D., Ing. Cristóbal R. Villegas S., Ing. Nelson G. Sotomayor O., MSc. (Director)
Proyecto previo a la obtención del título de Ingeniero en Electrónica y Control
OBJETIVO PRINCIPAL
Diseñar y construir un robot articulado tipo gusano que se desplace horizontalmente y en línea recta de forma análoga a como lo hacen los gusanos, mediante ondas transversales que se propagan desde la cola hasta la cabeza (secuencia de elevación) y que pueda realizar giros (secuencia de orientación)
INTRODUCCIÓN
Robots de investigación
Nuevos algoritmos, nuevas formas de movimiento. Imitar animales (adaptados adecuadamente al medio en el que viven). Robos sin patas y robots con patas.
Robots sin patas, robots gusanos o robots serpientes
Pueden penetrar por sitios a los que otro tipo de robot no tiene acceso (ejem. tuberías). Adoptan la forma de la superficie por la que se desplazan. Compuestos por segmentos enganchados unos a otros, pudiendo conseguir robots de cualquier longitud.
Con orugas Sin patas
Con patas
Con ruedas
Clasificaci贸n de acuerdo a la locomoci贸n
FUNDAMENTOS BÁSICOS
Mecanismos de movimiento: el desplazamiento se consigue mediante ondas que recorren el robot Ondas Transversales (Paralelas y Perpendiculares) Ondas Longitudinales Serpientes: ondas transversales paralelas y ondas longitudinales Gusano de seda: ondas longitudinales y transversales perpendiculares
Robots gusanos o Robots serpientes
Gusano Longitudinal
Recorridos por ondas longitudinales desde la cola hasta la cabeza (lombrices de tierra) Constituído por N segmentos iguales y de longitud inicial Lo cuando están en reposo Segmentos contráctiles y retráctiles de manera que se puedan expandir y contraer una distancia máxima Todos los segmentos son exactamente iguales, con la misma masa y propiedades mecánicas y unidos sin poder separarse. Problemas con su implementación física
El gusano se arrastra por lo que se debe considerar el rozamiento con la superficie. Mecánicamente se complica la implementación de segmentos contráctiles-retráctiles. Se necesita gran sincronización de los mecanismos de movimiento.
Gusano Longitudinal Gusano longitudinal de cinco segmentos
Avance de un gusano longitudinal
Gusano transversal
Se mueven mediante ondas transversales que recorren su cuerpo desde la cola hasta la cabeza (gusano de seda). Están constituidos por N articulaciones (a1, …, aN y N-1 segmentos (s1, …, sN-1). Los segmentos son rígidos, de longitud L y todos iguales (misma masa y propiedades mecánicas). Las articulaciones unen dos segmentos entre sí. Dos son ficticias (cola y cabeza). Una articulación está conformada por:
Cuerpo: donde se encuentra el mecanismo de movimiento (vector interior) Corona: conectada al eje de salida (vector exterior) Ángulo ϕ: ángulo de estado de la articulación (rango [-90º,90º]
Ángulo entre dos segmentos, θ, entre segmento exterior y segmento interior.
θ = 180º - ϕ; θ ∈ [-90º,-180º] ∪ [90º,180º]
Gusano Transversal
Modelo de un gusano transversal
Elementos de una articulaci贸n Segmento exterior e interior
Caracterización-Gusano Transversal
El estado en el que se encuentra el gusano se emplea el vector de estado E, de N componentes, una por articulación. El vector de estado está formado por el ángulo de estado de cada articulación para un instante t.
Función de contorno-Gusano Transversal
Es la herramienta empleada para lograr que el gusano evolucione, pasando de un estado a otro. Determina la relación entre las coordenadas x,y de las articulaciones. Es decir, determina los ángulos de las articulaciones (el estado del gusano) para un instante t. Si se propaga esta función con una velocidad v se generan los diferentes vectores de estado para un instante t, consiguiendo la evolución. La evolución es correcta solo para gusanos continuos En un gusano discreto para conseguir un movimiento más continuo habrá que jugar con la función de contorno.
Gusano Transversal-Funci贸n de Contorno
Diferentes estados de un gusano transversal Propagaci贸n de la Funci贸n de Contorno
Algoritmo de Ajuste-Gusano Transversal
Explicación del problema de ajuste Para lograr una secuencia se repite cíclicamente el algoritmo de ajuste. Si se conoce la solución para un segmento se puede ajustar el gusano entero. Solución analítica y solución numérica
Sentido de rotación inicial Ángulo inicial de ataque
Pasos del algoritmo
Implementación Gusano Transversal
Las articulaciones se pueden implementar mediante servomecanismos El diseñador debe seleccionar adecuadamente la función de contorno.
Algoritmo de Ajuste
Problema de ajuste
Soluciテウn analテュtica
テ]gulo de ataque y sentido de rotaciテウn inicial
Algoritmo de ajuste
Fundamentos de la propagaci贸n Propagaci贸n del algoritmo de ajuste
Gusano Plano Rígido
Tiene N articulaciones y N-1 segmentos rígidos de longitud Lo.
Las articulaciones se mueven de manera que el gusano siempre permanece dentro del plano xy. Las articulaciones están colocadas de manera que los segmentos interior y exterior se mueven permaneciendo siempre en el plano xy. Cada articulación queda caracterizada por su ángulo de orientación. El gusano completo está caracterizado por el vector de orientación que tiene N componentes que indican la orientación de cada articulación. Función de Trayectoria
Gusano Plano Rígido
Gusano plano rígido
Función de trayectoria
Estado de un gusano plano rígido
Gusano Tridimensional
Está constituido por N articulaciones de doble estado y N-1 segmentos rígidos. Las articulaciones de doble estado tienen dos grados de libertad y permiten orientar a un segmento en cualquier dirección del espacio. Su proyección sobre el plano xy es un gusano plano. Sus articulaciones se caracterizan por el ángulo de orientación θi(t) y el de elevación ϕi(t). Necesitan, entonces, de dos vectores para su caracterización: vector de orientación y vector de elevación. Algoritmo de giro Función de trayectoria y Función de contorno Coordinación Implementación de un gusano tridimensional
Gusano Tridimensional
DISEÑO Y CONSTRUCCIÓN DEL PROTOTIPO
ESTRUCTURA MECÁNICA
Introducción
Manipulación y Locomoción Robótica Modular Reconfigurable
Módulos Y1
Modularidad: característica de estar construído a partir de componenetes estandarizados que pueden intercambiarse Reconfigurabilidad: habilidad para combinar componentes físicos del robor (Dinámica y Manual). Polybot – Generación G1
Cube Reloaded y Cube Revolutions
Servomecanismos
Hitec HS-311
Polybot (G1, G2,G3) – Robótica Modular Reconfigurable
M贸dulo Y1
Cube Reloaded/Cube Revolutions
Servomecanismos
Para la locomoción se requieren motores de control de posición y con un giro de 180º. Utilizados generalmente en aeromodelismo. Cualquier motor que en un sistema en lazo cerrado, utiliza una señal de realimentación para monitorear su velocidad o posición en ambas direcciones. En lazo abierto utiliza un equipo digital para proporcionar las señales de comando precisas que controlan estas variables. Cuenta con una tarjeta controladora que indica a un pequeño motor de DC cuántas vueltas debe girar para acomodar la flecha en el ángulo pedido. Tiene un potenciómetro sujeto a la flecha con el cual conoce donde está ubicado en todo momento. El control de posición se realiza con este potenciómetro y una señal PWM interna, comparada con una señal PWM externa. El tiempo en alto indica el ángulo al que debe posicionarse.
Servomecanismos
Electrónica
Requisitos
Poder controlar gusanos de cualquier longitud Permitir que el gusano sea autónomo, aunque el presente proyecto emplea la PC para el desarrollo de los cálculos. Ser flexible y modular, de modo que permita incorporar mejoras futuras.
Arquitectura hardware
Red de microcontroladores maestro-esclavo Comunicación entre los nodos es serie sincrónica (I2C) El nodo maestro se conecta a una PC empleando comunicación serial asincrónica Maestro y esclavo están basados en un microcontrolador PIC16F876 El Maestro se encarga de almacenar y transmitir al esclavo los vectores de estado del gusano generados en la PC. El Esclavo permite el control de 8 servomecanismos.
Arquitectura Hardware
JP4
R25
1 2
470 ohms
Source (1=Gnd) (2=Vcc) S5
C5 220 nF
1 = READY; 0 = WAIT
RESET MASTER
10 K
R20 1K
C6 1 uF
U5
10 11 12 13 14 15 16 17 18 26 27 28
OSC1/CLKIN OSC2/CLKOUT MCLR/VPP RC0/T1OSO/T1CKI RA0/AN0 RC1/T1OSI RA1/AN1 RC2/CCP1 RA2/AN2 RC3/SCK/SCL RA3/AN3/VREF RC4/SDI/SDA RA4/T0CKI RC5/SDO RA5/AN4/SS RC6 RB0/INT RC7 RB1 RB5 RB2 RB6 RB3 RB7 RB4 VDD
9 1 2 3 4 5 6 7 21 22 23 24 25
4 MHz
R21 10 K R22 10 K
JP1 SCL SDA
8 19
Tarjeta Master
S4
R23
INICIO BLENDER
10 K
R26 1K
C14 1 uF
C10 1 uF C11 C9 1 uF R27 330 ohm
U1
LED I2C
LED USART
R1 OUT R2 OUT T1 OUT T2 OUT C2+ C2 -
12 9 14 7 4 5
C13 1 uF
MAX232N (16) 15
U7
GND
U6
R1 IN R2 IN T1 IN T2 IN C1+ C1 -
VCC VV+
C12 1 uF
13 8 11 10 1 3
1 uF
16 6 2
R24 330 ohm
1 2 I2C
VSS VSS
PIC16F876 SP (MASTER)
C8 15 pF
J2
20
S2
R19
C7 15 pF
Tx Rx Gnd
1 6 2 7 3 8 4 9 5 J5 D Connector 9
11
10
JP6 1 2
C1 220 nF
Source (1=Gnd) (2=Vcc)
C2 9 1 2 3 4 5 6 7 21 22 23 24 25
1
C3 15 pF
U3
R15 330 ohm
LED I2C
R6 10 K JP1 1 2 I2C
8 19
470 ohms R3
S1 1 2 3 4 5 6
470 ohms
Tarjeta Slave
10 K
Comment: PIC16F876 SP (SLAVE)
470 ohms R2
U4 LED ON
R5
VSS VSS
R1
R16 330 ohm
10 11 12 13 14 15 16 17 18 26 27 28
OSC1/CLKIN OSC2/CLKOUT MCLR/VPP RC0/T1OSO/T1CKI RA0/AN0 RC1/T1OSI RA1/AN1 RC2/CCP1 RA2/AN2 RC3/SCK/SCL RA3/AN3/VREF RC4/SDI/SDA RA4/T0CKI RC5/SDO RA5/AN4/SS RC6 RB0/INT RC7 RB1 RB5 RB2 RB6 RB3 RB7 RB4 VDD
Y1 4 MHz
20
U6
2
15 pF
R4 470 ohms
12 11 10 9 8 7 R7 330 ohm
SW DIP-6 1
U2 Vin
Vout GND
+5V
R9 330 ohm
R10 330 ohm
R11 330 ohm
R12 330 ohm
R13 330 ohm
R17 10 K S0
S1
S2
S3
S4
S5
S6
S7
S3 RESET SLAVE
2
Gnd
3
R8 330 ohm
1 2 JP5 Logic
R18 1K
C4 1 uF
JP3 Vcc Gnd
JP9 1 2 Fuente servos
Gnd
10 9 8 7 6
JP4 5 4 3 2 1
Servos 0-3
Vcc S0 S1 S2 S3 Gnd
10 9 8 7 6
5 4 3 2 1
Servos 4-7
Vcc S4 S5 S6 S7
R14 330 ohm
Blender (Robot Gusano)
Software de Control
Programa Slave Hace actuar al micro como un Slave en una red I2C,
seleccionando su dirección mediante un dip-switch. Genera la señal de control PWM de los 8 servomecanismos, considerando la posición, el sentido de giro y el offset establecidos mediante la comunicación por el bus I2C (emplea interrupción del Timer 0). Registros Modo (1 byte) Giro normal, giro inverso (10010100) Offset (1 byte por servo, default 178) Ajustar posición cero Duty Cycle=10+(5*Offset)+(8*Posicion) [us] Posición (1 byte por servo) Mínimo 10us, Máximo 3325us
Programa Slave REGISTRO
NÚMERO
Modo
1
Offset
2
Posición
3
No usado
4
No usado
5
No usado
6
Revisión FIRMWARE
7
Programa Master
Hace actuar al micro como Maestro en una red I2C, para controlar al módulo esclavo. Además se encarga de la comunicación con la PC, obteniendo los diferentes datos de los vectores de estado y almacenándolos en su memoria EEPROM. También con la ayuda de la PC se puede cambiar el modo, offset y posición inicial de cualquiera de los 8 servos (calibración). Finalmente intercambia datos con el Slave terminada la comunicación con la PC. Comandos de comunicación serial
Inicio de comunicación Cambiar modo Cambiar Offset Cambiar Posición Guardar dato Eeprom Fin de la comunicación
0 1 2 3 4 5
Comunicaci贸n I2C
Software de la PC
Aplicación Gusano Físico
Conversiones entre el gusano virtual y el gusano físico.
Grados sexagesimales a pulso en ms.
Registro Posición
Pulso en ms=(1/150)*grados sexagesimales+0.9 Posición=[(pulso en us) – (5 * Offset) – 10]/8 45º = 1.2ms = 37.5 ≈ 38
Parámetros temporales Tiempo de espera (para el proyecto es 0) Tiempo de tránsito (es seteable en cs)
Constante de tiempo del servo es 3.1ms, tiempo que tarda el servo en recorrer 1º.
Pruebas y Resultados
Se han probado diferentes secuencias de elevación y orientación, generadas por el programa de soporte de la PC, descargadas a Blender. En todos los casos se observó que Blender las realiza sin mayores dificultades. Al probar su movimiento sobre superficies lisas este no logra un avance considerable como el que se observa sobre superficies con un adecuado coeficiente de fricción. Sobre superficies con un alto rozamiento (alfombra) no tiene un movimiento totalmente libre, sus módulos no pueden rotar adecuadamente. Sin embargo, Blender emula los movimientos de un gusano. Una limitación del gusano es la capacidad de almacenamiento de datos en la memoria EEPROM del Master (máximo 250 valores), en la cual se guardan los datos de la secuencia enviada desde el PC. Es por esto que en ocasiones el gusano no es capaz de completar la secuencia de movimiento total planteada por el usuario.
Conclusiones
Con las ideas obtenidas del planteamiento del algoritmo de ajuste se logró diseñar un software de alto nivel para un PC que permite generar las secuencias de movimiento de elevación y orientación, en base a la manipulación de un gusano transversal virtual (secuencia de elevación) y de un gusano plano virtual (secuencia de orientación). Se ha construido un robot gusano, denominado Blender, cuya estructura esta constituida por 4 articulaciones de doble estado formadas por 8 módulos Y1 conectados en desfase de dos en dos con lo que se obtuvo un prototipo de gusano tridimensional. El manejo del módulo MSSP de los microcontroladores PIC 16F876 para la comunicación en la red de microcontroladores mediante la utilización del bus I2C es de fácil implementación y permite la transmisión y recepción de datos de manera eficiente.
Recomendaciones
Al realizar la calibración de las posiciones iniciales de los servos que constituyen el robot se debe poner un cuidado especial para no ocasionar daños mecánicos a los servomecanismos o a los módulos. Antes de utilizar el prototipo se deben revisar que las pilas de la alimentación del control del robot no estén descargadas. Ya que esto ocasiona problemas al escribir y leer los datos de la secuencia en la EEPROM. Por lo que al dar la orden de iniciar el movimiento no se recuperan todos los datos de la secuencia. La fuente de alimentación de los servos (5V y más de 1A) debe poder suplir la corriente requerida, ya que cuando esto no sucede se observa que se forza el movimiento de los servomecanismos. Una vez que se termina de ejecutar una secuencia por Blender, se observa que los módulos se quedan posicionados en los últimos ángulos que se hayan ejecutado. Es recomendable dar un reset al PIC Slave para que vuelva a poner a los servos en sus posiciones de default y no trabajen los servos excesivamente.
Trabajos Futuros
Dotar al nodo maestro de mayor potencia de cálculo para que no haga falta disponer de un PC para el movimiento del gusano físico, o en su defecto que posea una mayor capacidad de almacenamiento. Mejorar la sincronización entre el avance y el giro del gusano físico. Implementar nuevas funciones de contorno y de trayectoria considerando sus efectos en el gusano físico Buscar la manera que la alimentación de los servomecanismos no sea de manera externa. Diseñar y construir nuevos robots serpiente e incursionar en el campo de la robótica modular reconfigurable