Está en la página 1de 62

UNIVERSIDAD NACIONAL DE TRUJILLO

Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecatrónica

MODELADO Y SIMULACIÓN DE
LOCOMOCIÓN DE UN ROBOT CUADRÚPEDO
BASADO EN EL ROBOT SPOT

Proyecto de Investigación formativa

Robótica

AUTOR (es) : Carrasco Cervantes, Marcia Carolina


Egoavil Rojas, Jean Carlos
Julca Aparicio, Jean Brayam
Gavidia Ulloa Jose

DOCENTE : Ing. Alva Alcántara Josmell

CICLO : IX

Trujillo, Perú
2020
UNIVERSIDAD NACIONAL DE TRUJILLO

Resumen

En el desarrollo del presente proyecto de investigación se tuvo como objetivo principal


Modelar y simular un robot cuadrúpedo de 3 GDL por extremidad haciendo uso de los
softwares Matlab y CoppeliaSim. Para esto lo primero fue definir el CAD del robot que esta
basado en el robot SPOT desarrollado por Boston Dynamics, pero con ciertas modificaciones
de tamaño. Posteriormente se realizó el análisis cinemático del robot, incluyendo la cinemática
directa (usando los parámetros de Denavit-Hartenberg), cinemática inversa (usando métodos
analíticos y geométricos) y la cinemática diferencial con el jacobiano de velocidades.
Terminado este análisis cinemático se realizó el análisis estático y dinámico. Todos estos pasos
se hicieron tomando como base una sola pata del robot, lo cual se puede aplicar a las demás,
también se hizo uso del Software Matlab como ayuda para el cálculo. Finalmente se planifico
una trayectoria que permita al robot caminar en línea recta, se plantearon dos métodos
diferentes para generar esta trayectoria. La simulación se realizo usando el software
CoppeliaSim conectado a Matlab.

Palabras claves: Cuadrúpedo, cinemática, estática, dinámica, simulación

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Abstract

In the development of this research project, the main objective was to model and simulate a
quadruped robot with 3 DOF per limb using the Matlab and CoppeliaSim softwares. For this,
the first thing was to define the CAD of the robot, which is based on the SPOT robot developed
by Boston Dynamics, but with size modifications. Subsequently, the kinematic analysis of the
robot was carried out, including direct kinematics (using the Denavit-Hartenberg parameters),
inverse kinematics (using analytical and geometric methods) and differential kinematics with
the Jacobian of speeds. Once this kinematic analysis was finished, the static and dynamic
analysis was performed. All these steps were made based on a single leg of the robot, which
can be applied to the others, and the Matlab Software was also used as a calculation aid. Finally,
a trajectory was planned that allows the robot to walk in a straight line, two different methods
were proposed to generate this trajectory. The simulation was carried out using the
CoppeliaSim software connected to Matlab.

Keywords: Quadruped, kinematic, static, dynamic, simulation

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Tabla de Contenidos

Resumen ................................................................................................................................... 2
Palabras claves: Cuadrúpedo, cinemática, estática, dinámica, simulación ............................. 2
Capítulo 1 Introducción ............................................................................................................ 6
Objetivos................................................................................................................................... 7
Capítulo 2 Antecedentes (Estado del Arte) .............................................................................. 8
Capítulo 3 Marco Teórico ....................................................................................................... 10
Capítulo 4 Metodología .......................................................................................................... 33
4.1 Cinemática directa: .................................................................................................... 33
4.2 CINEMÁTICA INVERSA: ....................................................................................... 35
4.3 CINEMATICA DIFERENCIAL ............................................................................... 39
4.4 ANALISIS ESTÁTICO ............................................................................................. 41
4.5 ANALISIS DINÁMICO ........................................................................................... 43
4.6 PLANIFICACIÓN DE TRAYECTORIAS ............................................................... 48
A) Método 1 para trayectorias .................................................................................................... 50
B) Método 2 para trayectorias .................................................................................................... 54
Capítulo 5 Resultados y Discusiones ..................................................................................... 58
Capítulo 6 Conclusiones ......................................................................................................... 59
Capítulo 7 Recomendaciones ................................................................................................. 60
Referencias Bibliográficas...................................................................................................... 61
Anexos ................................................................................... ¡Error! Marcador no definido.

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Lista de figuras

Figura 1: La cinemática directa e inversa (Saha, 2008). ....................................................................... 10


Figura 2. Fuerzas y momentos sobre un eslabón 𝑖. (Saha, 2008).......................................................... 18
Figura 3. Mapeo entre el espacio de fuerza del efector final y el espacio de torsión articular (Siciliano,
2009). .................................................................................................................................................... 22
Figura 4. Momentos de masa. (Saha, 2008). ......................................................................................... 25
Figura 5. Un robot de cadena serial (Saha, 2008). ................................................................................ 26
Figura 6. Robot manipulador, punto 𝑖𝒓𝑖 (Fu, 1987). ............................................................................ 28
Figura 7. Análisis con cinemática directa de la pata delantera derecha. Fuente: Propia. ...................... 33
Figura 8.. Análisis con cinemática directa de la pata delantera derecha en plano XZ. Fuente: Propia. 34
Figura 9. Esquema de análisis con cilindros de la pata delantera derecha del robot Spot. Fuente:
Propia. ................................................................................................................................................... 35
Figura 10. Esquema de análisis de la pata delantera derecha desde plano YX. Fuente: Propia............ 37
Figura 11.Esquema de análisis de la pata delantera derecha desde plano RZ. Fuente: Propia. ............ 38
Figura 12. Jacobiano de velocidades de una pata del cuadrúpedo. Fuente: Propia ............................... 41
Figura 13. Resultado del análisis estático de una pata del cuadrúpedo. Fuente: Propia ....................... 43
Figura 14. Trayectoria planteada. Fuente: Propia ................................................................................. 49
Figura 15. Robot exportado en CoppeliaSim. Fuente: Propia............................................................... 50

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Capítulo 1

Introducción

Actualmente se cuenta con medios tecnológicos avanzados hasta tal punto que es
posible llegar a crear maquinas tanto mecánicas, automáticas o autónomas las cuales sirven
para mejorar la calidad de vida de las personas.
Los robots con patas ofrecen ventajas importantes para aplicaciones en terrenos hechos por el
hombre o naturales de complicado acceso, en comparación a los robots con ruedas o con orugas,
los cuales son más estables, pero no son convenientes para terrenos irregulares o de acceso
limitado.
Las máquinas con ruedas o con orugas ya son ampliamente conocidas y usadas hoy en día; el
área innovadora en el campo de la robótica viene siendo el concepto de robot con patas, un
campo relativamente nuevo, pero que ya cuenta con algunos estudios como son los robots
cuadrúpedos o humanoides. La motivación de la comunidad científica de estudiar estos robots
con patas no es tan reciente, pero si se vio fuertemente impulsada con el desarrollo del desafío
robótico DARPA (o DRC por sus siglas en ingles), A partir de este evento nacieron proyectos
como “ANYmal” un robot cuadrúpedo de alta movilidad o “Valkyrie” el primer robot bípedo
de la NASA [5], los cuales le dieron la credibilidad que necesitaban los robots con patas para
ser más estudiados y llegar a los modelos actuales como son por ejemplo el cuadrúpedo “Spot”
de Boston Dynamics o el Cheetah 3 del MIT.

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Objetivos

- Objetivo General

• Modelar y simular un robot cuadrúpedo de 3 GDL por extremidad


haciendo uso de los softwares Matlab y CoppeliaSim.

- Objetivos específicos

• Desarrollar el robot en software CAD (Inventor).


• Calcular la cinemática directa, inversa y diferencial del robot cuadrúpedo.
• Calcular el modelo estático
• Obtener el modelo dinámico del robot.
• Planificar una trayectoria de locomoción para el robot cuadrúpedo.
• Simular el robot haciendo uso del software CoppeliaSim y Matlab.

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Capítulo 2

Antecedentes (Estado del Arte)

Oliveira et. al. (2017) en su investigación “Modelling, Trajectory Planning and


Control of a Quadruped Robot Using Matlab/Simulink” se plantearon como objetivo
diseñar un sistema de control para un robot cuadrúpedo y testear su desempeño, para esto
tomaron como base un robot cuadrúpedo de 2 GDL en cada extremidad y para mejorar la
simulación del modelo, se usaron ecuaciones de fuerzas de reacción en los ejes X y Y. El
análisis se realizó mediante diagramas de bloques separando al robot en 3 subsistemas, del
cuerpo, de las extremidades y de la reacción del suelo con el pie del robot. Posteriormente
para la planeación de trayectorias se consideró una trayectoria cíclica, también se realizó
el análisis cinemático de una de las extremidades para poder implementar el “paso” del
robot. En el sistema de control se presentó la dificultad de encontrar un modelo que
describa el comportamiento no lineal del robot, por esta razón se utilizaron métodos de
linealización de manera que se pudo encontrar la representación de espacio-estado. La
linealización se realizado usando la herramienta de análisis lineal de Simulink. Para obtener
los resultados, se testeo el robot con el sistema de control implementado adoptando el paso
de trote. Finalmente se obtuvo como resultado que la trayectoria planificada presenta
buenos resultados al adoptar el paso de trote especialmente cuando se trabaja con una
velocidad de 0.05 m/s, pero puede mejorarse si se hace algunos ajustes en el proceso de
linealización y el error que se presenta esta directamente asociado al torque de las
articulaciones.

Wang et. al. (2020) en su trabajo de investigación “An Optimized Turning Gait
Strategy for Walking Quadruped Robot” propusieron un método de diseño de marcha
giratoria optimizado para robots cuadrúpedos que reduce significativamente la complejidad
computacional, para esto, basándose en la síntesis y la descomposición del movimiento de
giro diseñaron una trayectoria tridimensional del pie del robot en el sistema de referencia
del suelo, que no solo considera el efecto del movimiento corporal en comparación con los
1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
métodos de planificación en el sistema de coordenadas corporales, sino que también hace
que el cálculo sea más simple que los métodos aplicados a un eje de referencia universal.
En el proceso de la planeación de trayectoria se incluyó el análisis de cinemática
correspondiente. Luego, sobre la base de las restricciones de estabilidad y las restricciones
de cinemática, se analizó el rango apropiado de ángulo de giro, que se utilizó como índice
de giro con flexibilidad y estabilidad. Se realizaron también simulaciones basadas en
MATLAB y Webots para mostrar la validez de los métodos propuestos. Al finalizar el
trabajo llegaron a la conclusión de que los resultados obtenidos en simulación comprobaron
que el rango de ángulos de giro usados, mostro resultados satisfactorios respecto a la
estabilidad del robot.

Bledt et. al. (2018) en su trabajo “MIT Cheetah 3: Design and Control of a Robust,
Dynamic Quadruped Robot” presentaron el robot Cheetah 3 del MIT, un nuevo robot
cuadrúpedo robusto y dinámico, para esto se mejoro el diseño de su antecesor, agregando
una “cola” que permitía implementar estrategias simples de control dinámico y de
locomoción, además se presento un nuevo diseño de piernas que aumenta el rango de
movimiento en las rodillas y caderas. El control del robot se hizo mediante una arquitectura
de control modular embebida que permite al robot manejar perturbaciones inesperadas a
través de modificación reactiva de la marcha sin necesidad de sensores externos o
conocimiento previo del entorno. Para analizar la eficiencia del diseño se usó el valor de
Costo de Transporte (CoT) que es la potencia consumida dividida entre la multiplicación
de la masa, la velocidad y la gravedad, obteniendo en este caso para la prueba de trote a la
que se sometió el robot un valor de 0.45 que es el más bajo de los valores obtenidos en
diferentes tipos de marcha. Además para probar el sistema de control se sometió al robot a
una prueba donde debía subir las escaleras “a ciegas”, la cual supero sin problemas, lo que
llevo a los autores a la conclusión de que el diseño representaba un paso prometedor hacia
una plataforma capaz de adaptarse a cualquier tipo de locomoción y entorno.

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Capítulo 3

Marco Teórico

1. Cinemática

Para que los robots puedan ejecutar tareas específicas, en primer lugar, se debe
establecer su posición y orientación del efector final, en otras palabras, la posición o
configuración debe estar necesariamente relacionadas con la base. Además, se deben
resolver los problemas de análisis de la velocidad y aceleración que son necesarios
para el control de movimientos del efector final, también son necesarios para
encontrar la dinámica del robot. (Saha, 2008)
Para la configuración del efector final es determinada por las seis variables
cartesianas que son controladas mediante los movimientos de las articulaciones del
robot, es necesario encontrar la relación entre los dos conjuntos.
En el análisis de posición, se encuentra una relación entre las coordenadas cartesianas,
es decir, la posición de un punto en el efector final y su orientación con los ángulos
de las articulaciones. Aquí existen dos tipos de problemas: la cinemática directa y la
inversa. (Saha, 2008).

Figura 1: La cinemática directa e inversa (Saha, 2008).

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
1.1. Cinemática Directa
Determina la localización del extremo del extremo del robot, con respecto a un
sistema de coordenadas de referencia, conocidos los valores de las articulaciones
y los parámetros geométricos de los elementos del robot.
Se tiene la coordenadas cartesianas y ángulos de Euler que representan la posición
y orientación del extremo del robot, la solución a la cinemática directa vendrá
dada por las siguientes relaciones. (Legarreta & Martinez, S.f.)
Variables articulares: 𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 , … , 𝑞𝑛−1 , 𝑞𝑛 (Barrientos, Peñin, Balaguer
& Aracil, 2008)
Posición y orientación del efector final: 𝑥 , 𝑦 , 𝑧, 𝛼, 𝛽, 𝛾 (Barrientos et al., 2008)
𝑥 = 𝑓𝑥 (𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 , … , 𝑞𝑛−1 , 𝑞𝑛 ) (1)
𝑦 = 𝑓𝑦 (𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 , … , 𝑞𝑛−1 , 𝑞𝑛 ) (2)
𝑧 = 𝑓𝑧 (𝑞1, 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 , … , 𝑞𝑛−1 , 𝑞𝑛 ) (3)
𝛼 = 𝑓𝛼 (𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 , … , 𝑞𝑛−1 , 𝑞𝑛 ) (4)
𝛽 = 𝑓𝛽 (𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 , … , 𝑞𝑛−1 , 𝑞𝑛 ) (5)
𝛾 = 𝑓𝛾 (𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 , … , 𝑞𝑛−1 , 𝑞𝑛 ) (6)
Tenemos varios métodos para resolver la dinámica directa entre los cuales
tenemos los métodos geométricos y los métodos basados en cambios de sistema
de referencia. (Legarreta & Martinez, S.f.)
1.1.1. Métodos Geométricos
• Método no sistemático (aplicación limitada a robots con pocos grados de
libertad) (Legarreta & Martinez, S.f.)
• Utiliza relaciones geométricas para obtener directamente la posición del
extremo del robot en función de las variables articulares. (Legarreta &
Martinez, S.f.)
• Requiere buena visión espacial. (Legarreta & Martinez, S.f.)
1.1.2. Métodos basados en cambios de sistema de referencia
• Método sistemático (Adopta determinadas convenciones para resolver el
1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
modelo, independientemente de las características geométricas del robot).
(Legarreta & Martinez, S.f.)
• Utiliza las matrices de transformación homogénea. (Legarreta &
Martinez, S.f.)
• Algoritmo de Denavit Hartenberg (1955). (Legarreta & Martinez, S.f.)

1.1.2.1.Resolución mediante matrices de transformación homogénea


0
𝐴1 : Describe la posición y orientación del sistema de referencia solidario al
1° eslabón respecto a base. (Pérez, 2010)
1
𝐴2 : Describe la posicióny orientación del segundo eslabón respecto al
primero. (Pérez, 2010)
0
𝐴2 = 0𝐴1 ∗ 1𝐴2 (7)
0
𝐴2 : Posición y orientación del segundo eslabón respecto a la base. (Pérez,
2010)
De acuerdo a este planteamiento se puede extrapolar a robots de “n” grados
de libertad. (Pérez, 2010)

1.1.2.2.Algoritmo de Denavit Hartenberg


(Saha et. al., 2008) Dado un Brazo de “n” grados de Libertad. El etiquetado
de los sistemas de coordenadas comienza desde la base soporte hasta el efector
final del brazo. Para encontrar estos parámetros se debe seguir toda una serie
de pasos:
1. Establecer el sistema de coordenadas de la base. Establecer un sistema
de coordenadas ortonormal, dextrógiro (𝑥0 , 𝑦0 , 𝑧0 ) en la base del
soporte. El eje 𝑧0 estando a lo largo del eje de movimiento de la
articulación 1. Los ejes 𝑥0 , 𝑦0 se puede establecer a conveniencia.
2. Inicializar y repetir. Para cada i, i=1, …, n-1; realzar los pasos 3 y 6.
3. Establecer los ejes de la articulación: Así está es rotativa, el eje será

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
su propio eje de giro. Si es prismática, serpa el eje a lo largo del cual
se produce el desplazamiento.
4. Establecer el origen del sistema de coordenadas i-ésima. Localizar el
origen del sistema de coordenadas i.ésima en la intersección de los
ejes 𝑧𝑖 𝑦 𝑧𝑖−1 o en la intersección de las normales comunes entre los
ejes 𝑧𝑖 y el eje 𝑧𝑖−1
5. Establecer el eje 𝑥𝑖 . Establecer 𝑥𝑖 = ±(𝑧𝑖−1 𝑥𝑧𝑖 ) ⁄‖𝑧𝑖−1 𝑥𝑧𝑖 ‖ o a lo
largo del eje normal común entre los ejes 𝑧𝑖−1 𝑦 𝑧𝑖 cuando son
paralelos
6. Establecer el eje 𝑦𝑖 . Asignar 𝑦𝑖 = = ±(𝑧𝑖 𝑥 𝑥𝑖 ) ⁄‖𝑧𝑖 𝑥 𝑥𝑖 ‖ para
completar el sistema de coordenadas dextrógiro. (Extender si es
necesario los ejes 𝑧𝑖 𝑦 𝑥𝑖 a los pasos 9 y 12)
7. Establecer el sistema de coordenadas Dextrogiro. Normalmente la
articulación n-ésima es de tipo giratorio. Establecer 𝑧𝑛 a lo largo de la
dirección del eje 𝑧𝑛−1 y apuntando hacia fuera del robot. Establecer
𝑥𝑛 tal que sea normal a ambos ejes 𝑧𝑛−1 y 𝑧𝑛 . Asignar 𝑦𝑛 para
completar el sistema dextrógiro
8. Encontrar los parámetros de la articulación y del elemento. Para i,
i=1,…, n realizar los pasos 9 a 12.
9. Encontrar 𝑑𝑖 , 𝑑𝑖 es la distancia del origen del sistema de coordenadas
(i-1)ésimo a la intersección del eje 𝑧𝑖−1 𝑦 𝑒𝑙 eje 𝑥𝑖 a lo largo del eje
𝑧𝑖−1 . Es la variable de la articulación si “i” es prismática.
10. Encontrar 𝑎𝑖 , 𝑎𝑖 es la distancia de la intersección del eje 𝑧𝑖−1 y el eje
𝑥𝑖 al origen del sistema de coordenadas i-ésimo a lo largo del eje 𝑥𝑖
11. Encontrar θ𝑖 . θ𝑖 es el ángulo de rotación desde el eje 𝑥𝑖−1 hasta el eje
𝑥𝑖 respecto del eje 𝑧𝑖−1 . Es la variable de articulación si ‘i’ es giratoria.
12. Encontrar α𝑖 . α𝑖 es el ángulo de rotación desde el eje z𝑖−1 hasta el eje
𝑧𝑖 respecto al eje x𝑖 .

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
𝑖−1
Obtener la matriz de transformación 𝐴𝑖 y obtener la relación del extremo
del robot respecto a la base:
𝑇 = 0𝐴1 ∗ 1𝐴2 ∗ 2𝐴3 … 𝑛−2𝐴𝑛−1 ∗ 𝑛−1𝐴𝑛 = 0𝐴𝑛 (8)

1.2. Cinemática Inversa


El problema de la cinemática inversa consiste en la determinación de las variables
de articulaciones correspondientes a una orientación y posición específicas del
efector final. La solución de este problema es de fundamental importancia con el
fin de transformar las especificaciones de movimiento asignadas al efector final
en el espacio operacional en los correspondientes movimientos de espacio de las
articulaciones. (Legarreta & Martinez, S.f.)
(Legarreta & Martinez, S.f.) A continuación, presentamos los motivos por los
cuales la cinemática inversa es mucho más complejo que la cinemática directa:
• Por lo general, las ecuaciones por resolver son no lineales en las variables
de articulaciones; de este modo, no siempre es posible encontrar una
solución explícita.
• Pueden existir una gran cantidad de soluciones.
• También pueden llegar a tener soluciones infinitas.
• Es posible que no exista soluciones admisibles, esto es debido a la
arquitectura del manipulador
Tenemos varios métodos para resolver la dinámica inversa entre los cuales
tenemos los métodos de solución cerrada y métodos iterativos.

1.2.1.1.Método geométrico
Se basa en relaciones trigonométricas y geométricas sobre elementos del
robot. Se utiliza mayormente para obtener los valores de las primeras
articulaciones que son las que consigna la posición del robot. (Legarreta &
Martinez, S.f.)

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

1.2.1.2.Método algebraico/Matrices de transformación


Se basa en el conocimiento de su modelo Cinemático.
Conociendo las relaciones que expresa el valor de la posición y orientación
del extremo del robot en función de sus coordenadas articulares, obtener por
manipulación algebraicas las relaciones inversas. (Legarreta & Martinez, S.f.)
𝑛11 𝑜11 𝑎11 𝑃𝑥 (9)
𝑛21 𝑜21 𝑎21 𝑃𝑦
𝑇 = [𝑛 ]
31 𝑜31 𝑎31 𝑃𝑧
0 0 0 1
1.2.1.3.Método de desacoplo cinemático
El método trata de separar el análisis en 2 puntos: POSICIÓN Y
ORIENTACIÓN.
Los valores de las 3 primeras variables articulares del robot, son aquellas que
posicionan su extremo en unas coordenadas (𝑝𝑥 , 𝑝𝑦 , 𝑝𝑧 ).
Los robots cuentan con otros 3 grados de Libertad, situado al final de la cadena
cinemática y cuyos ejes, con frecuencia se cortan en un punto, que se
denominará muñeca del robot. (Legarreta & Martines, S.f.)

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
1.3.Cinemática Diferencial
(Martínez-Zamudio, 2015) Permite disponer de la relación entre las velocidades
de las coordenadas articulares (Espacio articular) y de las velocidades posición y
orientación del efector final (Espacio cartesiano). Además, está herramienta es
importante para:
• Encontrar configuraciones singulares
• Analizar redundancias
• Determinar algoritmos de cinemática inversa para el análisis de velocidad.
• Determinar la relación de aceleración entre variables articulares y espacio
cartesiano.
• Describir la relación entre fuerzas aplicadas al efector final y los pares de
torsión resultante en las articulaciones.
• Derivar algoritmos para la dinámica
1.3.1. Jacobiano de velocidades
(Martínez-Zamudio, 2015) La matriz jacobiana de un robot, relaciona el
vector de velocidades angulares 𝑞̇ 1 , 𝑞̇ 2 , 𝑞̇ 3 , 𝑞̇ 4 , 𝑞̇ 5 , … , 𝑞̇ 𝑛 con otro vector de
velocidades expresado en el espacio distinto. Se puede expresar de forma
matricial de la siguiente forma:
𝜕𝑓𝑥 𝜕𝑓𝑥 𝜕𝑓𝑥 (10)

𝜕𝑞1 𝜕𝑞2 𝜕𝑞6
𝜕𝑓𝑦 𝜕𝑓𝑦 𝜕𝑓𝑦

𝑋̇ 𝜕𝑞1 𝜕𝑞2 𝜕𝑞6 𝑞̇ 1
𝑌̇ 𝜕𝑓𝑧 𝜕𝑓𝑧 𝜕𝑓𝑧 𝑞̇ 2

𝑍̇ 𝜕𝑞1 𝜕𝑞2 𝜕𝑞6 𝑞̇ 3
=
𝛼̇ 𝜕𝑓𝛼 𝜕𝑓𝛼 𝜕𝑓𝛼 𝑞̇ 4

𝛽̇ 𝜕𝑞1 𝜕𝑞2 𝜕𝑞6 𝑞̇ 5
[ 𝜃̇ ] 𝜕𝑓𝛽 𝜕𝑓𝛽 𝜕𝑓𝛽 [𝑞̇ 6 ]

𝜕𝑞1 𝜕𝑞2 𝜕𝑞6
𝜕𝑓𝜃 𝜕𝑓𝜃 𝜕𝑓𝜃

[𝜕𝑞1 𝜕𝑞2 𝜕𝑞6 ]

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
Se puede expresar como:
0 𝑞̇ 1 (11)
𝑉𝑛
[0 ] = 𝐽(𝑞) [ ⋮ ]
𝜔𝑛 𝑞̇ 𝑛
Y el jacobiano a su vez se puede expresar como:
𝐽𝑣 (𝑞) (12)
𝐽(𝑞) = [ ]
𝐽𝑤 (𝑞)
1.3.1.1.Jacobiano de velocidad angular
𝑞̇ 1 (13)
0
𝜔𝑛 = 𝐽𝑤 (𝑞) [ ⋮ ]
𝑞̇ 𝑛

1.3.1.2.Jacobiano de velocidad lineal


𝑞̇ 1 (14)
0
𝑉𝑛 = 𝐽𝑣 (𝑞) [ ⋮ ]
𝑞̇ 𝑛
1.3.1.3.Jacobiano inverso
𝜕𝑓1 𝜕𝑓1 (15)

𝜕𝑥 𝜕𝜃
𝐽−1 = ⋮ ⋱ ⋮
𝜕𝑓𝑛 𝜕𝑓𝑛
[ 𝜕𝑥 …
𝜕𝜃 ]
𝑋̇ (16)
𝑌̇
𝑞̇ 1
𝑍̇
[ ⋮ ] = 𝐽𝑣 −1 (𝑞) ∗
𝛼̇
𝑞̇ 𝑛
𝛽̇
[ 𝜃̇ ]
1.3.2. Singularidades del Robot
Se denomina configuraciones singulares de un robot en la que la determinante
del a matriz Jacobiana se anula. (Martínez-Zamudio, 2015)
|𝐽| = 0 (17)

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
2. Estática

El objetivo de la estática es determinar la relación entre las fuerzas aplicadas al


efector final y las fuerzas generalizadas aplicadas a las articulaciones – fuerzas
para articulación traslacional, pares de torsión para articulación rotacional - con
el manipulador en una configuración de equilibrio. (Siciliano et al., 2009)

Figura 2. Fuerzas y momentos sobre un eslabón 𝑖. (Saha, 2008).

A continuación, definimos las siguientes notaciones:


𝐟i−1,i : Fuerza resultante sobre el eslabón i por el eslabón 𝑖 – 1 en 𝐎𝑖 .
𝐧i−1,i : Momento resultante ejercido sobre el eslabón i por el eslabón 𝑖 – 1 en 𝐎𝑖 .
𝐟i+1,i : Fuerza resultante sobre el eslabón i por el eslabón 𝑖 + 1 en 𝐎𝑖+1.
Observe que 𝐟i+1,i = –𝐟𝑖,𝑖+1 .
𝐧i+1,i : Vector tridimensional de un momento resultante ejercido sobre el eslabón
i por el eslabón 𝑖 + 1 en 𝐎𝑖+1 , de tal modo que 𝐧𝑖+1,𝑖 = 𝐧𝑖,𝑖+1 .
𝐠 : Aceleración debido a la gravedad.
1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
𝐝𝑖 : Posición del centro de masa del i-ésimo eslabón 𝐶𝑖 relativo al origen del i-
ésimo sistema, es decir, 𝐎𝑖 , como se indica en la figura.
𝐫𝑖 : Posición del origen del (𝑖 + 1)-ésimo sistema, es decir, 𝐎𝑖+1 relativo al centro
de masa del eslabón 𝑖, 𝐶𝑖.
𝐚𝑖 : Posición de 𝐎𝑖+1 respecto a 𝐎𝑖 , de tal modo que 𝐚𝑖 = 𝐝𝑖 + 𝐫𝑖 .

Considere ahora el balance de fuerzas y momentos de la figura. Hay tres fuerzas


que se ejercen sobre el eslabón 𝑖: 𝐟𝑖−1,𝑛 , 𝐟𝑖+1,𝑖 (= −𝐟𝑖+1,𝑖 ) y 𝑚𝑖 𝐠. La ecuación de
balance de fuerzas se escribe entonces como:
𝐟𝑖−1,𝑖 − 𝐟𝑖+1,𝑖 + 𝑚𝑖 𝐠 = 𝟎 ( 1)

𝑥 = 𝑓𝑥 (𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 , … , 𝑞𝑛−1 , 𝑞𝑛 ) ( 2)

Ahora considere el balance de momentos alrededor de 𝐎𝑖 en el eslabón i, es decir,


el punto donde el eslabón i – 1 se conecta al eslabón i. Hay dos momentos que
actúan sobre el eslabón 𝑖: 𝐧i−1,i y 𝐧i+1,i (= –𝐧i+1,i ). Adicionalmente, las fuerzas
𝑚𝑖 𝐠 y −𝐟𝑖,𝑖+1 producen momentos alrededor de 𝐎𝑖 . Al sumar estos momentos se
obtiene:
𝐧i−1,i − 𝐧𝑖,𝑖+1 − 𝐚𝑖 𝑥 𝐟i,i+1 + 𝐝𝑖 𝑥 𝑚𝑖 𝐠 = 𝟎 ( 3)

2.1. Métodos de modelado estático.

2.1.1. Método recursivo

Se desarrollará un método recursivo para el análisis estático de un


manipulador serial. Para facilitar el análisis se escriben en forma recursiva
como:

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
𝐟𝑖−1,𝑖 = 𝐟𝑖+1,𝑖 − 𝑚𝑖 𝐠 ( 4)

𝐧i−1,i = 𝐧𝑖,𝑖+1 + 𝐚𝑖 𝑥 𝐟i,i+1 − 𝐝𝑖 𝑥 𝑚𝑖 𝐠 ( 5)

Observamos que los vectores de estas ecuaciones aún no se expresan en algún


sistema de coordenadas.
Por otro lado, el vector 𝒂𝑖 puede expresarse de manera conveniente en el
sistema i-ésimo en términos de los parámetros DH como:
𝑎𝑖 𝑐𝜃𝑖 ( 6)
[𝒂𝑖 ]𝑖 = [𝑎𝑖 𝑠𝜃𝑖 ]
𝑏𝑖

Los vectores 𝒅𝑖 pueden entonces obtenerse como:


𝑎𝑖 𝑐𝜃𝑖 𝑟𝑖𝑥 ( 7)
𝑟
[𝒅𝑖 ]𝑖 = [𝒂𝑖 ]𝑖 − [𝒓𝑖 ]𝑖 = [𝑎𝑖 𝑠𝜃𝑖 ] − 𝑸𝒊 [ 𝑖𝑦 ]
𝑏𝑖 𝑟𝑖𝑧

Donde:
𝑟𝑖𝑥 ( 8)
[𝒓𝑖 ]𝑖+1 𝑟
= [ 𝑖𝑦 ]
𝑟𝑖𝑧

Las ecuaciones para el i-ésimo eslabón se escriben primero en el (𝑖 + 1)-


ésimo sistema que se adjunta a él, es decir:
[𝐟𝑖−1,𝑖 ]𝑖+1 = [𝐟𝑖+1,𝑖 − 𝑚𝑖 𝐠]𝑖+1 ( 9)

[𝐧i−1,i ]𝑖+1 = [𝐧𝑖,𝑖+1 + 𝐚𝑖 𝑥 𝐟i,i+1 − 𝐝𝑖 𝑥 𝑚𝑖 𝐠]𝑖+1 ( 10)

Una vez que las fuerzas y momentos de reacción se hayan calculado en el (𝑖 +


1)-ésimo sistema, se convierten en el i-ésimo sistema por medio de las
siguientes transformaciones:
1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
[𝐟𝑖−1,𝑖 ]𝑖 = 𝑸𝒊 [𝐟𝑖−1,𝑖 ]𝑖+1 ( 11)

[𝐧i−1,i ]𝑖 = 𝑸𝒊 [𝐧i−1,i ]𝑖+1 ( 12)

Donde 𝑸𝒊 es la matriz de rotación.


Puesto que 𝐠 usualmente se especifica en el sistema fijo, es decir, el sistema
1, deberá convertirse en el sistema adjunto al eslabón
[𝐠]𝑖+1 = 𝑸𝒊 𝑇 [𝐠]𝑖 ( 13)

Además, si el momento y fuerza del efector final se especifican en el sistema


fijo, también deberán transformarse dentro del sistema del efector final de la
misma manera, es decir:
[𝐟𝑛,𝑛+1 ]𝑛+1 = 𝑸𝑇 [𝐟𝑛,𝑛+1 ]1 ( 14)

Y
[𝐧𝑛,𝑛+1 ]𝑛+1 = 𝑸𝑇 [𝐧𝑛,𝑛+1 ]1 ( 15)

donde 𝑸 ≡ 𝑸𝒊 … 𝑸𝒏 − 𝑸𝒊 para 𝑖 = 1, … , 𝑛, siendo la matriz de rotación


entre los i-ésimo y (i + 1)-ésimo sistemas, es decir, la primera matriz de 3×3
de la matriz de transformación homogénea T.

2.1.2. Jacobiano y principio de trabajo virtual

La aplicación del principio de trabajo virtual permite la determinación de la


relación requerida. Los manipuladores mecánicos considerados son sistemas
elementos con restricciones holonómicas invariantes en el tiempo y, por lo
tanto, sus configuraciones dependen sólo de las variables conjuntas q y no
explícitamente del tiempo. Esto implica que los desplazamientos virtuales
coinciden con desplazamientos elementales.
(Siciliano et al., 2009)
1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

La diferencia entre el trabajo virtual de los pares articulares y el virtual es que


el trabajo de las fuerzas del efector final debe ser nulo para todos los
desplazamientos articulares, de:
𝛿𝑊𝛾 = 𝛾𝑒 𝑇 𝑱(𝒒)𝛿𝒒 ( 16)

Observe que el trabajo virtual de las fuerzas efectoras finales es nulo para
cualquier desplazamiento en el espacio nulo de 𝑱.

Esto implica que la articulación y los pares de torsión asociados con tales
desplazamientos deben ser nulos en equilibrio estático.
Tenemos la ecuación notable:
𝝉 = 𝑱𝑇 (𝒒)𝛾𝑒 ( 17)

Indicando que la relación entre las fuerzas efectoras finales y los pares
articulados de torsión se establecen mediante la transposición del manipulador
geométrico Jacobiano.

Figura 3. Mapeo entre el espacio de fuerza del efector final y el espacio de torsión articular (Siciliano,
2009).

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

𝑇
• El espacio de rango de 𝑱𝑇 es el subespacio 𝑅 (𝑱 ) en 𝐼𝑅𝑛 de los pares de
articulación pueden equilibrar las fuerzas del efector final, en la postura
del manipulador dada.
𝑇
• El espacio nulo de 𝑱𝑇 es el subespacio 𝑁 (𝑱 ) en 𝐼𝑅𝑟 de las fuerzas del
efector final no requieren ningún equilibrio de los pares de articulación,
en la postura del manipulador dada.

Vale la pena señalar que las fuerzas del efector final 𝜸𝒆 ∈ 𝑁 ( 𝑱𝑇 ) son
completamente absorbido por la estructura en que la reacción de restricción
mecánica fuerza puede equilibrarlos exactamente. Por lo tanto, un
manipulador en una configuración singular permanece en la postura dada
independientemente de la fuerza del efector final 𝛾𝑒 que se aplique de modo

que 𝛾𝑒 ∈ 𝑁 ( 𝑱𝑇 ). (Siciliano et al., 2009)

3. Dinámica

La derivación del modelo dinámico de un manipulador juega un papel importante para


simulación de movimiento, análisis de estructuras de manipuladores y diseño de
algoritmos de control. Simular el movimiento del manipulador permite estrategias de
control y técnicas de planificación del movimiento que se probarán sin necesidad de
utilizar un sistema físicamente disponible. El análisis del modelo dinámico puede ser útil
para diseño mecánico de brazos prototipo. Cálculo de fuerzas y pares requeridos para la
ejecución de movimientos típicos proporciona información útil para diseñando juntas,
transmisiones y actuadores. (Siciliano et al., 2009)

Modelo dinámico inverso: Expresa la evolución temporal de las coordenadas articulares


del robot en función de las fuerzas y pares que intervienen.

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
Modelo dinámico directo: Expresa las fuerzas y pares que interviene en función de la
evolución de las coordenadas articulares.
(Barrientos et al., 1997)

El modelo dinámico de un manipulador proporciona una descripción de la relación entre


los pares del actuador articular y el movimiento de la estructura.
(Siciliano et al., 2009)

Para este proyecto nos enfocaremos en el modelo dinámico inverso, aplicaremos dos
métodos para la derivación de las ecuaciones de movimiento de un manipulador en el
espacio articular. El primer método se basa en la formulación de Lagrange y es
conceptualmente simple y sistemático. El segundo método se basa en la formulación de
Newton-Euler y produce el modelo en forma recursiva; es computacionalmente más
eficiente ya que explota la estructura típicamente abierta del manipulador de cadena
cinemática.

3.1. Propiedades de inercia.

En el estudio de la dinámica, propiedades de inercia tales como centro de masas,


momento de inercia, tensor de inercia, etc., asociados con la masa o la inercia de
los eslabones individuales que aparecen en las ecuaciones dinámicas de
movimiento de un robot, afectarán el comportamiento de este último. Para
estudiar la dinámica de un robot, es importante conocer estas diferentes
propiedades de inercia.
(Saha et al., 2008,)

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Figura 4. Momentos de masa. (Saha, 2008).

3.1.1. Centro de masa

El centro de masa del cuerpo B se define entonces como el punto C, de tal


modo que su vector de posición denotado por 𝐜 es:
1
𝐜= ∫ 𝐩 𝜌 𝑑𝑉 donde 𝑚 = ∫𝑣 𝜌 𝑑𝑉 ( 18)
𝑚 𝑣

- 𝑑𝑉 diferencial de volumen.
- 𝜌 densidad material.
- 𝐩 vector de posición.

3.1.2. Momento de inercia y tensor de inercia


El momento de inercia de un objeto es una propiedad de su masa y de su forma
geométrica.
( 19)
𝐈 = ∫ 𝑑 2 𝜌 𝑑𝑉 = ∫ 𝐝𝑇 𝐝𝜌 𝑑𝑉
𝑣 𝑣

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
- 𝑑 Posición (x, y,z).
- 𝑉 Volumen.
- 𝜌 Densidad.

El tensor de inercia o matriz de inercia I depende de la distribución de masa y


del eje de rotación, da una idea de cómo está distribuido la masa del cuerpo
rígido, es simétrico y un positivo-definitivo que también puede escribirse
como:
𝐼𝑋𝑋 𝐼𝑋𝑌 𝐼𝑋𝑍 ( 20)
𝐈 = [𝐼𝑌𝑋 𝐼𝑌𝑌 𝐼𝑌𝑍 ]
𝐼𝑍𝑋 𝐼𝑍𝑌 𝐼𝑍𝑍
3.2. Formulación Euler-Lagrange.

Figura 5. Un robot de cadena serial (Saha, 2008).

3.2.1. Energía cinética

Considerando la figura anterior de un robot con n eslabones rígidos, tenemos


la energía cinética de un eslabon 𝑖:
1 1 ( 21)
𝐾𝑖 = 𝑚𝑖 𝐜̇ 𝑖 𝑇 𝐜̇ 𝑖 + 𝑚𝑖 𝛚̇𝑖 𝑇 𝐈𝑖 𝛚̇𝑖
2 2
𝐜̇ 𝑖 : Velocidad (lineal) del centro de masas 𝐶𝑖 del i-ésimo eslabón;
𝛚̇𝑖 : Velocidad angular del i-ésimo eslabón;
1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
𝑚𝑖 : Masa del i-ésimo eslabón. Una cantidad escalar;
𝐈𝑖 : Tensor de inercia o matriz de 3×3 del i-ésimo eslabón alrededor de 𝐶𝑖 ;

Con articulaciones de revoluta:


𝛚̇𝑖 = 𝐉𝜔,𝑖 𝛉̇ , donde 𝐉𝜔,𝑖 = [𝐣̇𝜔,1 𝐣̇𝜔,2 … 𝐣̇𝜔,𝑖 𝟎 … 𝟎] ( 22)

𝐜̇ 𝑖 = 𝐉𝑐,𝑖 𝛉̇ , donde 𝐉𝑐,𝑖 = [𝐣̇𝑐,1 𝐣̇𝑐,2 … 𝐣̇𝑐,𝑖 𝟎 … 𝟎] ( 23)

Con articulación prismática:


𝐉𝜔,𝑖 = 𝟎 y j̇𝑐,𝑖 = 𝐞𝑖 ( 24)

Además, la matriz I generalizada:


𝒏
( 25)
𝐈 = ∑ 𝐈̅𝐼
𝒊=𝟏

Entonces la energía cinética total puede rescribirse como:


1 ( 26)
𝐾 = 𝛉̇𝑇 𝐈 𝛉̇
2
3.2.2. Energía potencial

La energía potencial total almacenada en el robot se obtiene por la suma de


las contribuciones de cada eslabón.
𝒏
( 27)
𝑈 = − ∑ 𝑚𝑖 𝐜𝑖 𝑇 𝐠
𝒊=𝟏

𝐜𝑖 : Posición CDM del eslabón 𝑖;


𝐠: Aceleración de la gravedad

3.2.3. Ecuación Euler-Lagrange

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
𝑑 𝜕𝐿 𝑇 𝜕𝐿 𝑇 ( 28)
( ) −( ) =𝜏
𝑑𝑡 𝜕𝑞𝑖̇ 𝜕𝑞𝑖
Las variables 𝑞𝑖, 𝑖 = 1, . . . , 𝑛, denominadas coordenadas generalizadas, se
eligen que describen eficazmente las posiciones de enlace de un manipulador
n-GDL.
El Lagrangiano del sistema mecánico se puede definir como una función de
las coordenadas generalizadas:
𝐿 = 𝐾 − 𝑈 ( 29)

donde 𝑘 y 𝑈 denotan respectivamente la energía cinética total y el potencial


energía del sistema.

3.2.4. Velocidades articulares de un robot manipulador

Figura 6. Robot manipulador, punto 𝑖𝒓𝑖 (Fu, 1987).

Donde:

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
𝑖
𝐫𝑖 : Punto fijo y en reposo, expresado en coordenadas homogéneas con
respecto al i-ésimo marco de coordenadas del enlace
𝑖
𝐫𝑖 = (𝑥𝑖 , 𝑦𝑖 , 𝑧𝑖 , 1)𝑇 ( 30)

Sea 0𝐫𝑖 el mismo punto 𝑖𝐫𝑖 con el marco de coordenadas base, 0𝐀 𝑖 , la matriz
de transformación de coordenadas homogénea que relaciona el desplazamiento
espacial del i-ésimo marco de coordenadas de torsión con el marco de
coordenadas de enlace (𝑖 − 1) -ésimo, y 0𝐀 𝑖 la matriz de transformación de
coordenadas que relaciona el i-ésimo marco de coordenadas con el marco de
coordenadas base; entonces 0𝐫𝑖 , está relacionado con el punto 𝑖 𝐫𝑖 , por:
0
𝐫𝑖 = 0𝐀 𝑖 𝑖𝐫𝑖 ( 31)

donde:
0
𝐀 𝑖 = 0𝐀1 1𝐀 2 , … , 𝑖−1𝐀 𝑖 ( 32)

0
𝐀 𝑖 : Matriz de transformación homogénea.
Si la articulación i es revoluta:
𝑐𝑜𝑠𝜃𝑖 −𝑐𝑜𝑠𝛼𝑖 𝑠𝑖𝑛𝜃𝑖 𝑠𝑖𝑛𝛼𝑖 𝑠𝑖𝑛𝜃𝑖 𝑎𝑖 𝑐𝑜𝑠𝜃𝑖 ( 33)
𝑖−1 𝑠𝑖𝑛𝜃𝑖 𝑐𝑜𝑠𝛼𝑖 𝑐𝑜𝑠𝜃𝑖 −𝑠𝑖𝑛𝛼𝑖 𝑐𝑜𝑠𝜃𝑖 𝑎𝑖 𝑠𝑖𝑛𝜃𝑖
𝐀𝑖 = [ ]
0 𝑠𝑖𝑛𝛼𝑖 𝑐𝑜𝑠𝛼𝑖 𝑑𝑖
0 0 0 1

Si la articulación i es prismática:
𝑐𝑜𝑠𝜃𝑖 −𝑐𝑜𝑠𝛼𝑖 𝑠𝑖𝑛𝜃𝑖 𝑠𝑖𝑛𝛼𝑖 𝑠𝑖𝑛𝜃𝑖 0 ( 34)
𝑖−1 𝑠𝑖𝑛𝜃𝑖 𝑐𝑜𝑠𝛼𝑖 𝑐𝑜𝑠𝜃𝑖 −𝑠𝑖𝑛𝛼𝑖 𝑐𝑜𝑠𝜃𝑖 0
𝐀𝑖 = [ ]
0 𝑠𝑖𝑛𝛼𝑖 𝑐𝑜𝑠𝛼𝑖 𝑑𝑖
0 0 0 1

Para facilitar el cálculo en posteriores ecuaciones, se realizó un cambio de


variable:

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
𝜕 0𝐀 𝑖 ( 35)
𝐔𝑖𝑗 =
𝜕𝑞𝑖
𝜕 0𝐔𝑖𝑗 ( 36)
𝐔𝑖𝑗𝑘 =
𝜕𝑞𝑘

3.2.5. Ecuaciones de movimiento de un manipulador

𝝉(𝑡) = 𝐃(𝐪(t))𝐪̈ (t) + 𝐇(𝐪(t), 𝐪̇ (t))𝐪̈ (t) + 𝐜(𝐪(t)) ( 37)

Donde

𝝉(𝑡)= Matriz nx1 torque generalizado aplicado en las articulaciones 𝑖 =


1,2, … , 𝑛, sus elementos son:
𝑻 ( 38)
𝜏(𝑡) = (𝜏1 (𝑡), 𝜏2 (𝑡), … , 𝜏𝑛 (𝑡))

𝐪(𝑡) = Vector nx1 de las variables de articulación del brazo robótico y se puede
expresar como:
𝑻 ( 39)
𝐪(𝑡) = (q1 (𝑡), q 2 (𝑡), … , q 𝑛 (𝑡))

𝐪̇ (𝑡) = Vector nx1 de la velocidad articular del brazo robótico y se puede


expresar como
𝑻 ( 40)
𝐪̇ (𝑡) = (q̇ 1 (𝑡), q̇ 2 (𝑡), … , q̇ 𝑛 (𝑡))

𝐪̈ (𝑡) = Vector nx1 de la aceleración de las variables conjuntas 𝐪(𝑡) y se puede


expresar como
𝑻 ( 41)
𝐪̈ (𝑡) = (q̈ 1 (𝑡), q̈ 2 (𝑡), … , q̈ 𝑛 (𝑡))

𝐃(𝐪) = Matriz de masa o inercia 𝑛𝑥𝑛, sus elementos son:

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
𝑛
( 42)
𝐷𝑖𝑘 = ∑ 𝑇𝑟𝑎𝑧𝑎(𝐔𝑗𝑘 𝐉𝑗 𝐔𝑗𝑖 𝑇 ) ; 𝑖, 𝑘 = 1,2, … , 𝑛
𝑗=max (𝑖,𝑘)

𝐇(𝐪, 𝐪̇ ) = Matriz no lineal nx1 de coriolisis y fuerzas centrífugas, sus


elementos son:
𝐇(𝐪, 𝐪̇ ) = (ℎ1 , ℎ2 , … , ℎ𝑛 )𝑻 ( 43)

Donde
𝑛 𝑛
( 44)
ℎ𝑖 = ∑ ∑ ℎ𝑖𝑘𝑚 𝑞̇ 𝑘 𝑞̇ 𝑚 ; 𝑖 = 1,2, … , 𝑛
𝑘=1 𝑚=1

Y
𝑛
( 45)
ℎ𝑖𝑘𝑚 = ∑ 𝑇𝑟𝑎𝑧𝑎(𝐔𝑗𝑘𝑚 𝐉𝑗 𝐔𝑗𝑖 𝑇 ) ; 𝑖, 𝑘, 𝑚 = 1,2, … , 𝑛
𝑗=max (𝑖,𝑘,𝑚)

𝐜(𝐪)= Matriz gravedad nx1, sus elementos son:


𝐜(𝐪) = (𝑐1 , 𝑐2 , … , 𝑐𝑛 )𝑇 ( 46)

Donde
𝑛
( 47)
𝑐𝑖 = − ∑ 𝑚𝑗 𝐠𝐔𝑗𝑖 𝑗𝐫𝑗 ; 𝑖 = 1,2, … , 𝑛
𝑚=1

4. Coppelia Sim

El simulador de robot CoppeliaSim, con entorno de desarrollo integrado, se

basa en una arquitectura de control distribuido: cada objeto / modelo se puede

controlar individualmente a través de un script integrado, un complemento, un

nodo ROS o BlueZero, un cliente API remoto o una solución personalizada.

Esto hace que CoppeliaSim sea muy versátil e ideal para aplicaciones de

múltiples robots. Los controladores se pueden escribir en C / C ++, Python,

Java, Lua, Matlab u Octave. (Coppeliarobotics, S.f.)


1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
CoppeliaSim se utiliza para el desarrollo rápido de algoritmos, simulaciones de

automatización de fábricas, creación rápida de prototipos y verificación,

educación relacionada con la robótica, monitoreo remoto, doble verificación de

seguridad, como gemelo digital y mucho más. (Coppeliarobotics, S.f.)

5. Robots caminantes

5.1.Los Robots Cuadrúpedos

Los robots cuadrúpedos son las máquinas más recomendables ya que su

estabilidad se incremente considerablemente frente a las máquinas bípedas

cuando realizan la acción de desplazamiento. (Girón, 2013)

(Girón, 2013) Un mayor número de patas, permite mayores velocidades y mejor

estabilidad a los robots caminantes, sin embargo, incrementa su complejidad

mecánica y de control. Un robot cuadrúpedo disminuye la complejidad

mecánica del sistema frente a robots caminantes con mayor número de patas,

manteniendo las características de:

• Onminidireccionalidad

• Adaptación al terreno

• Estabilidad estática y dinámica

Los cuadrúpedos son establemente inferiores a la de los hexápodos y octópodos

dado que en el trote utilizan 2 patas como apoyo mientras realizan el avance de

2 de las patas (Girón, 2013)

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Capítulo 4

Metodología

4.1 Cinemática directa:

Con una posición inicial de análisis como se muestra en la figura 7, nos servirá para

establecer los parámetros de Denavit – Hartenberg.

Figura 7. Análisis con cinemática directa de la pata delantera derecha. Fuente: Propia.

Para un mejor análisis, trabajamos con otra vista en un plano x-z, como se está indicando en las figuras

adjuntas.

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Figura 8.. Análisis con cinemática directa de la pata delantera derecha en plano XZ. Fuente: Propia.

Consecuentemente, llegamos a establecer los parámetros de Denavit – Hartenbeg:

Tabla 1. Parámetros Denavit Hartenberg. Fuente: Propia.

𝐽𝑜𝑖𝑛𝑡 𝜃𝑖 𝑑𝑖 𝑎𝑖 𝛼𝑖
0−1 𝑞1 − π/2 0 𝐿1 −𝜋/2

1−2 𝑞2 0 𝐿2 0

2−3 𝑞3 0 𝐿3 0

Por tanto, tendremos el script de la cinemática directa como se muestra a


continuación:
clc, clear all
syms q1 q2 q3 L1 L2 L3 pi
%Parametros de Denavit Hartenberg
theta = [q1-pi/2;q2;q3];
d = [0;0;0];

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
a = [L1;L2;L3];
alfa = [-pi/2;0;0];

MDH=[theta d a alfa]%tabla de parametros de DH


%Matriz de Transformacion Homogenea entre sistemas de coordenadas
T01 = denavit(theta(1),d(1),a(1),alfa(1))
T12 = denavit(theta(2),d(2),a(2),alfa(2))
T23 = denavit(theta(3),d(3),a(3),alfa(3))

T03=simplify(T01*T12*T23)

4.2 CINEMÁTICA INVERSA:

Análisis general, utilizando el método geométrico:

Guiándonos de un esquema de cilindros para las revolutas, hemos analizado la pata

delantera del lado derecho del Robot Spot Micro, por lo cual tenemos:

Figura 9. Esquema de análisis con cilindros de la pata delantera derecha del robot Spot. Fuente: Propia.
1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Análisis de la cinemática inversa para la pata delantera del lado derecho:

Las ecuaciones resultantes del análisis cinemático inverso para la pata delantera del lado

derecho están escritas en un orden secuencial para posteriormente poder expresarlo en

código, además todas las patas del robot spot tienen un esquema análogo, por lo que las

ecuaciones de las demás patas serán deducidas por los signos y rotaciones que describen la

posición de la pata.

𝑅 = √𝑥 2 + 𝑦 2 − 𝐿21 … cadera derecha

𝑟 2 = 𝑅2 + 𝑧 2

𝑟 2 − 𝐿22 − 𝐿23
cos 𝑞3 =
2𝐿2 𝐿3

𝑅 −𝑥
𝑞1 = 𝑎𝑟𝑐 𝑡𝑔 ( ) − 𝑎𝑟𝑐 𝑡𝑔 ( )
𝐿1 −𝑦

√1 − cos2 𝑞3
𝑞3 = 𝑎𝑟𝑐 𝑡𝑔 ( ) … 𝑟𝑜𝑑𝑖𝑙𝑙𝑎 𝑎𝑡𝑟á𝑠
cos 𝑞3

𝑅 𝐿2 sin 𝑞3
𝑞2 = 𝑎𝑟𝑐 𝑡𝑔 ( ) − 𝑎𝑟𝑐 𝑡𝑔 ( )
𝑧 𝐿2 + 𝐿3 cos 𝑞3

Desarrollo:

Analizamos respecto al plano Y-X.

Donde el resultado de 𝑅 tiene dos raíces, lo cual se interpreta para el signo positivo como

cadera derecha y el signo negativo como cadera izquierda.

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Figura 10. Esquema de análisis de la pata delantera derecha desde plano YX. Fuente: Propia.

𝑅 = ±√𝑥 2 + 𝑦 2 − 𝐿21

𝑅
𝛾 = 𝑎𝑟𝑐 𝑡𝑔 ( )
𝐿1

−𝑥
𝜎 = 𝑎𝑟𝑐 𝑡𝑔 ( )
−𝑦

𝑞1 = 𝛾 − 𝜎

𝑅 −𝑥
𝑞1 = 𝑎𝑟𝑐 𝑡𝑔 ( ) − 𝑎𝑟𝑐 𝑡𝑔 ( )
𝐿1 −𝑦

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
Analizamos en el plano Z-R, donde eje R fue trazado imaginariamente para facilitar

el cálculo geométrico.

Figura 11.Esquema de análisis de la pata delantera derecha desde plano RZ. Fuente: Propia.

Del triángulo rectángulo tenemos:

𝑟 2 = 𝑅2 + 𝑧 2

Por ley de cosenos:

𝑟 2 = 𝐿22 + 𝐿23 + 2𝐿2 𝐿3 cos 𝑞3

𝑟 2 − 𝐿22 − 𝐿23
cos 𝑞3 =
2𝐿2 𝐿3

A continuación, utilizamos el arco tangente ya que es una función que no pierde

información referente a la posición del robot, ya que al trabajar con arco coseno nos podría

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
llevar a un error. Obtenemos 𝑞3 :

±√1 − cos 2 𝑞3
𝑞3 = 𝑎𝑟𝑐 𝑡𝑔 ( )
cos 𝑞3

Donde con el signo positivo para la raíz, indicaría “rodilla atrás” y la rodilla

adelante sería con el signo opuesto.

Luego:

𝐿2 sin 𝑞3
𝛼 = 𝑎𝑟𝑐 𝑡𝑔 ( )
𝐿2 + 𝐿3 cos 𝑞3

𝑅
𝛽 = 𝑎𝑟𝑐 𝑡𝑔 ( )
𝑧

𝑞2 = 𝛽 − 𝛼

Reemplazando valores, obtenemos 𝑞2 :

𝑅 𝐿2 sin 𝑞3
𝑞2 = 𝑎𝑟𝑐 𝑡𝑔 ( ) − 𝑎𝑟𝑐 𝑡𝑔 ( )
𝑧 𝐿2 + 𝐿3 cos 𝑞3

4.3 CINEMATICA DIFERENCIAL

Tomando en cuenta los parámetros de Denavit-Hartenberg planteados en secciones

anteriores se desarrollo un script para calcular la matriz jacobiana de velocidades, este

script se muestra a continuación.

%PROYECTO - CINEMATICA DIFERENCIAL


%UNIVERSIDAD NACIONAL DE TRUJILLO
%--------------------------------------------------------------
------------
clear all, clc
%Longitudes en cm
L1=6;
L2=10.8;

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
L3=13.5;
syms q1 q2 q3 pi
%Parametros de Denavit Hartenberg
theta = [q1-pi/2;q2;q3];
d = [0;0;0];
a = [L1;L2;L3];
alfa = [-pi/2;0;0];

MDH=[theta d a alfa]%tabla de parametros de DH

%Matriz de Transformacion Homogenea entre sistemas de


coordenadas
T01 = denavit(theta(1),d(1),a(1),alfa(1))
T12 = denavit(theta(2),d(2),a(2),alfa(2))
T23 = denavit(theta(3),d(3),a(3),alfa(3))

T02 = simplify(T01*T12)
T03 = simplify(T01*T12*T23)

P03=T03(1:3,4)

%Calculo de Velocidades del robot


%Calculo del jacobiano lineal
%Metodo 1
Jv1_1=[diff(P03(1,1),q1) diff(P03(1,1),q2) diff(P03(1,1),q3)];
Jv2_1=[diff(P03(2,1),q1) diff(P03(2,1),q2) diff(P03(2,1),q3)];
Jv3_1=[diff(P03(3,1),q1) diff(P03(3,1),q2) diff(P03(3,1),q3)];
Jv1=[Jv1_1;Jv2_1;Jv3_1];
Jv1=simplify(Jv1)
%Jv1=jacobian(P02,[q1 q2])
%--------------------------------------------------------------
------------------
Z0=[0;0;1]; %Constante
%--------------------------------------------------------------
-----------------
%Jacobiano de velocidades angulares
%Jw=e1*Z0+e2*Z1+e3*Z2...en*Zn-1
%e1=0 articulacion prismatica
Z1=T01(1:3,3);
Z2=T02(1:3,3);
Jw=[Z0 Z1 Z2]
%LA MATRIZ JACOBIANA
J=vpa([Jv1;Jw],2)
%--------------------------------------------------------------
--------------

El resultado obtenido se muestra en la figura 12

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Figura 12. Jacobiano de velocidades de una pata del cuadrúpedo. Fuente: Propia

4.4 ANALISIS ESTÁTICO

A continuación, se muestra el script desarrollado para el cálculo del análisis estático

%ESTATICA - PROYECTO
%UNIVERSIDAD NACIONAL DE TRUJILLO - Ing. Mecatronica
%Robótica
%----------------------------------------------------------
clc, clear all
syms q1 q2 q3 pi m1 m2 m3 g F3x F3y M3x M3y M3z
L1=6;
L2=10.8;
L3=13.5;
%Parametros de Denavit Hartenberg
theta = [q1-pi/2;q2;q3];
d = [0;0;0];
a = [L1;L2;L3];
alfa = [-pi/2;0;0];

MDH=[theta d a alfa]%tabla de parametros de DH

%Matriz de Transformacion Homogenea entre sistemas de


coordenadas
T01 = denavit(theta(1),d(1),a(1),alfa(1))
T12 = denavit(theta(2),d(2),a(2),alfa(2))
T23 = denavit(theta(3),d(3),a(3),alfa(3))

T03=simplify(T01*T12*T23)
T02=simplify(T01*T12);
%Posicion
P03=T03(1:3,4);
%MATRICES DE ROTACIÓN
1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
R01=T01(1:3,1:3);
R02=T02(1:3,1:3);
R03=T03(1:3,1:3);
R12=T12(1:3,1:3);
R23=T23(1:3,1:3);
R10=R01.'; %Transpuesta de R01
R20=R02.'; %Transpuesta de R02
%%
%...............................................
%...............................................
%PARAMETROS DE ESTATICA
%FUERZAS Y MOMENTOS DE ENTRADA aplicados al efector final
M3x=0;
M3y=0;
M3z=0;
M34=[M3x;M3y;M3z];
F34=[F3x;F3y;0];
%...........................................
%Gravedad
G=[0;-9.81;0];
%Vectores de posicion
r32C3=[L3/2;0;0];
r21C2=[L2/2;0;0];
r10C1=[-L1/2;0;0];
r32=[L3;0;0];
r21=[L2;0;0];
r10=[-L1;0;0];
%...........................................
%EQUILIBRIO DE FUERZAS
F23=R23*F34-m3*R20*G;
F12=R12*F23-m2*R10*G;
F01=R01*F12-m1*G;
%.......................................
%EQUILIBRIO DE PARES
M23=R23*M34-cross(R23*r32C3,m3*R20*G)+cross(R23*r32,R23*F34);
M12=R12*M23-cross(R12*r21C2,m2*R10*G)+cross(R12*r21,R12*F23);
M01=R01*M12-cross(R01*r10C1,m1*G) +cross(R01*r10,R01*F12);
%...........................................................
%...........................................................
%TORQUES
tau=vpa(simplify([M01;M12;M23]),2)

Se muestra la matriz tau que es el resultado del análisis estático del robot en la figura 13.

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Figura 13. Resultado del análisis estático de una pata del cuadrúpedo. Fuente: Propia

4.5 ANALISIS DINÁMICO

El modelo dinámico de la pata del robot se obtuvo mediante el siguiente script.

%DINAMICA LAGRANGIANA - PROYECTO


%UNIVERSIDAD NACIONAL DE TRUJILLO - Ing. Mecatronica
%Robótica
%ELABORADO BY
%-----------------------------------
clc, clear all
syms m1 m2 m3 q1 q2 q3 dq1 dq2 dq3 ddq1 ddq2 ddq3 pi
%--------------------------------------------------------------
---------------------------
L1=6;
L2=10.8;
L3=13.5;
Lc1=L1/2;
Lc2=L2/2;
Lc3=L3/2;
%Parámetros de Denavit - Hartenberg:
theta = [q1-pi/2;q2;q3];
d = [0;0;0];
a = [L1;L2;L3];
alfa = [-pi/2;0;0];
1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
MDH=[theta d a alfa];% Tabla de parametros de DH
%Matriz de Transformacion Homogenea
T01=denavit(theta(1),d(1),a(1),alfa(1));
T12=denavit(theta(2),d(2),a(2),alfa(2));
T23=denavit(theta(3),d(3),a(3),alfa(3));
T03=simplify(T01*T12*T23);
T02=simplify(T01*T12);
%Posicion
P03=T03(1:3,4);
%MATRICES DE ROTACIÓN
R01=T01(1:3,1:3);
R02=T02(1:3,1:3);
R03=T03(1:3,1:3);
R12=T12(1:3,1:3);
R23=T23(1:3,1:3);
%%
%...................................................
%posiciones del centro de masa
x1=Lc1*cos(q1 - pi/2);
y1=Lc1*sin(q1 - pi/2);
z1=0;
x2=sin(q1)*(Lc1+Lc2*cos(q2));
y2=-cos(q1)*(Lc1+Lc2*cos(q2));
z2=-Lc2*sin(q2);
x3=sin(q1)*(Lc1+Lc3*cos(q2+q3)+Lc2*cos(q2));
y3=-cos(q1)*(Lc1+Lc3*cos(q2+q3)+Lc2*cos(q2));
z3=-Lc3*sin(q2+q3)-Lc2*sin(q2);
%........................................
%Jacobiano de velocidades del centro de masa
%a) Jacobiano de velocidades Lineales de centro de maasa
Jv1=[0 0 0;0 0 0;0 0 0];
Jv2=[diff(x2,q1) diff(x2,q2) 0; diff(y2,q1) diff(y2,q2)
0;diff(z2,q1) diff(z2,q2) 0];
Jv3=[diff(x3,q1) diff(x3,q2) diff(x3,q3); diff(y3,q1)
diff(y3,q2) diff(y3,q3);diff(z3,q1) diff(z3,q2) diff(z3,q3)];
%b) Jacobiano de velocidades angulares
Z0=[0;0;1];
Z1=T01(1:3,3);
Z2=T02(1:3,3);
cero=[0;0;0];
Jw1=[Z0 cero cero];
Jw2=[Z0 Z1 cero];
Jw3=[Z0 Z1 Z2];
%.........................................................
%Matrices de rotación
R01=T01(1:3,1:3);
R02=T02(1:3,1:3);

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
%...........................................................
%Tensor de Inercia
syms Ixx1 Iyy1 Izz1 Ixy1 Ixz1 Iyz1 Ixx2 Iyy2 Izz2 Ixy2 Ixz2
Iyz2 Ixx3 Iyy3 Izz3 Ixy3 Ixz3 Iyz3
I1=[Ixx1 Ixy1 Ixz1; Ixy1 Iyy1 Iyz1; Ixz1 Iyz1 Izz1];
I2=[Ixx2 Ixy2 Ixz2; Ixy2 Iyy2 Iyz2; Ixz2 Iyz2 Izz2];
I3=[Ixx3 Ixy3 Ixz3; Ixy3 Iyy3 Iyz3; Ixz3 Iyz3 Izz3];
%....................................
%..................................
%Se calcula la matriz de inercia o masa del Robot.
D=m1*(Jv1.')*Jv1+(Jw1.')*R01*I1*(R01.')*Jw1+m2*(Jv2.')*Jv2+(Jw2
.')*R02*I2*(R02.')*Jw2+m3*(Jv3.')*Jv3+(Jw3.')*R03*I3*(R03.')*Jw
3;
%..............................
%matriz de coriolisis o centrifuga
%c11,c12, c13,c21,c22,c23, c31 c32 c33
C111 = (diff(D(1,1),q1)+diff(D(1,1),q1)-diff(D(1,1),q1))/2;
C112 = (diff(D(1,1),q2)+diff(D(1,2),q1)-diff(D(1,2),q1))/2;
C113 = (diff(D(1,1),q3)+diff(D(1,3),q1)-diff(D(1,3),q1))/2;
C121 = (diff(D(1,2),q1)+diff(D(1,1),q2)-diff(D(2,1),q1))/2;
C122 = (diff(D(1,2),q2)+diff(D(1,2),q2)-diff(D(2,2),q1))/2;
C123 = (diff(D(1,2),q3)+diff(D(1,3),q2)-diff(D(2,3),q1))/2;
C131 = (diff(D(1,3),q1)+diff(D(1,1),q3)-diff(D(3,1),q1))/2;
C132 = (diff(D(1,3),q2)+diff(D(1,2),q3)-diff(D(3,2),q1))/2;
C133 = (diff(D(1,3),q3)+diff(D(1,3),q3)-diff(D(3,3),q1))/2;

C211 = (diff(D(2,1),q1)+diff(D(2,1),q1)-diff(D(1,1),q2))/2;
C212 = (diff(D(2,1),q2)+diff(D(2,2),q1)-diff(D(1,2),q2))/2;
C213 = (diff(D(2,1),q3)+diff(D(2,3),q1)-diff(D(1,3),q2))/2;
C221 = (diff(D(2,2),q1)+diff(D(2,1),q2)-diff(D(2,1),q2))/2;
C222 = (diff(D(2,2),q2)+diff(D(2,2),q2)-diff(D(2,2),q2))/2;
C223 = (diff(D(2,2),q3)+diff(D(2,3),q2)-diff(D(2,3),q2))/2;
C231 = (diff(D(2,3),q1)+diff(D(2,1),q3)-diff(D(3,1),q2))/2;
C232 = (diff(D(2,3),q2)+diff(D(2,2),q3)-diff(D(3,2),q2))/2;
C233 = (diff(D(2,3),q3)+diff(D(2,3),q3)-diff(D(3,3),q2))/2;

C311 = (diff(D(3,1),q1)+diff(D(3,1),q1)-diff(D(1,1),q3))/2;
C312 = (diff(D(3,1),q2)+diff(D(3,2),q1)-diff(D(1,2),q3))/2;
C313 = (diff(D(3,1),q3)+diff(D(3,3),q1)-diff(D(1,3),q3))/2;
C321 = (diff(D(3,2),q1)+diff(D(3,1),q2)-diff(D(2,1),q3))/2;
C322 = (diff(D(3,2),q2)+diff(D(3,2),q2)-diff(D(2,2),q3))/2;
C323 = (diff(D(3,2),q3)+diff(D(3,3),q2)-diff(D(2,3),q3))/2;
C331 = (diff(D(3,3),q1)+diff(D(3,1),q3)-diff(D(3,1),q3))/2;
C332 = (diff(D(3,3),q2)+diff(D(3,2),q3)-diff(D(3,2),q3))/2;
C333 = (diff(D(3,3),q3)+diff(D(3,3),q3)-diff(D(3,3),q3))/2;
%.....................................
c11=C111*dq1+C112*dq2+C113*dq3;

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
c12=C121*dq1+C122*dq2+C123*dq3;
c13=C131*dq1+C132*dq2+C133*dq3;
c21=C211*dq1+C212*dq2+C213*dq3;
c22=C221*dq1+C222*dq2+C223*dq3;
c23=C231*dq1+C232*dq2+C233*dq3;
c31=C311*dq1+C312*dq2+C313*dq3;
c32=C321*dq1+C322*dq2+C323*dq3;
c33=C331*dq1+C332*dq2+C333*dq3;
%..............................................
C=[c11 c12 c13; c21 c22 c23; c31 c32 c33];
%..............................................................
%vector gravedad
syms g
g0=[0;-g;0];
%...........................................................
Jv1T=Jv1.';
Jv2T=Jv2.';
Jv3T=Jv3.';
g1=-Jv1T(1,1:3)*m1*g0-Jv2T(1,1:3)*m2*g0-Jv3T(1,1:3)*m3*g0;
g2=-Jv1T(2,1:3)*m1*g0-Jv2T(2,1:3)*m2*g0-Jv3T(2,1:3)*m3*g0;
g3=-Jv1T(3,1:3)*m1*g0-Jv2T(3,1:3)*m2*g0-Jv3T(3,1:3)*m3*g0;
G=[g1,g2,g3];
%.........................................................
%Modelo Dinámico del robot
tau=simplify(D*[ddq1;ddq2;ddq3]+C*[dq1;dq2;dq3]+G)

A continuación, se muestra el modelo dinámico obtenido al ejecutar.

[ (Ixx2*ddq1)/2 + (Ixx3*ddq1)/2 + Iyy1*ddq1 + (Iyy2*ddq1)/2 + (Iyy3*ddq1)/2 + (1179*ddq1*m2)/50 +


(37089*ddq1*m3)/800 + (162*ddq1*m2*cos(q2))/5 + (162*ddq1*m3*cos(q2))/5 +
(729*ddq1*m3*cos(q3))/20 - Ixz3*dq2^2*cos(q2 + q3) - Ixz3*dq3^2*cos(q2 + q3) + 3*g*m2*sin(q1) +
3*g*m3*sin(q1) + Iyz3*dq2^2*sin(q2 + q3) + Iyz3*dq3^2*sin(q2 + q3) + (729*ddq1*m3*cos(2*q2 +
q3))/20 - (Ixx2*ddq1*cos(2*q2))/2 + (Iyy2*ddq1*cos(2*q2))/2 - Ixz2*dq2^2*cos(q2) +
(27*g*m2*sin(q1 - q2))/10 + (27*g*m3*sin(q1 - q2))/10 + Ixy2*ddq1*sin(2*q2) + Iyz2*dq2^2*sin(q2)
+ (27*g*m3*sin(q1 + q2 + q3))/8 + (729*ddq1*m2*cos(2*q2))/50 + (729*ddq1*m3*cos(2*q2))/50 -
(Ixx3*ddq1*cos(2*q2 + 2*q3))/2 + (Iyy3*ddq1*cos(2*q2 + 2*q3))/2 + Ixy3*ddq1*sin(2*q2 + 2*q3) +
(729*ddq1*m3*cos(2*q2 + 2*q3))/32 - Iyz3*ddq2*cos(q2 + q3) - Iyz3*ddq3*cos(q2 + q3) -
(27*g*m3*sin(q2 - q1 + q3))/8 - Ixz3*ddq2*sin(q2 + q3) - Ixz3*ddq3*sin(q2 + q3) +
(81*ddq1*m3*cos(q2 + q3))/2 - Iyz2*ddq2*cos(q2) + (27*g*m2*sin(q1 + q2))/10 + (27*g*m3*sin(q1 +
q2))/10 - Ixz2*ddq2*sin(q2) - (729*dq1*dq2*m3*sin(2*q2 + 2*q3))/16 - (729*dq1*dq3*m3*sin(2*q2
+ 2*q3))/16 - 2*Ixz3*dq2*dq3*cos(q2 + q3) + 2*Iyz3*dq2*dq3*sin(q2 + q3) - (81*dq1*dq2*m3*sin(q2
+ q3))/2 - (81*dq1*dq3*m3*sin(q2 + q3))/2 - (162*dq1*dq2*m2*sin(q2))/5 -
(162*dq1*dq2*m3*sin(q2))/5 - (729*dq1*dq3*m3*sin(q3))/20 + 2*Ixy2*dq1*dq2*cos(2*q2) -
(729*dq1*dq2*m3*sin(2*q2 + q3))/10 - (729*dq1*dq3*m3*sin(2*q2 + q3))/20 +
Ixx2*dq1*dq2*sin(2*q2) - Iyy2*dq1*dq2*sin(2*q2) + 2*Ixy3*dq1*dq2*cos(2*q2 + 2*q3) +
2*Ixy3*dq1*dq3*cos(2*q2 + 2*q3) - (729*dq1*dq2*m2*sin(2*q2))/25 -

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
(729*dq1*dq2*m3*sin(2*q2))/25 + Ixx3*dq1*dq2*sin(2*q2 + 2*q3) + Ixx3*dq1*dq3*sin(2*q2 +
2*q3) - Iyy3*dq1*dq2*sin(2*q2 + 2*q3) - Iyy3*dq1*dq3*sin(2*q2 + 2*q3), (Ixx2*ddq1)/2 +
(Ixx3*ddq1)/2 + Iyy1*ddq1 + (Iyy2*ddq1)/2 + (Iyy3*ddq1)/2 + (1179*ddq1*m2)/50 +
(37089*ddq1*m3)/800 + (162*ddq1*m2*cos(q2))/5 + (162*ddq1*m3*cos(q2))/5 +
(729*ddq1*m3*cos(q3))/20 - Ixz3*dq2^2*cos(q2 + q3) - Ixz3*dq3^2*cos(q2 + q3) +
Iyz3*dq2^2*sin(q2 + q3) + Iyz3*dq3^2*sin(q2 + q3) + (729*ddq1*m3*cos(2*q2 + q3))/20 -
(Ixx2*ddq1*cos(2*q2))/2 + (Iyy2*ddq1*cos(2*q2))/2 - Ixz2*dq2^2*cos(q2) - (27*g*m2*sin(q1 -
q2))/10 - (27*g*m3*sin(q1 - q2))/10 + Ixy2*ddq1*sin(2*q2) + Iyz2*dq2^2*sin(q2) + (27*g*m3*sin(q1
+ q2 + q3))/8 + (729*ddq1*m2*cos(2*q2))/50 + (729*ddq1*m3*cos(2*q2))/50 - (Ixx3*ddq1*cos(2*q2
+ 2*q3))/2 + (Iyy3*ddq1*cos(2*q2 + 2*q3))/2 + Ixy3*ddq1*sin(2*q2 + 2*q3) +
(729*ddq1*m3*cos(2*q2 + 2*q3))/32 - Iyz3*ddq2*cos(q2 + q3) - Iyz3*ddq3*cos(q2 + q3) +
(27*g*m3*sin(q2 - q1 + q3))/8 - Ixz3*ddq2*sin(q2 + q3) - Ixz3*ddq3*sin(q2 + q3) +
(81*ddq1*m3*cos(q2 + q3))/2 - Iyz2*ddq2*cos(q2) + (27*g*m2*sin(q1 + q2))/10 + (27*g*m3*sin(q1 +
q2))/10 - Ixz2*ddq2*sin(q2) - (729*dq1*dq2*m3*sin(2*q2 + 2*q3))/16 - (729*dq1*dq3*m3*sin(2*q2
+ 2*q3))/16 - 2*Ixz3*dq2*dq3*cos(q2 + q3) + 2*Iyz3*dq2*dq3*sin(q2 + q3) - (81*dq1*dq2*m3*sin(q2
+ q3))/2 - (81*dq1*dq3*m3*sin(q2 + q3))/2 - (162*dq1*dq2*m2*sin(q2))/5 -
(162*dq1*dq2*m3*sin(q2))/5 - (729*dq1*dq3*m3*sin(q3))/20 + 2*Ixy2*dq1*dq2*cos(2*q2) -
(729*dq1*dq2*m3*sin(2*q2 + q3))/10 - (729*dq1*dq3*m3*sin(2*q2 + q3))/20 +
Ixx2*dq1*dq2*sin(2*q2) - Iyy2*dq1*dq2*sin(2*q2) + 2*Ixy3*dq1*dq2*cos(2*q2 + 2*q3) +
2*Ixy3*dq1*dq3*cos(2*q2 + 2*q3) - (729*dq1*dq2*m2*sin(2*q2))/25 -
(729*dq1*dq2*m3*sin(2*q2))/25 + Ixx3*dq1*dq2*sin(2*q2 + 2*q3) + Ixx3*dq1*dq3*sin(2*q2 +
2*q3) - Iyy3*dq1*dq2*sin(2*q2 + 2*q3) - Iyy3*dq1*dq3*sin(2*q2 + 2*q3), (Ixx2*ddq1)/2 +
(Ixx3*ddq1)/2 + Iyy1*ddq1 + (Iyy2*ddq1)/2 + (Iyy3*ddq1)/2 + (1179*ddq1*m2)/50 +
(37089*ddq1*m3)/800 + (162*ddq1*m2*cos(q2))/5 + (162*ddq1*m3*cos(q2))/5 +
(729*ddq1*m3*cos(q3))/20 - Ixz3*dq2^2*cos(q2 + q3) - Ixz3*dq3^2*cos(q2 + q3) +
Iyz3*dq2^2*sin(q2 + q3) + Iyz3*dq3^2*sin(q2 + q3) + (729*ddq1*m3*cos(2*q2 + q3))/20 -
(Ixx2*ddq1*cos(2*q2))/2 + (Iyy2*ddq1*cos(2*q2))/2 - Ixz2*dq2^2*cos(q2) + Ixy2*ddq1*sin(2*q2) +
Iyz2*dq2^2*sin(q2) + (27*g*m3*sin(q1 + q2 + q3))/8 + (729*ddq1*m2*cos(2*q2))/50 +
(729*ddq1*m3*cos(2*q2))/50 - (Ixx3*ddq1*cos(2*q2 + 2*q3))/2 + (Iyy3*ddq1*cos(2*q2 + 2*q3))/2 +
Ixy3*ddq1*sin(2*q2 + 2*q3) + (729*ddq1*m3*cos(2*q2 + 2*q3))/32 - Iyz3*ddq2*cos(q2 + q3) -
Iyz3*ddq3*cos(q2 + q3) + (27*g*m3*sin(q2 - q1 + q3))/8 - Ixz3*ddq2*sin(q2 + q3) - Ixz3*ddq3*sin(q2
+ q3) + (81*ddq1*m3*cos(q2 + q3))/2 - Iyz2*ddq2*cos(q2) - Ixz2*ddq2*sin(q2) -
(729*dq1*dq2*m3*sin(2*q2 + 2*q3))/16 - (729*dq1*dq3*m3*sin(2*q2 + 2*q3))/16 -
2*Ixz3*dq2*dq3*cos(q2 + q3) + 2*Iyz3*dq2*dq3*sin(q2 + q3) - (81*dq1*dq2*m3*sin(q2 + q3))/2 -
(81*dq1*dq3*m3*sin(q2 + q3))/2 - (162*dq1*dq2*m2*sin(q2))/5 - (162*dq1*dq2*m3*sin(q2))/5 -
(729*dq1*dq3*m3*sin(q3))/20 + 2*Ixy2*dq1*dq2*cos(2*q2) - (729*dq1*dq2*m3*sin(2*q2 + q3))/10
- (729*dq1*dq3*m3*sin(2*q2 + q3))/20 + Ixx2*dq1*dq2*sin(2*q2) - Iyy2*dq1*dq2*sin(2*q2) +
2*Ixy3*dq1*dq2*cos(2*q2 + 2*q3) + 2*Ixy3*dq1*dq3*cos(2*q2 + 2*q3) -
(729*dq1*dq2*m2*sin(2*q2))/25 - (729*dq1*dq2*m3*sin(2*q2))/25 + Ixx3*dq1*dq2*sin(2*q2 +
2*q3) + Ixx3*dq1*dq3*sin(2*q2 + 2*q3) - Iyy3*dq1*dq2*sin(2*q2 + 2*q3) - Iyy3*dq1*dq3*sin(2*q2 +
2*q3)]
[
Izz2*ddq2 + Izz3*ddq2 + Izz3*ddq3 + (729*ddq2*m2)/25 + (29889*ddq2*m3)/400 +
(729*ddq3*m3)/16 + (729*dq1^2*m3*sin(2*q2 + 2*q3))/32 + (729*ddq2*m3*cos(q3))/10 +
(729*ddq3*m3*cos(q3))/20 + 3*g*m2*sin(q1) + 3*g*m3*sin(q1) + (81*dq1^2*m3*sin(q2 + q3))/4 +
(27*g*m2*sin(q1 - q2))/10 + (27*g*m3*sin(q1 - q2))/10 + (27*g*m3*sin(q1 + q2 + q3))/8 +
(81*dq1^2*m2*sin(q2))/5 + (81*dq1^2*m3*sin(q2))/5 - (729*dq3^2*m3*sin(q3))/20 -
Ixy2*dq1^2*cos(2*q2) + (729*dq1^2*m3*sin(2*q2 + q3))/20 - (Ixx2*dq1^2*sin(2*q2))/2 +

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
(Iyy2*dq1^2*sin(2*q2))/2 - Iyz3*ddq1*cos(q2 + q3) - (27*g*m3*sin(q2 - q1 + q3))/8 -
Ixz3*ddq1*sin(q2 + q3) - Ixy3*dq1^2*cos(2*q2 + 2*q3) + (729*dq1^2*m2*sin(2*q2))/50 +
(729*dq1^2*m3*sin(2*q2))/50 - (Ixx3*dq1^2*sin(2*q2 + 2*q3))/2 + (Iyy3*dq1^2*sin(2*q2 + 2*q3))/2
- Iyz2*ddq1*cos(q2) + (27*g*m2*sin(q1 + q2))/10 + (27*g*m3*sin(q1 + q2))/10 - Ixz2*ddq1*sin(q2) -
(729*dq2*dq3*m3*sin(q3))/10,
Izz2*ddq2 + Izz3*ddq2 + Izz3*ddq3 + (729*ddq2*m2)/25 + (29889*ddq2*m3)/400 +
(729*ddq3*m3)/16 + (729*dq1^2*m3*sin(2*q2 + 2*q3))/32 + (729*ddq2*m3*cos(q3))/10 +
(729*ddq3*m3*cos(q3))/20 + (81*dq1^2*m3*sin(q2 + q3))/4 - (27*g*m2*sin(q1 - q2))/10 -
(27*g*m3*sin(q1 - q2))/10 + (27*g*m3*sin(q1 + q2 + q3))/8 + (81*dq1^2*m2*sin(q2))/5 +
(81*dq1^2*m3*sin(q2))/5 - (729*dq3^2*m3*sin(q3))/20 - Ixy2*dq1^2*cos(2*q2) +
(729*dq1^2*m3*sin(2*q2 + q3))/20 - (Ixx2*dq1^2*sin(2*q2))/2 + (Iyy2*dq1^2*sin(2*q2))/2 -
Iyz3*ddq1*cos(q2 + q3) + (27*g*m3*sin(q2 - q1 + q3))/8 - Ixz3*ddq1*sin(q2 + q3) -
Ixy3*dq1^2*cos(2*q2 + 2*q3) + (729*dq1^2*m2*sin(2*q2))/50 + (729*dq1^2*m3*sin(2*q2))/50 -
(Ixx3*dq1^2*sin(2*q2 + 2*q3))/2 + (Iyy3*dq1^2*sin(2*q2 + 2*q3))/2 - Iyz2*ddq1*cos(q2) +
(27*g*m2*sin(q1 + q2))/10 + (27*g*m3*sin(q1 + q2))/10 - Ixz2*ddq1*sin(q2) -
(729*dq2*dq3*m3*sin(q3))/10,
Izz2*ddq2 + Izz3*ddq2 + Izz3*ddq3 + (729*ddq2*m2)/25 + (29889*ddq2*m3)/400 +
(729*ddq3*m3)/16 + (729*dq1^2*m3*sin(2*q2 + 2*q3))/32 + (729*ddq2*m3*cos(q3))/10 +
(729*ddq3*m3*cos(q3))/20 + (81*dq1^2*m3*sin(q2 + q3))/4 + (27*g*m3*sin(q1 + q2 + q3))/8 +
(81*dq1^2*m2*sin(q2))/5 + (81*dq1^2*m3*sin(q2))/5 - (729*dq3^2*m3*sin(q3))/20 -
Ixy2*dq1^2*cos(2*q2) + (729*dq1^2*m3*sin(2*q2 + q3))/20 - (Ixx2*dq1^2*sin(2*q2))/2 +
(Iyy2*dq1^2*sin(2*q2))/2 - Iyz3*ddq1*cos(q2 + q3) + (27*g*m3*sin(q2 - q1 + q3))/8 -
Ixz3*ddq1*sin(q2 + q3) - Ixy3*dq1^2*cos(2*q2 + 2*q3) + (729*dq1^2*m2*sin(2*q2))/50 +
(729*dq1^2*m3*sin(2*q2))/50 - (Ixx3*dq1^2*sin(2*q2 + 2*q3))/2 + (Iyy3*dq1^2*sin(2*q2 + 2*q3))/2
- Iyz2*ddq1*cos(q2) - Ixz2*ddq1*sin(q2) - (729*dq2*dq3*m3*sin(q3))/10]
[
Izz3*ddq2 + Izz3*ddq3 + (729*ddq2*m3)/16 + (729*ddq3*m3)/16 + (729*dq1^2*m3*sin(2*q2 +
2*q3))/32 + (729*ddq2*m3*cos(q3))/20 + 3*g*m2*sin(q1) + 3*g*m3*sin(q1) + (81*dq1^2*m3*sin(q2
+ q3))/4 + (27*g*m2*sin(q1 - q2))/10 + (27*g*m3*sin(q1 - q2))/10 + (27*g*m3*sin(q1 + q2 + q3))/8 +
(729*dq1^2*m3*sin(q3))/40 + (729*dq2^2*m3*sin(q3))/20 + (729*dq1^2*m3*sin(2*q2 + q3))/40 -
Iyz3*ddq1*cos(q2 + q3) - (27*g*m3*sin(q2 - q1 + q3))/8 - Ixz3*ddq1*sin(q2 + q3) -
Ixy3*dq1^2*cos(2*q2 + 2*q3) - (Ixx3*dq1^2*sin(2*q2 + 2*q3))/2 + (Iyy3*dq1^2*sin(2*q2 + 2*q3))/2 +
(27*g*m2*sin(q1 + q2))/10 + (27*g*m3*sin(q1 + q2))/10,
Izz3*ddq2 + Izz3*ddq3 + (729*ddq2*m3)/16 + (729*ddq3*m3)/16 + (729*dq1^2*m3*sin(2*q2 +
2*q3))/32 + (729*ddq2*m3*cos(q3))/20 + (81*dq1^2*m3*sin(q2 + q3))/4 - (27*g*m2*sin(q1 -
q2))/10 - (27*g*m3*sin(q1 - q2))/10 + (27*g*m3*sin(q1 + q2 + q3))/8 + (729*dq1^2*m3*sin(q3))/40 +
(729*dq2^2*m3*sin(q3))/20 + (729*dq1^2*m3*sin(2*q2 + q3))/40 - Iyz3*ddq1*cos(q2 + q3) +
(27*g*m3*sin(q2 - q1 + q3))/8 - Ixz3*ddq1*sin(q2 + q3) - Ixy3*dq1^2*cos(2*q2 + 2*q3) -
(Ixx3*dq1^2*sin(2*q2 + 2*q3))/2 + (Iyy3*dq1^2*sin(2*q2 + 2*q3))/2 + (27*g*m2*sin(q1 + q2))/10 +
(27*g*m3*sin(q1 + q2))/10,
Izz3*ddq2 + Izz3*ddq3 + (729*ddq2*m3)/16 + (729*ddq3*m3)/16 + (729*dq1^2*m3*sin(2*q2 +
2*q3))/32 + (729*ddq2*m3*cos(q3))/20 + (81*dq1^2*m3*sin(q2 + q3))/4 + (27*g*m3*sin(q1 + q2 +
q3))/8 + (729*dq1^2*m3*sin(q3))/40 + (729*dq2^2*m3*sin(q3))/20 + (729*dq1^2*m3*sin(2*q2 +
q3))/40 - Iyz3*ddq1*cos(q2 + q3) + (27*g*m3*sin(q2 - q1 + q3))/8 - Ixz3*ddq1*sin(q2 + q3) -
Ixy3*dq1^2*cos(2*q2 + 2*q3) - (Ixx3*dq1^2*sin(2*q2 + 2*q3))/2 + (Iyy3*dq1^2*sin(2*q2 + 2*q3))/2]

4.6 PLANIFICACIÓN DE TRAYECTORIAS

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
El movimiento considerado para el cuadrúpedo es de tipo “trote” en donde el robot se

apoya en dos patas mientras que las otras dos se mueven hacia adelante para generar el

movimiento y en el siguiente paso, las otras dos extremidades avanzan. De acuerdo a la

revisión de bibliografía y observación de robots de este tipo en funcionamiento, se planteo

la trayectoria mostrada en la figura 14.

3
1

Figura 14. Trayectoria planteada. Fuente: Propia

Se plantearon dos maneras para generar movimiento, la primera es enviando directamente

los valores de las variables articulares y ingresando coordenadas de posición y obteniendo

mediante la cinemática inversa los valores de las variables articulares para enviar al
1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
software de simulación. Pero antes de poder implementar estos códigos fue necesario

exportar el modelo CAD desde Solidworks a CoppeliaSim. En la figura 15 se muestra el

modelo ya importado a CoppeliaSim con el árbol de jerarquías en la parte izquierda

correctamente definido.

Figura 15. Robot exportado en CoppeliaSim. Fuente: Propia

A) Método 1 para trayectorias

Como se mencionó, en este método se ingresaron directamente los angulos

correspondientes a cada articulación. El script se muestra a continuacion:

%GENERAR MOVIMIENTO COPPELIA SIM-MATLAB.


%UNIVERSIDAD NACIONAL DE TRUJILLO
%INGNIERIA MECATRONICA
%ROBOTICA
%FECHA
%ELABORADO BY
%..............................................................
......
clc, clear all, close all
%Comandos de inicializacion

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
sim=remApi('remoteApi'); % using the prototype file
(remoteApiProto.m)
sim.simxFinish(-1); % just in case, close all opened
connections
clientID=sim.simxStart('127.0.0.1',19999,true,true,5000,5)
%..................................
if (clientID>-1)
disp('Connected to remote API server')
%Identificadores de los elementos del modelo de CoppeliaSim
h=[0,0,0,0,0,0,0,0,0,0,0,0];
n=length(h);

[s,h(1)]=sim.simxGetObjectHandle(clientID,'q1_L_F',sim.simx_opm
ode_blocking);

[s,h(2)]=sim.simxGetObjectHandle(clientID,'q2_L_F',sim.simx_opm
ode_blocking);

[s,h(3)]=sim.simxGetObjectHandle(clientID,'q3_L_F',sim.simx_opm
ode_blocking);

[s,h(4)]=sim.simxGetObjectHandle(clientID,'q1_L_B',sim.simx_opm
ode_blocking);

[s,h(5)]=sim.simxGetObjectHandle(clientID,'q2_L_B',sim.simx_opm
ode_blocking);

[s,h(6)]=sim.simxGetObjectHandle(clientID,'q3_L_B',sim.simx_opm
ode_blocking);

[s,h(7)]=sim.simxGetObjectHandle(clientID,'q1_R_F',sim.simx_opm
ode_blocking);

[s,h(8)]=sim.simxGetObjectHandle(clientID,'q2_R_F',sim.simx_opm
ode_blocking);

[s,h(9)]=sim.simxGetObjectHandle(clientID,'q3_R_F',sim.simx_opm
ode_blocking);

[s,h(10)]=sim.simxGetObjectHandle(clientID,'q1_R_B',sim.simx_op
mode_blocking);

[s,h(11)]=sim.simxGetObjectHandle(clientID,'q2_R_B',sim.simx_op
mode_blocking);

[s,h(12)]=sim.simxGetObjectHandle(clientID,'q3_R_B',sim.simx_op
mode_blocking);

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

%..............................................................
...........
%Posiciones articulares del robot
joint_pos1_i=[0,20*pi/180,20*pi/180,0,0,0,0,0,0,0,-
20*pi/180,-20*pi/180];
joint_pos2_i=[0,20*pi/180,-5*pi/180,0,0,0,0,0,0,0,-
20*pi/180,5*pi/180];
joint_pos3_i=[0,-20*pi/180,-
5*pi/180,0,20*pi/180,20*pi/180,0,20*pi/180,-
20*pi/180,0,20*pi/180,5*pi/180];
joint_pos4_i=[0,-20*pi/180,-5*pi/180,0,20*pi/180,-
5*pi/180,0,20*pi/180,5*pi/180,0,20*pi/180,5*pi/180];
joint_pos5_i=[0,20*pi/180,20*pi/180,0,-20*pi/180,-
5*pi/180,0,-20*pi/180,5*pi/180,0,-20*pi/180,-20*pi/180];

joint_pos1=[0,20*pi/180,-5*pi/180,0,-20*pi/180,-
5*pi/180,0,-20*pi/180,5*pi/180,0,-20*pi/180,5*pi/180];
joint_pos2=[0,-20*pi/180,-
5*pi/180,0,20*pi/180,20*pi/180,0,20*pi/180,-
20*pi/180,0,20*pi/180,5*pi/180];
joint_pos3=[0,-20*pi/180,-5*pi/180,0,20*pi/180,-
5*pi/180,0,20*pi/180,5*pi/180,0,20*pi/180,5*pi/180];
joint_pos4=[0,20*pi/180,20*pi/180,0,-20*pi/180,-
5*pi/180,0,-20*pi/180,5*pi/180,0,-20*pi/180,-20*pi/180];
%..........................................................
for i=1:n
sim.simxSetJointTargetPosition(clientID,h(i),
joint_pos1_i(i), sim.simx_opmode_streaming)
end
pause(0.1)
for i=1:n

sim.simxSetJointTargetPosition(clientID,h(i),joint_pos2_i(i),si
m.simx_opmode_streaming)
end
pause(0.1)
for i=1:n
sim.simxSetJointTargetPosition(clientID,h(i),
joint_pos3_i(i), sim.simx_opmode_streaming)
end
pause(0.1)
for i=1:n

sim.simxSetJointTargetPosition(clientID,h(i),joint_pos4_i(i),si
m.simx_opmode_streaming)
end

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
pause(0.1)
for i=1:n
sim.simxSetJointTargetPosition(clientID,h(i),
joint_pos5_i(i), sim.simx_opmode_streaming)
end
pause(0.1)

while true
for i=1:n
sim.simxSetJointTargetPosition(clientID,h(i),
joint_pos1(i), sim.simx_opmode_streaming)
end
pause(0.1)
for i=1:n

sim.simxSetJointTargetPosition(clientID,h(i),joint_pos2(i),sim.
simx_opmode_streaming)
end
pause(0.1)
for i=1:n

sim.simxSetJointTargetPosition(clientID,h(i),joint_pos3(i),sim.
simx_opmode_streaming)
end
pause(0.1)
for i=1:n

sim.simxSetJointTargetPosition(clientID,h(i),joint_pos4(i),sim.
simx_opmode_streaming)
end
pause(0.1);
% for i=1:n
%
sim.simxSetJointTargetPosition(clientID,h(i),joint_pos5(i),sim.
simx_opmode_streaming)
% end
% pause(0.1);
% for i=1:n
%
sim.simxSetJointTargetPosition(clientID,h(i),joint_pos6(i),sim.
simx_opmode_streaming)
% end
% pause(0.5);
end
else
disp('Failed connecting to remote API server');

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
end
sim.delete(); % call the destructor!
disp('Program ended');

Hasta antes de ingresar las posiciones articulares lo que se hace es conectar Matlab

con CoppeliaSim y declarar las articulaciones. En las posiciones ingresadas se sigue

la secuencia para trayectoria mostrada anteriormente tomando las patas de par en par

con el mismo movimiento.

B) Método 2 para trayectorias

En este método se hace uso de la cinemática inversa calculada anteriormente para

obtener los valores de las articulaciones correspondientes a la trayectoria. Se tomaron

en cuenta cuatro puntos que debe seguir el extremo de la pata, a continuación se

muestra el script desarrollado:

%GENERAR MOVIMIENTO COPPELIA SIM-MATLAB.


%UNIVERSIDAD NACIONAL DE TRUJILLO
%INGNIERIA MECATRONICA
%ROBOTICA
%FECHA
%ELABORADO BY
%..............................................................
......
clc, clear all, close all
%Comandos de inicializacion
sim=remApi('remoteApi'); % using the prototype file
(remoteApiProto.m)
sim.simxFinish(-1); % just in case, close all opened
connections
clientID=sim.simxStart('127.0.0.1',19999,true,true,5000,5)
%..................................
if (clientID>-1)
disp('Connected to remote API server')
%Identificadores de los elementos del modelo de CoppeliaSim
h=[0,0,0,0,0,0,0,0,0,0,0,0];
n=length(h);

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

[s,h(1)]=sim.simxGetObjectHandle(clientID,'q1_L_F',sim.simx_opm
ode_blocking);

[s,h(2)]=sim.simxGetObjectHandle(clientID,'q2_L_F',sim.simx_opm
ode_blocking);

[s,h(3)]=sim.simxGetObjectHandle(clientID,'q3_L_F',sim.simx_opm
ode_blocking);

[s,h(4)]=sim.simxGetObjectHandle(clientID,'q1_L_B',sim.simx_opm
ode_blocking);

[s,h(5)]=sim.simxGetObjectHandle(clientID,'q2_L_B',sim.simx_opm
ode_blocking);

[s,h(6)]=sim.simxGetObjectHandle(clientID,'q3_L_B',sim.simx_opm
ode_blocking);

[s,h(7)]=sim.simxGetObjectHandle(clientID,'q1_R_F',sim.simx_opm
ode_blocking);

[s,h(8)]=sim.simxGetObjectHandle(clientID,'q2_R_F',sim.simx_opm
ode_blocking);

[s,h(9)]=sim.simxGetObjectHandle(clientID,'q3_R_F',sim.simx_opm
ode_blocking);

[s,h(10)]=sim.simxGetObjectHandle(clientID,'q1_R_B',sim.simx_op
mode_blocking);

[s,h(11)]=sim.simxGetObjectHandle(clientID,'q2_R_B',sim.simx_op
mode_blocking);

[s,h(12)]=sim.simxGetObjectHandle(clientID,'q3_R_B',sim.simx_op
mode_blocking);

%..............................................................
...........
%Posiciones articulares del robot
L1=6;
L2=10.8;
L3=13.5;

X1=0;
Y1=12;
Z1=8;

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

X2=0;
Y2=16;
Z2=8;

X3=0;
Y3=16;
Z3=12;

X=[X1 X2 X3];
Y=[Y1 Y2 Y3];
Z=[Z1 Z2 Z3];
%CINEMATICA INVERSA
R=sqrt(X.^2+Y.^2-L1.^2);
D=(X.^2+Y.^2-L1^2+Z.^2-L2^2-L3^2)/(2*L2*L3);

q3=-atan2(-sqrt(1-D.^2),D);
q2=atan2(Z,sqrt(X.^2+Y.^2-L1.^2))-
atan2(L3*sin(q3),L2+L2*cos(q3));
q1=-atan2(-Y,X);
%..........................................................
joint_pos1=[-q1(1)+pi/2,-q2(1),q3(1)-
pi/2,0,0,0,0,0,0,q1(1)-pi/2,q2(1),-q3(1)+pi/2];
joint_pos2=[-q1(2)+pi/2,-q2(2),q3(2)-
pi/2,0,0,0,0,0,0,q1(2)-pi/2,q2(2),-q3(2)+pi/2];
joint_pos3=[-q1(3)+pi/2,-q2(3),q3(3)-pi/2,-q1(1)+pi/2,-
q2(1),q3(1)-pi/2,q1(1)-pi/2,-q2(1),-q3(1)+pi/2,q1(3)-
pi/2,q2(3),-q3(3)+pi/2];
joint_pos4=[-q1(3)+pi/2,-q2(3),q3(3)-pi/2,-q1(2)+pi/2,-
q2(2),q3(2)-pi/2,q1(2)-pi/2,-q2(2),-q3(2)+pi/2,q1(3)-
pi/2,q2(3),-q3(3)+pi/2];
joint_pos5=[-q1(1)+pi/2,-q2(1),q3(1)-pi/2,-q1(3)+pi/2,-
q2(3),q3(3)-pi/2,q1(3)-pi/2,-q2(3),-q3(3)+pi/2,q1(1)-
pi/2,q2(1),-q3(1)+pi/2];
joint_pos6=[-q1(2)+pi/2,-q2(2),q3(2)-pi/2,-q1(3)+pi/2,-
q2(3),q3(3)-pi/2,q1(3)-pi/2,-q2(3),-q3(3)+pi/2,q1(2)-
pi/2,q2(2),-q3(2)+pi/2];

for i=1:n
sim.simxSetJointTargetPosition(clientID,h(i),
joint_pos1(i), sim.simx_opmode_streaming)
end
pause(0.1)
for i=1:n

sim.simxSetJointTargetPosition(clientID,h(i),joint_pos2(i),sim.
simx_opmode_streaming)

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
end
pause(0.1)
while true
for i=1:n

sim.simxSetJointTargetPosition(clientID,h(i),joint_pos3(i),sim.
simx_opmode_streaming)
end
pause(0.1)
for i=1:n

sim.simxSetJointTargetPosition(clientID,h(i),joint_pos4(i),sim.
simx_opmode_streaming)
end
pause(0.1);
for i=1:n

sim.simxSetJointTargetPosition(clientID,h(i),joint_pos5(i),sim.
simx_opmode_streaming)
end
pause(0.1);
for i=1:n

sim.simxSetJointTargetPosition(clientID,h(i),joint_pos6(i),sim.
simx_opmode_streaming)
end
pause(0.1);

end
else
disp('Failed connecting to remote API server');
end
sim.delete(); % call the destructor!
disp('Program ended');

En las posiciones declaradas fue necesario sumar o restar pi/2 y cambiar el signo

dado que las direcciones de giro cambian en cada pata dada la posición de los

actuadores.

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Capítulo 5

Resultados y Discusiones

El método 1 utilizado para las trayectorias proporciono resultados aceptables hasta

cierto punto, ya que pudo notarse cierta descoordinación entre el movimiento de una

articulación y otra en la misma pata, esto debido a que los ángulos ingresados fueron

seleccionados de forma arbitraria, solo teniendo en cuenta la secuencia de movimiento,

más no el desplazamiento.

El método 2, por otra parte, dio como resultado un movimiento ligeramente más

fluido y exacto, además de permitir una mejor detección de los puntos singulares, como

por ejemplo los valores límites para poder elevar la pata, pero la dificultad de este método

radica en el cálculo e implementación de la cinemática inversa.

Al observar el movimiento obtenido con ambos métodos se puede determinar que,

para este caso en particular, la diferencia al usar uno u otro no es muy notoria, sin embargo

el método 2 tiene la posibilidad de mejorarse de manera que el movimiento mas preciso y

fluido.

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Capítulo 6

Conclusiones

• Se logró completar con éxito el modelado y simulación de un robot

cuadrúpedo que tiene 3 GDL en cada extremidad para lo cual se tuvo

que hacer uso de los softwares Matlab y CoppeliaSim.

• Se desarrolló el CAD del robot para lo cual se tuvo que hacer uso de

los conocimientos de cursos anteriores, así como también del software

Autodesk Inventor.

• Haciendo uso de todo lo aprendido en el curso de Robótica se pudo

plantear y resolver las ecuaciones que nos permitieron calcular la

cinemática directa, cinemática inversa y cinemática diferencial del

robot cuadrúpedo.

• Se pudo calcular el modelo estático del robot cuadrúpedo.

• Se pudo calcular el modelo dinámico del robot cuadrúpedo.

• El uso de papers fueron satisfactorios ya que permitieron encontrar

una trayectoria de locomoción para el robot cuadrúpedo.

• Se logró realizar la simulación del robot haciendo uso del software

CoppeliaSim y Matlab.

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Capítulo 7

Recomendaciones

• El presente trabajo presentado solo contempla hasta la parte de simulación del


cuadrúpedo, por lo cual, si se desea implementar el cuadrúpedo propuesto lo
recomendado es hacer uso del modelo dinámico de Newton.
• Construir el diseño que ha sido planteado y simulado en este trabajo para
lograr realizar una comprobación experimental, que sirva como punto de
comparación entre el comportamiento del robot simulado en un ambiente
virtual y el comportamiento del robot expuesto a un ambiente real con
características similares.
• Implementar un algoritmo de control de mayor complejidad con el que se
puedan obtener mejores resultados en cuanto a velocidad de procesamiento y
toma de decisiones del robot. Para ello, es recomendable investigar algoritmos
de control fuzzy, algoritmos genéticos, redes neuronales, entre otros, que
permitan un mejor desempeño del cuadrúpedo en la zona de trabajo.
• Se espera que el trabajo desarrollado sirva como una herramienta y un
incentivo que pueda ayudar a las personas para que tengan una idea clara sobre
el funcionamiento de los robots cuadrúpedos, además de cómo desarrollar un
proyecto en CoppeliaSim y Matlab

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO

Referencias Bibliográficas

Wang, Y., Liu, Y., Xu, W., Guo, J., & Zhou, C. (2020, July). An Optimized Turning Gait
Strategy for Walking Quadruped Robot. In 2020 39th Chinese Control Conference
(CCC) (pp. 3795-3800). IEEE.

Oliveira, I., Barbosa, R., & Silva, M. (2017, November). Modelling, trajectory planning and
control of a quadruped robot using matlab®/simulink™. In Iberian Robotics conference
(pp. 756-767). Springer, Cham.

Siciliano, B., Sciavicco, L., Villano, L., & Oriolo, G. (2009). Differential Kinematics and
Statics. En London (Ed.). Robotics: Modelling, Planning and Control (pp.147-149).
Londres, Inglaterra: Springer.

Barrientos, A., Peñín, L., Balaguer, C., & Aracil, R. (1997). Dinámica del robot. En A. Madrid
(Ed.), Fundamentos de robótica (pp.133). Madrid, España: Concepción Fernandez
Madrid.

Siciliano, B., Sciavicco, L., Villano, L., & Oriolo, G. (2009). Dynamics. En London (Ed.),
Robotics: Modelling, Planning and Control (pp.247). Londres, Inglaterra: Springer.

Saha, S. (2008). Dinámica. En Santa Fe (Ed.), Introducción a la robótica (pp.164). A. Obregón,


México D.F.: McGRAW-HILL.

Fu, K., Gonzales, R., & Lee, C. (1987). Robot Arms Dynamics. En United States of America
(Ed.). Robotics: Control, Sensing, Vision, and Intelligence (pp.84-93). U.S.A.:
McGraw-Hill.

1
INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE TRUJILLO
Legarreta, J. & Martinez, R. (S.f.) TEMA 5. MODELADO GEOMÉTRICO Y CINEMÁTICO
DEL ROBOT. Recuperado el 22 de setiembre del 2020 de:
https://ocw.ehu.eus/pluginfile.php/15326/mod_resource/content/8/T5%20CINEMATI
CA%20OCW_Revision.pdf

Pérez, V. (2010) Cinématica Directa. Recuperado el 22 de setiembre del 2020 de:


https://matematica.laguia2000.com/general/cinematica-directa

Coppelia Sim from creators of V-REP. Recuperado el 22 de setiembre del 2020 de:
https://www.coppeliarobotics.com/

Martínez-Zamudio, Patricio, González-Villela, Víctor J., López-Parra, Marcelo, & Ramírez-


Reivich, Alejandro C.. (2015). Cinemática Diferencial de un Manipulador Paralelo
Plano 3RRR-(RRR)v con Actuación Virtual Indirecta. Ingeniería mecánica, tecnología
y desarrollo, 5(3), 321-331. Recuperado en 22 de septiembre de 2020, de
http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1665-
73812015000200002&lng=es&tlng=es.

Bledt, G., Powell, M. J., Katz, B., Di Carlo, J., Wensing, P. M., & Kim, S. (2018, October).
MIT Cheetah 3: Design and control of a robust, dynamic quadruped robot. In 2018
IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (pp.
2245-2252). IEEE.

Girón, D. (2013) DISEÑO Y SIMULACIÓN DE UN ROBOT CUADRÚPEDO EN LA


HERRAMIENTA SOLID EDGE PARA IMPLEMENTARLO EN MAQUINAS DE
ACOMPAÑAMIENTO A PERSONAS DISCAPACITADAS (Tesis de pregrado)
Universidad Católica De Pereira,

1
INGENIERÍA MECATRÓNICA

También podría gustarte