Está en la página 1de 89

FACULTAD DE INGENIERÍA

INGENIERÍA MECÁNICA
PROYECTO DE GRADO

ESTUDIANTE: Camilo Andrés Rodríguez Higuera


CÓDIGO: 065091040
TELÉFONO: 312 532 3765
CORREO ELECTRÓNICO: camilo.rodriguezh@unilibrebog.edu.co

ESTUDIANTE: Eudes José Escobar Mafud


CÓDIGO: 065091028
TELÉFONO: 310 671 3680
CORREO ELECTRÓNICO: eudesj.escobarm@unilibrebog.edu.co

SIMULACIÓN DE UN ROBOT SERIAL DE 3 GRADOS DE LIBERTAD


UTILIZANDO EL SOFTWARE MATLAB®

DIRECTOR: Mauricio Vladimir Peña Giraldo


PROFESIÓN: Ingeniero Mecánico
CORREO ELECTRÓNICO: mauriciov.penag@unilibrebog.edu.co

______________________ ______________________
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

LISTA DE DIAGRAMAS .......................................................................................... 6


LISTA DE TABLAS .................................................................................................. 7
LISTA DE FIGURAS ............................................................................................... 8
1. INTRODUCCIÓN ............................................................................................ 10
2. PLANTEAMIENTO DEL PROBLEMA ............................................................. 11
2.1. Descripción del problema ......................................................................... 11
2.2. Formulación ............................................................................................. 12
3. JUSTIFICACIÓN ............................................................................................. 13
4. OBJETIVOS.................................................................................................... 14
4.1. Objetivo general ....................................................................................... 14
4.2. Objetivos específicos ............................................................................... 14
5. DELIMITACIÓN .............................................................................................. 15
6. MARCO REFERENCIAL ................................................................................ 16
6.1. ESTADO DEL ARTE ................................................................................ 16
6.1.1. Robótica Serial .................................................................................. 17
6.1.2. Ventajas y desventajas ...................................................................... 18
6.1.3. Campos de estudio ............................................................................ 18
6.1.4. Simulación ......................................................................................... 19
6.1.5. Simulación dinámica .......................................................................... 19
6.1.6. Proyectos relacionados ..................................................................... 20
6.2. MARCO TEORICO................................................................................... 21
6.2.1. Robótica ............................................................................................ 21
6.2.2. Cinemática ......................................................................................... 21
6.2.3. Estática .............................................................................................. 24
6.2.4. Dinámica ............................................................................................ 24
6.3. MARCO CONCEPTUAL .......................................................................... 24
6.3.1. Grados de libertad ............................................................................. 24
6.3.2. Articulaciones .................................................................................... 25
6.3.3. Matlab ................................................................................................ 26
6.3.4. Robot Scara ....................................................................................... 26
6.3.5. Robot Famulus .................................................................................. 26
6.3.6. Robot Puma ....................................................................................... 27
6.4. MARCO METODOLÓGICO ..................................................................... 27
6.4.1. Descripción del diseño Metodológico ................................................ 27
6.4.2. Desarrollo objetivo 1 .......................................................................... 28
6.4.3. Desarrollo objetivo 2 .......................................................................... 33
6.4.4. Desarrollo objetivo 3 .......................................................................... 44
6.4.5. Desarrollo objetivo 4 .......................................................................... 50
6.5. MARCO LEGAL ....................................................................................... 54
7. RESULTADOS Y DISCUSIÓN ....................................................................... 55
7.1. Análisis estático ....................................................................................... 56
7.2. Análisis dinámico ..................................................................................... 58
7.2.1. Perfiles del movimiento ...................................................................... 59
7.2.2. Propagación de la Velocidad angular ................................................ 60
7.2.3. Propagación de la aceleración angular .............................................. 61
7.2.4. Propagación de la velocidad lineal .................................................... 62
7.2.5. Propagación de la aceleración........................................................... 64
7.2.6. Aceleración del centro de masa......................................................... 65
7.2.7. Fuerzas dinámicas............................................................................. 66
7.2.8. Momentos dinámicos ......................................................................... 67
7.3. Conclusiones ............................................................................................ 69
7.4. Logros ...................................................................................................... 69
8. BIBLIOGRAFIA ............................................................................................... 71
9. ANEXOS ......................................................................................................... 74
9.1. Anexo 1: Estática simbólica robot 3 GDL ................................................. 74
9.2. Anexo 2: Dinámica simbólica robot 3 GDL ............................................... 77
9.3. Anexo 3: Script para el cálculo de la trayectoria ...................................... 82
9.4. Anexo 4: Script para el cálculo de la matriz de rotación ........................... 83
9.5. Anexo 5: Script para el cálculo de la cinemática directa .......................... 84
9.6. Anexo 6: Script para el cálculo de la cinemática inversa.......................... 85
9.7. Anexo 7: Script para el cálculo de la estática ........................................... 86
9.8. Anexo 8: Script para el cálculo de la dinámica ......................................... 87
LISTA DE DIAGRAMAS

Diagrama 1 Tipo de investigación. Fuente: Autores del proyecto ......................... 28


Diagrama 2 Diseño metodológico del proyecto. Fuente: Autores del proyecto ..... 28
Diagrama 3 Árbol de objetivos del robot simulado. Fuente: Autores del proyecto 30
Diagrama 4 Diagrama de flujo de la cinemática Inversa. Fuente: Autores del
proyecto ................................................................................................................ 45
Diagrama 5 Diagrama de flujo de la cinemática directa. Fuente: Autores del
proyecto ................................................................................................................ 46
Diagrama 6 Diagrama de flujo de la trayectoria. Fuente: Autores del proyecto .... 47
Diagrama 7 Diagrama de flujo de la estática. Fuente: Autores del proyecto ......... 48
Diagrama 8 Diagrama de flujo de la dinámica. Fuente: Autores del proyecto ....... 49
Diagrama 9 Árbol de objetivos interfaz gráfica. Fuente: Autores del proyecto ...... 50
Diagrama 10 Tareas de cada interfaz. Fuente: Autores del proyecto ................... 51
LISTA DE TABLAS

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

Figura 1 Parámetros D-H eslabón giratorio. Fuente: BARRIENTOS, Antonio.


Fundamentos de robotica ...................................................................................... 23
Figura 2 Robot serial SCARA. Fuente: Kuka Robots group. http://www.kuka-
robotics.com/es/products/industrial_robots/special/scara_robots/kr5_scara_r550/st
art.html .................................................................................................................. 26
Figura 3 Robot Famulus. Fuente: Kuka Robot group. http://www.kuka-
robotics.com/fi/company/group/milestones/1973.html ........................................... 27
Figura 4 Robot puma. Fuente: prsrobots. http://www.prsrobots.com/puma500.html
.............................................................................................................................. 27
Figura 5 Diseño básico de la estructura. Fuente: Autores del proyecto ................ 33
Figura 6 Análisis cinemático, Vista superior. Fuente: Autores del proyecto .......... 36
Figura 7 Análisis cinemático, plano normal al eje Z1. Fuente: Autores del proyecto
.............................................................................................................................. 37
Figura 8 Interfaz SimuladorRobot. Fuente: Autores del proyecto .......................... 52
Figura 9 Interfaz gráfica Propiedades del eslabón. Fuente: Autores del proyecto 53
Figura 10 Resultados fuerzas estáticas posición 1. Fuente: Autores del proyecto 56
Figura 11 Resultados fuerzas estáticas posición 2. Fuente: Autores del proyecto 56
Figura 12 Resultados momento estático posición 1. Fuente: Autores del proyecto
.............................................................................................................................. 57
Figura 13 Resultados momento estático posición 2. Fuente: Autores del proyecto
.............................................................................................................................. 57
Figura 14 Perfiles del movimiento. Fuente: Autores del proyecto ......................... 59
Figura 15 Velocidad angular con respecto a la base Fuente: Autores del proyecto
.............................................................................................................................. 60
Figura 16 Velocidad angular con respecto al eslabón. Fuente: Autores del proyecto
.............................................................................................................................. 61
Figura 17 Aceleración angular con respecto a la base Fuente: Autores del proyecto
.............................................................................................................................. 61
Figura 18 Aceleración angular con respecto al eslabón. Fuente: Autores del
proyecto ................................................................................................................ 62
Figura 19 Velocidad lineal con respecto a la base. Fuente: Autores del proyecto 63
Figura 20 Velocidad lineal con respecto al eslabón. Fuente: Autores del proyecto
.............................................................................................................................. 63
Figura 21 Aceleración lineal con respecto a la base. Fuente: Autores del proyecto
.............................................................................................................................. 64
Figura 22 Aceleración con respecto al eslabón. Fuente: Autores del proyecto ..... 65
Figura 23 Aceleración centro de masa. Fuente: Autores del proyecto .................. 66
Figura 24 Fuerza de inercia. Fuente: Autores del proyecto ................................... 66
Figura 25 Fuerzas dinámicas. Fuente: Autores de proyecto ................................. 67
Figura 26 Momento de inercia. Fuente: Autores del proyecto ............................... 68
Figura 27 Momento dinámico. Fuente: Autores del proyecto ................................ 68
1. INTRODUCCIÓN

El mundo de la robótica se encuentra en un avance constante, la industria va a


toda marcha y se requieren tecnologías que permitan satisfacer las diferentes
necesidades. Por lo tanto las universidades y empresas en los últimos años
invierten recursos y tiempo para el desarrollo de herramientas que permitan hacer
las cosas de la mejor manera posible.

Este proyecto ha sido desarrollado para proporcionar información importante, que


pueda ser utilizada por estudiantes para la creación de proyectos posteriores
relacionados con la robótica. El tema de estudio ha sido el análisis dinámico que
en la actualidad desempeña un papel significativo, por lo que es una de las
herramientas que tienen los ingenieros y diseñadores a la hora de dimensionar las
estructuras robóticas.

El proyecto solo abarca una de las problemáticas actuales, sin embargo la


investigación que se puede realizar en este campo es amplia y se espera que la
comunidad universitaria tenga una participación activa y propositiva en esta área
del conocimiento y la involucre con otras ramas de la ingeniería.
2. PLANTEAMIENTO DEL PROBLEMA

2.1. Descripción del problema


Los avances tecnológicos han tenido un crecimiento imparable hasta el día de
hoy, se han convertido en un aspecto importante para el desarrollo y crecimiento
de las sociedades actuales, debido a la influencia que ejercen en ámbitos
económicos, políticos, culturales y sociales.

La robótica como disciplina tecnológica se ha encargado de introducir novedosos


conceptos para diferentes sectores como la medicina, la manufactura, el
entretenimiento y la educación. Esta rama del conocimiento ha tenido gran
acogida porque ha permitido solucionar las exigencias tecnológicas actuales con
estructuras móviles capaces de reprogramarse, adecuadas para tareas repetitivas,
precisas, o que requieran esfuerzo. se pueden observar ejemplos de estas en
campos relacionados con la clasificación de productos, operaciones de
mecanizado, soldadura, corte, pintura, inspección y transporte de materiales.

En la actualidad se han desarrollado diferentes tipos de robots, los cuales pueden


ser clasificados en tres grandes familias: La primera es la familia de los robots
Móviles, la segunda son los robots Humanoides y por último los robots
Industriales1, siendo esta ultima la de mayor interés para el proyecto.

Esta breve descripción hace referencia a la importancia que ha adquirido la


robótica, se ha convertido en un tema de interés para las universidades y
empresas, que han invertido sus recursos para el diseño de mejores máquinas.
Para cumplir con este objetivo se requiere evaluar la cinemática y dinámica del
robot, la información obtenida puede ser utilizada en el diseño y dimensionamiento
de la estructura del robot y sus actuadores, adicionalmente puede ser utilizada en
el diseño del control dinámico del robot.

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

Colombia es un país en desarrollo, por esta razón la investigación y la tecnología


en algunos campos se encuentra en vía de desarrollo al compararse con los
países vanguardistas en ciencia y tecnología. Esta situación la describe la revista
Metal Actual en su artículo "Robótica hacia la automatización industrial", donde se
resaltan dos aspectos importantes de la situación colombiana, el primero es el
grave déficit de automatización y en segundo lugar recalca la importancia de la
formación de profesionales en el área de robótica y automatización, con la
finalidad de fortalecer la industria Colombiana.

Por lo anterior, es importante el desarrollo de proyectos cuyos aportes permitan


fortalecer y avanzar en el área de la automatización y la robótica, esto puede
realizarse con desarrollos de diseños conceptuales, simulaciones y prototipos, que
sean tomadas en cuenta para el desarrollo de futuros proyectos por estudiantes de
la universidad.

El desarrollo de una herramienta computacional para la simulación de un robot


serial, busca proporcionar un recurso que esté a disposición de la comunidad
universitaria, para su modificación y contribución, en proyectos relacionados con
el diseño, modelamiento o construcción de robots.
4. OBJETIVOS

4.1. Objetivo general

Simular un robot serial de 3 grados de libertad de juntas rotacionales por medio


del software Matlab®

4.2. Objetivos específicos

 Establecer las características geométricas y parámetros que debe tener el


robot serial.

 Proponer los sistemas de ecuaciones que describen la estática, cinemática y


dinámica con base en los modelos propuestos en la literatura especializada.

 Elaborar funciones en Matlab que permitan calcular la estática, cinemática y


dinámica.

 Elaborar una interfaz gráfica (GUI) en Matlab, que integre las funciones
diseñadas para realizar la simulación.
5. DELIMITACIÓN

El proyecto está encaminado a la simulación de un robot serial de tres grados de


libertad, realizada mediante el software Matlab® que se encuentra a disposición de
la Universidad Libre. Los autores han tenido en cuenta las siguientes
consideraciones, para simplificar y acotar el tema de estudio debido a la
complejidad y para evitar ambigüedades durante su desarrollo.

 La simulación no contempla la evaluación de algún algoritmo de control.


 La simulación tendrá en consideración la cinemática y la dinámica de la
estructura al realizar un movimiento determinado por una trayectoria.
 Matlab será la herramienta computacional utilizada, porque el lenguaje de
programación es sencillo, facilitando el uso de matrices y operaciones
matemáticas necesarias para el análisis del robot, adicionalmente permite
el manejo de objetos gráficos para realizar las animaciones.
6. MARCO REFERENCIAL

6.1. ESTADO DEL ARTE

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.

Posteriormente se produjeron patentes de los primeros dispositivos robóticos y la


incorporación de los primeros dispositivos en la industria, más exactamente en
General Motors, gracias a la empresa Unimation fundada por Joseph
Engelberger5. La robótica fue creciendo e incorporándose en la industria con
facilidad, demostrando la versatilidad y la calidad que podía proporcionar.

La robótica ha crecido en los últimos años, llegando a ser en una herramienta


importante en la educación, la investigación y la fabricación. Es un importante

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.1.1. Robótica Serial


Lu wen Tsai define un robot serial como: “un manipulador de lazo abierto el cual
tiene un estructura cinemática de cadena abierta, constituido por varias uniones
conectadas en serie con varios tipos de juntas, siendo las juntas prismáticas y
rotacionales las más usadas”6.

Los inicios de la robótica serial se remontan al año de 1954, con el primer


desarrollo de un robot reprogramable diseñado por George Devol, posteriormente
su diseño fue implementado por el mismo en General Motors el año de 1961 7,
para este mismo año en la universidad de Stanford se creó un robot rotacional de
6 ejes el cual fue llamado robot Stanford.

Con el inicio de la década de 1970 empresas fabricantes de robots y


universidades como ABB, KUKA ROBOT GROUP, UNIMATION Y UNIVERSIDAD
DE YAMANASHI-JAPÓN, presentaron sus propios diseños e incorporaron
tecnologías que multiplicaron las capacidades de estas máquinas. KUKA
ROBOTICS construyó el primer robot articulado electrónicamente de 6 ejes
conocido como famulus; ABB construyó el primer robot controlado por un
microprocesador; UNIMATION desarrollo el robot puma gracias a las
investigaciones realizadas por Víctor Scheinman y la UNIVERSIDAD DE
YAMANASHI-JAPÓN para el final de esta década se destacó por el robot scara
(Selective Compliance Arm for Robotic Assembly)

Durante las últimas décadas las universidades y empresas, han explorado la


diversidad de diseños en las áreas de control, electrónica, mecánica e informática,
gracias a los avances en computación y en lenguajes de programación. Pero no
obstante aún queda un gran campo de estudio sobre la robótica serial.

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

Tabla 1 Ventajas y desventajas robots seriales Fuente: Autores del proyecto

6.1.3. Campos de estudio


En la actualidad los campos de investigación relacionados con estas máquinas
involucran variedad de temas. Uno de los temas de investigación que continua
siendo estudiado es el diseño estructural de los robots seriales, esto se debe a la
múltiples posibilidades que se pueden presentar al cambiar las dimensiones o la
tarea que este realice y actualmente se busca que el diseño sea flexible, modular
y se adapte a otras plataformas robóticas8, como lo son los robots móviles y robots
paralelos, un segundo campo de investigación es el de diseño e implementación
de sistemas de control y por ultimo encontramos el área simulación que está
fuertemente ligada a los campos anteriormente mencionados, su gran aceptación
se debe a la fiabilidad obtenida, el ahorro de equipos, presupuesto, tiempo, entre

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.

La llegada de la simulación creo un nuevo enfoque para el análisis de diferentes


fenómenos, dando la posibilidad de evaluar las hipótesis desde estudios prácticos
o analíticos únicamente. La simulación ha tenido gran acogida por la comunidad
científica y tecnológica, por lo tanto ha sido acogida en las ramas de química,
ciencias sociales, biología, medicina, física, estadística, matemáticas, economía,
administración e ingeniería11.

6.1.5. Simulación dinámica


La simulación dinámica se originó con el propósito realizar experimentos que
permitieran entender el comportamiento de un sistema o evaluar las estrategias
para su operación sin la necesidad de construir un prototipo12. Esta se ha
incorporado en las tareas de diseño debido a la complejidad de los sistemas
mecánicos y aeroespaciales modernos, los cuales son denominados sistemas
multicuerpo. Dentro de estos sistemas se encuentran máquinas, mecanismos,
robots, vehículos, estructuras y sistemas biomecánicos13.

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.

 IMPLEMENTACIÓN DE UNA ESTACIÓN DE TRABAJO MEDIANTE UN


ROBOT SERIAL DE 3 GRADOS DE LIBERTAD PARA EL CETAM: El
trabajo desarrollado tuvo como objetivo diseñar e implementar las
interfaces, hardware y software junto con un control PID de un robot serial
de tres grado de libertad14.
 DISEÑO DE UN ROBOT ANTROPOMÓRFICO DE PROPÓSITO
GENERAL: En este documento se realizan procesos de ingeniería inversa
al brazo robótico Kawazaki RS03N existente en los laboratorios de
universidad Tecnológica de Pereira. Se describe el proceso de desarrollo
de cada una de las partes del robot, con la ayuda de un software CAD y
como éste permite la obtención de los parámetros necesarios para el
análisis tanto cinemático como dinámico el sistema. Se determina la
cinemática directa del robot a través del método Denavit-Hartenberg, para
con la ayuda del robotics toolbox de Matlab realizar el estudio dinámico del
sistema. Finalmente se desarrolla una interfaz de interacción con el robot,
con la ayuda de una GUI, que permitirá una interacción sencilla con el
brazo robótico15.
 AVANCES EN EL DESARROLLO DE UN PROTOTIPO DE ROBOT
ASISTENCIAL PARA PERSONAS CON LIMITACIONES DE MOVILIDAD:
Este artículo presenta la metodología utilizada para modelar y construir un
prototipo de un brazo robótico asistencial el cual es capaz de ayudar a
personas con limitaciones de movilidad en sus tareas cotidianas como la
alimentación y cepillado de dientes16.

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. MARCO TEORICO

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.

Se presentaran las herramientas básicas que permiten realizar la descripción de la


posición y parámetros geométricos, debido a que el análisis cinemático de un
robot depende de la estructura utilizada, refiriéndose a las posibilidades de grados
de libertad y los tipos de juntas que sean utilizadas.

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.

6.2.2.1. Cinemática directica


El problema cinemático directo se reduce a encontrar una matriz de
transformación que relaciona el sistema de coordenadas ligado al cuerpo del
sistema. Por lo tanto proporcionando los ángulos de las articulaciones y los
parámetros geométricos se podrá determinar la posición de efector final de
manipulador18.

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.

La matriz de transformación se compone por una matriz de rotación, la cual


indica la rotación existente con respecto a los ejes de un sistema de
referencia fijo.

[ ] [ ] [ ]

En donde se hace referencia al seno y al coseno del ángulo de la siguiente


manera y . Para realizar la representación de la rotación
en los tres ejes se pueden multiplicar las matrices de rotaciones de forma
individuales.

La otra parte se denomina el vector de traslación, el cual indica la traslación


existente con respectos a los ejes de un sistema de referencia fijo.

[ ]

Con los dos componentes anteriores se obtiene la siguiente expresión:

[ ]

6.2.2.3. Convención Denavit – Hartenberg


Existen diferentes métodos para obtener la cinemática directa de un robot,
uno de ellos ha sido el método propuesto por Jaques Denavit y Richard
Hartenberg, que permite tener una representación de la orientación y
traslación de un manipulador19.

Para realizar esta representación se denotan las variables20

, el ángulo medido de a medido sobre

, la distancia de a medida sobre

, la distancia de a medida sobre

, el ángulo medido de a medido sobre

Figura 1 Parámetros D-H eslabón giratorio. Fuente: BARRIENTOS, Antonio. Fundamentos de robótica

6.2.2.4. Cinemática Inversa


La cinemática inversa se encarga de encontrar de forma analítica los
parámetros (ángulos) que deben tomar las articulaciones para que el efector
final alcance la posición deseada. La solución a este problema depende de la
geometría y el tipo de manipulador, por lo cual en la actualidad existen varios
métodos disponibles en la literatura, que hacen uso de diferentes
herramientas matemáticas y conceptos para dar solución al problema
cinemático inverso21.

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.

Al considerar el estudio estático, las articulaciones del robot estarán bloqueadas,


de esta manera una estructura rígida, y posteriormente se realizara la sumatoria
de fuerzas y momentos que intervienen en cada eslabón22.

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.

6.3. MARCO CONCEPTUAL

6.3.1. Grados de libertad


El número de grados de libertad de un mecanismo, es el número de parámetros
independientes o entradas necesarias para especificar la configuración de un
mecanismo completamente.

Es posible calcular el número de grados de libertad mediante una expresión que


sirve para la mayoría de los mecanismos, esta se conoce como criterio de
Grübler24.

22
CRAIG. Op. Cit., p.153-156
23
TSAI. Op. Cit., p.372-374
24
TSAI. Op. Cit., p. 9-11

: Grados de libertad de un mecanismo

: Grados de movimiento relativo permitidos por la junta i

: Numero de eslabones en el mecanismo incluido el mecanismo base

: Numero de juntas en el mecanismo

: Grados de libertad espacial del mecanismo

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.

Estos pares cinemáticos se clasifican en elementos pares26:

 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.

Figura 2 Robot serial SCARA. Fuente: Kuka Robots group.


http://www.kuka-robotics.com/es/products/industrial_robots/special/scara_robots/kr5_scara_r550/start.html

6.3.5. Robot Famulus


Fue el primer robot construido por KUKA Robot Group, fue el primer robot de seis
grados de libertad que hace uso de juntas rotacionales
Figura 3 Robot Famulus. Fuente: Kuka Robot group.
http://www.kuka-robotics.com/fi/company/group/milestones/1973.html

6.3.6. Robot Puma


Este robot fue desarrollado por Victor Scheinman y construido por la empresa
Unimation, este robot antropomórfico cuenta con seis grados de libertad
conformado por juntas de tipo rotacional.

Figura 4 Robot puma. Fuente: prsrobots. http://www.prsrobots.com/puma500.html

6.4. MARCO METODOLÓGICO

6.4.1. Descripción del diseño Metodológico

El diseño metodológico es la estrategia que se utiliza para dar solución a la


problemática planteada, por lo cual en esta sección se plasma como se desarrolló
la investigación. En los siguientes diagramas se muestran el tipo de investigación
que se realizó y las etapas que se llevaron a cabo para el cumplimiento de los
objetivos.

•Bibliográfica: Esta indagación en parte estuvo orientada a la


recopilación de información sobre la dinámica y estática de
manipuladores.
Tipo de investigación •Descriptiva-cuantitativa: Esta investigación procedió a llevar
conceptos teóricos a la práctica mediante el uso de ordenadores, con
el objetivo de describir el comportamiento de forma numérica de la
dinámica de manipuladores seriales

Diagrama 1 Tipo de investigación. Fuente: Autores del proyecto

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

Diagrama 2 Diseño metodológico del proyecto. Fuente: Autores del proyecto

6.4.2. Desarrollo objetivo 1

Durante el desarrollo del proyecto, se consideró importante aclarar las


características que debía tener la estructura simulada; para el cumplimiento de los
objetivos se utilizaron herramientas y técnicas de diseño que aclararan el
panorama y la comprensión de la problemática.
El autor Nigel Cross27, en su libro Métodos de diseño, explica que estas
herramientas tienen como finalidad dar un marco lógico al proceso de diseño, y
que existen gran variedad de métodos que pueden ser utilizados para formalizar
este proceso, exteriorizando el pensamiento del diseño. Uno de los principales
inconvenientes que existen en el diseño, es la comprensión del problema; muchas
veces un mal planteamiento genera soluciones que no satisfacen las necesidades
de quienes lo utilizan. Entonces un primer paso en el diseño de un producto es la
clarificación de los objetivos del diseño.

Con base en lo anterior era necesario utilizar un método con la finalidad de


establecer las características geométricas y parámetros que debía tener el robot
serial, por lo tanto se recurrió al método de árbol de objetivos en donde se ubican
requerimientos o propósitos de la estructura; obteniendo claridad de las ideas y
además evitando ambigüedades.

A pesar de no construir ningún prototipo, especificar los atributos era necesario


con la finalidad de que los resultados se aproximen a la realidad, asimismo las
propiedades de la estructura determinaron las condiciones iniciales del problema
dinámico. Por otro lado la simulación contempla una estructura de tipo académica,
constituida con materiales disponibles actualmente y con un tamaño reducido,
adicionalmente cabe resaltar que no se contempló la realización de una tarea por
parte del robot, sino únicamente evaluar una trayectoria definida por un punto
inicial y final.

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

Tipos de juntas Juntas rotacionales

Eslabones ligeros

Propiedades de los
Estructura robotica Estructura compacta
eslabones

Materiales comerciales

Educativa

No se simula una tarea


Tipo de aplicación
especifica

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.

Con la finalidad de agrupar las posibles soluciones, para su posterior evaluación


se utilizó un diagrama morfológico (Tabla 2), con este método se generaron
soluciones a los aspectos variables del diseño, presentados en el diagrama de
árbol anterior (Diagrama 3); con la información preliminar se excluyeron los
siguientes aspectos: número de grados de libertad, el tipo de junta y las aplicación,
debido a que estos son explícitos y se presentaron en etapas anteriores del
proyecto.
Característica A B C D
Actuadores Servomotor Motor paso a Motoreductor Robo servo
paso con encoder
Transmisión Conexión Transmisión Transmisión Transmisión
de potencia directa por correas por eslabones por poleas o
tendones
Materiales Aluminio Acrílico Madera -

Tabla 2 Diagrama morfológico de las alternativas. Fuente: Autores del proyecto

Con el diagrama morfológico se pueden generar diferentes combinaciones que


satisfacen las características del robot. Se han seleccionado algunas de las
alternativas en las cuales el servomotor es el actuador para cada junta, porque su
bajo peso favorece el cumplimiento de los requisitos, adicionalmente combina
algunas opciones para la transmisión de potencia y aluminio.

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

Tabla 3 Alternativas de diseño. Fuente: Autores del proyecto

Al generarse diferentes alternativas es necesario evaluarlas, por lo que se requiere


establecer un conjunto de criterios, basados en los requerimientos de diseño, que
permitan la selección de actuadores, sistema de trasmisión y materiales que debe
tener el robot simulado; con la finalidad de valorar se dispone de un sistema de
calificación que se presenta en la tabla 4.

Valor Calificación
1 Deficiente
2 Mala
3 Regular
4 Buena
5 Muy buena

Tabla 4 Sistema de calificación. Fuente: Autores del proyecto

Posteriormente se realizó una evaluación por medio del método de objetivos


ponderados.

Robot 1 Robot 2 Robot 3 Robot 4 Robot 5 Robot 6


Objetivo Peso
Calif. Valor Calif. Valor Calif. Valor Calif. Valor Calif. Valor Calif. Valor
Bajo peso 0.6 3 1.8 4 2,4 4 2.4 3 1.8 4 2.4 5 3
Estructura
0.2 3 0.6 3 0.6 4 0.8 3 0.6 3 0.6 4 0.8
compacta
Materiales
0.2 5 1 4 0.8 5 1 5 1 4 0.8 5 1
comerciales
Valor de utilidad 3.4 3.8 4.2 3.4 3.8 4.8

Tabla 5 Método de objetivos ponderados. Fuente: Autores del proyecto

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.

6.4.3. Desarrollo objetivo 2

Para cumplir con el segundo objetivo se recurrió a bibliografía especializada de


autores con amplia experiencia dentro de los que se encuentran Tsai, Craig,
Barrientos, Reyes, por mencionar algunos. Con la información recolectada se ha
descrito el análisis realizado a la estructura, con la finalidad de evaluar el
comportamiento.

En la siguiente tabla se presentan la lista de variables que se encuentran


presentes en el análisis de la estática, cinemática y dinámica del robot de tres
grados de libertad.
Variable Significado Variable Significado
El ángulo medido de Fuerza resultante
a medido sobre ejercida en la junta i
ejercida por la junta i-1

La distancia de a Momento resultante


medida sobre ejercida en la junta i
ejercida por la junta i-1

La distancia de a Fuerza resultante


medida sobre ejercida en la junta i+1
ejercida por la junta i

el ángulo medido de Momento resultante


a medido sobre ejercida en la junta i+1
ejercida por la junta i

̇ Velocidad angular del Gravedad


eslabón
̈ Aceleración angular Vector de posición con
del eslabón respecto al sistema
coordenado de cada
eslabón
Posición objetivo en el Vector posición del
eje x eslabón con respecto
a la junta i-1
Posición objetivo en el Vector de posición con
eje y respecto al sistema
coordenado de cada
eslabón
Posición objetivo en el Vector posición del
eje z eslabón con respecto
a la junta i-1
Masa del eslabón Fuerza de inercia
Matriz de inercia del Momento de inercia
eslabón con respecto
a su centro de masa
Velocidad lineal del Velocidad angular del
eslabón con respecto eslabón con respecto
al origen al origen
Velocidad lineal del Velocidad angular del
eslabón con respecto eslabón con respecto
al sistema coordenado al sistema coordenado
del eslabón del eslabón

̇ Aceleración lineal del ̇ Aceleración angular


eslabón con respecto del eslabón con
al origen respecto al origen
̇ Aceleración lineal del ̇ Aceleración angular
eslabón con respecto del eslabón con
al sistema coordenado respecto al sistema
del eslabón coordenado del
eslabón

Tabla 6 Lista de variables. Fuente: Autores del proyecto


6.4.3.1. Tabla Denavit Hartenberg
El proyecto adopto la interpretación del autor Tsai28, mediante la cual el
sistema coordenado de cada eslabon se ubica la junta (i+1) ubicada en el
extremo del eslabon.

1 0
2 0 0
3 0 0

Tabla 7 Tabla Denavit – Hartenberg para el robot 3 gdl. Fuente: Autores del proyecto

6.4.3.2. Cinemática directa


Haciendo uso de los conceptos de matriz transformación de trasformación
homogénea se puede obtener la cinemática directa del robot de tres grados
de libertad, gracias a este procedimiento matemático es posible representar
las rotaciones y traslaciones de cualquier objeto en el espacio.

La matriz del primer eslabón con respecto al origen

[ ]

La matriz del primer eslabón con respecto al origen

[ ]

La matriz del segundo eslabón con respecto al primer eslabón

[ ]

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.

Para calcular el ángulo de la base , se utiliza una vista superior para


clarificar que coordenadas debemos utilizar.

Figura 6 Análisis cinemático, Vista superior. Fuente: Autores del proyecto

[ ]

( )

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

Se recurre a una simplificación de los términos de la siguiente manera:

La posición del punto objetivo, ubicado en el extremo del segundo eslabón


está dada por:

Elevando al cuadrado las expresiones anteriores


Sumándolas se obtiene:

Con la finalidad de simplificar la ecuación anterior se utilizaran las


siguientes relaciones trigonométricas:

Simplificando el segmento de la ecuación planteada

Por lo que la ecuación simplificada seria

Se despejara la ecuación con el objetivo de calcular

En donde
Por lo tanto el ángulo se calcularía con la siguiente

El valor de determinará si la posición del robot es posible para cuando


| | y | | . Ahora para calcular , es necesario expandir las
ecuaciones iniciales con ayuda de relaciones trigonométricas

El anterior sistema de ecuaciones se puede representar [ ]{ } { }

[ ][ ] [ ]

Determinante de la matriz

| |

| |

Resolviendo con el uso de la regla de Cramer

| |

| |
Pero para obtener una única solución que corresponda a se usa la
función

6.4.3.4. Análisis estático


La estática evalúa el comportamiento de una estructura, cuando esta se
encuentra en equilibrio de fuerzas y momentos, el cálculo de la estática de
una plataforma robótica de tipo serial se realiza de manera iterativa,
aplicando la sumatoria de momentos y de fuerzas para cada eslabón, desde
el eslabón ubicado en el extremo hasta la base del robot.

El método utilizado es presentado en los textos con pequeñas variaciones


de acuerdo a su interpretación del algoritmo DH, algunos de los autores que
tratan esta temática son Tsai29 y Craig30.

6.4.3.5. Calculo de la trayectoria


La trayectoria hace referencia al comportamiento en el tiempo de la posición,
la velocidad y la aceleración, para cada eslabón del robot31. Existen
diferentes metodologías/procedimientos para realizar este cálculo. Se ha
escogido evaluar el comportamiento de cada junta por medio de un polinomio
cubico.

Y con las condiciones iniciales determinadas como el tiempo y ángulo inicial


y final se puede hallar los coeficientes que representan el movimiento de la
articulació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.

6.4.3.6. Análisis dinámico


El análisis dinámico permite evaluar el comportamiento del robot al seguir
una trayectoria, este proceso permite calcular las fuerzas y toques debidos al
movimiento de sus articulaciones, al consultar la literatura especializada se
encontró diferentes modelos que permiten evaluarla32.
Para implementar el método de Newton-Euler33 se debe realizar un proceso
de cálculo directo, el cual consiste en hallar la velocidad angular, velocidad
lineal, aceleración angular y aceleración lineal.

La inversa de la matriz de rotación

[ ]

Vectores de posición de cada eslabón

[ ]

32
TSAI. Op. Cit., p. 372
33
TSAI. Op. Cit., p. 383-394
Vector de posición del centro de masa

[ ]

Ejes de rotación de cada eslabón

[ ]

La velocidad angular para juntas de tipo rotacional se representa en las


siguientes expresiones:

( ̇)

Con las siguientes expresiones se calcula la aceleración angular:

̇ ̇ ̈ ̇

̇ ( ̇ ̈ ̇)

Calculo de la velocidad lineal para cada eslabón:


Calculo de la aceleración lineal para cada eslabón:

̇ ̇ ̇

̇ ̇ ̇ ( )

Posteriormente se debe calcular la aceleración del centro de masa para cada


eslabón:

̇ ̇ ̇ ( )

Gravedad con respecto al sistema coordenado de cada eslabon:

Calculo de la fuerza y momento producidos por el movimiento:

̇ ( )

Sumatoria de fuerzas y momentos en cada eslabón:

( )

El procedimiento planteado por Newton-Euler34 es iterativo, y al realizar los


cálculos de forma simbólica se suelen extender las expresiones matemáticas
de forma considerable, haciéndolo complejo, extenso y propenso a errores,
por lo que se ha recurrido a la matemática simbólica por computador
implementada en el software Matlab; se presenta en el anexo 2 un script que
calcula este procedimiento para el robot.

34
TSAI. Op. Cit., p. 383-394
6.4.4. Desarrollo objetivo 3

Para que se posible desarrollar una simulación se requiere implementar pequeños


procedimientos en Matlab, que como resultado entreguen los ángulos,
velocidades, entre otras variables importantes, por eso se han implementado los
procedimientos en scripts, que posteriormente serán utilizados por la interfaz
gráfica para desarrollar la simulación.

6.4.4.1. Cinemática inversa


El cálculo de la cinemática inversa se ha representado mediante un diagrama
de flujo, dentro de los parámetros de entrada se encuentra la posición
objetivo, los valores de la tabla Denavit-Hartenberg y el modo de solución si
es cálculo codo arriba o codo abajo.

Por medio de los modelos matemáticos descritos en el objetivo anterior, es


posible conocer los ángulos que debe alcanzar cada eslabón para llegar a la
posición objetivo siempre y cuando sea una posición permisible.
Diagrama 4 Diagrama de flujo de la cinemática Inversa. Fuente: Autores del proyecto

6.4.4.2. Cinemática directa


Anteriormente se ha expresado que la finalidad de la cinemática directa
como representación de los desplazamientos de un punto en el espacio; el
script toma como parámetros de entrada los valores de la tabla Denavit-
Hartenberg y como resultado se obtiene la matriz de transformación
homogénea.
Diagrama 5 Diagrama de flujo de la cinemática directa. Fuente: Autores del proyecto

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:

Diagrama 7 Diagrama de flujo de la estática. Fuente: Autores del proyecto

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.

Diagrama 8 Diagrama de flujo de la dinámica. Fuente: Autores del proyecto


6.4.5. Desarrollo objetivo 4

La interfaz gráfica permite la integración de los diferentes scripts implementados


en Matlab para los modelos matemáticos descritos con anterioridad, pero para que
esto sea favorable de deben organizar las diferentes ideas, para que de esta
forma sea más fácil construirla. El siguiente diagrama de árbol presenta los
objetivos básicos que debe cumplir la interfaz.

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

Importar archivos stl Fuerza


Animación
Mostrar movimiento
Torque
del robot

Resultados Graficar Momento

Velocidades

Aceleraciones

Diagrama 9 Árbol de objetivos interfaz gráfica. Fuente: Autores del proyecto

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

•Configuración de las propiedades del eslabón


•Tabla Denavit-Hartenberg
Interfaz secundario Masa
Matriz de inercia
Centro de masa

•Mostrar resultados
•Dinamica
Interfaz figure Cinematica
Perfiles de movimiento
Fuerzas
Momentos

Diagrama 10 Tareas de cada interfaz. Fuente: Autores del proyecto

La interfaz principal es la que integra las funciones para el computo de los


diferentes modelos, toma datos de entrada y entrega una visualización del
movimiento. Pero para que esta pueda funcionar se deben utilizar otras interfaces,
la primera llamada “Propiedades del eslabón”, usada para agregar un eslabón y
asignar las propiedades indispensables para poder realizar la simulación, en
segundo lugar se encuentra la interfaz “Figure”, herramienta que viene por defecto
en Matlab para visualizar objetos gráficos y en este caso es utilizada para mostrar
los resultados de la simulación.
Esta interfaz maneja en su mayoría el sistema internacional, por lo tanto dentro de
las unidades básicas se encuentran el metro (Longitud), el kilogramo (Masa) y el
segundo (Tiempo), y en las unidades derivadas se encuentra newton (Fuerza);
aunque los cálculos se generen en radianes cabe resaltar que para medir los
ángulos se utilizan los grados, en vez de los radianes, como lo indica el sistema
internacional.
6.4.5.1. Interfaz SimuladorRobot
La interfaz principal de este programa está encargada de vincular todas las
funciones o scripts desarrollados anteriormente, para que sea posible
visualizar y calcular cada objetivo que se ha propuesto.
SimuladorRobot tiene la tarea de ensamblar del robot y calcular los procesos
involucrados con el movimiento del robot o su comportamiento en estado
estático. Además permite la visualización del robot, y muestra la tabla
Denavit Hartenberg, la matriz de transformación homogénea del último
eslabón con respecto a la base y una tabla con los atributos que se han
asignado a cada eslabón.

Figura 8 Interfaz SimuladorRobot. Fuente: Autores del proyecto

6.4.5.2. Interfaz propiedades del eslabón.


La interfaz llamada “Propiedades del eslabón” es utilizado pata importar los
archivos STL y modificar los parámetros de la tabla Denavit-Hartenberg,
asignando las condiciones iniciales, el sistema coordenado origen (para mover
el sistema de referencia si el archivo STL no conserva esta información) y la
posición del centro de masa, el cual esta medido desde el sistema de
referencia asignado por el algoritmo Denavit-Hartenberg, la matriz de inercia
del eslabón y la masa, que son características del cada eslabón.

Figura 9 Interfaz gráfica Propiedades del eslabón. Fuente: Autores del proyecto

6.4.5.3. Interfaz figure


La interfaz figure está diseñada por Matlab para enviar información de salida,
es útil para generar gráficas y tablas, además de que estos objetos permiten
la modificación de sus propiedades de acuerdo a las necesidades de los
usuarios de Matlab.
6.5. MARCO LEGAL

NTC 1486. Bogotá: Instituto Colombiano de Normas Técnicas y Certificación. La


cual dictamina los reglamentos para la realización y la presentación de proyectos.

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

NTC 5613, Normas utilizadas en las referencias bibliográficas.


7. RESULTADOS Y DISCUSIÓN

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)

Tabla 8 Propiedades de los eslabones. Fuente: Autores del proyecto


Las dimensiones de cada eslabón están representadas en la tabla Denavit-
Hartenberg.

(grados) (m) (m) (grados)


1 90 0 0.06622 0
2 0 0.2 0 0
3 0 0.16 0 0

Tabla 9 Tabla DH para el robot serial. Fuente: Autores del proyecto

7.1. Análisis estático


Cuando el robot no se encuentra en movimiento la interacción que tiene con las
fuerzas y momentos ejercidos en el extremo del robot puede ser evaluada
mediante el modelamiento estático, las reacciones en cada eslabon pueden
depender de la posición del robot, como a su vez obedecen a la magnitud y
dirección de las fuerzas y momentos que ejercen una acción en la estructura.
En este punto se mostrarán los resultados obtenidos al ubicar el robot en dos
posiciones diferentes aplicando los mismos efectos. La primera posición de
análisis [ ], la segunda posición de análisis es
[ ], la fuerza aplicada [ ] y momento aplicado
[ ].

Figura 10 Resultados fuerzas estáticas posición 1. Fuente: Autores del proyecto

Figura 11 Resultados fuerzas estáticas posición 2. Fuente: Autores del proyecto


En la tabla se presenta las fuerzas que es aplican en cada junta, que se propagan
de junta en junta, incrementando su magnitud a medida que se llega al eslabón
base.

Figura 12 Resultados momento estático posición 1. Fuente: Autores del proyecto

Figura 13 Resultados momento estático posición 2. Fuente: Autores del proyecto

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

Eslabón Torque (N.m)


1 0
2 0.4260
3 0.2001

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.

7.2. Análisis dinámico


Para evaluar la dinámica se escogió una trayectoria para analizar la propagación
de la velocidad y la aceleración en cada elemento que compone el sistema,
además del comportamiento de las fuerzas en función del tiempo.
La trayectoria de referencia tiene inicio en la posición [ ],
llegando a la posición objetivo [ ], la fuerza aplicada es igual
[ ], el momento aplicado es igual [ ], en un tiempo de 2
segundos y con periodo de 0.02 s, por lo tanto la frecuencia de muestreo fue de 50
Hz. Se ha escogido esta trayectoria porque facilita la comprensión de lo que
acontece con el robot.

Figura 14 Ejemplo simulación posición inicial Fuente: Autores del proyecto


Figura 15 Ejemplo simulación posición final Fuente: Autores del proyecto

7.2.1. Perfiles del movimiento


Al realizar esta trayectoria, el eslabón 1 es el único que tiene un cambio de
posición, por lo tanto es el único que tiene una velocidad y aceleración angular; el
programa entrega tres graficas una correspondiente al cambio de posición angular
que deber realizar cada eslabón de forma independiente para llegar al punto
especificado, la segunda grafica entrega el comportamiento de la velocidad
angular para cada eslabón y por último se tiene la gráfica de aceleraciones
angulares.

Figura 16 Perfiles del movimiento. Fuente: Autores del proyecto


7.2.2. Propagación de la Velocidad angular
Anteriormente en el modelamiento dinámico, las ecuaciones describen el
comportamiento de la velocidad angular para cada eslabón, matemáticamente la
velocidad angular del eslabón depende del movimiento del cuerpo que lo precede
en la cadena serial.

Figura 17 Velocidad angular con respecto a la base Fuente: Autores del proyecto

Al analizar los resultados la velocidad angular es la misma para cada eslabón, a


pesar de que el único eslabón que realiza el movimiento es el eslabón base, con
esto se demuestra que la velocidad del eslabon depende de la velocidad angular
precedente.
Para el cálculo de la velocidad angular se pueden seleccionar dos sistemas de
referencia, en el primero caso; el sistema de referencia se encuentra en la base
del robot y en el segundo caso el sistema de referencia se ubica en cada eslabon.
Para el caso de la velocidad angular el cambio de sistemas de referencia no afecta
el comportamiento ni la magnitud que tiene la velocidad en función del tiempo.
Figura 18 Velocidad angular con respecto al eslabón. Fuente: Autores del proyecto

7.2.3. Propagación de la aceleración angular


En la aceleración al igual que en la velocidad angular, existe una relación de la
aceleración del eslabón evaluado y la del cuerpo que le precede.

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

7.2.4. Propagación de la velocidad lineal


En el caso de las velocidades lineales la ubicación del sistema de referencia
cambia los resultados, debido que al tomar el sistema de referencia ubicado en la
base del robot las velocidades se descomponen en sus componentes
rectangulares.
Figura 21 Velocidad lineal con respecto a la base. Fuente: Autores del proyecto

La velocidad lineal para los eslabones con juntas rotacionales depende de la


velocidad angular y el vector de posición del eslabón con respecto al sistema de
referencia seleccionado. Los resultados obedecen a los procedimientos
matemáticos pudiendo ser similares a los siguientes, en donde la velocidad lineal
del eslabón base es cero, pero las velocidades de los otros dos eslabones sín
diferentes de cero.

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

7.2.6. Aceleración del centro de masa


En el estudio dinámico es de suma importancia los atributos de los cuerpos que
están en movimiento, propiedades como la masa y la forma del objeto influyen en
el comportamiento cuando hay un cambio de posición. Para realizar
modelamientos del cuerpo se utiliza el centro de masa, de manera que evaluar el
comportamiento de la aceleración con respecto al tiempo, será útil en el cálculo de
las fuerzas.
Figura 25 Aceleración centro de masa. Fuente: Autores del proyecto

7.2.7. Fuerzas dinámicas


En el análisis dinámico intervienen las fuerzas debidas al peso, las fuerzas
aplicadas y las fuerzas que se producen durante el movimiento, el comportamiento
de estas fuerzas depende del cambio de posición de los eslabones en un intervalo
de tiempo, las gráficas presentadas se obtuvieron al simular la trayectoria
estipulada como referencia.

Figura 26 Fuerza de inercia. Fuente: Autores del proyecto


El modelamiento de Newton-Euler realiza una sumatoria de fuerzas. Se puede
calcular el comportamiento de las fuerzas de reacción en función del tiempo y de
la trayectoria dada. La componentes que son constantes en este caso en
particular se refieren a la componente del peso, que no varía debido a que no hay
aceleración en esa dirección por lo que permanece invariante.

Figura 27 Fuerzas dinámicas. Fuente: Autores de proyecto

7.2.8. Momentos dinámicos


Cuando una fuerza es aplicada a un cuerpo, esta producirá la tendencia para que
el cuerpo rote alrededor de un punto que es diferente al punto de aplicación de la
fuerza. Esta tendencia es lo que se conoce como momento de una fuerza, torque
o simplemente momento35.
En las gráficas se encuentra en primer lugar el momento debido a la inercia, en
segundo lugar se encuentra el balance de momentos con respecto al sistema de
referencia del eslabón.

35
HIBBELER, Russell. Engineering mechanics Statics. New Jersey: Pearson Prentice Hall, 2010. 117 p.
Figura 28 Momento de inercia. Fuente: Autores del proyecto

Figura 29 Momento dinámico. Fuente: Autores del proyecto


7.3. Conclusiones
 Las herramientas de selección de parámetros fueron de gran ayuda a la
hora de la escogencia de las características del esquema robótico a
evaluar y el diseño de la interfaz.

 La correcta selección e implementación del modelo dinámico es vital


para el procedimiento de simulación computacional, debido a que en
este punto se evitaran complicaciones y problemas a la hora de la
evaluación de la veracidad de los resultados.

 La selección de Matlab como plataforma de trabajo facilito la


implementación de la interfaz, gracias a sus diversas herramientas y la
posibilidad de la creación de funciones y su posterior aplicación en la
interfaz principal.
 Las diferentes magnitudes evaluadas permiten determinar que existe
una propagación de los efectos del movimiento de un cuerpo a otro, por
lo que los efectos del movimiento en cada eslabón pueden
incrementarse de forma considerable, y de ahí la insistencia en crear
estructuras eficientes que tengan bajo peso y buena resistencia.

 La posición tiene gran relevancia en la evaluación de los momentos y a


su vez en los actuadores debido al torque que se debe ejercer para
mantener la estructura en equilibrio estático. Caso diferente en la
evaluación de las fuerzas ejercidas

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.

 Para próximos trabajos se propone la posibilidad de la escogencia d un


método de modelamiento dinámico diferente, debido a que en este proyecto
solo se evaluó el modelo propuesto por Newton-Euler.

 También se plantea la posibilidad de la creación de un prototipo basado en


el esquema simulado, para generar una comparación entre los datos
entregados por la simulación y los obtenidos por la práctica.

 Integrar la posibilidad del cambio de secciones y características


geométricas directamente en la interfaz sin tener la necesidad de acercarse
a un programa CAD para generar los eslabones a visualizar.

 Implementar algoritmos para el cálculo de trayectorias e incorporarlas al


trabajo desarrollado, con la finalidad de complementar la aplicación.

 Evaluar la posibilidad de cambiar los grados de libertad con la ayuda de


nuevos modelos y algoritmos en Matlab.

 Implementar modelos y programas que permitan realizar una simulación


dinámica en tiempo real, debido a la relevancia que posee para la
implementación de controles.
8. BIBLIOGRAFIA

METAL ACTUAL. Robótica hacia la automatización industrial. En: Metal Actual.


Noviembre- enero, 2008 -2009, vol. 10, p. 44-50.

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.

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

BARRIENTOS, Antonio. Fundamentos de robótica. 1997

CHEN, I-Ming. Theory and Applications of Modular Reconfigurable Robotic


Systems. Trabajo de grado Doctor of Philosophy. Singapur.: California Institute of
technology. 1994, p. 1 - 18.

CRAIG, John. Robótica. México: Pearson Educación. 2006. p. 68-69

FU, K; GONZALEZ, R; LEE, C. Robótica: control, detección, visión e inteligencia.


Mc Graw-Hill. 1998. p. 6-7

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.

International Conference on Robotics and Automation. Determining Task Optimal


Modular Robot Assembly Configurations. IEEE,1995

International Conference on Intelligent Robots and Systems. Interactive-Motion


Control of Modular Reconfigurable Manipulators. Octubre, 2003, Las Vegas,
Nevada.
KINGHORN, Brent. Computer simulation: what’s the story?. American journal of
management. 2013 vol.13. p. 22-24

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

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 21

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 59
P. SARAVIA, Darly, H. LOPEZ, Marlon y Q. RIAZA, Héctor. Revisión del estado
del arte de Manipuladores Paralelos. En: Scientia et Technica, Agosto 2009, vol.
15, no.42, p. 81-86.

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.

REYES, Fernando. Matlab: aplicado a robótica y mecatrónica. México: Alfaomega


2012
TSAI, Lung-Wen. Robot analysis: the mechanics of serial and parallel
manipulators. New York: Jhon Wileys & Sons, 1999. p. 1-6.

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
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 54

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.
9. ANEXOS

9.1. Anexo 1: Estática simbólica robot 3 GDL

% El siguiente código realiza los cálculos simbólicos de la estática del


% robot 3 GDL
% Nombre proyecto: SIMULACIÓN DE UN ROBOT SERIAL DE 3 GRADOS DE LIBERTAD
% UTILIZANDO EL SOFTWARE MATLAB
% Autores: Camilo Andrés Rodríguez Higuera
% Eudes José Escobar Mafud
% Universidad Libre Colombia
% Año: 2015

%% Declaración de las variables simbólicas


% g: Gravedad
% t1: Angulo theta (1)
% t2: Angulo theta (2)
% t3: Angulo theta (3)
% m1: Masa eslabón 1
% m2: Masa eslabón 2
% m3: Masa eslabón 3
% fx: Fuerza en eje x
% fy: Fuerza en eje y
% fz: Fuerza en eje z
% nx: Momento en eje x
% ny: Momento en eje y
% nz: Momento en eje z
% d1: Longitud eslabón 1 (Matriz DH)
% a1: Longitud eslabón 2 (Matriz DH)
% a2: Longitud eslabón 3 (Matriz DH)
% rcy1: Longitud del sistema coordenado del eslabón 1 al centro de masa
% rcx2: Longitud del sistema coordenado del eslabón 2 al centro de masa
% rcx3: Longitud del sistema coordenado del eslabón 3 al centro de masa

clc,clear

syms t1 t2 t3 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;

%% Vectores de posición

% Vectores de posición expresados con respecto a la junta i


r11 = [0;d1;0];
r22 = [a1;0;0];
r33 = [a2;0;0];

% Vectores de posición expresados con respecto a la trama de origen


r1 = R01*r11;
r2 = R02*r22;
r3 = R03*r33;

% Vectores de posición de centro de masa expresados con respecto a la


junta i
r11c = -[0;rcy1;0];
r22c = -[rcx2;0;0];
r33c = -[rcx3;0;0];

% Vectores de posición de centro de masa expresados con respecto a trama


de
% origen
rc1 = R01*r11c;
rc2 = R02*r22c;
rc3 = R03*r33c;

%% Condiciones iniciales

% Velocidad angular del origen


f43 = [fx;fy;fz];
n43 = [nx;ny;nz];

% 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

% El siguiente código realiza los cálculos simbólicos de la dinámica del


% robot 3 GDL, utilizando el método iterativo de Newton-Euler.
% Nombre proyecto: SIMULACIÓN DE UN ROBOT SERIAL DE 3 GRADOS DE LIBERTAD
% UTILIZANDO EL SOFTWARE MATLAB
% Autores: Camilo Andrés Rodríguez Higuera
% Eudes José Escobar Mafud
% Universidad Libre Colombia
% Año: 2015

%% Declaración de las variables simbólicas


% g: Gravedad
% t1: Angulo theta (1)
% t2: Angulo theta (2)
% t3: Angulo theta (3)
% t1p: Velocidad angular (1)
% t2p: Velocidad angular (2)
% t3p: Velocidad angular (3)
% t1pp: Aceleración angular (1)
% t2pp: Aceleración angular (2)
% t3pp: Aceleración angular (3)
% m1: Masa eslabón 1
% m2: Masa eslabón 2
% m3: Masa eslabón 3
% fx: Fuerza en eje x
% fy: Fuerza en eje y
% fz: Fuerza en eje z
% nx: Momento en eje x
% ny: Momento en eje y
% nz: Momento en eje z
% d1: Longitud eslabón 1 (Matriz DH)
% a1: Longitud eslabón 2 (Matriz DH)
% a2: Longitud eslabón 3 (Matriz DH)
% rcy1: Longitud del sistema coordenado del eslabón 1 al centro de masa
% rcx2: Longitud del sistema coordenado del eslabón 2 al centro de masa
% rcx3: Longitud del sistema coordenado del eslabón 3 al centro de masa

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

% Vectores de posición expresados con respecto a la junta i


r11 = [0;d1;0];
r22 = [a1;0;0];
r33 = [a2;0;0];

% Vectores de posición expresados con respecto a la trama de origen


r1 = R01*r11;
r2 = R02*r22;
r3 = R03*r33;

% Vectores de posición de centro de masa expresados con respecto a la


junta i
r11c = -[0;rcy1;0];
r22c = -[rcx2;0;0];
r33c = -[rcx3;0;0];

% Vectores unitarios ubicada en la junta i


Z00 = [0;0;1];
Z11 = [0;0;1];
Z22 = [0;0;1];

% Vectores unitarios ubicada en la junta i con respecto a la i-1


Z0 = [0;0;1];
Z1 = R01*Z11;
Z2 = R01*Z22;

%% Matrices de inercia

I11 = (m1*d1^2/12)*[1 0 0;0 0 0;0 0 1]; % Eslabón 1


I22 = (m2*a1^2/12)*[0 0 0;0 1 0;0 0 1]; % Eslabón 2
I33 = (m3*a2^2/12)*[0 0 0;0 1 0;0 0 1]; % Eslabón 3

%% Condiciones iniciales

% Velocidad angular del origen


w0 = [0;0;0];
w00 = [0;0;0];

% Aceleración angular del origen


w0p = [0;0;0];
w00p = [0;0;0];

% Velocidad lineal del origen


v0 = [0;0;0];
v00 = [0;0;0];

% Aceleración lineal del origen


v0p = [0;0;0];
v00p = [0;0;0];

% Gravedad
g0 = [0;0;-g];
g1 = R10*g0;
g2 = R21*g1;
g3 = R32*g2;

%% Cálculos eslabón 1

% Velocidad angular del eslabón 1


w1 = w0 + Z0*t1p;
w11 = R10*(w00 + Z00*t1p);

% Aceleración angular del eslabón 1


w1p = w0p + Z0*t1pp + cross(w0,Z0*t1);
w11p = R10*(w00p + Z00*t1pp);

% Velocidad lineal del eslabon 1


v1 = v0 + cross(w1,r1) + cross(w1,cross(w1,r1));
v11 = R10*v00 + cross(w11p,r11) + cross(w11,cross(w11,r11));

% Aceleración lineal del eslabon 1


v1p = v0p + cross(w1p,r1) + cross(w1,cross(w1,r1));
v11p = R10*v00p + cross(w11p,r11) + cross(w11,cross(w11,r11));

% Aceleración lineal del centro de masa del eslabon 1


vc11p = v11p + cross(w11p,r11c) + cross(w11,cross(w11,r11c));

% 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

% Velocidad angular del eslabón 2


w2 = w1 + Z1*t2p;
w22 = R21*(w11 + Z11*t2p);

% Aceleración angular del eslabón 2


w2p = w1p + Z1*t2pp + cross(w1,Z1*t2p);
w22p = R21*(w11p + Z11*t2pp + cross(w11,Z11*t1p));

% Velocidad lineal del eslabón 2


v2 = v1 + cross(w2,r2);
v22 = R21*v11 + cross(w22,r22);

% Aceleración lineal del eslabón 2


v2p = v1p + cross(w2p,r2) + cross(w2,cross(w2,r2));
v22p = R21*v11p + cross(w22p,r22) + cross(w22,cross(w22,r22));

% Aceleración lineal del centro de masa del eslabon 2


vc22p = v22p + cross(w22p,r22c) + cross(w22,cross(w22,r22c));

% 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

% Velocidad angular del eslabon 3


w3 = w2 + Z2*t3p;
w33 = R32*(w22 + Z22*t3p);

% Aceleración angular del eslabon 3


w3p = w2p + Z2*t3p + cross(w2,Z2*t3p);
w33p = R32*(w22p + Z22*t3pp + cross(w22,Z22*t3p));

% Velocidad lineal del eslabon 3


v3 = v2 + cross(w3,r2);
v33 = R32*v22 + cross(w33,r33);

% Aceleración lineal del eslabon 3


v3p = v2p + cross(w3p,r3) + cross(w3,cross(w3,r3));
v33p = R32*v22p+cross(w33p,r33) + cross(w33,cross(w33,r33));

% Aceleración lineal del centro de masa del eslabon 3


vc33p = v33p + cross(w33p,r33c) + cross(w33,cross(w33,r33c));

% 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

% Cálculo de las fuerzas


f11 = -m1*0;
f22 = -m2*vc22p;
f33 = -m3*vc33p;

% Cálculo de los momentos


n11 = -I11*w11p - cross(w11,I11*w11);
n22 = -I22*w22p - cross(w22,I22*w22);
n33 = -I33*w33p - cross(w33,I33*w33);

%% Sumatoria de fuerzas

% Sumatoria de fuerzas eslabón 3


F332 = -[fx;fy;fz] - m3*g3 - f33;
F232 = R23 * F332;

% Sumatoria de fuerzas eslabón 2


F221 = F232 - m2*g2 -f22;
F121 = R12 * F221;

% Sumatoria de fuerzas eslabón 1


F110 = F121 - m1*g1 - f11;
F010 = R01 * F110;

disp('F232 = ');pretty(F232);
disp('F121 = ');pretty(F121);
disp('F010 = ');pretty(F010);

%% Sumatoria de momentos

% Sumatoria momentos eslabón 3


n332 = -[nx;ny;nz] + cross((r33+r33c),F332) - cross(r33c,-[fx;fy;fz]) -
n33;
n232 = R23*n332;

% Sumatoria momentos eslabón 2


n221 = n232 + cross((r22+r22c),F221) - cross(r22c,F232) - n22;
n121 = R12*n221;

% Sumatoria momentos eslabón 1


n110 = n121 + cross((r11+r11c),F110) - cross(r11c,F121) - n11;
n010 = R01*n110;

disp('n232 = ');pretty(n232);
disp('n121 = ');pretty(n121);
disp('n010 = ');pretty(n010);
9.3. Anexo 3: Script para el cálculo de la trayectoria

function [a] = perfiles(tf,thi,thf,periodo)


% PERFILES es una funcion que se ha diseñado para calcular la trayectoria
% del robot, el modelo que se ha utilizado es un polinomio cubico

% 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;

% Calculo de la velocidad en función del tiempo


thp = a1 + 2*a2*t + 3*a3*t^2 ;

% Calculo de la aceleracion en función del tiempo


th2p = 2*a2 + 6*a3*t;

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

function [R] = Rotacion(eje,angulo)


% ROTACION es una funcion que crea las matrices de rotacion con respecto
a
% un eje.

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

function [A] = transformacion(thi,di,alpha,ai)


% TRANSFORMACION es una funcion que permite calcular la matriz de
% transformacion homogenea tomando como argumentos de entrada, los
valores
% de la tabla DH.

% Rotacion alrededor del eje Z


Rz = Rotacion('z',thi);
% Tranformacion con respecto al eje Z
Tz = [Rz [0;0;di]; 0 0 0 1];
% Rotacion alrededor del eje X
Rx = Rotacion('x',alpha);
% Tranformacion con respecto al eje Z
Tx = [Rx [ai;0;0]; 0 0 0 1];
% Transformacion general
A = Tz*Tx;
9.6. Anexo 6: Script para el cálculo de la cinemática inversa

function [t1,t2,t3] = cinematinv(pObj,modo,DH,limits)


% CINEMATINV Calcula la cinematica inversa del robot de tres grados de
% libertad

% 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);

% Calculo del angulo th1


t1 = atand(pObj(2)/pObj(1));

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

function [f,n,t] = estatica(fe,ne,th,cM,DH,m)


% ESTATICA es una función creada para calcular la estática de un robot
serial
% teniendo como entradas la fuerza y momento aplicados en el efector
% final, además de los parámetros geométricos del robot de tres grados de
% libertad.

% Condiciones iniciales
f = zeros(3,4);
n = zeros(3,4);
f(:,4) = fe;
n(:,4) = ne;
g = [0;0;-9.8];

% Matrices de transformación de los eslabones de la cadena serial


[T12] = transformacion(th(1),DH(1,2),DH(1,3),DH(1,1));
[T23] = transformacion(th(2),DH(2,2),DH(2,3),DH(2,1));
[T34] = transformacion(th(3),DH(3,2),DH(3,3),DH(3,1));

% Matrices de transformación con respecto al origen del robot


T13 = T12*T23;
T14 = T13*T34;

% Matriz que almacena las rotaciones de cada elemento con respecto a la


% base
R(:,:) = [eye(3) T12(1:3,1:3) T13(1:3,1:3) T14(1:3,1:3)];

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

function [wi,iwi,wpi,iwpi,vi,ivi,vpi,ivpi,ivpci,Fin,Nin,fi,ni] = ...


Dinamica(A,iIi,DH,cM,m,Re,R,Fa,Ma)
%DINAMICA es una funcion que calcula las fuerzas y momentos que se
producen
%durante la trayectoria que realiza el robot de 3 grados de libertad

% Leer informacion de los perfiles


thp = (pi/180)*[A(:,2,1) A(:,2,2) A(:,2,3)];
thpp = (pi/180)*[A(:,3,1) A(:,3,2) A(:,3,3)];

% Numero valores que toma el tiempo


a = length(A);

% Condiciones iniciones de la velocidad del origen del robot


wi(:,:,1) = zeros(3,a);
iwi(1:3,:,1) = zeros(3,a);
wpi(1:3,:,1) = zeros(3,a);
iwpi(1:3,:,1) = zeros(3,a);
vi(1:3,:,1) = zeros(3,a);
ivi(1:3,:,1) = zeros(3,a);
vpi(1:3,:,1) = zeros(3,a);
ivpi(1:3,:,1) = zeros(3,a);

% 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);

% Crear vector de fuerzas y momentos con el valor de fuerza y momentos


% iniciales, para su posterior uso
ifi(:,:,4) = -[fx*ones(1,a);fy*ones(1,a);fz*ones(1,a)];
fi(:,:,:) = zeros(3,a);
ini(:,:,4) = -[nx*ones(1,a);ny*ones(1,a);nz*ones(1,a)];
fi(:,:,:) = zeros(3,a);

% 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

También podría gustarte