Presentación sobre Blender

Page 1

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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.