Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modelo Dinámico Agregado
Modelo Dinámico Agregado
DEPARTAMENTO DE METAL-MECANICA
CARRERA: ING. MECATRONICA
ASIGNATURA: DINAMICA DE SISTEMAS
MANO ROBOTICA
Estudiante:
Donde Г son los pares o torques aplicados a cada uno de los motores, A es la matriz de inercia del
robot, C la matriz de Coriolis y fuerzas centrífugas, Q el vector de gravedad, Fvla matriz de
frotamientos viscosos y Fsla matriz de frotamientos secos. Las posiciones, velocidades y
aceleraciones articulares están dadas por q, q′, q ′′ respectivamente. El
modelodinámico directo permite realizar la simulación del comportamiento de la mano robot,
mientras que el modelo dinámico inverso permitirá la implementación de un controlador basado en
el modelo. Un paso previo al cálculo de estos modelos consiste en hallar los parámetros dinámicos
de base del robot [53], esto es, el juego mínimo de parámetros que involucra el modelo con el fin
de reducir los cálculos. Como los parámetros dinámicos de un robot son once, seis elementos del
tensor de inercia (XXj, XYj, XZj, YYj, YZj, ZZj), tres del primer momento de inercia (MXj, MYj, MZj),
uno de la masa (Mj) y uno de la inercia del accionador (Iaj), cada dedo dispondría de 33
parámetros diferentes. Pero aplicando las técnicas de agrupamiento de parámetros y ciertas
consideraciones especiales (suponer la matriz del tensor de inercia diagonal y los cuerpos de la
mano con una forma simétrica), éstos se reducen notablemente.
Г1 A 11 A 12 A 13 q ¨ 1 Q1
( )( )( ) ( )
Г 2 = A21 A 22 A 23 q ¨ 2 + Q2
Г3 A31 A 32 A 33 q ¨ 3 Q3
Г4 A 41 A 42 A 43 q ¨ 4 Q 4
( )(
Г 5 = A 51
Г6 A 61 )( ) ( )
A52 A 53 q ¨ 5 + Q5
A62 A 63 q ¨ 6 Q6
Г7 A 71 A 72 A73 q ¨ 7 Q7
( )( )( ) ( )
Г 8 = A 81 A 82 A83 q ¨ 8 + Q8
Г9 A 91 A 92 A 93 q ¨ 9 Q9
Dedo índice:
Matriz de inercia:
Vector de gravedad:
Q6 = G3MY6S45S6 – G3MY6C45C6
Dedo pulgar:
Matriz de inercia:
A99 = XXR9
A78 = 0
A79 = 0
−√ 2 2 2 2
Q 7= G 3 MY 7C 7+ √ G3 MY 8 S 7 S 8+ √ G 3 MY 9 S 7 S 8 C 9+ √ G3MY9S7C8S9
2 2 2 2
2 2 2 2
Q8= √ G 3 MY 8 S 8− √ G 3 MY 8 C 7 C 8+ √ G 3 MY 9 S 7 S 8 C 9− √ G3MY9C7C8C9+
2 2 2 2
√ 2 G3 MY 9 C 8 S+ √ 2 G3 MY 9C 7 S 8 S 9
2 2
2 2 2 2
Q9= √ G 3 MY 9C 9 S 9+ √ G 3 MY 9 C 7 S 8 S 9+ √ G 3 MY 9 S 8C 9− √ G3MY9C7C8C9
2 2 2 2
Por su parte el modelo dinámico directo el cual permitirá la simulación de la prótesis
de
mano en el computador, se expresa por medio de la siguiente ecuación, aplicable a
cada
uno de los dedos de la mano:
q ¨ = A−1 ¿
Aplicaciones
Los de Ing. Mecatrónica del Instituto Tecnológico de Tehuacán, pensamos en un proyecto que
pudiera acoplarse al entorno, dando lugar a la mano robótica; semejante a la mano humana, como
idea de manipulación de mecanismos, aparatos, o sustancias químicas muy peligrosas que se
hacen teniendo contacto físico; mas aun la particularidad de nuestro proyecto es manipular el brazo
robótico inalámbricamente, vía bluetooth, mediante otro guante, parecido a los que comúnmente
son utilizados en época de frio, pero diferenciado en que posee sensores en los dedos para que al
mover los suyos el usuario, lo hagan también los del brazo.
Las aplicaciones pueden ser muy variadas, así como lo son las de nuestras manos, no solo las
usamos para una actividad en particular, sino que de acuerdo a las necesidades del entorno o de la
situación, nos acoplamos, y usamos nuestras manos.
MATERIALES
o Guante o Cuerda
o Xbee s1
o Exacto o cuchillo
GUANTE DE CONTROL
3. Conecte los escudos Xbee para Arduino mediante la colocación en la parte superior de la placa
Arduino.
5. Tome el chip de la Arduino ATMEGA así que hay una relación directa entre la computadora y la
radio Xbee.
8. Cosí los sensores de flexión en el guante por hacer un agujero en la parte superior y en
funcionamiento la cadena por encima y debajo del sensor por lo que todavía se puede mover
libremente.
LA MANO
6. Construimos el circuito, la entrega de potencia de los servos y con los cables de control a la
entrada digital en el arduino
7. Encontramos aparejos de pesca desde la punta del dedo a través del tubo y lo sujetó en el
servo.
Figura 8. Guante de control. Figura 9. Mano robótica
En este punto se explican de manera sobresaliente las partes del código usado para dar
movimiento a la mano.
En esta parte lo que se hace es incluir la librería de los servomotores para poder usarlos
ya que sin ella el Arduino no reconocería el mismo. También declaramos las variables a
utilizar como son int finguer 1 qe serán controladas por los sensores flexo y a su vez
declaramos el número de variables en servo motores a utilizar como son servo my servo1.
#include <Servo.h>
int Finger2 = 9;
int Finger3 = 2;
int Finger4 = 3;
int Finger5 = 4;
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
void setup()
Serial.begin(9600);
myservo2.attach(9);
myservo3.attach(4);
myservo4.attach(5);
myservo5.attach(6);
void loop()
En esta sección utilizamos en comando byte que es un variable que almacena 1 numero
de 8 bits, que va de 0 a 225 y en este caso almacenaremos el radio de giro del servo qe
va de 0 a 180 el cual será dado de acuerdo a lo que mande el sensor flexo.
byte servoValue1;
byte servoValue2;
byte servoValue3;
byte servoValue4;
byte servoValue5;
int FingerV1 = analogRead(Finger1);
En esta sección del código comparamos el voltaje del sensor flexo para asignar el
movimiento del servo, por ejemplo si el sensor fingerv1 < 200 el radio de giro del servo
será de 180, pero si el valor del sensor flexo es de >460 el valor del servo será de 0
grados regresando a su posición original, y así sucesivamente con todos los servomotores
y sensores flexo.
FingerV1 = 180;
else
FingerV1 = 0;
FingerV2 = 180;
else
FingerV2 = 0;
FingerV3 = 180;
else
FingerV3 = 0;
FingerV4 = 180;
else
FingerV4 = 0;
FingerV5 = 180;
else
FingerV5 = 0;
myservo1.write(servoVal1);
myservo2.write(servoVal2);
myservo3.write(servoVal3);
myservo4.write(servoVal4);
myservo5.write(servoVal5);
El comando delay es el tiempo que prendera o apagara el servo al esperar recibir una
orden, en este caso es un delay de 100 antes de la siguiente checada de la resistencia
cada 100milis leerá el valor de la resistencia y mandara la señal a los servos
delay(100);