desarrollo matemÁtico y aplicaciÓn de la...

71
DESARROLLO MATEMÁTICO Y APLICACIÓN DE LA CINEMÁTICA INVERSA POR MEDIO DE UN SOFTWARE DE CÁLCULO Y PROGRAMACIÓN, PARA EL ROBOT MITSUBISHI RV-M1 DARÍO ANDRÉS GÓMEZ CAMPOS ÀLVARO ENRIQUE BUSTOS QUINTERO UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLOGICA DEPARTAMENTO DE TECNOLOGIA E INGENIERÍA MECÁNICA BOGOTÁ D.C. 2018

Upload: trankiet

Post on 28-Jan-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

DESARROLLO MATEMÁTICO Y APLICACIÓN DE LA CINEMÁTICA INVERSA

POR MEDIO DE UN SOFTWARE DE CÁLCULO Y PROGRAMACIÓN, PARA EL

ROBOT MITSUBISHI RV-M1

DARÍO ANDRÉS GÓMEZ CAMPOS

ÀLVARO ENRIQUE BUSTOS QUINTERO

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD TECNOLOGICA

DEPARTAMENTO DE TECNOLOGIA E INGENIERÍA MECÁNICA

BOGOTÁ D.C.

2018

DESARROLLO MATEMÁTICO Y APLICACIÓN DE LA CINEMÁTICA INVERSA

POR MEDIO DE UN SOFTWARE DE CÁLCULO Y PROGRAMACIÓN, PARA EL

ROBOT MITSUBISHI RV-M1

DARÍO ANDRÉS GÓMEZ CAMPOS

ALVARO ENRIQUE BUSTOS QUINTERO

Trabajo de grado, para optar por el título de:

INGENIERO MECÁNICO

DIRECTOR:

M.sc ING. JOHN ALEJANDRO FORERO CASALLAS

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD TECNOLOGICA

DEPARTAMENTO DE TECNOLOGIA E INGENIERÍA MECÁNICA

BOGOTÁ D.C.

2018

1

DEDICATORIA

Dedico este trabajo a mi Padre y mi Madre, por el apoyo moral y las buenas enseñanzas que

me dieron para mi vida.

A mi hermana por su ayuda en cada momento que lo requerí

A mi esposa Dayana, quien ha sido mi guía en los momentos más difíciles que hemos

pasado juntos y el apoyo fundamental de mi familia.

A mi hija Valentina tu alegría y felicidad me dieron los motivos necesarios para seguir

esforzándome y llegar aún más lejos por ti, gracias por ser esa motivación e inspiración en

los momentos en que me daba por vencido, pero no lo hacía porque tú me demostraste que

es posible vencer cualquier obstáculo.

Darío Andrés Gómez C.

Dedico este logro a mis padres Cielo Quintero y Álvaro Bustos Pérez. Gracias infinitas por

el cariño y el apoyo incondicional, por cada enseñanza y fundamento moral con el que me

formaron para ser persona y profesional.

Álvaro Enrique Bustos Q.

2

AGRADECIMIENTOS

A Dios quien nos dio la oportunidad de tener a nuestras familias unidas y cuyos

fundamentos morales fueron importantes para llevar a cabo nuestro desarrollo personal y

profesional.

Al Ingeniero John Alejandro Forero, quien ha sido la persona guía en este trabajo

orientándonos y ayudándonos con los recursos dentro de la universidad, él desde el año

2013 se planteó empezar investigaciones que contribuyeran a la mejora del manipulador

RV-M1, y al enriquecimiento del proceso educativo a través de la virtualización de diversas

máquinas.

Al ingeniero Luini Leonardo Hurtado por el apoyo constante y el seguimiento al proceso de

desarrollo del presente proyecto.

Al Ingeniero Fernando Rodríguez, quien nos orientó y animó a seguir con el objetivo

propuesto.

Al personal del laboratorio de Mecánica quien dispuso los elementos para poder llevar a

cabo el desarrollo del presente proyecto.

Al profesor Óscar Benavides Vega por las indicaciones puntuales y consejos suministrados

para el desarrollo del proyecto.

3

CONTENIDO

RESUMEN 8

ABSTRACT 9

INTRODUCCIÓN 10

1 ESTRUCTURA DE ROBOTS 11

1.1 Tipos de movimiento 11

1.2 Manipulador 11

1.3 Grados de libertad 12

1.4 Robot Mitsubishi Movemaster RV-M1 13

1.5 Puesta a punto del equipo Mitsubishi Movemaster RV-M1 16

2 CONDICIONES GEOMÉTRICAS Y DE POSICIONAMIENTO 19

2.1 Cinemática directa 19

2.1.1 Posición y orientación 19

2.1.2 Matriz de Orientación 19

2.2 Matriz de transformación homogénea 20

2.2.1 Planteamiento básico de solución mediante la metodología de Denavit-

Hartenberg 21

2.3 Solución de la cinemática directa para el robot RV-M1 por matriz homogénea 23

2.3.1 Solución de la cinemática directa para el manipulador RV-M1 empleando el

software de programación MATLAB® 24

2.3.2 Solución de la cinemática directa utilizando el toolbox de Peter Corke para el

manipulador RV-M1 en MATLAB® 28

2.4 Aplicación de la cinemática inversa por medio de un software de cálculo y

programación, para el robot Mitsubishi Movemaster RV-M1 30

2.4.1 Cinemática inversa 30

2.4.2 Solución del problema cinemático inverso por el método geométrico 30

2.5 Solución de la cinemática inversa para el manipulador RV-M1 empleando el

software de programación MATLAB® 33

3 MODELAMIENTO DEL ROBOT MITSUBISHI MOVEMASTER RV-M1. 35

3.1 Simulación avanzada del manipulador Mitsubishi RV-M1 por las plataformas de

CAD y programación. 39

3.1.1 Configuración y programación de controladores para la máquina virtual 47

3.1.2 Entorno de la máquina virtual 49

3.2 Simulación de los servos que controlan los eslabones del manipulador por medio

del software CAD y de programación 51

4

4 EJECUCIÓN DE LA SIMULACIÓN EN EL MANIPULADOR RV-M1 60

4.1 Configuración y conexión del RV-M1 en el software MATLAB® 63

4.2 Incorporación del trabajo realizado 63

5 CONCLUSIONES 66

7. BIBLIOGRAFÍA 68

5

Tabla de ilustraciones

Ilustración 1 Manipulador Serial Mitsubishi Melfa RV-M1 movemaster. .......................... 12

Ilustración 2 Instalación general para la manipulación del RV-M1 .................................... 13

Ilustración 3 Articulaciones del manipulador robot MITSUBISHI RV-M1. ....................... 15

Ilustración 4 Desarme y limpieza ......................................................................................... 16

Ilustración 5 Desensamble de RV-M1 vista en posición origen. ......................................... 16

Ilustración 6 Desarme del manipulador RV-M1 .................................................................. 17

Ilustración 7 limpieza de juntas ............................................................................................ 17

Ilustración 8 Lubricación de juntas ...................................................................................... 18

Ilustración 9 Alineación de finales de carrera ...................................................................... 18

Ilustración 10 Diagrama de relación ente cinemática directa e inversa. .............................. 21

Ilustración 11 Dimensiones generales del RV-M1 ............................................................... 27

Ilustración 12 Denavit Hartenberg, por Peter Corke ............................................................ 28

Ilustración 13 Modelamiento del manipulador mediante los parámetros D-H a través de la

herramienta de Matlab-Robotic Toolbox(Peter Corke) ........................................................ 29

Ilustración 14 Solución de la cinemática inversa mediante descomposición geométrica

(vista de techo)...................................................................................................................... 31

Ilustración 15 Solución de la cinemática inversa mediante descomposición geométrica

(vista lateral). ........................................................................................................................ 32

Ilustración 16 Dibujo " Base/Waist ".................................................................................... 35

Ilustración 17 Dibujo "Body and Shoulder cover". .............................................................. 36

Ilustración 18 Dibujo "Upper Arm". .................................................................................... 36

Ilustración 19 Dibujo "Fore arm". ........................................................................................ 37

Ilustración 20 Dibujo "Wrist pitch" ...................................................................................... 37

Ilustración 21 Dibujo “Wrist roll”. ....................................................................................... 38

Ilustración 22 Robot Mitsubishi Melfa RVM1, dibujo realizado en SOLIDWORKS®...... 39

Ilustración 23 Bloque entorno .............................................................................................. 39

Ilustración 24 Parámetros del bloque entorno. ..................................................................... 40

Ilustración 25 Bloque raíz..................................................................................................... 40

Ilustración 26 Parámetros Bloque raíz.................................................................................. 40

Ilustración 27 Bloque soldadura ........................................................................................... 41

Ilustración 28 Bloque de cuerpo ........................................................................................... 41

Ilustración 29 Bloque revoluta ............................................................................................. 41

Ilustración 30 Primer entorno gráfico RV-M1 ..................................................................... 42

Ilustración 31 Configuración de los sensores ....................................................................... 42

Ilustración 32 Bloque restricción geométrica ....................................................................... 43

Ilustración 33 Conexión de bloques para el movimiento de la junta.................................... 43

Ilustración 34 Bloque constante ........................................................................................... 43

Ilustración 35 Bloque control deslizante .............................................................................. 43

Ilustración 36 Restricciones del deslizador .......................................................................... 44

Ilustración 37 Bloque multiplicador ..................................................................................... 44

Ilustración 38 Bloque actuador de junta ............................................................................... 44

6

Ilustración 39 Restricciones de actuador de junta. ............................................................... 45

Ilustración 40 Configuración del tiempo de simulación ....................................................... 45

Ilustración 41 Interfaz gráfica con restricciones................................................................... 45

Ilustración 42. Diagrama de bloques. Fuente propia. ........................................................... 46

Ilustración 43 Ingreso al entorno GUIDE............................................................................. 47

Ilustración 44 Ventana del entorno GUIDE ......................................................................... 47

Ilustración 45 Lay-out para la creación del GUIDE ............................................................. 47

Ilustración 46 Ventana final GUIDE con variaciones de ángulos y posiciones ................... 49

Ilustración 47 Variación de los ángulos y obtención de las posiciones por Cinemática

directa ................................................................................................................................... 50

Ilustración 48 Variación de las posiciones y obtención de los ángulos por Cinemática

inversa ................................................................................................................................... 50

Ilustración 49 Señales de Simulink ...................................................................................... 51

Ilustración 50 Simulation Data Inspector Simulink ............................................................. 51

Ilustración 51 Desplazamientos por Cinemática Inversa I ................................................... 52

Ilustración 52 Desplazamiento ambiente gráfico por Cinemática Inversa I ......................... 53

Ilustración 53 Desplazamiento angular Vs. Tiempo por Cinemática Inversa ...................... 54

Ilustración 54 Desplazamiento Angular y grafico por Cinemática inversa II ...................... 55

Ilustración 55 Desplazamiento angular Vs. Tiempo por Cinemática Inversa II .................. 55

Ilustración 56 Desplazamiento angular Vs. Tiempo por Cinemática Inversa II .................. 56

Ilustración 57 Desplazamiento Angular y grafico por Cinemática inversa III ..................... 57

Ilustración 58 Desplazamiento angular Vs. Tiempo por Cinemática Inversa III ................. 57

Ilustración 59 Desplazamiento angular Vs. Tiempo por Cinemática Inversa III ................. 58

Ilustración 60 Configuración del puerto COM ..................................................................... 61

Ilustración 61 Configuración del programa Mitsubishi Robot Comm Sever ....................... 62

Ilustración 62 Datos recopilador de Hyperterminal ............................................................. 62

Ilustración 63 Interfaz gráfica y de envió de comandos ....................................................... 63

Ilustración 64 Comprobación de los comandos enviados al manipulador ........................... 64

Ilustración 65 Comprobación de los comandos enviados al manipulador II ........................ 65

7

Tabla de ecuaciones

Ecuación 1 Criterio de Grubler-Kutzbach ............................................................................ 12

Ecuación 2 Notación vectorial del vector orto-normal ......................................................... 19

Ecuación 3 Matriz de orientación ......................................................................................... 19

Ecuación 4 Matriz homogénea ............................................................................................. 20

Ecuación 5 Matriz de transformación homogénea ............................................................... 20

Ecuación 6 Solución del primer ángulo (Theta 1) por Cinemática Inversa.......................... 31

Ecuación 7 Solución del tercer ángulo (Theta 3) por Cinemática Inversa ........................... 32

Ecuación 8 Solución del segundo ángulo (Theta 2) por Cinemática Inversa ....................... 33

8

RESUMEN

El presente trabajo plantea la solución de la cinemática inversa y directa de un manipulador

Melfa Mitsubishi RV-M1, a través de una interfaz de operación. Se comienza con una

recopilación de la investigación realizada del robot en el que se incluían sus soluciones

cinemáticas y la explicación de la manipulación por medio de software, de esto se toman

datos guías. De esta forma se realizó la solución por medio de un programa de cálculo y

programación que permite al usuario ver por medio de una interfaz gráfica la ubicación

inicial y final del manipulador.

Fue necesario tener interacción física con la máquina, para realizar la toma de mediciones y

lograr una mayor precisión en la modelación, fue utilizado el programa SOLIDWORKS®,

donde se crearon las respectivas piezas y restricciones, se determinó que era el adecuado

debido al proceso de exportación a MATLAB® r2017a el resultado fue un diagrama de

bloques donde se pueden añadir la restricciones angulares del manipulador, en su interfaz

de le agregaron distintos elementos que permitieran la manipulación y control por parte del

usuario final, creando así una interfaz gráfica amigable y de fácil uso. Para finalizar esta

parte se procedió a incorporar el proceso de solución de la cinemática directa e inversa,

donde al realizar la variación angular de cualquier eslabón se obtenía el resultado de las

coordenadas cartesianas de la herramienta final este se puede visualizar como Px, Py y Pz,

la interfaz gráfica sirve como apoyo para la comprensión de los movimientos físicos que se

pueden lograr.

Finalmente se llegó a comprobar los resultados y las soluciones de la cinemática directa e

inversa en el programa MATLAB®, mediante la conexión y posteriormente envió de

órdenes a través del software mencionado, de tal forma que el manipulador en su lenguaje

intrínseco pueda interpretarlas, con base a la lista de comandos mencionados en el manual

de usuario. El primer paso fue una evaluación técnica y posterior mantenimiento al robot

del laboratorio de mecánica, pudiendo corregir ciertos errores. Se explica cómo se realizó la

conexión y el protocolo utilizado en el enlace, donde no se utilizó otro hardware como

traductor de los códigos enviados, el resultado fue una interfaz serial donde se puede

visualizar como el robot se mueve en una interfaz gráfica virtual y recrea estos

movimientos físicamente. El manipulador por ser antiguo tiene un tiempo de respuesta

relativamente lento, aun así, logra interpretar y procesar las órdenes enviadas.

9

ABSTRACT

The present work proposes the solution of the inverse and direct kinematics of a Melfa

Mitsubishi RV-M1 manipulator, through an operation interface. It begins with a

compilation of the investigation carried out of the robot in which its kinematic solutions

were included and the explanation of the manipulation by means of software, from this

guide data are taken. In this way the solution was made by means of a calculation and

programming program that allows the user to see through a graphic interface the initial and

final location of the manipulator.

It was necessary to have physical interaction with the machine, to make the measurements

and achieve greater precision in the modeling, the SOLIDWORKS® program was used,

where the respective parts and restrictions were created, it was determined that it was

adequate due to the process of export to MATLAB® r2017a the result was a block diagram

where you can add the angular restrictions of the manipulator, in its interface you added

different elements that allow manipulation and control by the end user, creating a friendly

graphical interface and easy to use. To complete this part we proceeded to incorporate the

solution process of the direct and inverse kinematics, where to make the angular variation

of any link the result of the Cartesian coordinates of the final tool was obtained. This can be

visualized as Px, Py and Pz , the graphical interface serves as support for the understanding

of the physical movements that can be achieved.

Finally, the results and solutions of the direct and inverse kinematics in the MATLAB®

program were verified, by means of the connection and later sending of orders through the

aforementioned software, in such a way that the manipulator in its intrinsic language can

interpret them, with base to the list of commands mentioned in the user manual. The first

step was a technical evaluation and subsequent maintenance to the robot of the mechanical

laboratory, being able to correct certain errors. It explains how the connection was made

and the protocol used in the link, where no other hardware was used as a translator of the

codes sent, the result was a parallel interface where you can visualize how the robot moves

in a virtual graphic interface and recreates these movements physically. The manipulator,

being old, has a relatively slow response time, even so, it is able to interpret and process the

orders sent.

10

INTRODUCCIÓN

El presente trabajo se refiere a la solución de la cinemática inversa por el método de

geometría cerrada para el manipular Mitsubishi RV-M1, el cual se encuentra en la

Universidad Distrital Francisco José de Caldas, facultad tecnológica laboratorio de

Mecánica. Es un Robot de uso industrial que tiene diversas aplicaciones enfocadas a la

automatización de procesos en pro de mejorar factores como lo son calidad, eficiencia,

seguridad y productividad. Actualmente se ha incurrido en la implementación de

manipuladores robóticos en la ejecución de tareas de precisión, repetitivas o que

representen un riesgo para el ser humano.

El manipulador posee un gran potencial para ser implementado en el ámbito académico,

ofreciendo la posibilidad de aplicar los conocimientos teóricos con la práctica de la

manipulación del Robot. Se propone entonces el desarrollo matemático y la aplicación de la

solución de las cadenas cinemáticas del manipulador, haciendo uso de un software de

cálculo y programación con el objetivo de establecer un entorno de interacción virtual,

facilitando el entendimiento de su funcionamiento y proceso de operación.

Para ejecutar el proceso de desarrollo del objetivo propuesto se realizaron investigaciones

previas en diversos artículos donde establecían análisis similares con diferentes

manipuladores robóticos incluidos el RV-M1 y la forma de intervenirlos analíticamente y

operativamente.

De manera semejante se ejecutó un estudio detallado del proceso de interpretación

matemática del manipulador, el análisis de su cinemática directa empleando los algoritmos

establecidos por Denavit-Hartenberg y de forma análoga el análisis de la cinemática inversa

utilizando el método de desarrollo por descomposición geométrica, para determinar el

algoritmo solución que permita obtener mediante posiciones angulares (cinemática directa)

y a través de posiciones cartesianas (cinemática inversa) un ubicación deseada.

Una vez desarrollado dicho algoritmo se procedió a diseñar un entorno virtual simulando

las condiciones reales del manipulador con el objetivo de establecer una interacción y

manipulación gráfica del mismo.

Se presenta una verificación realizada de forma extrínseca a los objetivos propuestos del

proyecto para demostrar la funcionalidad de la interfaz virtual y gráfica mediante los

resultados de la cinemática directa e inversa, logrando una ventana de usuario que permite

la interacción con el robot en tiempo real, la cual ayuda a que las rutinas de toma de datos

con la manipulación del control teaching Box con las que se maneja el robot sean más

eficaces y lleven menos tiempo.

11

1 ESTRUCTURA DE ROBOTS

Los robots manipuladores son, esencialmente, brazos articulados. De forma más precisa, un

manipulador industrial convencional es una cadena cinemática abierta formada por un

conjunto de eslabones o elementos de la cadena interrelacionados mediante articulaciones o

pares cinemáticos (Ollero & Anibal., 2001).

El controlador de un robot con un brazo de estructura angular debe realizar tareas más

complejas debido a que, como ya se ha mencionado antes, las trayectorias se especifican

normalmente en coordenadas cartesianas, por lo cual deben realizarse las transformaciones

adecuadas

1.1 Tipos de movimiento

- Rotación pura: El cuerpo posee un punto (centro de rotación) que no tiene

movimiento con respecto al marco de referencia “estacionario”. Todos los demás

puntos del cuerpo describen arcos alrededor del centro. Una línea de referencia

trazada en el cuerpo a través del centro cambia solo su orientación angular.

- Traslación pura: Es el movimiento más simple que puede hacer un cuerpo rígido. En

un cuerpo que tiene un movimiento de traslación pura, si un segmento considerado

sobre el cuerpo se mueve en el espacio manteniéndose paralelo a sí mismo. Todos

los puntos en el dispositivo describen trayectorias paralelas (curvas o rectas). Una

línea de referencia trazada en el cuerpo cambia su posición lineal, pero no su

orientación o posición angular.

- Movimiento complejo: Una combinación simultanea de rotación y traslación.

Cualquier línea de referencia trazada en el cuerpo cambiara tanto su posición lineal

como su orientación angular. Los puntos en el cuerpo recorrerán trayectorias no

paralelas, y habrá, en todo instante, un centro de rotación, el cual cambiará

continuamente de ubicación. (Solano B, 2015)

1.2 Manipulador

Los manipuladores consisten de vínculos casi rígidos, los cuales están conectados por

articulaciones que permiten el movimiento relativo de los vínculos adyacentes. Estas

articulaciones generalmente se instrumentan con sensores de posición, los cuales permiten

medir la posición relativa de los vínculos adyacentes. En el caso de las articulaciones

giratorias o angulares, estos desplazamientos se conocen como ángulos articulados.

Algunos manipuladores contienen articulaciones deslizantes (o prismáticas), en las que el

desplazamiento relativo entre los vínculos es una translación, algunas veces llamada

desplazamiento de articulación.

12

1.3 Grados de libertad

El número de grados de libertad que posee un manipulador (translacionales y rotacionales)

es el número de variables de posición independientes que tendrían que especificarse para

poder localizar todas las piezas del mecanismo. Éste es un término general que se utiliza

para cualquier mecanismo. (Craig, 2006) Se calculan mediante el criterio de Grubler-

kutzbach 𝐺𝐷𝐿 = 3(𝑛 − 1)−2𝑗1− 𝑗2

Ecuación 1 Criterio de Grubler-Kutzbach

GDL = 3(n − 1) − 2j1 − j2

(1)

Donde:

n: Número de eslabones

j1: Número de juntas de un grado de libertad

j2: Número de juntas de dos grados de libertad

Para el caso del manipulador RV-M1

Ilustración 1 Manipulador Serial Mitsubishi Melfa RV-M1 movemaster.

Fuente (Mitsubishi Industrial Micro-Robot System)

GDL = 3(4 − 1) − 2(2) − 0 = 5G

GDL > 0, mecanismo

Con el cálculo de los GDL del manipulador se puede deducir que es un mecanismo de

cadena abierta y su análisis es funcional.

13

1.4 Robot Mitsubishi Movemaster RV-M1

Es un Manipulador robótico vertical articulado con 5 grados de libertad y posibilidad de

bifurcaciones en el extremo operacional del mismo. Cuenta con 63 comandos de

programación, velocidad graduable y máxima de hasta 1 m/s con 629 posiciones (8kb)

desde la Teaching box, 2048 líneas de programación (16kb) a partir de la computadora

también puede soportar una carga máxima de 0,5 kg.

Ilustración 2 Instalación general para la manipulación del RV-M1

Fuente (Mitsubishi Industrial Micro-Robot System)

El sistema presentado en la ilustración 2, permite operar el robot por los siguientes

accesorios:

- Brazo articulado.

- Efector final (gripper, intercambiador de herramientas o sensor).

- Teaching box.

- Controlador.

- Cables de conexión.

- Computador con software para establecer comunicación con el robot.

En la tabla 1 se encuentra la descripción del equipo estándar y opcional junto con el tipo de

componente que este utiliza. El opcional muestra las distintas conexiones desde una

computadora y manejo manual.

14

Tabla 1 Equipo estándar y opcional

Division Description Type Rewarks S

tan

dard

eq

uip

men

t

Robot RV-M1 Vertical articulated robot with 5 degrees of

freedom

Drive unit D/U-M1 Robot controller

Motor signal cable (5m) MS-M1 Gives control signals from the drive unit the

robot

Motor power cable (5m) MP-M1 Supplies power from the drive unit to the

robot

Power cord (2.5m) POW-M1 Supplies power to the drive unit

I/O card A8 (or B8) I/O-A8 (I/O-B8) 8 inputs/ 8 outputs.

Op

tion

al

equ

ipm

ent

I/O card A16 (or B16) I/O-A16 (I/O-B16) 16 inputs/16 outputs.

Teaching box

(Cable length 3m) T/B-M1 Handy control swithbox with a cable for

teaching, checking, correcting positions.

Motor-operated hand HM-01 Hand which is only used with the RV-M1 and

allows 16-step holding power control.

EP-ROM 256K-ROM Stores writtenprograms and set positions.

Backup battery BAT-M1 Backs up the memory during power off

External I/O cable I/O-CBL Connects with an external peripheral, e.g.

programmable controller.

Per

sonal

com

pute

r ca

ble

MULTI16 RS-232-C

RS-MULTI-CBL

(3m)

RS-232C cable used to connect the MULTI16

Centronics

C-MULTI-CBL

(2m)

Centronics cable used to connect the

MULTI16

PC9801 RS-232-C

RS-PC-CBL (3m) RS-232C cable used to connect the MULTI16

PC9801.

Centronics C-PC-CBL (1.5m)

Centronics cable used to connect the PC9801.

Free cable RS-232-C

RS-FREE-CBL

(3m)

RS-232C cable with one free end

Centronics

C-FREE-CBL

(1.5m)

Centronics cable with one free end

Fuente (Mitsubishi Industrial Micro-Robot System)

El brazo cuenta con cinco articulaciones que se pueden apreciar en la Ilustración 4 y se

mencionan en el siguiente listado:

- J1: cintura (Waist/Base)

- J2: hombro (Shoulder/Upper arm)

- J3: codo (Elbow)

- J4: pitch (Wrist Pitch/Fore arm)

- J5: roll (Wrist Roll)

15

Ilustración 3 Articulaciones del manipulador robot MITSUBISHI RV-M1.

Fuente (Mckinley R, Rodríguez S, Yime R, & James., 2012)

Nota 1: supone que la mano no está instalada en el robot. (Trazo del punto p).

Nota 2: la operación de cabeceo de la muñeca se puede restringir en algo del área

dependiendo de las posiciones del brazo superior y antebrazo.

Nota 3: la operación manual (jog) debe realizarse con especial cuidado porque la

muñeca puede interferir con la base del robot y la superficie del piso.

Comentario

La operación jog indica una operación manual usando la caja de enseñanza

(Mitsubishi Industrial Micro-Robot System)

16

1.5 Puesta a punto del equipo Mitsubishi Movemaster RV-M1

Para la ejecución del presente proyecto se realizó el acondicionamiento del manipulador

RV-M1 con el fin de verificar su funcionabilidad y llevar a cabo algunas actividades

propias del desarrollo de cada objetivo.

Se realiza una rutina de mantenimiento básico que comprendió:

- Desarme y limpieza del manipulador:

Ilustración 4 Desarme y limpieza

Fuente propia.

Ilustración 5 Desensamble de RV-M1 vista en posición origen.

Fuente propia.

17

Ilustración 6 Desarme del manipulador RV-M1

Fuente propia.

- Lubricación de las juntas y correas

Ilustración 7 limpieza de juntas

Fuente propia.

18

Ilustración 8 Lubricación de juntas

Fuente propia.

- Alineación de los finales de carrera

Ilustración 9 Alineación de finales de carrera

Fuente propia.

- Ensamble y puesta en marcha

Sin embargo, no se pudieron realizar los siguientes arreglos debido a que no se contempló

en el alcance del proyecto

i. Cambio de escobillas de los servomotores por las horas de trabajo recomendado por

el fabricante.

ii. Cambio del freno eléctrico del eslabón 1.

iii. Puesta en marcha del gripper, se desconoce el por qué no se encuentra funcionando.

19

2 CONDICIONES GEOMÉTRICAS Y DE POSICIONAMIENTO

2.1 Cinemática directa

Se utiliza para describir la posición de un objeto en el espacio tridimensional por medio de

descomposición algebraica teniendo en cuenta una referencia fija dado que el análisis se

hace en un robot, este tiene una serie de eslabones unidos que toman su punto de referencia

de la parte fija la solución se reduce en tomar los ángulos θ para cada eslabón y obtener las

coordenadas de los puntos 𝑃𝑥, 𝑃𝑦, y 𝑃𝑧 este se puede resolver por el método de Denavit-

Hartenberg empleando matrices homogéneas donde se tendrá la ubicación de un eslabón

respecto al otro, reduciendo a encontrar la matriz homogénea de transformación T (Craig,

2006)

2.1.1 Posición y orientación

Para localizar la posición del manipulador es un espacio tridimensional se realizará en este

trabajo por medio de coordenadas cartesianas, pero también se podrían utilizar coordenadas

cilíndricas y esféricas para este requerimiento, para comprender este primer paso para la

solución se debe plantear un punto de referencia fijo y otro móvil, donde se forma un vector

orto-normal con coordenadas que se denominaran 𝑃𝑥, 𝑃𝑦, y 𝑃𝑧 (Barrientos, Peñín, Balaguer,

& Aracil, 2007)

𝑃 = [

𝑃𝑥𝑃𝑦𝑃𝑧]

Ecuación 2 Notación vectorial del vector orto-normal

𝑃 = [

𝑃𝑥𝑃𝑦𝑃𝑧

]

(2)

2.1.2 Matriz de Orientación

Para realizar la representación de un punto totalmente referenciado en el espacio para un

sistema de coordenadas cartesianas de debe tomar el mismo principio del vector de

posición, para este caso se tendrá una dirección móvil denominada B y fija A, el vector

unitario con respecto al punto fijo y móvil será 𝑋�̂�0𝐴 , 𝑌�̂�0

𝐴 , 𝑍�̂�0𝐴 , en este caso la matriz de

rotación es (Barrientos, Peñín, Balaguer, & Aracil, 2007) { 𝑅𝐵𝐴} = [ 𝑋�̂�0

𝐴 𝑌�̂�0𝐴 𝑍�̂�0

𝐴 ] = [

𝑟11 𝑟12 𝑟13𝑟21 𝑟22 𝑟23𝑟31 𝑟32 𝑟33

]

Ecuación 3 Matriz de orientación

{ 𝑅𝐵𝐴 } = [ 𝑋�̂�0

𝐴 𝑌�̂�0𝐴 𝑍�̂�0

𝐴 ] = [

𝑟11 𝑟12 𝑟13𝑟21 𝑟22 𝑟23𝑟31 𝑟32 𝑟33

] (3)

20

2.2 Matriz de transformación homogénea

Se utiliza para los robots constituidos por eslabones unidos con sus respectivas

articulaciones de tal forma que cada conjunto constituye un grado de libertad, para la

solución a cada eslabón se le puede asociar un sistema de referencia adyacente o solidario,

se tendrán para estos sistemas de rotaciones y traslaciones relativas.

La utilización de la matriz de transformación homogénea representa la posición y

orientación relativa de un eslabón respecto a otro como una matriz denominada 𝐴𝑖𝑖−1 donde

𝑖 es denominado como el eslabón a resolver, 𝐴10 describe la posición y orientación del

primer eslabón respecto a su coordenada base.

La matriz de transformación homogénea es una forma compacta de expresar la rotación,

𝑅𝑖0ubicada dentro de la matriz homogénea en la parte superior izquierda como una sub-

matriz de 3x3, el vector posición 𝑃𝑖0 será la cuarta columna 3x1, la perspectiva se ubica

como la cuarta y última fila de la matriz por último se tendrá el valor escalado como la

constante uno.

𝐴𝑖𝑖−1 = [

𝑐𝑜𝑠𝜃𝑖 −𝑐𝑜𝑠 ∝ 𝑖∗𝑠𝑖𝑛𝜃𝑖 𝑠𝑖𝑛 ∝ 𝑖∗𝑠𝑖𝑛 𝜃𝑖 𝑎𝑖𝑐𝑜𝑠 𝜃𝑖𝑠𝑖𝑛 𝜃𝑖 𝑐𝑜𝑠∝ 𝑖∗𝑐𝑜𝑠 𝜃𝑖 −𝑠𝑖𝑛 ∝ 𝑖∗𝑐𝑜𝑠𝜃𝑖 𝑎𝑖 𝑠𝑖𝑛𝜃𝑖0 𝑠𝑖𝑛 ∝ 𝑖 𝑐𝑜𝑠 ∝ 𝑖 𝑑𝑖0 0 0 1

]

Ecuación 4 Matriz homogénea

𝐴𝑖𝑖−1 = [

𝑐𝑜𝑠 𝜃𝑖 −𝑐𝑜𝑠 ∝𝑖∗ 𝑠𝑖𝑛 𝜃𝑖 𝑠𝑖𝑛 ∝𝑖∗ 𝑠𝑖𝑛 𝜃𝑖 𝑎𝑖 𝑐𝑜𝑠 𝜃𝑖𝑠𝑖𝑛 𝜃𝑖 𝑐𝑜𝑠 ∝𝑖∗ 𝑐𝑜𝑠 𝜃𝑖 −𝑠𝑖𝑛 ∝𝑖∗ 𝑐𝑜𝑠 𝜃𝑖 𝑎𝑖 𝑠𝑖𝑛 𝜃𝑖0 𝑠𝑖𝑛 ∝𝑖 𝑐𝑜𝑠 ∝𝑖 𝑑𝑖0 0 0 1

]

(4)

Entonces la matriz de transformación homogénea 𝑇𝑖0 vendrá dada por la multiplicación de

cada solución por eslabón de la matriz homogénea, es decir:

𝑇𝑖0 = 𝐴1

0 𝐴21… 𝐴𝑖

𝑖−1 =∏𝐴𝑗𝑗 −1

𝑖

𝑗 =1

= [𝑅𝑖0 𝑃𝑖

0

0 1 ]

Ecuación 5 Matriz de transformación homogénea

𝑇𝑖0 = 𝐴1

0 𝐴21…𝐴𝑖

𝑖−1 =∏𝐴𝑗𝑗−1

𝑖

𝑗=1

= [𝑅𝑖0 𝑃𝑖

0

0 1]

(5)

𝑇𝑖0 = [

𝑛𝑥 𝑂𝑥 𝑎𝑥 𝑃𝑥𝑛𝑦 𝑂𝑦 𝑎𝑦 𝑃𝑦𝑛𝑧 𝑂𝑍 𝑎𝑧 𝑃𝑧0 0 0 1

] = [𝒏 𝒐 𝒂 𝒑

0 0 0 1]

21

2.2.1 Planteamiento básico de solución mediante la metodología de Denavit-

Hartenberg

Esta metodología de solución para sistemas de cadenas cinemáticas abiertas permite

establecer la ubicación de los sistemas de referencia para eslabones en conjuntos robóticos

articulados, ya sean prismáticas o de revolución. El planteamiento del problema cinemático

inverso consiste en encontrar los valores que deben adoptar las coordenadas articulares del

robot al que se nombrará como 𝑞, el modelamiento vectorial que describe los

posicionamientos del robot se define como 𝑞 = [𝑞1, 𝑞2,𝑞3, …… . . , 𝑞𝑛]𝑇para que su extremo

se posicione y oriente según una determinada localización espacial.

Ilustración 10 Diagrama de relación ente cinemática directa e inversa.

Fuente (Barrientos, Peñín, Balaguer, & Aracil, 2007)

La representación Denavit-Hartenberg desarrollada en 1955 por Jacques Denavit-

Hartenberg y Richard Hartenberg permite desarrollar un modelo matricial para establecer

de forma sistemática un conjunto de coordenadas (buscando una fijación al cuerpo) para

cada elemento de la cadena articulada. Esta metodología resulta en una transformación

homogénea de 4𝑥4 representando cada uno de los sistemas de coordenadas del elemento

previo mediante transformaciones secuenciales donde el efector final expresado en las

coordenadas de la mano se puede transformar y expresar en las coordenadas de la base.

A continuación, se mencionarán los componentes para el desarrollo del algoritmo de

Denavit-Hartenberg para la obtención del modelo cinemático directo:

1. Numerar los eslabones comenzando con 1 (primer eslabón móvil de la cadena) y

acabando con 𝑛 (último eslabón móvil). Se numerará como eslabón 0 a la base fija

del robot.

2. Numerar cada articulación comenzando por 1 (la correspondiente al primer grado de

libertad) y acabando en 𝑛.

3. Localizar el eje de cada articulación. Si ésta es rotativa, el eje será su propio eje de

giro. Si es prismática, será el eje a lo largo del cual se procede el desplazamiento.

4. Para 𝑖 de 0 a 𝑛 − 1 situar el eje 𝑧, sobre el eje de la articulación 𝑖 + 1.

5. Situar el origen del sistema de la base [𝑆0] en cualquier punto del eje 𝑧0. Los ejes 𝑥0

e 𝑦0 se situarán de modo que formen un sistema dextrógiro con 𝑧0.

22

6. Para 𝑖 de 1 a 𝑛 − 1, situar el sistema [𝑆𝑖] (solidario al eslabón 𝑖) en la intersección

del eje 𝑧, con la línea normal común a 𝑧𝑖−1 𝑦 𝑧𝑖. Si ambos ejes se cortasen se

situaría {𝑆𝑖} en el punto de corte. Si fuesen paralelos {𝑆𝑖} se situaría en la

articulación 𝑖 + 1.

7. Situar 𝑥𝑖 en la línea normal común a 𝑧𝑖−1 𝑦 𝑧𝑖.

8. Situar 𝑦𝑖de modo que forme un sistema dextrógiro con 𝑥𝑖 y 𝑧𝑖.

9. Situar el sistema {𝑆𝑛}en el extremo del robot de modo que 𝑧𝑛coincida con la

dirección de 𝑧𝑛−1 𝑦 𝑥𝑛 sea normal a 𝑧𝑛−1 𝑦 𝑧𝑛.

10. Obtener 𝜃, como el ángulo que hay que girar en torno a 𝑧𝑖−1 para que 𝑥𝑖−1 y 𝑥𝑖

queden paralelos.

11. Obtener 𝑑𝑖 como la distancia, medida a lo largo de 𝑧𝑖−1, que habría que desplazar

{𝑆𝑖−1}para que 𝑥𝑖 𝑦 𝑥𝑖−1 quedasen alineados.

12. Obtener 𝑎𝑖 como la distancia media a lo lago 𝑥𝑖 (que ahora coincidiría con 𝑥𝑖−1) que

habrá de desplazar el nuevo {𝑆𝑖−1} para que su origen coincidiese con {𝑆𝑖}.

13. Obtener 𝑎𝑖 como el ángulo que habría que girar en torno a 𝑥𝑖 (que ahora coincidiría

con 𝑥𝑖−1) coincidiese totalmente con {𝑆𝑖}.

14. Obtener con las matrices de transformación 𝑖 − 1𝐴𝑖 .

15. Obtener las matrices de transformación que relaciona el sistema de la base con el

del extremo del robot 𝑇 = 𝐴10, 𝐴2,

1 𝐴3…….2 𝐴𝑛

𝑛−1.

16. La matriz 𝑇 define la orientación (submatriz de rotación) y posición (submatriz de

translación) del extremo referido a la base en función de las 𝑛 coordenadas

articulares.

Para los parámetros de la representación Denavit-Hatenberg representados en la tabla1, se

utilizarán las siguientes simbologías:

𝑎𝑖: Distancia del elemento (mm)

𝛼𝑖: Ángulo del elemento en grados

𝑑𝑖: Distancia de la articulación

𝜃𝑖: Ángulo de la articulación

Tabla 2 Parámetros Denavit-Hatenberg RV-M1

𝒂𝒊 𝜶𝒊 𝒅𝒊 𝜽𝒊 0 90 300 𝜃1

250 0 0 𝜃2

160 0 0 𝜃3

0 90 0 𝜃4+90

0 0 147 𝜃5 Fuente propia.

23

2.3 Solución de la cinemática directa para el robot RV-M1 por matriz homogénea

Teniendo como base para la solución de la cinemática directa por el método de matrices de

transformación Homogénea y los valores de la tabla 1, a continuación, se plantean las cinco

matrices de solución.

𝐴10 = [

𝑐𝑜𝑠 𝜃1 −𝑐o𝑠 90 ∗ 𝑠𝑖𝑛 𝜃1 𝑠𝑖𝑛 90 ∗ 𝑠𝑖𝑛 𝜃1 0 𝑐𝑜𝑠 𝜃1𝑠𝑖𝑛 𝜃1 𝑐𝑜𝑠 90 ∗ 𝑐𝑜𝑠 𝜃1 −𝑠𝑖𝑛 90 ∗ 𝑐𝑜𝑠 𝜃1 0 𝑠𝑖𝑛 𝜃10 𝑠𝑖𝑛 90 𝑐𝑜𝑠 90 3000 0 0 1

]

= [

𝑐𝑜𝑠 𝜃1 0 𝑠𝑖𝑛 𝜃1 0𝑠𝑖𝑛 𝜃1 0 − 𝑐𝑜𝑠 𝜃1 00 1 0 3000 0 0 1

]

𝐴21 = [

𝑐𝑜𝑠 𝜃2 −𝑐𝑜𝑠 0 ∗ 𝑠𝑖𝑛 𝜃2 𝑠𝑖𝑛 0 ∗ 𝑠𝑖𝑛 𝜃2 250 ∗ 𝑐𝑜𝑠 𝜃2𝑠𝑖𝑛 𝜃2 𝑐𝑜𝑠 0 ∗ 𝑐𝑜𝑠 𝜃2 −𝑠𝑖𝑛 0 ∗ 𝑐𝑜𝑠 𝜃2 250 ∗ 𝑠𝑖𝑛 𝜃20 𝑠𝑖𝑛 0 𝑐𝑜𝑠 0 00 0 0 1

]

= [

𝑐𝑜𝑠 𝜃2 −𝑠𝑖𝑛 𝜃2 0 250 𝑐𝑜𝑠 𝜃2𝑠𝑖𝑛 𝜃2 𝑐𝑜𝑠 𝜃2 0 250 𝑠𝑖𝑛 𝜃20 0 1 00 0 0 1

]

𝐴32 = [

𝑐𝑜𝑠 𝜃3 −𝑐𝑜𝑠 0 ∗ 𝑠𝑖𝑛 𝜃3 𝑠𝑖𝑛 0 ∗ 𝑠𝑖𝑛 𝜃3 160 ∗ 𝑐𝑜𝑠 𝜃3𝑠𝑖𝑛 𝜃3 𝑐𝑜𝑠 0 ∗ 𝑐𝑜𝑠 𝜃3 −𝑠𝑖𝑛 0 ∗ 𝑐𝑜𝑠 θ3 160 ∗ 𝑠𝑖𝑛 𝜃30 𝑠𝑖𝑛 0 𝑐𝑜𝑠 0 00 0 0 1

]

= [

𝑐𝑜𝑠 𝜃3 −𝑠𝑖𝑛 𝜃3 0 160 𝑐𝑜𝑠 𝜃3𝑠𝑖𝑛 𝜃3 𝑐𝑜𝑠 𝜃3 0 160 𝑠𝑖𝑛 𝜃30 0 1 00 0 0 1

]

𝐴43 = [

𝑐𝑜𝑠 𝜃4 −𝑐𝑜𝑠 90 ∗ 𝑠𝑖𝑛 𝜃4 + 90 𝑠𝑖𝑛 90 ∗ 𝑠𝑖𝑛 𝜃4 + 90 0 ∗ 𝑐𝑜𝑠 𝜃4 + 90𝑠𝑖𝑛 𝜃𝑖 𝑐𝑜𝑠 90 ∗ 𝑐𝑜𝑠 𝜃4 + 90 −𝑠𝑖𝑛 90 ∗ 𝑐𝑜𝑠 𝜃4 + 90 0 ∗ 𝑠𝑖𝑛 𝜃4 + 900 𝑠𝑖𝑛 90 𝑐𝑜𝑠 90 00 0 0 1

]

= [

𝑐𝑜𝑠 𝜃4 + 90 0 𝑠𝑖𝑛 𝜃4 + 90 0𝑠𝑖𝑛 𝜃4 + 90 0 − 𝑐𝑜𝑠 𝜃4 + 90 0

0 1 0 00 0 0 1

]

Debido a que el manipulador de la Universidad Distrital sede tecnologica posee un gripper

final se realizaran los calculos con el valor de esta extensión

24

𝐴54 = [

𝑐𝑜𝑠 𝜃5 −𝑐𝑜𝑠 0 ∗ 𝑠𝑖𝑛 𝜃5 𝑠𝑖𝑛 0 ∗ 𝑠𝑖𝑛 𝜃𝑖 0 ∗ 𝑐𝑜𝑠 𝜃5𝑠𝑖𝑛 𝜃5 𝑐𝑜𝑠 0 ∗ 𝑐𝑜𝑠 𝜃5 −𝑠𝑖𝑛 0 ∗ 𝑐𝑜𝑠 𝜃5 0 ∗ 𝑠𝑖𝑛 𝜃50 𝑠𝑖𝑛 0 𝑐𝑜𝑠 0 00 0 0 1

]

= [

𝑐𝑜𝑠 𝜃5 −𝑠𝑖𝑛 𝜃5 0 0𝑠𝑖𝑛 𝜃5 𝑐𝑜𝑠 𝜃5 0 00 0 1 1470 0 0 1

]

2.3.1 Solución de la cinemática directa para el manipulador RV-M1 empleando el

software de programación MATLAB®

Como ayuda para la solución de problema cinemático se utilizó para este trabajo el

software MATLAB® donde se digito cada matriz homogénea 𝐴𝑛 y se definieron los

valores de las articulaciones para que el programa los pudiera resolver al variar los ángulos

t1, t2, t3, t4 y t5, por último, se multiplico cada matriz por obtener la matriz de

transformación 𝑇, se digita cada valor y ecuación sin la utilización de ningún toolbox. La

siguiente es la solución desarrollada:

%Matrices a partir de los parámetros DH para el RV-M1 %En este caso los ángulos Theta van hacer representado con una t clc clear syms t1 t2 t3 t4 t5 real; syms a3 a2 d1 d5 real; d1=300; d5=147; a2=250; a3=160; t1=0; t2=0; t3=0; t4=0; t5=0; A1=[cosd(t1) 0 sind(t1) 0; sind(t1) 0 -cosd(t1) 0; 0 1 0 d1; 0 0 0 1]; A2=[cosd(t2) -sind(t2) 0 a2*cosd(t2); sind(t2) cosd(t2) 0 a2*sind(t2); 0

0 1 0; 0 0 0 1]; A3=[cosd(t3) -sind(t3) 0 a3*cosd(t3); sind(t3) cosd(t3) 0 a3*sind(t3); 0

0 1 0; 0 0 0 1]; A4=[cosd(t4+(90)) 0 sind(t4+(90)) 0; sind(t4+(90)) 0 -cosd(t4+(90)) 0; 0

1 0 0; 0 0 0 1]; A5=[cosd(t5) -sind(t5) 0 0; sind(t5) cosd(t5) 0 0; 0 0 1 d5; 0 0 0 1]; T=A1*A2*A3*A4*A5;

Valores de la orientación sin tener en cuenta los valores D-H

Para n:

𝑛𝑥 =T(1,1)

25

ans =sin(t1)*sin(t5) - cos(t5)*(cos(pi/2 + t4)*(cos(t1)*sin(t2)*sin(t3) -

cos(t1)*cos(t2)*cos(t3)) + sin(pi/2 + t4)*(cos(t1)*cos(t2)*sin(t3) +

cos(t1)*cos(t3)*sin(t2)))

𝑛𝑦 =T(2,1)

ans = - cos(t5)*(cos(pi/2 + t4)*(sin(t1)*sin(t2)*sin(t3) - cos(t2)*cos(t3)*sin(t1)) + sin(pi/2

+ t4)*(cos(t2)*sin(t1)*sin(t3) + cos(t3)*sin(t1)*sin(t2))) - cos(t1)*sin(t5)

𝑛𝑧 = T(3,1)

ans = cos(t5)*(cos(pi/2 + t4)*(cos(t2)*sin(t3) + cos(t3)*sin(t2)) + sin(pi/2 +

t4)*(cos(t2)*cos(t3) - sin(t2)*sin(t3)))

Para O:

𝑜𝑥 =T(1,2)

ans =cos(t5)*sin(t1) + sin(t5)*(cos(pi/2 + t4)*(cos(t1)*sin(t2)*sin(t3) -

cos(t1)*cos(t2)*cos(t3)) + sin(pi/2 + t4)*(cos(t1)*cos(t2)*sin(t3) +

cos(t1)*cos(t3)*sin(t2)))

𝑜𝑦 =T(2,2)

ans =sin(t5)*(cos(pi/2 + t4)*(sin(t1)*sin(t2)*sin(t3) - cos(t2)*cos(t3)*sin(t1)) + sin(pi/2 +

t4)*(cos(t2)*sin(t1)*sin(t3) + cos(t3)*sin(t1)*sin(t2))) - cos(t1)*cos(t5)

𝑜𝑧 =T(3,2)

ans =-sin(t5)*(cos(pi/2 + t4)*(cos(t2)*sin(t3) + cos(t3)*sin(t2)) + sin(pi/2 +

t4)*(cos(t2)*cos(t3) - sin(t2)*sin(t3)))

Para a:

𝑎𝑥 =T(1,3)

ans =cos(pi/2 + t4)*(cos(t1)*cos(t2)*sin(t3) + cos(t1)*cos(t3)*sin(t2)) - sin(pi/2 +

t4)*(cos(t1)*sin(t2)*sin(t3) - cos(t1)*cos(t2)*cos(t3))

𝑎𝑦 = T(2,3)

ans =cos(pi/2 + t4)*(cos(t2)*sin(t1)*sin(t3) + cos(t3)*sin(t1)*sin(t2)) - sin(pi/2 +

t4)*(sin(t1)*sin(t2)*sin(t3) - cos(t2)*cos(t3)*sin(t1))

26

𝑎𝑧 =T(3,3)

ans =sin(pi/2 + t4)*(cos(t2)*sin(t3) + cos(t3)*sin(t2)) - cos(pi/2 + t4)*(cos(t2)*cos(t3) -

sin(t2)*sin(t3))

Vector columna posición

𝑃𝑥 =T(1,4)

ans =d5*(cos(pi/2 + t4)*(cos(t1)*cos(t2)*sin(t3) + cos(t1)*cos(t3)*sin(t2)) - sin(pi/2 +

t4)*(cos(t1)*sin(t2)*sin(t3) - cos(t1)*cos(t2)*cos(t3))) + a2*cos(t1)*cos(t2) +

a3*cos(t1)*cos(t2)*cos(t3) - a3*cos(t1)*sin(t2)*sin(t3)

𝑃𝑦 =T(2,4)

ans =d5*(cos(pi/2 + t4)*(cos(t2)*sin(t1)*sin(t3) + cos(t3)*sin(t1)*sin(t2)) - sin(pi/2 +

t4)*(sin(t1)*sin(t2)*sin(t3) - cos(t2)*cos(t3)*sin(t1))) + a2*cos(t2)*sin(t1) +

a3*cos(t2)*cos(t3)*sin(t1) - a3*sin(t1)*sin(t2)*sin(t3)

𝑃𝑧 =T(3,4)

ans =d1 + a2*sin(t2) - d5*(cos(pi/2 + t4)*(cos(t2)*cos(t3) - sin(t2)*sin(t3)) - sin(pi/2 +

t4)*(cos(t2)*sin(t3) + cos(t3)*sin(t2))) + a3*cos(t2)*sin(t3) + a3*cos(t3)*sin(t2)

Escalado:

1=T(4,4)

ans =1

Perspectiva:

>> T(4,1)

ans =0

>> T(4,2)

ans =0

>> T(4,3)

ans =0

Teniendo esta solución se simula el estado del robot con los ángulos θ representados como

“t” en valor cero y los valores de DH, posición horizontal

d1=300; d5=147; a2=250; a3=160; t1=0; t2=0; t3=0;

27

t4=0; t5=0;

>> T

T = 0 0 1 557

0 -1 0 0

1 0 0 300

0 0 0 1

Los siguientes valores están dados en milímetros

𝑃𝑥 =T(1,4)

ans =557

𝑃𝑦 =T(2,4)

ans = 0

𝑃𝑧 =T(3,4)

ans =300

Según las dimensiones externas de la ilustración 11 tomada del manual Mitsubishi RV-M1,

los valores de las coordenadas hallados para la cinemática directa corresponden a la

estructura real.

Ilustración 11 Dimensiones generales del RV-M1

Fuente (Mitsubishi Industrial Micro-Robot System)

28

2.3.2 Solución de la cinemática directa utilizando el toolbox de Peter Corke para el

manipulador RV-M1 en MATLAB®

En búsqueda de diferentes alternativas de solución para la cinemática del robot se encontró

el toolbox ofrecido por Peter Corke en su libro Robotics Toolbox para el software C, la

programación para el manipulador RV-M1 se realizó bajo los mismos planteamientos de

DH.

clc clear syms t1 t2 t3 t4 t5 real; syms d1 a2 a3 d4 real; %Solución cinemática por medio del Toolbox de Peter Corke %Para el manipulador RVM1 L=Link([0 300 0 pi/2]); L(2)=Link([0 0 250 0]); L(3)=Link([0 0 160 0]); L(4)=Link([0 0 0 pi/2]); L(5)=Link([0 147 0 0]); SerialLink(L) Rob=SerialLink(L) Rob.name='RV-M1'; q1=0; q2=0; q3=0; q4=0+pi/2; q5=0; Rob.plot([ q1 q2 q3 q4 q5 ]) Rob.fkine([ q1 q2 q3 q4 q5 ]) syms th1 th2 th3 th4 th5 Rob.fkine([th1 th2 th3 th4 th5]) Rob.fkine([ q1 q2 q3 q4 q5 ])

Rob =

noname:: 5 axis, RRRRR, stdDH, slowRNE

Ilustración 12 Denavit Hartenberg, por Peter Corke

j theta d a alpha offset

1 q1 300 0 1,5708 0

2 q2 0 250 0 0

3 q3 0 160 0 0

4 q4 0 0 1,5708 0

5 q5 147 0 0 0

29

ans =

0 0 1 557

0 -1 0 0

1 0 0 300

0 0 0 1

El toolbox integra una interfaz gráfica en otra ventana que representa al robot por medio de

alambres como se muestra en la ilustración 14.

Ilustración 13 Modelamiento del manipulador mediante los parámetros D-H a través de la herramienta de Matlab-Robotic

Toolbox(Peter Corke)

Fuente propia.

Para realizar las simulaciones de movimientos en esta interfaz se tendría que empezar a

variar los ángulos θ previamente definidos, haciendo de esto una operación de retroceso. Se

podría programar en una interfaz gráfica donde la variación sea controlada por medio de

sliders, pero las propiedades físicas no se podrían alterar y un análisis mayor no se podría

realizar por ser esta una representación simple.

El toolbox ofrece otras ventajas además de la previamente mencionada, como es resolver la

matriz jacobiana del Robot este dentro de los diferentes ejemplos incorporados por años de

estudio, es una herramienta de ayuda, pero no mostrará el desarrollo intrínseco de estos

programas.

30

2.4 Aplicación de la cinemática inversa por medio de un software de cálculo y

programación, para el robot Mitsubishi Movemaster RV-M1

De acuerdo a los resultados obtenidos por el método de la cinemática directa, se procede a

resolver la cinemática inversa para el manipulador RV-M1, se tiene en cuenta los valores

de los eslabones representados en la tabla 2 e ilustración 11. Para robots menores a 6 GDL

se puede solucionar utilizando el método geométrico, para este caso particular con 5 GDL

se va hacer uso de este, debido a que calculando las coordenadas X, Y y Z del segundo

eslabón (Elbow) el cual no tiene valores angulares positivos, con los ángulos pitch y roll

para este manipulador (𝜃4 y 𝜃5) son suficientes para dar una solución simple a este

problema.

El uso del software para hacer esta solución y variación de posiciones se utiliza sin ningún

tipo de toolbox solo con las ecuaciones obtenidas por el método y la variación de las

coordenadas.

2.4.1 Cinemática inversa

El estudio de la cinemática inversa da solución a la mayoría de las aplicaciones, donde se

requiere determinar los ángulos entre eslabones necesarios para una posición específica del

efector final. Para obtener esta ubicación y orientación dada se hace una referencia de

nuevo a la posición fija ubicada en la parte inferior de la base. Este planteamiento es el de

uso fundamental para la aplicación práctica de los manipuladores. (Craig, 2006)

A diferencia de la solución del problema cinemático directo, la solución del problema

cinemático inverso no es única, arrojando como resultado la existencia de diferentes n-

uplas 𝑞 = [𝑞1, 𝑞2,𝑞3, …… . . , 𝑞𝑛]𝑇

que posicionan y orientan el extremo del robot del mismo

modo. (Barrientos, Peñín, Balaguer, & Aracil, 2007)

El cálculo de la cinemática inversa resulta ser un problema de alto grado de complejidad

cuyo proceso de análisis y solución conlleva a resultados comúnmente no únicos. (Solano

B, 2015)

2.4.2 Solución del problema cinemático inverso por el método geométrico

La solución por el método geométrico a la cinemática inversa es aplicada a robots con

pocos grados de libertad donde se busca encontrar el suficiente número de relaciones

geométricas en las que intervendrán las coordenadas del extremo del robot, sus

coordenadas articulares y las dimensiones físicas de sus elementos. (Barrientos, Peñín,

Balaguer, & Aracil, 2007) Se puede empezar encontrando solo los tres primeros grados por

el teorema del coseno, debido a que estos son los dedicados a posicionar el extremo solo

31

bastaría con manipular los últimos dos grados para el caso donde el manipulador sea de

cinco.

Para el caso particular del RV-M1 se encontrarán los tres primeros grados de libertad

ecuaciones (6) solución del primer ángulo (Theta 1), (7) solución del tercer ángulo (Theta

3), y (8) solución del segundo ángulo (Theta 2), para los dos últimos eslabones se tendrá la

comprensión de los ángulos de barrido, este principio se tomó de (Barrientos, Peñín,

Balaguer, & Aracil, 2007)

Solución de 𝜃1 (waist), 𝐽1

−150° ≤ 𝜃1 ≤ 150°

𝑃𝑦

𝑠𝑖𝑛 𝜃1=

𝑃𝑥𝑐𝑜𝑠 𝜃1

𝜃1= 𝑡𝑎𝑛−1(𝑃𝑦

𝑃𝑥)

Ecuación 6 Solución del primer ángulo (Theta 1) por Cinemática Inversa

𝜃1 = 𝑡𝑎𝑛−1 (

𝑃𝑦

𝑃𝑥)

(6)

Ilustración 14 Solución de la cinemática inversa mediante descomposición geométrica (vista de techo).

Fuente propia

32

Solución de 𝜃3 (Elbow), 𝐽3

−110° ≤ 𝜃1 ≤ 0°

𝑟2 = 𝑃𝑦2 + 𝑃𝑥

2

𝑐2 = 𝑃𝑧2 + 𝑟2

𝑐2 = 𝑎32 + 𝑎2

2 − 2𝑎2𝑎3 𝑐𝑜𝑠 𝜃3

𝑐𝑜𝑠 𝜃3 =𝑃𝑧2 + 𝑃𝑦

2 + 𝑃𝑥2−𝑎3

2 − 𝑎22

2𝑎2𝑎3

𝜃3 = 𝑐𝑜𝑠−1(𝑃𝑧2+ 𝑃𝑦

2 + 𝑃𝑥2−𝑎3

2− 𝑎22

2𝑎2𝑎3)

Ecuación 7 Solución del tercer ángulo (Theta 3) por Cinemática Inversa

𝜃3 = 𝑐𝑜𝑠−1 (

𝑃𝑧2 + 𝑃𝑦

2 + 𝑃𝑥2−𝑎3

2 − 𝑎22

2𝑎2𝑎3)

(7)

Para la solución de la cinemática inversa por el método de descomposición geométrica

donde es posible un arreglo por ley de cosenos para la ubicación codo abajo del

manipulador, en el caso del RV-M1 esto es posible debido a que el eslabón Elbow no tiene

desplazamiento angular positivo como lo muestra la tabla 2.

Tabla 3 Movimiento angular de los eslabones

Nombre del eslabón Movimiento angular del eslabón

Waist/Base −150° ≤ 𝜃1 ≤ 150° Shoulder/Upper arm −30° ≤ 𝜃2 ≤ 100°

Elbow −110° ≤ 𝜃3 ≤ 0° Wrist Pitch/Fore arm −90° ≤ 𝜃4 ≤ 90°

Wrist Roll −180° ≤ 𝜃5 ≤ 180°

Ilustración 15 Solución de la cinemática inversa mediante descomposición geométrica (vista lateral).

Fuente propia

33

Solución de 𝜃2 (Shoulder), 𝐽2

−30° ≤ 𝜃2 ≤ 100°

𝜃2 = 𝛽 − 𝛼

𝛽 = 𝑡𝑎𝑛−1 (𝑃𝑧𝑟2) = 𝑡𝑎𝑛−1

(

𝑃𝑧

√𝑃𝑦2 + 𝑃𝑥

2

)

𝛼 = 𝑡𝑎𝑛−1 (𝑎3 𝑠𝑖𝑛 𝜃3

𝑎2+𝑎3 𝑐𝑜𝑠 𝜃3)

𝜃2= 𝑡𝑎𝑛−1(

𝑃𝑧

√𝑃𝑦2 + 𝑃𝑥

2)− 𝑡𝑎𝑛

−1(𝑎3𝑠𝑖𝑛 𝜃3

𝑎2+𝑎3𝑐𝑜𝑠𝜃3)

Ecuación 8 Solución del segundo ángulo (Theta 2) por Cinemática Inversa

𝜃2 = 𝑡𝑎𝑛−1

(

𝑃𝑧

√𝑃𝑦2 + 𝑃𝑥

2

)

− 𝑡𝑎𝑛−1 (𝑎3 𝑠𝑖𝑛 𝜃3

𝑎2+𝑎3 𝑐𝑜𝑠 𝜃3) (8)

Con este método se están controlando las tres articulaciones, pero despreciando la distancia

𝑑1 que corresponde a la base del manipulador, donde se encuentra el punto 0 del análisis,

para no tener errores se hará un arreglo matemático

𝑃𝑧2 = 𝑃𝑧 − 300

En las ecuaciones de cinemática inversa se reemplazara 𝑃𝑧 por 𝑃𝑧2 con esto podremos

contrarrestar con los resultados de la cinemática directa, obtenidos por la multiplicación de

la tres primeras matrices de transformación homogénea

2.5 Solución de la cinemática inversa para el manipulador RV-M1 empleando el

software de programación MATLAB®

Como ayuda para la solución de problema cinemático se utilizará para este trabajo el

software MATLAB®, lo valores de los eslabones y la altura de la base se ponen

análogamente y las posiciones Px, Py y Pz se plantean como los valores en posición

horizontal del manipulador para obtener los valores angulares de 𝑡1, 𝑡2 𝑦 𝑡3 en este caso el

resultado será el valor 0° no fue necesario el uso de ningún toolbox, la siguiente es la

solución:

clc clear syms t1 t2 t3 t4 t5 real; syms a2 a3 d1 d5 Px Py Pz Pz2 real; d1=300; d5=72; a2=250;

34

a3=160; Px=557; Py=0; Pz=300; Pz2=Pz-d1; t1_inv=atand(Py/Px); t3_inv=-acosd((Pz2^2+Px^2+Py^2-((a2^2)+(a3^2)))/(2*a2*a3)); t2_inv=(atand(Pz2/sqrt(Px^2+Py^2)))-

(atand((a3*sind(t3_inv))/(a2+(a3*cosd(t3_inv)))));

35

3 MODELAMIENTO DEL ROBOT MITSUBISHI MOVEMASTER RV-M1.

El proceso de modelado se llevó a cabo en el software SOLIDWORKS® para el uso del

respectivo programa se utilizó una licencia estudiantil con periodo de caducidad,

descargada mediante la página de Dassault Systèmes®. En el levantamiento de medidas del

manipulador RV-M1 se realizó mediante el uso de un calibrador pie de rey y un flexómetro.

De los componentes se dibujaron las geometrías externas de las piezas, sin tomar detalle de

sus características internas, con el fin de poder crear una máquina virtual, puesto que

permiten cumplir con los grados de libertad del manipulador y los desplazamientos.

El proceso de dibujo se ejecutó en el entorno “Pieza” de SOLIDWORKS® efectuando las

operaciones correspondientes para cada elemento. Posteriormente se realizó una

verificación del modelo CAD siguiendo la guía del respectivo manual del fabricante.

A continuación, se listarán los elementos dibujados:

- Base/Waist:

Ilustración 16 Dibujo " Base/Waist ".

Fuente propia.

36

- Body and Shoulder cover

Ilustración 17 Dibujo "Body and Shoulder cover".

Fuente propia.

- Upper Arm

Ilustración 18 Dibujo "Upper Arm".

Fuente propia.

37

- Fore arm

Ilustración 19 Dibujo "Fore arm".

Fuente propia

- Wrist pitch

Ilustración 20 Dibujo "Wrist pitch"

Fuente propia.

38

- Wrist roll

Ilustración 21 Dibujo “Wrist roll”.

Fuente propia.

- Proceso de ensamble.

A través del módulo “Ensamblaje” del programa SOLIDWORKS® se puede efectuar el

ensamble del manipulador robotico, teniendo en cuenta que se deben utilizar relaciones de

posición simples entre los componentes de tal forma que puedan ser interpretadas por el

software donde se creará el entorno de máquina virtual.

En este caso se emplearon relaciondes de “Concentricidad” y “Coincidencia”.

39

Ilustración 22 Robot Mitsubishi Melfa RVM1, dibujo realizado en SOLIDWORKS®.

Fuente propia.

El modelado permite tener una interacción gráfica-virtual del equipo para su posterior

análisis mediante la conexión con el software de cálculo.

3.1 Simulación avanzada del manipulador Mitsubishi RV-M1 por las plataformas

de CAD y programación.

A través de la activación del complemento Simscape Multibody Link® en la consola de

MATLAB® se puede desplegar y activar un vínculo con SOLIDWORKS® para exportar

de dicho software el modelo del robot a un formato reconocible por MATLAB® para su

posterior análisis y programación.

A continuación, se dará una breve descripción de cada bloque:

- Bloque entorno: Permite definir ciertas propiedades del entorno de la máquina

virtual, como por ejemplo la gravedad y su vector de acción en el espacio.

Ilustración 23 Bloque entorno

Fuente propia.

Al desplegar el bloque se obtiene la siguiente ventana de opciones:

40

Ilustración 24 Parámetros del bloque entorno.

Fuente propia.

Sin realizar modificaciones se procede a aceptar.

- Bloque raíz: Establece un punto de unión fijo en la ubicación del sistema de

coordenadas espacial.

Ilustración 25 Bloque raíz.

Fuente propia.

El despliegue de su menú de entornos arroja la siguiente consola:

Ilustración 26 Parámetros Bloque raíz.

Fuente propia.

Sin generar cambios se procede a aceptar.

- Bloque soldadura: Junta de soldadura, representa cero grados de libertad y conecta

rígidamente los cuerpos base (B) y seguidor (F) en la configuración relativa inicial.

Esta junta no puede ser accionada.

41

Ilustración 27 Bloque soldadura

Fuente propia.

- Bloque de cuerpo: Representa un cuerpo rígido definido por el usuario, con

propiedades definidas por masa 𝑚, tensor de inercia 𝐼, orígenes coordinados, ejes

para el centro de gravedad (𝐶𝐺) y otros sistemas de coordenadas del cuerpo

especificados por el usuario.

Ilustración 28 Bloque de cuerpo

Fuente propia.

- Bloque Revoluta: Representa un grado de libertad de rotación. El cuerpo del

seguidor (F) gira en relación con el cuerpo de la base (B) alrededor de un solo eje de

rotación que recorre los orígenes del sistema de coordenadas del cuerpo co-ubicado.

Se pueden agregar puertos de sensores y actuadores. La secuencia del seguidor base

y la dirección del eje determinan el signo del movimiento hacia adelante mediante

la regla de la mano derecha.

Ilustración 29 Bloque revoluta

Fuente propia.

Para efectuar la simulación se activa el comando “RUN” en la barra de herramientas de

Simulink®.

Una vez Simulink® presenta el diagrama de bloques y es ejecutada la simulación se debe

realizar una programación de cada una de las juntas revolutas para restringir los

movimientos del Robot, pues en su etapa inicial giran arbitrariamente presentando

colisiones entre sí.

42

Ilustración 30 Primer entorno gráfico RV-M1

Fuente propia.

El Robot Mitsubishi Melfa Movemaster RV-M1 se puede modelar y simular como un

conjunto de cuerpos de contacto con relaciones concéntricas entre sí, sus juntas son

revolutas con las características propias del bloque mencionado anterior mente.

Al desplegar el menú de entorno del bloque se obtiene la siguiente consola donde se

configurará el número de sensores, en este caso se adjuntará un sensor.

Ilustración 31 Configuración de los sensores

Fuente propia.

43

Una vez configurado el sensor se puede apreciar una nueva conexión en el bloque:

Ilustración 32 Bloque restricción geométrica

Fuente propia.

Ahora se procederá crear la conexión con los bloques que permitirán tener el control del

movimiento de la junta revoluta.

Ilustración 33 Conexión de bloques para el movimiento de la junta

Fuente propia.

Se listarán y describirán brevemente cada uno de estos bloques y su correspondiente

configuración si así alguno lo requiere.

Bloque constante: muestra la constante especificada por el parámetro 'Valor constante'. Si

'Valor constante' es un vector permite interpretar parámetros vectoriales. Modela el vector

como una matriz con las mismas dimensiones del valor constante.

Ilustración 34 Bloque constante

Fuente propia.

Bloque control deslizante: Permite establecer un control de ganancia escalar en los rangos

definidos por el usuario.

Ilustración 35 Bloque control deslizante

Fuente propia.

Genera una interfaz deslizante al desplegar el menú de opciones.

44

Ilustración 36 Restricciones del deslizador

Fuente propia.

En la consola del despliegue del bloque se pueden introducir los límites de movimiento.

Bloque multiplicador: Procesa señales escalares o vectoriales múltiples. Como el proceso

de movimiento se efectúa en el plano tridimensional el bloque deberá ser configurado para

la entrada de tres señales con una salida.

Ilustración 37 Bloque multiplicador

Fuente propia.

Bloque actuador de junta: Actúa una primitiva conjunta con señales de fuerza / par o

velocidad lineal / angular generalizadas, velocidad y aceleración. La secuencia del seguidor

base y el eje de la articulación determinan el signo del movimiento hacia adelante. Las

entradas son señales Simulink. Las señales de entrada de movimiento deben agruparse en

una señal.

Ilustración 38 Bloque actuador de junta

Fuente propia.

Por defecto el bloque de junta viene configurado para actuar por un par-torque se debe

configurar entonces para que se pueda tener control del movimiento mediante la opción

“Actuate with Motion” como se puede apreciar en la ilustración 39:

45

Ilustración 39 Restricciones de actuador de junta.

Fuente propia.

Al evaluar nuevamente la simulación se configura en la consola de Simulink® el tiempo de

ejecución estableciendo un rango infinito como se muestra en la ilustración 40. Finalmente

se presenta en la ilustración 42 el diagrama de bloques del Robot con sus respectivas

configuraciones.

Ilustración 40 Configuración del tiempo de simulación

Fuente propia.

Ilustración 41 Interfaz gráfica con restricciones

Fuente propia.

Ahora se podrán controlar los movimientos del Robot mediante mandos deslizables que

operarán dentro de los rangos de las juntas del manipulador.

46

Ilustración 42. Diagrama de bloques. Fuente propia.

47

3.1.1 Configuración y programación de controladores para la máquina virtual

El proceso de control del manipulador robótico se llevó a cabo mediante el diseñó un

sistema de mandos a través del entorno Guide de MATLAB®. Para acceder al entorno

Guide se procede a ingresar el siguiente código en la consola de programación:

guide

Ilustración 43 Ingreso al entorno GUIDE

Fuente propia.

Donde se desplegará la ventana de comandos del entorno Guide.

Ilustración 44 Ventana del entorno GUIDE

Fuente propia.

De esta forma se procede a crear un nuevo Guide. La ventana de comandos que se

despliega permite desarrollar un entorno de control de forma gráfica. El usuario define las

entradas que desea asignar a su mando de control y las variables que llamará definiendo sus

rangos y características propias.

En la ilustración 45 se presenta de forma general el entorno de creación del Guide.

Ilustración 45 Lay-out para la creación del GUIDE

48

Fuente propia.

El desarrollo del mando de control de este proyecto se efectuó mediante el diseño de un

Guide con “sliders” o deslizadores donde en cada uno de ellos se estableció un rango

correspondiente a los valores límite de los ángulos presentes en cada eslabón del brazo

robótico. También se implementaron ventanas de texto que arrojan los valores

correspondientes a la cinemática directa e inversa del robot a medida que se van operando

los deslizadores.

Para la manipulación del robot se utilizaron ocho deslizadores, cinco de ellos que dan

control a la cinemática directa del mismo a través del mando de sus ángulos y tres que

permiten establecer los valores de la cinemática inversa, donde mediante los ángulos se

arrojan las posiciones 𝑃𝑥, 𝑃𝑦 , y 𝑃𝑧 del efector final. También se añadió un “Push Button”

Para enviar señales al entorno de la máquina virtual.

Es importante tener en cuenta que la eficiencia del mando de control Guide está

fuertemente ligada al correcto desarrollo de las ecuaciones correspondientes a la cinemática

directa e inversa del brazo robótico, su correcta asociación con cada deslizador y el llamado

del modelo creado mediante Simulink®.

49

3.1.2 Entorno de la máquina virtual

El entorno de la máquina virtual permite generar una interacción con el brazo robótico, una

vez se han desarrollado sus soluciones cinemáticas. En la ilustración 46 se presenta el

Guide desarrollado:

Ilustración 46 Ventana final GUIDE con variaciones de ángulos y posiciones

En las siguientes ilustraciones 47 y 48 se puede identificar la conexión e interacción entre

el modelo y el mando de control Guide.

50

Ilustración 47 Variación de los ángulos y obtención de las posiciones por Cinemática directa

Fuente propia.

Ilustración 48 Variación de las posiciones y obtención de los ángulos por Cinemática inversa

Fuente propia.

51

3.2 Simulación de los servos que controlan los eslabones del manipulador por medio

del software CAD y de programación

Una vez desarrollado el entorno virtual se realizará mediante gráficas el análisis de los

recorridos que ejecutarán los servo motores al recibir y procesar las señales, el proceso se

lleva a cabo a través del diagrama de bloques de simulink realizando una selección general

y pulsando la opción “Log Select Signals” mostrada en la ilustración 49.

Ilustración 49 Señales de Simulink

Fuente propia.

A continuación se pulsa el boton ‘Play’ para realizar la simulación y se selecciona la opcion

“Simulation Data Inspector” mostrada en la ilustración 50.

Ilustración 50 Simulation Data Inspector Simulink

Fuente propia.

Se desplegará una ventana donde se podrá seleccionar del diagrama de bloques realizado

sobre el cual se va a realizar el análisis, en este caso serán los ‘sliders’, pues son los

controladores del movimiento de los eslabones. Se tendrá una gráfica de desplazamiento

angular vs. Tiempo.

52

Los ángulos en el diagrama de bloques son representados en la tabla 4 de la siguiente

forma:

Tabla 4 Equivalencias angulares en slider

Angulo Slider

𝜃1 Gain

𝜃2 Gain1

𝜃3 Gain2

𝜃4 Gain3

𝜃5 Gain4 Fuente propia.

Para realizar esta simulación se utilizo la cinematica inversa, pues al buscar una posición

cartesiana se involucra más de un angulo como lo representan las ecuaciones 6, 7 y 8 de

este documento, ideal para la representación gráfica. Las ilustraciones 51, 54 y 57 presentan

la interfaz donde el usuario podrá manipular las posiciones cartesianas con los tres ultimos

deslizadores del costado derecho e ira obteniendo un valor angular mostrado en las

primeras cinco posiciones de texto donde se muestra los resultados por medio de la

solución intrinseca de las ecuaciones para la cinematica inversa.

Ilustración 51 Desplazamientos por Cinemática Inversa I

Fuente propia.

53

Ilustración 52 Desplazamiento ambiente gráfico por Cinemática Inversa I

Fuente propia.

54

Ilustración 53 Desplazamiento angular Vs. Tiempo por Cinemática Inversa

Fuente propia.

55

Ilustración 54 Desplazamiento Angular y grafico por Cinemática inversa II

Ilustración 55 Desplazamiento angular Vs. Tiempo por Cinemática Inversa II

Fuente propia.

56

Ilustración 56 Desplazamiento angular Vs. Tiempo por Cinemática Inversa II

Fuente propia.

57

Ilustración 57 Desplazamiento Angular y grafico por Cinemática inversa III

Ilustración 58 Desplazamiento angular Vs. Tiempo por Cinemática Inversa III

Fuente propia.

58

Ilustración 59 Desplazamiento angular Vs. Tiempo por Cinemática Inversa III

59

Este movimiento se ejecutó utilizando la cinemática inversa, pues esta relaciona en el

cálculo de sus posiciones los primeros tres ángulos del manipulador, es decir que, si el

movimiento deseado resulta en una coordenada posición (𝑥, 𝑦, 𝑧), el Robot moverá todos

los ángulos de los eslabones que le permitan llegar a esa coordenada.

Las gráficas de las ilustraciones 53,56 y 59 son representaciones del desplazamiento

angular de cada eslabón como simulación de los servomotores respecto al tiempo. Al

realizar el movimiento por un ‘slider’, cada ángulo toma la posición adecuada para llegar a

la coordenada requerida. No todas las coordenadas son posibles en la cinemática inversa,

por eso se pueden ver picos donde al analizar la interfaz gráfica el manipulador se mueve

bruscamente, es importante analizar estas posiciones debido a que es una ayuda para

visualizar los desplazamientos reales del manipulador.

60

4 EJECUCIÓN DE LA SIMULACIÓN EN EL MANIPULADOR RV-M1

Cumpliendo con los objetivos previamente acordados para este trabajo se realizó una

verificación de funcionalidad de la interfaz virtual desarrollada para el manipulador RV-M1

estableciendo una conexión serial con el mismo.

Se ejecutó entonces una interfaz de comunicación donde se transcriben las ordenes

enviadas al manipulador por medio del software MATLAB® en un lenguaje que el RV-M1

interprete sin utilizar algún hardware intermedio (Arduinos, Rapsberry, entre otros).

Se pudo comprobar que el resultado obtenido en MATLAB® fuese enviado, recibido e

interpretado por el RV-M1 en tiempo real concordando con la interfaz gráfica realizada.

La primera conexión se realizó gracias a las indicaciones dadas por el Ing. Fernando

Rodríguez profesor de la Universidad, quien muy cordialmente brindo asesorías puntuales y

bastante útiles para el proceso de manipulación del robot. Para el cumplimiento de la

robótica serial se inició con las pruebas del programa original del RV-M1, se cuenta con el

cable paralelo/serial rs232c que se nombra en el manual y un equipo de cómputo que

cuenta con este tipo de puerto.

Los siguientes son los pasos para establecer la comunicación del Robot con el equipo de

cómputo:

1. Conexión a la unidad del manipulador y al puerto serial del computador

2. Configuración del puerto:

Bits per second (Baudio):9600

Datas bits: 8

Parity: None

Stop bits: 1

Como se muestra en la ilustración 61, esta configuración se realiza en el administrador de

dispositivos del computador que va a realizar la conexión:

61

Ilustración 60 Configuración del puerto COM

Fuente propia.

3. Configuración en Mitsubishi Robot Comm Server

El programa del fabricante del manipulador RV-M1 por defecto es el Mitsubishi

Robot Comm Server, el cual permite el envió de las líneas de programación. La

configuración para la lectura del puerto en que se encuentra el conectado el Robot

se muestra en la ilustración 64; primero se realiza la configuración mostrada en el

paso anterior, después de esto se reinicia el programa y se comprueba el estado de

conexión

62

Ilustración 61 Configuración del programa Mitsubishi Robot Comm Sever

Fuente propia.

Se realiza él envió de las líneas de programación respecto a los comandos que se

indican en (Mitsubishi Industrial Micro-Robot System) en la páginas APP-47-51,

estas coordenadas se pueden tomar también del programa Hyperterminal.

Ilustración 62 Datos recopilador de Hyperterminal

Fuente propia.

63

4.1 Configuración y conexión del RV-M1 en el software MATLAB®

Una vez desarrollado el protocolo de conexión se procede a realizar la comunicación serial

con el RV-M1, mediante una interfaz desarrollada en MATLAB® que permite generar la

comunicación del entorno virtual con el modelo físico, para ejecutar la conexión se adquirió

un cable USB-DB9.

A través del siguiente código se crea el traductor que genere compatibilidad entre el

lenguaje de MATLAB® y el RV-M1:

delete(instrfind)

SCom=serial('COM3');

SCom.StopBits = 1;

SCom.Parity = 'none';

SCom.DataBits = 8;

SCom.BaudRate = 9600;

fopen(SCom)

fprintf(SCom,'SP 2')

SCom

Con estos comandos fue posible la lectura y posterior envió de ordenes al puerto.

4.2 Incorporación del trabajo realizado

Teniendo la conexión realizada se procedió a configurar la interfaz virtual desarrollada para

lograr la robótica serial.

Ilustración 63 Interfaz gráfica y de envió de comandos

Fuente propia.

Se realizó la configuración de comandos esenciales y que permiten manipular el RV-M1

sin tener que digitar una serie de líneas o reiniciar la unidad física, como los son:

64

Nest, posición en que todos los elabores se encuentran con su final de carrera

Origen, todos los ángulos con valor cero

Resetear, si se muestra alguna falla se puede pulsar la unidad reinicia su sistema

Grip open, pinza abierta

Grip close, pinza cerrada

Home, reconoce el sistema de coordenadas

Se realizaron dos envíos de comandos distintos con MJ y MP, el primero reconoce los

ángulos que deben tomar los eslabones el segundo las posiciones cartesianas X, Y, Z, y los

ángulos picth y roll, con este se tuvo una dificultad mayor, pues su configuración varía

según la herramienta que se encuentre incorporada en el manipulador, pero gracias a la

conversión a valores angulares se puede enviar con el código MJ.

Con la manipulación serial se realizaron algunos ajustes como fue colocar primero la

coordenada cartesiana ‘𝑥’ posteriormente ‘𝑦’ y por ultimo ‘𝑧’ para que el manipulador

tuviera coincidencia con la interfaz gráfica.

Ilustración 64 Comprobación de los comandos enviados al manipulador

Fuente propia.

65

Ilustración 65 Comprobación de los comandos enviados al manipulador II

Fuente propia.

Realizado el envió de los códigos desde MATLAB® al manipulador se determinó que al

enviar una serie de estos se iban sumando con los anteriores, por ello se debe tener la

secuencia utilizada en el programa Robot comm para códigos Movemaster MO. Las

coordenadas representadas tuvieran una coincidencia igual a las del manipulador, esto

quiere decir que las soluciones realizadas por cinemática inversa corresponden como se

aprecia en las ilustraciones 64 y 65.

Mediante el mando de control “Guide” desarrollado se pudo generar una manipulación del

brazo robótico de forma serial, haciendo uso de la cinemática directa e inversa, integrando

así su solución matemática con la interfaz virtual y el robot verificando que a través del

envió de comandos se pudo corroborar la funcionabilidad de la interfaz virtual desarrollada.

66

5 CONCLUSIONES

Para dar solución a la cinemática directa del manipulador Mitsubishi RV-M1 se

inició con el planteamiento de matrices de transformación homogénea, con esto se

encontraron las coordenadas Px, Py y Pz, realizando la variación de los ángulos.

Con la finalidad de dar solución a la cinemática inversa, se utilizó el método de

geometría cerrada en el que se resolvieron los tres primeros grados de libertad del

manipulador, al traer valores de la cinemática directa y calcularlos en la inversa se

logró un resultado igual para las posiciones posibles del espacio de trabajo, debido a

que el manipulador solo puede funcionar en la posición codo abajo, estos valores

obtenidos son los aceptados por el lenguaje del RV-M1 en sus códigos MJ para para

posiciones angulares y MP para posiciones cartesianas este último acompañado de

los ángulos Roll y Pitch .

Se ejecutó un proceso de dibujo del manipulador en el software SOLIDWORKS® a

través del proceso de modelamiento donde se puede identificar las características

geométricas de manipulador y a su vez efectuar validaciones de los cálculos

realizados con el fin de comprobar resultados obtenidos a través de la cinemática

directa e inversa del manipulador robótico. El proceso de modelamiento debe ser

preciso, pues un modelo erróneo incurre en imposibilitar la creación de un entorno

virtual funcional y los procesos de simulación se verían afectados. Para análisis

posteriores del manipulador en el entorno de bloques se podrían configurar las

masas de cada uno de los elementos permitiendo diferentes análisis dentro del

programa MATLAB®.

La interacción entre los programas SOLIDWORKS® y MATLAB® permitieron

recrear y animar el robot con condiciones reales, diseñar el entorno gráfico y

posteriormente generar una interacción virtual con el manipulador robótico. El

proceso se llevó a cabo a partir de las herramientas de MATLAB®, Simscape

Multibody Link®, Simulink® y el entorno de control Guide, donde se establecieron

mediante los respectivos códigos de programación las condiciones geométricas del

robot que determinan sus posibles posiciones en el espacio de trabajo, las soluciones

de sus cadenas cinemáticas y la simulación de su movimiento, obteniendo valores

numéricos en tiempo real de ángulos (cinemática directa) y posiciones (cinemática

inversa) para el robot.

67

La simulación y análisis de los servomotores se realizó mediante el entorno virtual

desarrollado en Matlab® obteniendo una serie de gráficas donde se evidencia el

desplazamiento angular representado por los eslabones del robot vs el tiempo que

emplea cada uno de ellos en alcanzar su posición final. El método óptimo de

análisis se ejecuta mediante la cinemática inversa debido que al orientar a una

coordenada cartesiana el manipulador puede requerir el uso de más de un ángulo,

sin embargo el robot en la realidad puede verse afectado por el primer momento de

inercia y el desgaste debido a los años de uso que se le ha dado, también puede

diferir el tiempo de respuesta, como se ve en las gráficas hay desplazamientos

súbitos, porque el RV-M1 no puede alcanzar todas las coordenadas que ha este se le

sean ordenadas. Este resultado es importante al momento de realizar una trayectoria

y requerir un tiempo de desplazamiento acorde a la labor a ejecutar.

La metodología empleada en el desarrollo del presente proyecto contó con el

enfoque principal de asegurar un resultado dependiente de cuatro factores

fundamentales:

- Tiempo: Principal en todo momento para realizar investigaciones y seguimiento

a las actividades.

- Inteligencia: Fundamental al momento de interpretar y aplicar nuevas teorías y

conceptos que no se encuentran del todo presentes en el plan de estudio de

Ingeniería Mecánica, también cuestionar de manera critica la temática que está

abordando realizando comparación de conceptos con diversas fuentes.

- Empeño: Siempre presente en todas las actividades ejecutadas en pro de lograr

el cumplimiento de los objetivos propuestos, entendiendo que a pesar de que no

se está trabajando sobre una máquina nueva o en condiciones ideales, esta es

funcional y solo requirió un poco de inventiva dentro de su proceso.

- Propuesta de valor: Es bien sabido que la Universidad Distrital Francisco José

de Caldas es un ente universitario de alta calidad cuya expansión en el ámbito

académico es continua, a través del desarrollo del presente proyecto se quiso

lograr proporcionar una herramienta que permita dar uso continuo al

manipulador robótico para enriquecer el proceso de enseñanza, aportando a los

educandos la oportunidad de enlazar los conceptos teóricos con la práctica

mediante la manipulación de herramientas tecnológicas como lo son

MATLAB® y el Robot Mitsubishi Movemaster RV-M1®.

68

7. BIBLIOGRAFÍA

Andres, J., Gracia, L., & Tornero, J. (2011). Robotics and Computer-Integrated Manufacturing.

El sevier Ltd, SciVerse ScienceDirect, 265-274.

Aracil, R., Saltarén, R., Sabater, J. M., & Reinoso, O. (2006). ROBOTS PARALELOS: MÁQUINAS

CON UN PASADO PARA UNA ROBÓTICA DEL FUTURO. Revista Iberoamericana de

Automática e Informática Industrial., 3(1), 28.

Barraza, A., Rúa, J., Sosa, J., Yime, E., & Roldan, J. (2015). Modelado dinámico del manipulador

serial Mitsubishi Movemaster RV-M1 usando SolidWorks. Revista de la facultad de

Ingenierias Físicas Mecánicas, 49-62.

Barrientos, A., Peñín, L. F., Balaguer, C., & Aracil, R. (2007). Fundamentos de robótica. MC

GRAW HILL.

Benbelkacem, Y., & Mohd-Mokhtar, R. (26-29 de Noviembre de 2012). Explicit kinematic

model of the Mitsubishi RV-M1 robot arm. IEEE, 404-409. Obtenido de

http://ieeexplore.ieee.org/document/6466627/

Cardona, S., & Clos Costa, D. (2011). Teoría de Máquinas. Cataluña: Edición S UPC.

Craig, J. J. (2006). Robótica. México: Pearson Prentice Hall.

Forero, J., Hurtado, L., & Ruiz, V. (Febrero de 2015). Visión eléctronica, Más que un estado

sólido. Arquitectura paralela robótica: modelado y simulaci´on con siemens NX.

Recuperado el 10 de Agosto de 2015, de

http://revistas.udistrital.edu.co/ojs/index.php/visele/article/view/11018

Marcu, C., Lazea, G., Herle, S., Robotin, R., & Tamas, L. (2010 de Junio de 25). IEEE explore

Digital Library, 3D graphical simulation of an articulated serial manipulator based on

kinematic models. Recuperado el 10 de Agosto de 2017, de

http://ieeexplore.ieee.org/abstract/document/5524593/

Marulanda Cano, J. E. (2015). PUESTA EN MARCHA VIRTUAL APLICADA AL ROBOT DELTA DE

LA UNIVERSIDAD SANTO TOMÁS. Bogotá.

Mckinley R, J., Rodríguez S, J., Yime R, E., & James., G. D. (2012). Cinématica inversa matricial

del manipulador 5R Mitsubishi Movemaster RV-M1. Revista ÉPSILON, 19, 56.

Mitsubishi Industrial Micro-Robot System. (s.f.). MITSUBISHI INDUSTRIAL MICRO-ROBOT

SYSTEM; RV-M1-MANUAL GUIDE.

Ollero, B., & Anibal. (2001). Robótica, Manipuladores y robots móviles. España: Marcombo.

69

Parejo, C., & José. (Marzo de 2008). La representación de Denavit-Hartemberg. Recuperado el

24 de Septiembre de 2017, de

https://personal.us.es/jcortes/Material/Material_archivos/Articulos%20PDF/Repres

entDH.pdf

Porcuna López, P. (2016). Robótica Y Domótica básica con arduino. RA-MA EDITORIAL.

Ramírez, R. D. (2010). Diseño de una plataforma róbotica paralela de 6 DOF para asistente

quirúrgico en cirugías de reconstrucción cráneo-facial. Universidad Nacional de

Colombia, Sede Bogotá., Bogotá. Obtenido de

http://www.bdigital.unal.edu.co/3185/1/danielandresramirezrodriguez.2010.pdf

Reyes Cortés, F. (2011). Robótica. Control De Robots Manipuladores. Alfaomega.

Solano B, J. L. (2015). Desarrollo de dispositivos modulares virtuales de arquitectura libre

para el control de posicionamiento multi-axial. Bogotá, Colombia.

Villate, G., & Francisco. (2015). Diseño y construcción de prototipo para mecanizado multiejes

en materiales blandos utilizando arquitectura paralea Stewart-Gough. Universidad

Nacional de Colombia, Sede Bogotá, Bogotá. Recuperado el 10 de Agosto de 2017, de

http://www.bdigital.unal.edu.co/50951/1/74371282.2015..pdf

Wordpress. (12 de 10 de 2017). Petercorke. Obtenido de http://petercorke.com/wordpress/

Zhao, H., Lu, Z., Liu, C., & Wang, H. (13 de 08 de 2016). Model and Simulation of the Mitsubishi

RV-M1 Robot using MATLAB. Recuperado el 15 de 08 de 2017, de

http://gb.oversea.cnki.net/KCMS/detail/detailall.aspx?filename=ieee201608002120

&dbcode=IPFD&dbname=IPFDTEMP