Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERÍA MECÁNICA
PROYECTO DE GRADO
______________________ ______________________
ESTUDIANTE ESTUDIANTE
_______________________________
DIRECTOR DE PROYECTO
AGRADECIMIENTOS
Agradecemos en primer lugar a nuestros padres, quienes nos han acompañado
desde el inicio en este proceso.
Agradecemos al ingeniero Jaime Andrés Castillo, que tuvo participación al inicio
de este proyecto, aportado su conocimiento.
A nuestro director, el Ingeniero Mauricio Vladimir Peña, quien nos aportó su ayuda
y conocimiento para la realización del proyecto.
TABLA DE CONTENIDO
Tabla 1 Ventajas y desventajas robots seriales Fuente: Autores del proyecto ..... 18
Tabla 2 Diagrama morfológico de las alternativas. Fuente: Autores del proyecto . 31
Tabla 3 Alternativas de diseño. Fuente: Autores del proyecto .............................. 31
Tabla 4 Sistema de calificación. Fuente: Autores del proyecto ............................. 32
Tabla 5 Método de objetivos ponderados. Fuente: Autores del proyecto .............. 32
Tabla 6 Tabla Denavit – Hartenberg para el robot 3 gdl. Fuente: Autores del
proyecto ................................................................................................................ 35
Tabla 7 Propiedades de los eslabones. Fuente: Autores del proyecto .................. 55
Tabla 8 Tabla DH para el robot serial. Fuente: Autores del proyecto ................... 56
Tabla 9 Resultados del toque de cada actuador posición 1. Fuente: Autores del
proyecto ................................................................................................................ 57
Tabla 10 Resultados del torque de cada actuador posición 2. Fuente: Autores del
proyecto ................................................................................................................ 57
LISTA DE FIGURAS
1
REYES, Fernando. Robótica: control de robots manipuladores. México: Alfaomega, 2011. p: 203-245.
2.2. Formulación
Es importante el desarrollo de programas que estén a disposición de los
estudiantes de la universidad, que permitan entender la física y demás teorías
involucradas. En este caso dado el énfasis del programa de ingeniería mecánica,
actualmente existen pocas herramientas que estén a disposición de los
estudiantes para realizar actividades en al campo de estudio de la automatización
y robótica.
3. JUSTIFICACIÓN
Elaborar una interfaz gráfica (GUI) en Matlab, que integre las funciones
diseñadas para realizar la simulación.
5. DELIMITACIÓN
El término robot fue utilizado por primera vez en la obra teatral “Rossum's
universal robots” el año de 1921 por el autor checo Karel Capek, la palabra se
deriva del término “Robota” cuyo significado es fuerza de trabajo. Pronto el termino
se le asignó a los autómatas que fueron crearon en esta época y cuya finalidad
era imitar los movimientos de los seres humanos2. En la actualidad el término
robot se puede definir según el Instituto de robótica de América de la siguiente
manera, “un robot es un manipulador multifuncional re-programable diseñado para
mover materiales, partes, herramientas o dispositivos especializados, a través de
movimientos variables programados para el desarrollo de una variedad de
tareas”3.
Los primeros pasos de la robótica fueron dados por Raymond Goertz de Algonne
National Laboratory, quien desarrollando el primer telemanipulador que permitió
manejar elementos radiactivos de forma segura para el operador, años más tarde
mejoró sus diseños incorporando componentes electrónicos y servo-control en su
diseño. Otro personaje que abrió el camino de la robótica fue el ingeniero de
General Electric, Ralp Mosher, quien construyó el dispositivo denominado Handy-
Man4.
2
REYES, Fernando. Robótica: control de robots manipuladores. México: Alfaomega, 2011. P. 203-245.
3
TSAI, Lung-Wen. Robot analysis: the mechanics of serial and parallel manipulators. New York: Jhon Wileys & Sons, 1999.
P. 1-6.
4
BARRIENTOS, Antonio. Fundamentos de robótica. 1997
5
Ibid., p. 100
campo de investigación que involucra diferentes temáticas de las ingenierías de
control, electrónica, mecánica y computación.
6
TSAI, Lung-Wen. Robot analysis: the mechanics of serial and parallel manipulators. New York: Jhon Wileys & Sons, 1999.
P. 1-6.
7
REYES, Fernando. Robótica: control de robots manipuladores. México: Alfaomega, 2011. P. 203-245.
6.1.2. Ventajas y desventajas
En la actualidad los robots manipuladores son los de amplia aceptación en el
ámbito industrial, este tipo de robots se pueden clasificar según su estructura
cinemática, por un lado se encuentran los robots de estructura serial (Cadena
abierta) y las estructuras paralelas (cadena cerrada). En el Siguiente cuadro se
presentan las ventajas y desventajas que tienen los robots seriales con respecto a
los robots paralelos.
VENTAJAS DESVENTAJAS
El análisis cinemático de las estructuras Operan a velocidades más bajas que
seriales es más sencillo que el de los los robots paralelos debido a que son
robots paralelos. No requieren de más pesados y estructuralmente
sensores externos para calcularla robustos
El espacio de trabajo de las estructuras Al ser máquinas con mayor masa se ve
seriales suele ser más amplio que el de afectada la presión de sus movimientos
las estructuras paralelas
8
BACA, José; FERRE, Manuel; ARACIL, Rafael. A heterogeneous modular robotic design for fast response to a diversity of
tasks. Robotics and Autonomous Systems. 2011. p. 532-531
otros aspectos y proporciona información para la toma de decisiones que corrijan y
mejoren los diseños antes de su construcción 9.
6.1.4. Simulación
Existen varias definiciones propuestas para el término de simulación
computacional, estas coinciden en que la simulación es un método que hace uso
de un programa o software computacional con el fin de representar un evento,
sistema o proceso del mundo real, esto lo convierte en una herramienta de
experimentación virtual que toma modelos, hipótesis y teorías que son analizados
numéricamente10.
9
MOSQUERA, Hugo; VIVAS, Oscar; RENGIFO, Carlos. Modelado y simulación de un robot para cirugía endoscópica
translumial. Julio-Diciembre 2011. vol. 5. No.10. p. 44-50
10
KINGHORN, Brent. Computer simulation: what’s the story?. American journal of management. 2013 vol.13. p. 22-24
11
Ibíd., p. 23
12
MARTINES, Diego; SALAZAR, Gastón; ROSAS, José. Diseño y desarrollo de un simulador de robots manipuladores. En:
6to. Congreso Nacional de Mecatrónica, Noviembre 8-10.2007. Mexico: Instituto Tecnológico de San Luis Potosí.Asociación
Mexicana de Mecatrónica. p. 104-109
13
SHABANA, Ahmed. Computacional dynamics. John Wiley & Sons. 200.p.1-9
6.1.6. Proyectos relacionados
Debido a la importancia de desarrollar herramientas que faciliten la comprensión y
el diseño de robots, diferentes comunidades académicas han realizado proyectos
similares, por lo que se realizara una breve descripción de estos.
14
CIEZA, Óscar. Implementación de una estación de trabajo mediante un robot serial de 3 grados de libertad para el
CETAM. Lima. Pontificia Universidad Católica del Perú. Facultad de ciencias e ingeniería. 2011 p 9
15
RODRÍGUEZ, Carlos. Diseño de un robot antropomórfico de propósito general. Pereira. Universidad Tecnológica de
Pereira. Facultad de Ingeniería. Departamento de Ingeniería Mecatrónica, 2013. p 5
16
MÁRQUEZ, Alfredo, PEÑA, Cesar, HERNÁNDEZ, Javier. Avances en el desarrollo de un prototipo de robot asistencial
para personas con limitaciones de movilidad. Ingenio Magno. Abril, 2013. vol 4, p. 53-60.
PASSIVITY ANALYSIS AND MODELING OF ROBOTIC ARMS: Este
artículo es presenta una modificación del modelo matemático Euler-
Lagrange, en este modelo no se recurre a tensores de inercia ni al
Jacobiano de la estructura17.
6.2.1. Robótica
La realización de las tareas de un robot implican el movimiento espacial de sus
componentes, por tal razón es importante identificar la posición, orientación y
velocidades para obtener el resultado esperado. Conociendo ésta necesidad se
han desarrollado una variedad de herramientas matemáticas que buscan
representar la dinámica y el comportamiento general de este tipo de máquinas.
6.2.2. Cinemática
La cinemática de un manipulador mecánico conlleva un estudio analítico de la
geometría del movimiento de un robot en el espacio con respecto a un sistema
coordenado fijo como una función del tiempo sin considerar las fuerzas y
momentos que originaron el movimiento.
17
RUBIO, BRAVO, PACHECO, AGUILAR. Passivity analysis and modeling of robotic arms. En: IEEE LATIN AMERICA
TRANSACTIONS. Diciembre, 2014. vol. 12, no. 8. p. 1381-1389
18
FU, K; GONZALEZ, R; LEE, C. Robótica: control, detección, visión e inteligencia. Mc Graw-Hill. 1998. p. 6-7
6.2.2.2. Transformaciones homogéneas
La transformación homogénea es una herramienta matemática ampliamente
utilizada en robótica, aplicaciones graficas desarrolladas por ordenador, entre
otras. Una transformación homogénea describe la traslación y rotación de un
ente geométrico en una matriz. Lo que permite realizar una representación
de la cinemática del robot.
[ ] [ ] [ ]
[ ]
[ ]
Figura 1 Parámetros D-H eslabón giratorio. Fuente: BARRIENTOS, Antonio. Fundamentos de robótica
19
REYES,fernando. Matlab: aplicado a robotica y mecatronica. México: Alfaomega 2012
20
CRAIG, John. Robótica. México: Pearson Educación. 2006. p. 68-69
21
FU; GONZALEZ; LEE. Op. Cit., p.7
6.2.3. Estática
Un robot al igual que cualquier sistema mecánico está sometido a fuerzas y
momentos que son propagados de un eslabón al siguiente, por lo cual es de
interés conocer las magnitudes necesarias para mantener el sistema en equilibrio
estático.
6.2.4. Dinámica
La finalidad de un robot es realizar diferentes movimientos que son determinados
por una trayectoria, al realizarlos la maquina se somete a unas fuerzas y
momentos. Al realizar un modelamiento dinámico del robot se pueden obtener
parámetros necesarios para el dimensionamiento de los actuadores y la
estructura, se pueden evaluar estrategias de control y se puede realizar una
simulación por ordenador que describa el comportamiento de la maquina en
determinadas condiciones23.
22
CRAIG. Op. Cit., p.153-156
23
TSAI. Op. Cit., p.372-374
24
TSAI. Op. Cit., p. 9-11
∑
6.3.2. Articulaciones
Los robots desde un punto de vista mecánico son conjuntos de cuerpos que están
conectados mediante una cadena de articulaciones, el número de grados de
libertad dependerá del número de eslabones y el tipo de articulaciones que sea
usado en la construcción25 .Estas tienen gran incidencia en el comportamiento del
manipulador y la combinación de estas permite crear diferentes estructuras.
Una junta proporciona restricciones físicas al movimiento relativo entre los dos
eslabones. El tipo de movimiento relativo que tenga la junta dependerá de la forma
de las superficies de contacto entre los miembros. La superficie de contacto de
contacto el llamado elemento par y dos elementos forman un par cinemático.
Rotacional (R), permite a dos elementos pares rotar uno con respecto al otro
sobre un eje que ha sido definido por la geometría.
Prismática (P), permite a dos elementos pares deslizar uno con respecto al
otro a través de un eje definido por la geometría.
Helicoidal (H), permite a dos elementos pares trasladarse y rotar a través de
un eje definido por la geometría.
Esférica (S), permite a un elemento rotar libremente uno con respecto a otro
sobre el centro de una esfera en todas las posibles orientaciones.
25
Ibíd., p. 6-7
26
Ibíd., p. 6-7
Plana (E), permite dos grados de libertad en la traslación y rotación con
respecto al eje normal a la superficie.
6.3.3. Matlab
Es un software matemático propiedad de Mathworks, que fue diseñado por Cleve
Moler en 1984, la finalidad era desarrollar subrutinas en fortran que permitieran
realizar operaciones matriciales fácilmente, creando un laboratorio de matrices.
Posteriormente este introdujo su propio lenguaje de programación y entorno de
desarrollo permitiendo la creación de programas con énfasis científico.
6.3.4. Robot Scara
Este tipo de robot industrial es un brazo planar antropomórfico de dos
articulaciones rotacionales y adicionalmente cuenta con una junta prismática, es
utilizado en el ensamble de pequeños objetos.
Objetivo 1 Objetivo 2
•Selecionar un metodo que permita identificar los •Recopilación de información sobre robótica,
requerimientos de la estructura robotica consultar bibliografía especializada, libros y
•Escoger una alternativa que cumpla con los artículos.
requerimientos anteriores •Identificar los procedimientos cinemáticos,
•Identificar los parámetros geometricos y fisicos estáticos y dinámicos que están involucrados en
indispensables para realizar el analisis. el análisis del robot.
•Generar modelo 3D mediante el uso de •Comprender y utilizar las herramientas
programas CAD para su posterior importación en matemáticas propuestas en la literatura
el software Matlab. especializada.
Objetivo 3 Objetivo 4
•Diseñar un script que permita calcular la •Seleccionar un método de identificacion de
cinemática de la estructura. requerimientos de la interfaz gráfica en Matlab
•Elaborar un script capaz de calcular las (GUI)
trayectorias de cada eslabón del robot serial. •Crear una interfaz que integre los scripts en
•Desarrollar scripts capaces de calcular las fuerzas Matlab realizados anteriormente
y torques producidas en la estática y la dinámica. •Simular las estuctura y analizar su
comportamiento al seguir una trayectoria
27
CROSS, Nigel. Métodos de diseño. estrategias para el diseño de productos. México D.F.: Ed. Limusa, 1999. 10 – 12p.
Numero grados de
3GDL
libertad
Eslabones ligeros
Propiedades de los
Estructura robotica Estructura compacta
eslabones
Materiales comerciales
Educativa
Simulación de una
trayectoria
Diagrama 3 Árbol de objetivos del robot simulado. Fuente: Autores del proyecto
Una vez establecidos los objetivos básicos que debía cumplir la estructura, era
necesario generar alternativas que permitieran ampliar la búsqueda de soluciones
potenciales y posteriormente definir una para que sea simulada.
Transmisión de
Alternativas Actuadores Materiales
potencia
Robot 1 Servomotor Conexión directa Aluminio
Transmisión por
Robot 2 Servomotor Aluminio
eslabones
Transmisión por
Robot 3 Servomotor Aluminio
poleas
Robot 4 Servomotor Conexión directa Acrílico
Transmisión por
Robot 5 Servomotor Acrílico
eslabones
Transmisión por
Robot 6 Servomotor Acrílico
poleas
Valor Calificación
1 Deficiente
2 Mala
3 Regular
4 Buena
5 Muy buena
La alternativa de diseño del robot 6 obtuvo el mayor valor de utilidad, por lo tanto
la estructura debe estar diseñada utilizando servomotores, trasmisión por poleas y
acrílico como material principal. Los servomotores son elementos pequeños,
livianos y potentes, por lo que son aptos para el diseño, la transmisión por poleas
evita que existan actuadores en cada eslabón, reduciendo la masa y
disminuyendo la inercia del cuerpo y por último el acrílico es un material resistente,
tiene baja densidad y fácil de maquinar.
Figura 5 Diseño básico de la estructura. Fuente: Autores del proyecto
Con base en los diagramas y métodos que se han descrito, se tiene un modelo
digital que cumple con las características que se han establecido. Este
posteriormente será utilizado para generar los archivos STL y se pueden extraer
los datos necesarios para la simulación.
1 0
2 0 0
3 0 0
Tabla 7 Tabla Denavit – Hartenberg para el robot 3 gdl. Fuente: Autores del proyecto
[ ]
[ ]
[ ]
Para obtener la matriz del el efector final con respecto al origen del robot se
multiplican las matrices anteriores
28
TSAI. Op. Cit., p. 56-64
6.4.3.3. Análisis cinemático inverso
El análisis cinemático inverso es indispensable porque permite calcular los
ángulos que debe tener cada eslabón para alcanzar una posición objetivo,
este análisis se realizó utilizando herramientas trigonométricas.
[ ]
( )
Con la finalidad de obtener los ángulos faltantes se toma una visa lateral y se
calculan las distancias y
√
Figura 7 Análisis cinemático, plano normal al eje Z1. Fuente: Autores del proyecto
En donde
Por lo tanto el ángulo se calcularía con la siguiente
[ ][ ] [ ]
Determinante de la matriz
| |
| |
| |
| |
Pero para obtener una única solución que corresponda a se usa la
función
29
TSAI. Op. Cit., p. 264-268
30
CRAIG. Op. Cit., p. 153-156
31
CRAIG. Op. Cit., p. 203-205
( )
( )
Estas condiciones restringen el movimiento para que sea fluido y alcance con
las posiciones en el tiempo estipulado. Además la trayectoria se convierte en
un parámetro importante a la hora de evaluar la dinámica un sistema por el
método de Newton-Euler. Como resultado se obtiene un perfil para cada
junta, en donde se describe de forma matemática y gráfica el
comportamiento cinemático que debe seguir cada actuador para seguir una
trayectoria.
[ ]
[ ]
32
TSAI. Op. Cit., p. 372
33
TSAI. Op. Cit., p. 383-394
Vector de posición del centro de masa
[ ]
[ ]
( ̇)
̇ ̇ ̈ ̇
̇ ( ̇ ̈ ̇)
̇ ̇ ̇
̇ ̇ ̇ ( )
̇ ̇ ̇ ( )
̇ ( )
( )
34
TSAI. Op. Cit., p. 383-394
6.4.4. Desarrollo objetivo 3
6.4.4.3. Trayectoria
El siguiente diagrama de flujo indica el procedimiento que se lleva a cabo para
calcular los perfiles de posición, velocidad y aceleración angular en función de
un tiempo, por lo que dentro de los parámetros de entrada se contempla el
tiempo de ejecución ( ), el periodo de muestreo (T), posición inicial ( )
y final ( ).
Diagrama 6 Diagrama de flujo de la trayectoria. Fuente: Autores del proyecto
6.4.4.4. Estática
Al igual que los fenómenos anteriores es un proceso iterativo, el cual se
empieza a describir desde el eslabón final a la base, teniendo en cuanta la
posición, fuerzas y momentos generados en el efector final; calculados en el
diagrama siguiente:
6.4.4.5. Dinámica
Al igual que la estática este es un proceso iterativo, aunque tiene un grado
de dificultad adicional, puesto que este procedimiento debe ser calculado en
función de la posición y del tiempo, requiriendo de una trayectoria para su
implementación.
Este procedimiento en primer lugar requiere serie de cálculos realizados de
la base al eslabón final, dinámica directa, y en segundo lugar requiere de
unos computar el comportamiento del eslabón final a la base, dinámica
inversa. Adicionalmente en ambos casos se debe evaluar con respecto al
tiempo.
Dinámica
Estática
Procedimientos
Directa
matemáticos
Cinematica
Inversa
Trayectoria
Centro de masa
Centro de rotación
Configuración
Interfaz grafica
Eje de rotación
Fuerza y momento
aplicado
Velocidades
Aceleraciones
Una vez identificados los requerimientos del programa, se hace necesario asignar
las tareas, por lo cual se pensó en utilizar varias interfaces, la interfaz principal que
recibe y envía la información de interfaces auxiliares.
•Calcula los modelos matematicos
•Cinemática
Dinámica
Interfaz principal
Estática
Trayectoria
•Animación
•Mostrar resultados
•Dinamica
Interfaz figure Cinematica
Perfiles de movimiento
Fuerzas
Momentos
Figura 9 Interfaz gráfica Propiedades del eslabón. Fuente: Autores del proyecto
LEY 23 DE 1982, Esta trata las temáticas sobre Derechos de Autor. Tiene
artículos referentes a los derechos sobre la propiedad intelectual en Colombia,
además de hacer referencia a las reglamentaciones en el campo de software.
NTC 1914 - NTC 1594, Normas colombianas referentes al dibujo técnico en las
cuales constan las especificaciones para la realización de planos en ingeniería
Una vez cumplidos los objetivos y teniendo una estructura con una características
geométricas y físicas definidas, es posible desarrollar la simulación; en la siguiente
tabla se presentan los características de cada eslabón, dentro de las que se
encuentran la masa, ubicación del centro de masa con respecto al sistema
coordenado de referencia de cada eslabón y la matriz de inercia con respecto al
centro de masa de cada eslabón.
ESLABÓN 1
Masa (kg)
Centro de
[ ]
masa (m)
Matriz de
inercia [ ]
2
(kg.m )
ESLABÓN 2
Masa (kg)
Centro de
[ ]
masa (m)
Matriz de
inercia [ ]
(kg.m2)
ESLABÓN 3
Masa (kg)
Centro de
[ ]
masa (m)
Matriz de
inercia [ ]
(kg.m2)
Al igual de que las fuerzas, los momentos que se producen en cada junta se
representan en una tabla, en la cual se indica cómo se propagan estos efectos por
la estructura.
Eslabón Torque (N.m)
1 0
2 0.5651
3 0.2022
Tabla 10 Resultados del toque de cada actuador posición 1. Fuente: Autores del proyecto
Tabla 11 Resultados del torque de cada actuador posición 2. Fuente: Autores del proyecto
Por último se presenta el torque que debe tener el actuador de cada eslabón, para
que el este pueda permanecer en esa posición objetivo cuando se aplican fuerzas
y momentos en la estructura.
En ambos casos las fuerzas resultantes en cada junta son iguales, debido a que la
sumatoria de fuerzas no involucra la posición objetivo, esta sólo depende de las
magnitudes y direcciones de los parámetros de entrada. Por el contrario los
momentos en cada junta y los torques que debe tener cada eslabón si son
dependientes de la posición que tiene el robot, por lo tanto los resultados son
diferentes.
Figura 17 Velocidad angular con respecto a la base Fuente: Autores del proyecto
Figura 19 Aceleración angular con respecto a la base Fuente: Autores del proyecto
Otro aspecto que se debe tener en cuenta es la independencia que tiene la
ubicación del sistema de referencia con comportamiento lineal sin afectar la
magnitud de los resultados.
Figura 20 Aceleración angular con respecto al eslabón. Fuente: Autores del proyecto
Figura 22 Velocidad lineal con respecto al eslabón. Fuente: Autores del proyecto
7.2.5. Propagación de la aceleración
Al igual que en el caso de la velocidad lineal, las gráficas de la aceleración para
cada cuerpo varían de acuerdo al sistema de coordenadas de referencia, pero
esto no significa que exista cambio alguno en su magnitud o en la forma como se
mueve el robot, únicamente cambia la manera de evaluación, lo que quiere decir
que se descompondrá en sus componentes básico, de acuerdo al sistema de
referencia.
Figura 23 Aceleración lineal con respecto a la base. Fuente: Autores del proyecto
Figura 24 Aceleración con respecto al eslabón. Fuente: Autores del proyecto
35
HIBBELER, Russell. Engineering mechanics Statics. New Jersey: Pearson Prentice Hall, 2010. 117 p.
Figura 28 Momento de inercia. Fuente: Autores del proyecto
7.4. Logros
Creación de scripts que pueden ser utilizados como base en las
simulaciones de otros robots seriales, estos archivos permiten calcular la
cinemática directa, la dinámica y la estática respectivamente en futuros
proyectos.
Diseño de una interfaz que permite simular un robot de tres grados de
libertad con juntas rotacional, sin importar la forma de sus eslabones ni su
tamaño, debido a que permite importar cualquier archivo STL en formato
binario.
Visualizar el movimiento robot a pesar de que no realiza esta tarea en
tiempo real, pero esta herramienta puede utilizarse de base para el
desarrollo de herramientas con mayores capacidades, que permitan simular
en tiempo real su comportamiento, además de poderse utilizar
conjuntamente con un prototipo y obtener información adicional.
7.3. Trabajos futuros.
ARACIL, Rafael. Robots paralelos: Máquinas con un pasado para una robótica del
futuro. En: Revista iberoamericana de automática e informática industrial, Enero,
2006, vol. 3, no. 1, p.16-24.
LIM, Wee Kiat. Kinematic Analysis and Calibration of Modular Parallel Robots.
Trabajo de grado Master engineeing. Singapur: University. School of Mechanical
and Production Engineering, 2000, p. 1-4.
SHABANA, Ahmed. Computacional dynamics. John Wiley & Sons. 200. p.1-9
REYES, Fernando. Robótica: control de robots manipuladores. México:
Alfaomega, 2011. P. 203-245.
clc,clear
%% Matrices de rotación
% % Matriz de rotación de 0 a 1
R01 = [cos(t1) 0 sin(t1);
sin(t1) 0 -cos(t1);
0 1 0];
% Matriz de rotación de 1 a 2
R12 = [cos(t2) -sin(t2) 0;
sin(t2) cos(t2) 0;
0 0 1];
% Matriz de rotación de 2 a 3
R23 = [cos(t3) -sin(t3) 0;
sin(t3) cos(t3) 0;
0 0 1];
% Matriz de rotación de 0 a 2
R02 = R01*R12;
% Matriz de rotación de 0 a 3
R03 = R01*R12*R23;
%% Vectores de posición
%% Condiciones iniciales
% Gravedad
g0 = [0;0;-g];
%% Cálculos eslabón 3
% Calcular fuerza
f32 = f43 - m3*g0;
% Calcular momento
n32 = n43 + cross(r3,f32) - cross(rc3,m3*g0);
% Mostrar resultados
disp('f_3,2 = ');pretty(f32);
disp('n_3,2 = ');pretty(n32);
%% Cálculos eslabón 2
% Calcular fuerza
f21 = f32 - m1*g0;
% Calcular momento
n21 = n32 + cross(r2,f21) - cross(rc2,m2*g0);
% Mostrar resultados
disp('f_2,1 = ');pretty(f21);
disp('n_2,1 = ');pretty(n21);
%% Cálculos eslabón 1
% Calcular fuerza
f10 = f21 - m1*g0;
% Calcular momento
n10 = n21 + cross(r2,f10) - cross(rc1,m1*g0);
% Mostrar resultados
disp('f_1,0 = ');pretty(f10);
disp('n_1,0 = ');pretty(f10);
9.2. Anexo 2: Dinámica simbólica robot 3 GDL
clc,clear
syms t1 t2 t3 t1p t2p t3p t1pp t2pp t3pp d1 a1 a2 rcy1 rcx2 rcx3 ...
m1 m2 m3 fx fy fz nx ny nz g
%% Matrices de rotación
% % Matriz de rotación de 0 a 1
R01 = [cos(t1) 0 sin(t1);
sin(t1) 0 -cos(t1);
0 1 0];
% Matriz de rotación de 1 a 2
R12 = [cos(t2) -sin(t2) 0;
sin(t2) cos(t2) 0;
0 0 1];
% Matriz de rotación de 2 a 3
R23 = [cos(t3) -sin(t3) 0;
sin(t3) cos(t3) 0;
0 0 1];
% Matriz de rotación de 0 a 2
R02 = R01*R12;
% Matriz de rotación de 0 a 3
R03 = R01*R12*R23;
% Matriz inversa de 1 a 0
R10 = [cos(t1) sin(t1) 0;
0 0 1;
sin(t1) -cos(t1) 0];
% Matriz inversa de 2 a 1
R21 = [ cos(t2) sin(t2) 0;
-sin(t2) cos(t2) 0;
0 0 1];
% Matriz inversa de 3 a 2
R32 = [ cos(t3) sin(t3) 0;
-sin(t3) cos(t3) 0;
0 0 1];
%% Vectores de posición
%% Matrices de inercia
%% Condiciones iniciales
% Gravedad
g0 = [0;0;-g];
g1 = R10*g0;
g2 = R21*g1;
g3 = R32*g2;
%% Cálculos eslabón 1
% Mostrar resultados
disp('w1 = ');pretty(w1); disp('w11 = ');pretty(w11);
disp('w1p = ');pretty(w1p); disp('w11p = ');pretty(w11p);
disp('v1 = ');pretty(v1); disp('v11 = ');pretty(v11);
disp('v1p = ');pretty(v1p); disp('v11p = ');pretty(v11p);
disp('vc11p = ');pretty(vc11p);
%% Cálculos eslabón 2
% Mostrar resultados
disp('w2 = ');pretty(w2); disp('w22 = ');pretty(w22);
disp('w2p = ');pretty(w2p); disp('w22p = ');pretty(w22p);
disp('v2 = ');pretty(v2); disp('v22 = ');pretty(v22);
disp('v2p = ');pretty(v2p); disp('v22p = ');pretty(v22p);
disp('vc22p = ');pretty(vc22p);
%% Cálculos eslabón 3
% Mostrar resultados
disp('w2 = ');pretty(w3); disp('w22 = ');pretty(w33);
disp('w2p = ');pretty(w3p); disp('w22p = ');pretty(w33p);
disp('v2 = ');pretty(v3); disp('v22 = ');pretty(v33);
disp('v2p = ');pretty(v3p); disp('v22p = ');pretty(v33p);
disp('vc22p = ');pretty(vc33p);
%% Fuerzas y momentos
%% Sumatoria de fuerzas
disp('F232 = ');pretty(F232);
disp('F121 = ');pretty(F121);
disp('F010 = ');pretty(F010);
%% Sumatoria de momentos
disp('n232 = ');pretty(n232);
disp('n121 = ');pretty(n121);
disp('n010 = ');pretty(n010);
9.3. Anexo 3: Script para el cálculo de la trayectoria
% Calcular coeficientes
a0 = thi;
a1 = 0;
a2 = 3*(thf-thi)/tf^2;
a3 = -2*(thf-thi)/tf^3;
for t = 0 : periodo : tf
% Calculo de la posición en función del tiempo
th = a0 + a1*t + a2*t^2 + a3*t^3;
c = round(t/periodo+1);
a(c,:) = [th thp th2p];
end
9.4. Anexo 4: Script para el cálculo de la matriz de rotación
c = cosd(angulo);
s = sind(angulo);
switch eje
case 'x'
R = [1 0 0;0 c -s;0 s c];
case 'y'
R = [c 0 -s;0 1 0;s 0 c];
case 'z'
R = [c -s 0;s c 0;0 0 1];
end
9.5. Anexo 5: Script para el cálculo de la cinemática directa
% Parametros iniciales
Pz1 = pObj(3) - DH(1,2);
Px1 = sqrt((pObj(1))^2 + (pObj(2))^2);
L1 = DH(2,1);
L2 = DH(3,1);
% Discriminante
K = (Px1^2 + Pz1^2 -L1^2 -L2^2)/(2*L1*L2);
if abs(K)<=1
% Calculo del angulo th3
t3 = modo*acosd(K);
% Calculo del angulo th2
B = [L1+(L2*cosd(t3)), -L2*sind(t3);
L2*sind(t3), L1+(L2*cosd(t3))];
P = [Px1;Pz1];
tp = (B\P)*pi/180;
t2 = 180*atan2(tp(2,1),tp(1,1))/pi ;
else
errordlg('No puedo llegar a la posición especificada','Error');
end
9.7. Anexo 7: Script para el cálculo de la estática
% Condiciones iniciales
f = zeros(3,4);
n = zeros(3,4);
f(:,4) = fe;
n(:,4) = ne;
g = [0;0;-9.8];
for e = 3 : -1 : 1
% Matriz de rotación (0)R(i-1)
r1 = R(1:3,(3*e)-2:3*e);
% Matriz de rotación (0)R(i)
r2 = R(1:3,(3*e)+1:(3*e)+3);
% Vector z(i-1)
z = r1*[0;0;1];
% Vector posición (i)r(i)
iri = [DH(e,1);DH(e,2)*sind(DH(e,3));DH(e,2)*cosd(DH(e,3))];
% Vector posición r(i)
ri = r2*iri;
% Vector posición (i)rc(i)
irci = cM(:,:,e);
% Vector posición rc(i)
rci = r2*irci;
% Calcular fuerza f(i)
f(:,e) = f(:,e+1) - m(e)*g;
% Calcular momentos m(i)
n(:,e) = n(:,e+1) + cross(ri,f(:,e)) - cross(rci,m(e)*g);
t(:,e) = z'*n(:,e);
end
9.8. Anexo 8: Script para el cálculo de la dinámica
% Gravedad
g(1:3,:,1) = zeros(3,a);
g(3,1:a,1) = -9.8*ones(1,a);
% Fuerza Aplicada
fx = Fa(1);
fy = Fa(2);
fz = Fa(3);
% Momento Aplicado
nx = Ma(1);
ny = Ma(2);
nz = Ma(3);
% Dinámica Directa
for e = 1 : 3
for i = 1 : a
% Matriz de rotación del (0)R(i-1)
r1 = R(1:3,3*e-2:3*e,i);
% Matriz de rotación del (0)R(i)
r2 = R(1:3,3*(e+1)-2:3*(e+1),i);
% Matriz de rotacion (i-1)R(i)
re = Re(1:3,3*e-2:3*e,i);
% Matriz (i)R(i-1)
Ri = inv(re);
% Eje Z(i-1)
Z = r1*[0;0;1];
% Eje (i)Z(i)
iZi = [0;0;1];
% Vector posicion (i)r(i)
iri = [DH(e,1);DH(e,2)*sind(DH(e,3));DH(e,2)*cosd(DH(e,3))];
% Vector posicion r(i)
ri = r2*iri;
% Vector posicion (i)rc(i)
irci = cM(:,:,e);
% Velocidad angular de cada junta thp(i), tomada del perfil de
cada eslabón
tpi = thp(i,e);
% Aceleracion angular de cada junta thpp(i), tomada del perfil de
cada eslabón
tppi = thpp(i,e);
% Calculo del vector de velocidad angular w(i)
wi(1:3,i,e+1) = wi(1:3,i,e) + Z*tpi;
% Calculo del vector de velocidad angular (i)w(i)
iwi(1:3,i,e+1) = Ri*(iwi(1:3,i,e) + iZi*tpi);
% Calculo del vector de velocidad angular w(i)
wpi(1:3,i,e+1) = wpi(1:3,i,e) + Z*tppi +
cross(wi(1:3,i,e),Z*tpi);
% Calculo del vector de velocidad angular (i)w(i)
iwpi(1:3,i,e+1) = Ri*(iwpi(1:3,i,e) + iZi*tppi...
+ cross(iwi(1:3,i,e),iZi*tpi));
% Calculo del vector de velocidad lineal v(i)
vi(1:3,i,e+1) = vi(1:3,i,e) + cross(wi(1:3,i,e+1),ri);
% Calculo del vector de velocidad lineal (i)v(i)
ivi(1:3,i,e+1) = Ri*ivi(1:3,i,e) + cross(iwi(1:3,i,e+1),iri);
% Calculo del vector de aceleracion lineal vp(i)
vpi(1:3,i,e+1) = vpi(1:3,i,e) + cross(wpi(1:3,i,e+1),ri)...
+ cross(wi(1:3,i,e+1),cross(wi(1:3,i,e+1),ri));
% Calculo del vector de aceleracion lineal (i)vp(i)
ivpi(1:3,i,e+1) = Ri*ivpi(1:3,i,e) +
cross(iwpi(1:3,i,e+1),iri)...
+
cross(iwi(1:3,i,e+1),cross(iwi(1:3,i,e+1),iri));
% Calculo del vector de aceleracion lineal del centro de masa
(i)vpc(i)
ivpci(1:3,i,e) = ivpi(1:3,i,e+1) + cross(iwpi(1:3,i,e+1),irci)...
+
cross(iwi(1:3,i,e+1),cross(iwi(1:3,i,e+1),irci));
% Gravedad
g(1:3,i,e+1) = Ri*g(1:3,i,e);
% Fuerza de inercia
Fin(1:3,i,e) = -m(e)*ivpci(1:3,i,e);
% Momento de inercia
Nin(1:3,i,e) = iIi(:,:,e)*iwpi(1:3,i,e+1) ...
- cross(iwi(1:3,i,e+1),iIi(:,:,e)*iwi(1:3,i,e));
end
end
% Dinamica Inversa
for e = 3 : -1 : 1
for i = 1 : a
% Matriz de rotacion (i-1)R(i)
re = Re(1:3,3*e-2:3*e,i);
% Vector posicion (i)rc(i)
irci = cM(:,:,e);
% Vector posicion (i)r(i)
iri = [DH(e,1);DH(e,2)*sind(DH(e,3));DH(e,2)*cosd(DH(e,3))];
% Balance de fuerzas de la junta i
fi(1:3,i,e) = ifi(1:3,i,e+1) -m(e)*g(1:3,i,e+1) -Fin(1:3,i,e);
ifi(1:3,i,e) = re*fi(1:3,i,e);
% Balance de momentos de la junta i
ni(1:3,i,e) = ini(1:3,i,e+1) + cross(iri+irci,fi(1:3,i,e)) ...
- cross(irci,ifi(1:3,i,e+1)) - Nin(1:3,i,e);
ini(1:3,i,e) = re*ni(1:3,i,e);
end
end