Tesis Fin de Máster/Tese Final de Mestrado - ARQUITECTURA HARDWARE-SOFTWARE PARA DISEÑO, ANÁLISIS...

157
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIER ´ IA DE SISTEMAS Y AUTOM ´ ATICA TESIS DE M ´ ASTER ARQUITECTURA HARDWARE-SOFTWARE PARA DISE ˜ NO, AN ´ ALISIS Y CONTROL DE ROBOTS Autor: H´ ıgor Alves Amorim do Amaral Director: Ram ´ on Barber Casta ˜ no Codirector: Antonio Flores Caballero M ´ ASTER OFICIAL EN ROB ´ OTICA Y AUTOMATIZACI ´ ON LEGAN ´ ES, MADRID MARZO 2014

Transcript of Tesis Fin de Máster/Tese Final de Mestrado - ARQUITECTURA HARDWARE-SOFTWARE PARA DISEÑO, ANÁLISIS...

UNIVERSIDAD CARLOS III DE MADRID

DEPARTAMENTO DE INGENIERIA DE SISTEMAS Y AUTOMATICA

TESIS DE MASTER

ARQUITECTURA HARDWARE-SOFTWARE PARA

DISENO, ANALISIS Y CONTROL DE ROBOTS

Autor: Hıgor Alves Amorim do Amaral

Director: Ramon Barber Castano

Codirector: Antonio Flores Caballero

MASTER OFICIAL EN

ROBOTICA Y AUTOMATIZACION

LEGANES, MADRID

MARZO 2014

II

UNIVERSIDAD CARLOS III DE MADRID

MASTER OFICIAL EN ROBOTICA Y AUTOMATIZACION

El tribunal aprueba la tesis de Master titulada

“ARQUITECTURA HARDWARE-SOFTWARE PARA DISENO,

ANALISIS Y CONTROL DE ROBOTS” realizado por

Hıgor Alves Amorim do Amaral.

Fecha: Marzo 2014

Tribunal:Santiago Garrido Bullon

Cristina Castejon Sisamon

Jonathan Crespo Herrero

Dedico esta tesis de mestrado primeiramente a Deus por ter meguiado por todo este tempo e por toda minha vida, me iluminando

e ajudando em como trilhar meu caminho, depois agradecer aosmeus paıs Ayrton Amaral e Edna Amaral, que sem eles eu naopoderia ter a oportunidade de cursar uma boa universidade e

muito menos pensar em estudar fora do paıs, depois ao meu irmaoMarco Tulio Amaral que sempre me apoiou e me orientou muito

bem para escolher a melhor opcao e oportunidade de estudo, queriaagradecer a minha vovo Maria Martins que sempre me apoiou e

sempre me ajudou, e a minha namorada Julina Ferreira que sempreesteve ao meu lado, mesmo nas horas mais difıceis que me

encontrava em certos momentos de minha vida profissional.

Ya sabemos como es la vida: en un dıa todo esta bien y en otro las cosas ya no son tanperfectas. Altos y bajos son parte de la construccion de nuestro caracter. Con esto, cadamomento, cada situacion, que vamos a enfrentar en nuestras trayectorias es un desafıo,una oportunidad unica de aprender, de ser una mejor persona. Solamente depende denosotros, de nuestras opciones. No se si estoy cerca o demasiado lejos, si me dieron ladireccion correcta o la equivocada. Solo se que sigo adelante, viviendo el mismo dıa de

forma diferente. Ya no camino mas solo, llevo conmigo cada recuerdo, cada experiencia,cada leccion. Y aunque que todo no ande de la manera que me gustarıa, saber que ya no

soy el mismo de ayer me hace percibir que vale la pena. Busque ser una persona devalor, en vez de una persona de exito. El exito es solamente una consecuencia.

Albert Einstein.

Indice general

Indice de Tablas X

Indice de Figuras XIII

Agradecimientos XVII

Resumen XIX

Abstract XXI

1. Introduccion 1

1.1. Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3. Partes del documento . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2. Descripcion del sistema propuesto 11

2.1. Ciclo de diseno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2. Eleccion del hardware de control . . . . . . . . . . . . . . . . . . . 13

2.2.1. PMAC de Delta TAU . . . . . . . . . . . . . . . . . . . . . . 13

2.2.2. PCLAB de Advantech . . . . . . . . . . . . . . . . . . . . . 15

2.2.3. Tarjeta de adquisicion de datos USB: Keithley kusb 3100 . 16

VII

2.2.4. Solucion basada en microcontroladores de bajo coste . . . 17

2.3. Arquitectura de control propuesta . . . . . . . . . . . . . . . . . . 21

2.4. Plataforma hardware: Robot Sidemar . . . . . . . . . . . . . . . . 21

2.5. Sistemas software involucrados . . . . . . . . . . . . . . . . . . . . 25

2.5.1. AutoCad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.5.2. Inventor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.5.3. Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.5.4. SimMechanics . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3. Modelado CAD del robot Sidemar 33

3.1. Modelado del robot Sidemar con AutoCad 2013 . . . . . . . . . . 33

3.1.1. Base del sistema o bancada . . . . . . . . . . . . . . . . . . 34

3.1.2. Primer eslabon (Brazo 1) . . . . . . . . . . . . . . . . . . . . 36

3.1.3. Segundo eslabon (Brazo 2) . . . . . . . . . . . . . . . . . . . 38

3.2. Modelado del Robot Sidemar con Inventor 2013 . . . . . . . . . . 39

3.3. Ensamblado del robot Sidemar en Inventor . . . . . . . . . . . . . 40

3.4. Estudios del robot Sidemar en Inventor . . . . . . . . . . . . . . . 43

3.4.1. Estudios en el primer eslabon . . . . . . . . . . . . . . . . . 44

3.4.2. Estudios en el segundo eslabon . . . . . . . . . . . . . . . . 47

3.4.3. Estudios en la base . . . . . . . . . . . . . . . . . . . . . . . 48

3.4.4. Estudio de conjunto del Robot Sidemar . . . . . . . . . . . 49

4. Integracion del modelo CAD con Matlab y Simulink 51

4.1. Consideraciones iniciales . . . . . . . . . . . . . . . . . . . . . . . . 51

4.2. Descarga e instalacion SimMechanics . . . . . . . . . . . . . . . . 53

4.3. Exportacion del diseno del CAD a SimMechanics . . . . . . . . . 54

4.4. Modelo exportado resultante . . . . . . . . . . . . . . . . . . . . . 55

4.5. Pruebas del modelo del robot Sidemar en SimMchenics . . . . . . 58

5. Calculos cinematicos sobre el robot Sidemar 61

5.1. Metodo de Denavit-Hartenberg . . . . . . . . . . . . . . . . . . . . 62

5.1.1. Matriz de Denavit-Hartenberg . . . . . . . . . . . . . . . . 63

5.1.2. Calculo de las matrices de Denavit-Hatenberg . . . . . . . 65

5.2. Transformacion de D-H para el robot Sidemar . . . . . . . . . . . 65

5.2.1. Numeracion de los eslabones y las articulaciones del robot

Sidemar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5.2.2. Definicion de los ejes sobre el robot Sidemar . . . . . . . . 67

5.2.3. Calculo de la cinematica directa del robot Sidemar . . . . . 68

5.2.3.1. Mediante Matlab . . . . . . . . . . . . . . . . . . . 68

5.2.3.2. Mediante la Robotics Toolbox . . . . . . . . . . . . 69

6. Resultados experimentales: Analisis cinematico 73

6.1. Pruebas cinematicas con la Robotics Toolbox . . . . . . . . . . . . . 73

6.2. Calculo de la cinematica inversa del robot Sidemar . . . . . . . . . 77

6.3. Simulacion de trayectorias con el robot Sidemar . . . . . . . . . . 81

7. Resultados experimentales: Pruebas de control 83

7.1. Pruebas de integracion CAD en Matlab . . . . . . . . . . . . . . . 83

7.1.1. Control en cadena abierta en el simulador del robot Sidemar 84

7.1.2. Control PID de posicion sobre el simulador del robot Side-

mar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

7.1.3. Control PID de velocidad en el simulador del robot Sidemar 90

7.2. Hardware de control . . . . . . . . . . . . . . . . . . . . . . . . . . 91

7.2.1. Configuracion software del hardware de control . . . . . . 94

7.3. Pruebas de control en cadena abierta . . . . . . . . . . . . . . . . . 100

7.4. Control PID con realimentacion del encoder . . . . . . . . . . . . . 104

7.4.1. Pruebas de Control PID con Slider Gain . . . . . . . . . . . 104

7.4.2. Pruebas de Control PID con Generadores . . . . . . . . . . 108

7.5. Pruebas coordinadas simulador-robot . . . . . . . . . . . . . . . . 111

7.5.1. Pruebas coordinadas en cadena abierta . . . . . . . . . . . 112

7.5.2. Pruebas coordinadas con control PID . . . . . . . . . . . . 113

8. Conclusiones y Trabajos Futuros 117

8.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

8.2. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

Referencias 125

A. Codigo desarrollado I

A.1. Cinematica directa eslabon 1 . . . . . . . . . . . . . . . . . . . . . . I

A.2. Cinematica directa eslabon 2 . . . . . . . . . . . . . . . . . . . . . . I

A.3. Cinematica directa robot completo . . . . . . . . . . . . . . . . . . II

A.4. 5.4 Cinematica directa con Toolbox . . . . . . . . . . . . . . . . . . II

A.5. Giro de 90 grados en ambos eslabones . . . . . . . . . . . . . . . . III

A.6. Algoritmo cinematica directa con interfaz grafica . . . . . . . . . . III

A.7. Calculo del espacio de trabajo . . . . . . . . . . . . . . . . . . . . . IV

A.8. Cinematica inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . IV

A.9. Cinematica inversa con giro de 90 grados en primer eslabon . . . V

A.10.Representacion grafica del giro de 90 grados en primer eslabon . V

A.11.Trayectorias aleatorias . . . . . . . . . . . . . . . . . . . . . . . . . V

A.12.Trayectoria circular . . . . . . . . . . . . . . . . . . . . . . . . . . . VI

Indice de tablas

2.1. Caracterısticas princioales del Tarjeta STM32F4. . . . . . . . . . . 19

5.1. Parametros D-H del robot Sidemar. . . . . . . . . . . . . . . . . . . 67

5.2. Matriz D-H para el eslabon 1. . . . . . . . . . . . . . . . . . . . . . 68

5.3. Matriz D-H para el eslabon 2. . . . . . . . . . . . . . . . . . . . . . 68

5.4. Multipicacion de Matrices D-H de los eslabones 1 y 2. . . . . . . . 69

5.5. Matriz Final de D-H para el robot Sidemar. . . . . . . . . . . . . . 69

5.6. Matriz D-H para Robotics Toolbox. . . . . . . . . . . . . . . . . . . . 70

5.7. Parametros relativos a la Cinematica Directa. . . . . . . . . . . . . 71

5.8. Parametros relativos a la gravedad. . . . . . . . . . . . . . . . . . . 71

5.9. Base del sistema (origen). . . . . . . . . . . . . . . . . . . . . . . . 72

5.10. Posicion inicial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

6.1. Angulo de 90 grados en los dos eslabones. . . . . . . . . . . . . . . 74

6.2. Posicion inicial (origen 0 grados). . . . . . . . . . . . . . . . . . . . 75

6.3. Posicion final: 90 grados en los dos eslabones. . . . . . . . . . . . . 75

6.4. Matriz Posicion Cero. . . . . . . . . . . . . . . . . . . . . . . . . . . 79

6.5. Matriz Posicion Inicial. . . . . . . . . . . . . . . . . . . . . . . . . . . 79

6.6. Matriz M1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

6.7. Matriz Q1 para un angulo de 0 grados. . . . . . . . . . . . . . . . . 80

XI

6.8. Matriz Q1 para un angulo de 90 grados. . . . . . . . . . . . . . . . 80

6.9. Matriz final para un angulo de 90 grados. . . . . . . . . . . . . . . 80

Indice de figuras

2.1. Ciclo de diseno del sistema. . . . . . . . . . . . . . . . . . . . . . . 12

2.2. Tarjeta de control de ejes PMAC. . . . . . . . . . . . . . . . . . . . 14

2.3. Conector Advantech PCDL 8710. . . . . . . . . . . . . . . . . . . . 15

2.4. Tarjeta Keithley con conexion USB. . . . . . . . . . . . . . . . . . . 16

2.5. Tarjeta Arduino Mega 2560. . . . . . . . . . . . . . . . . . . . . . . 17

2.6. Tarjeta STM32F4 Discovery. . . . . . . . . . . . . . . . . . . . . . . 18

2.7. Esquema de control implementado. . . . . . . . . . . . . . . . . . 21

2.8. Trabajo previo (Estimacion de posicion con del robot sometido a

diferentes pesas). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.9. Base del robot Sidemar. . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.10. Primer Eslabon del robot Sidemar. . . . . . . . . . . . . . . . . . . 24

2.11. Segundo Eslabon del robot Sidemar. . . . . . . . . . . . . . . . . . 24

2.12. Robot Sidemar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.13. Logotipo de AutoDesk. . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.14. Logotipo de AutoCad. . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.15. Logotipo de Inventor. . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.16. Interface del programa Inventor. . . . . . . . . . . . . . . . . . . . 28

2.17. Logotipo del programa Matlab. . . . . . . . . . . . . . . . . . . . . 29

2.18. Entorno de trabajo de Matlab. . . . . . . . . . . . . . . . . . . . . . 30

XIII

2.19. Entorno SimMechanics. . . . . . . . . . . . . . . . . . . . . . . . . 31

3.1. Modelado de la base en AutoCad. . . . . . . . . . . . . . . . . . . 35

3.2. Modelado de la reductora (Parte externa). . . . . . . . . . . . . . . 36

3.3. Modelado del primer eslabon en AutoCad. . . . . . . . . . . . . . 36

3.4. Diseno estructural del primer eslabon en AutoCad. . . . . . . . . 37

3.5. Modelado del Brazo 1 y su respectiva reductora HD. . . . . . . . . 37

3.6. Dimensiones y estructura del segundo eslabon. . . . . . . . . . . . 38

3.7. Robot Sidemar y su diseno en AutoCad. . . . . . . . . . . . . . . . 39

3.8. Entorno para analisis de tensiones para el robot. . . . . . . . . . . 41

3.9. Conjunto de piezas importadas. . . . . . . . . . . . . . . . . . . . . 41

3.10. Ensamblaje del primer eslabon a la base. . . . . . . . . . . . . . . . 42

3.11. Robot Sidemar ensamblado. . . . . . . . . . . . . . . . . . . . . . . 43

3.12. Centro de gravedad del robot Sidemar. . . . . . . . . . . . . . . . . 43

3.13. Herramientas de Inventor para analisis estructural. . . . . . . . . 44

3.14. Fuerza de 10 N sobre el primer eslabon. . . . . . . . . . . . . . . . 45

3.15. Flexion resultante en el primer eslabon anadiendo gravedad. . . . 45

3.16. Resultado de la fuerza de 10 N mas la accion de la gravedad. . . . 47

3.17. Accion de la gravedad sobre el segundo eslabon. . . . . . . . . . . 47

3.18. Resultado de la accion de la gravedad sobre el brazo 2. . . . . . . 48

3.19. Resultado de las fuerzas en la base. . . . . . . . . . . . . . . . . . . 48

3.20. Resultado de las fuerzas aplicadas sobre el robot Sidemar. . . . . 49

4.1. Pasos para importar disenos CAD en SimMechanics. . . . . . . . 52

4.2. Conexion exitosa entre Simulink e Inventor. . . . . . . . . . . . . . 53

4.3. Sistemas de coordenadas en Inventor. . . . . . . . . . . . . . . . . 54

4.4. Robot Sidemar en SimMechanics. . . . . . . . . . . . . . . . . . . . 55

4.5. Bloques resultantes en SimMechanics tras el proceso de exportacion. 56

4.6. Bloques basicos generados en SimMechanics. . . . . . . . . . . . . 56

4.7. Parametros del elemento tipo Body para los eslabones. . . . . . . . 57

4.8. Bloque Joint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.9. Bloques de sensores y actuadores. . . . . . . . . . . . . . . . . . . 58

4.10. Diagrama de bloques en SimMechanics con sliders. . . . . . . . . . 59

4.11. Prueba del modelo en SimMechanics mediante el uso de sliders. . 59

5.1. Problemas cinematicos en robotica. . . . . . . . . . . . . . . . . . . 62

5.2. Sentido de giro en los dos ejes. . . . . . . . . . . . . . . . . . . . . 66

5.3. Definicion de ejes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

6.1. Interfaz grafica de Robotics Toolbox con el modelo del robot Sidemar. 74

6.2. Posicion del robot Sidemar con el primer y segundo eslabon rota-

do en 90 grados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

6.3. Cinematica directa y posibles movimientos del robot Sidemar. . . 76

6.4. Espacio de trabajo completo. . . . . . . . . . . . . . . . . . . . . . . 77

6.5. Area de trabajo parcial. . . . . . . . . . . . . . . . . . . . . . . . . . 77

6.6. Trayectoria realizada por el robot Sidemar. . . . . . . . . . . . . . 82

7.1. Control en cadena abierta del robot simulado. . . . . . . . . . . . 85

7.2. Control PID en posicion. . . . . . . . . . . . . . . . . . . . . . . . . 88

7.3. Senal de referencia y posicion obtenida por los encoders. . . . . . 89

7.4. Robot alcanzando la posicion 90o en sus dos eslabones. . . . . . . 89

7.5. Respuestas en velocidad para referencia de 1 rad/s en ambos es-

labones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

7.6. Motores girando a una velocidad de 1 rad/s. . . . . . . . . . . . . 91

7.7. Piezas en el primer eslabon y encoder absoluto instalado. . . . . . 92

7.8. Piezas en el segundo eslabon y encoder absoluto instalado. . . . . 93

7.9. Microcontrolador STM32F4 conectado a los sensores y drivers de

potencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

7.10. Configuracion tarjeta STM32F4. Entradas y salidas. . . . . . . . . 95

7.11. Configuracion tarjeta STM32F4. Bloque USB. . . . . . . . . . . . . 96

7.12. Configuracion Encoder. . . . . . . . . . . . . . . . . . . . . . . . . 98

7.13. Bloque de conexion encoder. . . . . . . . . . . . . . . . . . . . . . . 99

7.14. Configuracion de control en cadena abierta. . . . . . . . . . . . . . 101

7.15. Slider del Motor 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

7.16. Graficas de las senales de los encoders. . . . . . . . . . . . . . . . . 102

7.17. Motor 1 girando en los dos sentidos. . . . . . . . . . . . . . . . . . 103

7.18. Motor 2 girando en los dos sentidos. . . . . . . . . . . . . . . . . . 104

7.19. Control PID en posicion con referencia mediante sliders gain. . . . 105

7.20. Senales sistema de control y de los encoders. . . . . . . . . . . . . 106

7.21. Diagrama de bloques con un unica referencia. . . . . . . . . . . . 107

7.22. Senales del sistema con una unica referencia. . . . . . . . . . . . . 107

7.23. Diagrama de bloques con dos generadores de pulsos. . . . . . . . 108

7.24. Senales del sistema con generadores de pulsos. . . . . . . . . . . . 109

7.25. Diagrama de bloques con un unico generador de pulsos. . . . . . 110

7.26. Senales generadas con un unico generador de pulsos. . . . . . . . 110

7.27. Senales en posicion obtenidas con el sistema estabilizado. . . . . . 111

7.28. Diagrama de bloques de control coordinado del robot y su modelo. 112

7.29. Robot y simulacion controlados de forma coordinada. . . . . . . . 113

7.30. Diagram de bloques para control coordinado con PID. . . . . . . . 114

7.31. Secuencia de posiciones del control coordinado robot-simulacion-I. 115

7.32. Secuencia de posiciones del control coordinado robot-simulacion-II.115

7.33. Secuencia de posiciones del control coordinado robot-simulacion-

III. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

Agradecimientos

Agradezco la presente tesis primeramente a la Universidad Carlos III de

Madrid por haberme dado la oportunidad de estudiar en una gran Uninversi-

dad, con reconocimiento a nivel mundial, sobre todo en los estudios de robotica.

Agradezco a todo los profesores que me ayudaron a fortalecer mis conocimien-

tos sobre diversos temas del mundo de la robotica y principalmente agradezco

a Ramon Barber mi tutor de la tesis, por haberme ayudado en todos los ambitos

del conocimiento, practico, teorico y tambien entender mis limitaciones cuanto

a conocimientos de ingenierıa y del idioma. Tambien quiero a agradecer a Cris-

tina Castejon por ayudarme con los documentos del robot Sidemar y con las

correcciones de la tesis. Tambien a Antonio Flores por la ayuda con los bloques

del Simulink y en la adquisicion de la tarjeta y sensores del proyecto. Y por ulti-

mo a mis companeros de master, principalmente a Carlos Astua por haberme

ayudado en todo los momentos en la tesis.

XVII

Resumen

Este trabajo presenta una metodologıa de diseno y control en tiempo real

usando hardware de bajo costo y trabajando con un robot real y su modelo si-

mulado de una manera coordinada. La metodologıa se inicia en la fase de diseno

utilizando una herramienta de CAD y genera el modelo del robot en Matlab y

Simulink como plataformas de integracion, que son ampliamente utilizados en

herramientas de diseno y control de ingenierıa. Como parte del documento, se

propone la integracion de hardware y software para el control del robot, inclu-

yendo el uso de soluciones de bajo. El control de hardware esta gestionado por

Simulink, con es capaz de operar tanto en la simulacion y el robot real. Como

prototipo robotico, se emplea el robot Sidemar, de 2 grados de libertad, robot

que ha sido disenado como un prototipo de robot de servicio. En esta platafor-

ma se muestra un ejemplo de la metodologıa propuesta, desde el diseno CAD

hasta la prueba final de control tanto en la simulacion y como en la plataforma

real.

XIX

castejon
Resaltado
soluciones de bajo coste.

Abstract

This work presents a design and control methodology in real time using low

cost hardware, working on a real robot as well as on a simulation, in a coordi-

nated way. The methodology starts in the design phase using a CAD tool and

generates the model of the robot in Matlab and Simulink as integration plat-

forms, which are widely used tools in design and control engineering. As part

of the document, the integration of hardware and software for the robot’s control

is proposed, including the use of low cost solutions with powerful performan-

ces. The hardware control is managed by Simulink, with is able to operate both

the simulation and the real robot. As a robotic prototype, a 2 degrees of freedom

robot arm has been used, designed as a service robot. In this platform the aut-

hors show an example of the proposed methodology, from the CAD design to

the final control test both in simulation and with the real platform.

XXI

Capıtulo 1Introduccion

El presente Trabajo de Fin de Master se desarrolla dentro del Departamento

de Ingenierıa de Sistemas y Automatica de la Universidad Carlos III de Madrid

y en el se elabora un modelo de simulacion de un prototipo de robot asistencial

que funciona de manera conjunta y coordinada con el robot real.

En este capıtulo se detallaran los motivos que han llevado a la realizacion del

presente Trabajo Fin de Master, sus objetivos y las etapas de trabajo y desarrollo

seguidas en la misma. Por ultimo, se describiran las partes de este documento,

comentando como se organizan los contenidos del trabajo realizado.

1.1. Motivacion

El desarrollo y diseno de robots asistenciales es una tarea compleja y que

normalmente requiere de hardware de control con coste elevado y software de

control muy complejo o que ofrece pocas posibilidades en el mundo de la inves-

tigacion. El conseguir implementar un sistema hardware y software de control

2 Introduccion

de bajo precio y facilmente integrable con herramientas software de uso habi-

tual, facilitarıa el diseno y reducirıa los ciclos de desarrollo de este tipo de ro-

bots, que en la mayorıa de los casos son prototipos de investigacion.

El proceso integracion del diseno del robot con el software de control, a partir

de las propias herramientas de diseno, hace que el ciclo diseno-analisis-control

del robot se vea drasticamente reducido, permitiendo reducir a pocos pasos su

estudio. Aparte de ello, al incluir el propio esquema de control la conexion di-

recta del robot, permite pasar de forma inmediata y coordinada de la simulacion

a la actuacion sobre el propio robot.

Como prototipo robotico se ha empleado un brazo robotizado de 2 grados de

libertad, construido para el estudio del dimensionado de actuadores en el pro-

yecto SIDEMAR concedido conjuntamente al Departamento de Ingenierıa de

Sistemas y Automatica y al Departamento de Ingenierıa Mecanica de la Univer-

sidad Carlos III de Madrid por el Ministerio de Educacion y Ciencia. El sistema

esta disenado para ser un robot de servicio, que segun la IFR (Federacion In-

ternacional de Robotica) es un robot que opera de forma parcial o totalmente

autonoma, para realizar servicios utiles para el bienestar de los humanos y de

equipamientos, excluyendo operaciones de manufacturas, es decir, un sistema

que no puede ser utilizado en la industria o fabricacion de productos.

Como idea de partida se pretendıa implementar un sistema de control en

tiempo real que funcione tanto en el propio robot como en su sistema simulado

mediante ayuda de un software para creacion del sistema CAD y la integra-

cion del mismo en Matlab Y Simulink, de manera que permitan completarse las

caracterısticas cinematicas y dinamicas del prototipo y poder realizar ası su pos-

terior analisis.

castejon
Resaltado
proceso de
castejon
Resaltado
habría que incluir la referencia de la web de IFR [x]

1.1 Motivacion 3

Para la conexion del software de control al robot se buscaba una solucion

de bajo coste, que conservara altas prestaciones y permitiera la conexion con la

herramienta de control elegida, Matlab y Simulink.

En este trabajo se buscan dos tipos diferentes de procedimientos para reali-

zar el estudio y control del robot: estudio sobre el modelo generado a partir del

diseno y estudio y control sobre el propio robot real, de manera que se pueda

hacer una comparacion del robot Sidemar trabajando tanto en tiempo real como

simulado (al analogo del caso de los aviones y sus respectivos simuladores para

entrenar a los pilotos). Para ello se realizara una implementacion software que

permita trabajar tanto con el robot real como con su modelo simulado, y que

ademas permita hacerlo de manera conjunta con los dos. En el caso de trabajar

en modo simulacion hace que no se necesite del robot real, permitiendo que se

trabaje con el modelo extraıdo a partir del diseno del robot. De esta manera, el

sistema simulado contiene todos los parametros de creacion del robot real, faci-

litando las fases de analisis y control del sistema. El sistema de control trabaja en

tiempo real tanto sobre el modelo simulado como sobre el propio robot, lo que

facilita una posterior comparacion entre los resultados de ambos.

Para llegar a esta arquitectura de analisis y control del robot se hace necesario

utilizar varios softwares CAD y de herramientas para convertir dichos disenos a

Matlab, software elegido para la implementacion del sistema pos su universali-

dad y disponibilidad en muchas empresas y universidades. Dentro de Matlab se

pueden encontrar herramientas como SimMechanics Link que convierten estos

disenos en archivos donde Matlab puede importarlos de manera directa. Para

conseguir la conexion con el robot se estudiaran las posibles soluciones hardwa-

res existentes en el mercado para unir al sistema los sensores y actuadores del

robot. En esta lınea, la idea serıa la utilizacion de una tarjeta de bajo coste para

castejon
Resaltado
diseño
castejon
Resaltado
modelo

4 Introduccion

hacer el control de senales de entrada y senales de salida de los motores del ro-

bot y sus encoders.

Esta adaptacion de la plataforma robotica, no solo permite abaratar, simpli-

ficar y ampliar las posibilidades del prototipo robotico frente a sus prestaciones

originales, sino que ademas facilitan su extension al uso de otras plataformas,

ası como su uso con fines docentes.

1.2. Objetivos

El objetivo principal de este Trabajo fin de Master puede definirse como:

Implementar un sistema de control de bajo coste en tiempo real que funcione tanto en

el robot real como en el modelo obtenido de un sistema CAD y la integracion empleando

Matlab y Simulink,

Para alcanzar este objetivo seran necesarias distintas fases de estudio y prue-

ba de diferentes tecnologıas, para comprobar la viabilidad del mismo. Como

prueba para validar el sistema del funcionamiento del modelo coordinado con

el robot se propone cerrar el bucle de control con un regulador PID.

Para alcanzar este objetivo, ha sido necesario:

1. Realizar estudios sobre el robot Sidemar y trabajos previos como punto de

partida para conocer la estructura y funcionalidad del robot, y ver las posibili-

dades de mejora, adaptacion y actualizacion del sistema su sistema de control.

2. Hacer estudios previos sobre los softwares CAD/CAM que mejor se ade-

cuan al sistema como: Inventor, Sketchup, SolidWorks, SolidEdge, y estudiar su

portabilidad entre ellos y su posibilidad de integracion con Matlab y Simulink.

castejon
Resaltado
sólo

1.2 Objetivos 5

3. Realizar el modelado CAD del sistema robotico estudiado.

4. Estudiar de las posibilidades de integracion de herramientas de analisis y

control en Matlab-Simulink, estudiando como se puede utilizar las herramientas

de Matlab para el estudio del robot y utilizando distintos tipos de controladores

elaborados en Simulink.

5. Estudiar la cinematica del robot obtenido a partir del diseno.

6. Realizar estudios sobre las posibilidades de hardware que faciliten el con-

trol del robot, considerando entre microcontroladores y tarjetas de bajo coste.

7. Estudiar la integracion del funcionamiento del sistema real y el simulado.

8. Realizar pruebas coordinadas de control del sistema real y el simulado.

Existen diversos trabajos de robotica relacionados con la idea que se preten-

de implementar en esta propuesta, utilizando herramientas CAD para desarro-

llo y SimMechanics para control del robot. En la mayorıa de los casos son siste-

mas que trabajan o solo con el simulador o solo con la plataforma robotica. En

(Haughey, 2011) se crea un simulador de un brazo robotico de dos grados de li-

bertad en cadena abierta con un espacio de trabajo simple de dimensionar sobre

el que se permiten ejecutar diversas tareas. Fue creado en SimMechanics para

estudios dinamicos del sistema (en este caso la simulacion es apenas cinematica,

no tiene el diseno estructural del robot) y permite optimizar el sistema en cuan-

to a sus dimensiones mecanicas, hacer calculos de trayectorias y hacer tareas

preestablecidas. En la linea anterior, en los trabajos (Shah, 2011) y (Bajrami, Sha-

la, Likaj, y Dermaku, 2013), los disenos son solamente dinamicos y la estructura

6 Introduccion

de los robots reales no estan representadas. Su objetivo es hacer mejoras cuanto a

reduccion del sistema y ayudar a su optimizacion. El trabajo se basa en crear un

simulador para hacer analisis cinematicos y dinamicos de un robot de seis gra-

dos de libertad con estructura cinematica paralela (espacio de trabajo cerrado y

muy difıcil de trabajar). En (Cruz, 2012) tambien se puede ver un robot paralelo,

pero en este caso el sistema se diseno en SimMechanics con el fin hacer analisis

de vibracion estructural e implementar tecnicas de control estructural para que

no existan problemas de imprecisiones en cuanto a posicionamiento del extre-

mo final del robot. Tambien se puede encontrar estudios similares con otro tipo

de robots. En (Tlale y Zhang, 2005a) encontramos un humanoide en el que se

calcula el ZMP (Zero Moment Point) para el estudio de la caminata de un robot.

Crearon un simulador robotico de la estructura del robot en SimMechanics para

hacer analisis cinematicos y dinamicos y optimizar ası los algoritmos de control

de la caminata del robot Archie de 30 grados de libertad. En esta misma lınea

tambien se puede encontrar un robot con 27 grados de libertad (Teodoro, 2007)

para el que fue creado un simulador robotico con la estructura real del mismo,

de manera analoga al anteriormente comentado. En este caso se realizan analisis

dinamicos, incorpora mecanismos de registro de datos de percepcion y permite

actuar sobre el sistema mediante teleoperacion. Como elemento diferenciador,

emplea sistemas de control cognitivos.

Considerando trabajos previos donde se parte del diseno CAD como base de

la simulacion, en (Gebrehiwot, 2009/2010) se puede encontrar una aproxima-

cion donde, con el objetivo de hacer estudios de los controladores de un robot

humanoide, se disena en sistema en una herramienta CAD y luego se la pasa

al programa SimMechanics de Matlab. Se hacen pruebas con el robot simulado

y en una fase posterior se aplican los resultados al robot real. En (Caglav, 2006)

se puede ver un sistema distinto de los anteriores, donde se emplea un robot

1.2 Objetivos 7

serpiente. En este caso, al contrario de los anteriores, en vez de utilizar el Sim-

Mechanics como soporte para el diseno de los controladores, se modela el robot

mediante funciones de transferencia en Simulink para el calculo de los controla-

dores, que una vez ajustados, son aplicados sobre el modelo en SimMechanics.

Para ello crean un modelo simplificado del robot sin masas en su estructura (es

una analisis totalmente cinematico y que no tiene en cuenta la estructura real del

robot).

En (Dung, Kang, y Ro, 2010) se realiza una implementacion de un sistema

compensador de gravedad tipo PD sobre un robot manipulador con ayuda del

software SimMechanics. En este trabajo se prueba que este software es muy util

para modelado de sistemas complejos. En (Yu, Zhang, Zhang, y Yang, 2010) se

hace una prueba con SimMechanics para simular la cinematica de un robot de

tres grados de libertad con estructura cinematica paralela. Se calcula la cinemati-

ca directa e inversa utilizando la herramienta SimMechanics y posteriormen-

te Simulink. En este caso se empleo un modelo simplificado del robot real. En

(Fatehi, Vali, Eghtesad, y Fatehi, 2011) aparece un caso que tiene la misma ca-

dena cinematica que en (Tlale y Zhang, 2005b), pero los calculos fueron hechos

unicamente en base a las dinamicas del robot y tambien emplea un modelo sim-

plificado del robot para realizar simulaciones basicas. En (Yang, Ye, Peter, y Han,

2010) se encuentra es un trabajo que aborda la investigacion sobre la dinamica

de otro robot de seis grados de libertad con cadena cinematica paralela en el que

se emplean los metodos de Kane y un controlador PID ayudandose de Simulink.

Los trabajos anteriores demuestran la capacidad que el programa Simulink

con SimMechanics tiene en cuanto a los calculos de cinematicas, dinamicas y

planificacion de trayectorias, ası como para el estudio de diversos tipos de con-

trol de sistemas roboticos. Todos ellos apuntan a que la idea planteada de crear

8 Introduccion

un sistema hardware-software que pueda funcionar al mismo tiempo tanto so-

bre el robot rel como sobre su modelo en un simulador, bien conjuntamente o

por separado, con ayuda de Simulink y SimMechanics sea viable.

1.3. Partes del documento

El presente Trabajo Fin de Master esta organizado en los siguientes capıtulos:

En el primer capıtulo se ha presentado la motivacion y objetivos que llevan

a realizar este Trabajo Fin de Master.

En el capıtulo segundo se describe la arquitectura completa del sistema

propuesto. Se explica el ciclo de trabajo desde la fase del diseno CAD

hasta su integracion en la fase de control. Se comentan las posibilidades

hardwaare para su control, concluyendo con la arquitectura escogida para

cumplir con los objetivos propuestos. Tambien se describe la plataforma

hardware robotica y las herramientas software utilizadas para las imple-

mentaciones.

En el capıtulo tercero se muestra el proceso de modelado el robot. En este

caso se utilizaron los softwares AutoCad e Inventor para crear el modelo

del robot a partir del sistema real .El capıtulo se completa con unos prime-

ros estudios sobre el comportamiento cinematico y estatico del robot.

El capıtulo cuarto describe el proceso de exportacion del diseno hecho

en Inventor hacıa SimMechanics, herramienta para control de sistemas

mecanicos simulados de Matlab. Posteriormente se explica como se amplıa

dicho esquema de Simulink para completar el esquema de control que

actue tanto sobre el robot real como sobre su modelo en SimmMechanics.

castejon
Resaltado
real. El

1.3 Partes del documento 9

En el capıtulo quinto se explica como encontrar la cinematica directa e

inversa del robot Sidemar y se compara con las realizadas utilizando a

Robotics ToolBox de Matlab.

El capıtulo sexto recogen los resultados experimentales realizados sobre

el analisis cinematico del robot,tanto de la cinematica directa como inver-

sa, estableciendo el espacio de trabajo del robot y calculando trayectorias

dentro del mismo.

El capıtulo septimo recogen los resultados experimentales realizados con

el sistema real y el sistema simulado con ayuda de SimMechanics. Se se

presentan pruebas de control del robot en cadena abierta y cerrando la

cadena en posicion, funcionando en conjunto y/o por separado.

Por ultimo, en el capıtulo octavo, se exponen las conclusiones obtenidas a

partir del trabajo y los trabajos futuros que se pueden realizar utilizando

la arquitectura propuesta tanto en el analisis de la plataforma de estudio,

como de otras plataformas y otro tipo de controladores.

castejon
Resaltado
Se

10 Introduccion

Capıtulo 2Descripcion del sistema propuesto

Para los desarrollos de este trabajo se contempla una arquitectura que, par-

tiendo del diseno original del robot se pueda llevar su estructura inicial de forma

rapida y sencilla a su modelo en Simulink, listo para analizar e integrar los con-

troladores.

2.1. Ciclo de diseno

En la Figura 2.1 se muestra las fases de diseno del sistema propuesto. En

primer lugar se parte de los planos CAD del robot, destinados a su fabricacion.

Dichos planos contienen toda la informacion sobre la geometrıa del robot y sus

dimensiones, ası como la informacion necesaria para el ensamblado.

Dependiendo de la herramienta elegida, en nuestro caso, AutoCad, el mode-

lo se puede completar con el uso de otras herramientas de diseno tambien CAD

mas completas destinadas a su analisis cinematico y dinamico. En este caso se

ha utilizado Inventor por tener compatibilidad completa con AutoCad y ser am-

bos de la empresa AutoDesk. Con Inventor se pueden completar datos sobre el

12 Descripcion del sistema propuesto

diseno del robot que afectan a su comportamiento dinamico como masas y otras

propiedades.

El siguiente paso es generar un modelo que facilite el intercambio con Si-

mulink. Inventor contempla la exportacion a ficheros con formatos .XML, que

es un estandar reconocido por muchas aplicaciones y herramientas software de

diseno. Este formato permite ser importado por SimMechanics y Simulink, con

lo que con unas pocas operaciones se consigue tener el modelo del robot en Si-

mulink.

Figura 2.1: Ciclo de diseno del sistema.

2.2 Eleccion del hardware de control 13

En Simulink se completa el modelo con elementos de mando y visualiza-

dores, ası como los parametros que se consideren necesarios para el analisis y

control del robot. Tras hacer las primeras pruebas y obtener los primeros resul-

tados, se puede volver a la etapa inicial de diseno si se considera necesario, hasta

conseguir el diseno final del robot Figura 2.1.

2.2. Eleccion del hardware de control

Tras tener el modelo del robot en Simulink y SimMechanics y probar su fun-

cionamiento, el siguiente paso es encontrar una tarjeta o dispositivo hardware

que nos permita controlar el robot desde Simulink. Este hardware tiene como

funcion basica recibir datos de sensores tipo encoder y enviar comandos a los

motores. Como se ha comentado en el primer capıtulo, el objetivo ultimo de es-

te trabajo es conseguir hacer un control coordinado del robot y del modelo en

Simulink, con lo que tiene que tener la posibilidad de ser manejado por este.

Ademas, debe ser del menor coste posible, para facilitar la construccion y el es-

tudio de este tipo de robots.

2.2.1. PMAC de Delta TAU

Como se ha comentado tambien en este trabajo, antes de llegar a una solu-

cion sobre el hardware de control que mejor se adecua con el robot Sidemar,

hubo que hacer un estudio sobre el hardware con el que se realizo el control del

robot anteriormente.

El control original del robot se realizaba mediante una tarjeta de control de

ejes PMAC, Figura 2.2 del fabricante Delta Tau, una tarjeta ampliamente utiliza-

da en la industria para controlar robots con hasta ocho ejes. Tambien se permitıa

14 Descripcion del sistema propuesto

recibir senales de diversos tipos de sensores.

Figura 2.2: Tarjeta de control de ejes PMAC.

Esta tarjeta presentaba varios inconvenientes:

La placa se conectaba en el bus PCI interno del computador, lo que reducıa

las posibilidades de trabajo a un unico computador.

Su cable de conexion para enviar y recibir datos era un cable que solamente

se podıa conectar con ordenadores mediante el protocolo de comunicacion

RS-322, y que no utilizaba la conexion tipo DB 9 (la mas comun), sino que

utilizaba la conexion tipo DB 25, una conexion que hoy en dıa casi no se

utiliza, y defiere de las tarjetas actuales que usan una conexion tipo DB 9 y

pueden ser convertidas por un convertidor DB 9 - USB.

Software de control complejo, teniendose que realizar aplicaciones especıfi-

cas para implementar su control, dificultando la integracion de algoritmos

de control. Para programar los algoritmos debıa utilizarse las funciones y

librerıas del fabricante, no estando disponibles en codigo abierto.

2.2 Eleccion del hardware de control 15

Las posibilidades de su manejo desde Matlab son muy complicadas y no

se podrıan utilizar todas las posibilidades de control que la tarjeta dispone,

ya que Matlab no es capaz de manejarlas.

Por ultimo y mas importante, su precio elevado frente a otras soluciones

actuales que ofrece el mercado.

2.2.2. PCLAB de Advantech

Tambien se penso en utilizar la tarjeta adquisicion de datos o DAQ con en-

tradas y salidas tanto analogicas como digitales, en concreto la PCLab 1711H

con bornero PCDL 8710 Figura 2.3.

Figura 2.3: Conector Advantech PCDL 8710.

Entre los inconvenientes de dicha tarjeta de control nos encontramos:

Como en el caso anterior, se encuentra conectada en el bus PCI interno del

computador, lo que reduce las posibilidades de trabajo a un unico compu-

tador.

16 Descripcion del sistema propuesto

La tarjeta debe ser manejada en modo externo en Simulink, limitando las

posibilidades de SimMechanics que no ofrece todas sus funcionalidades

trabajando en este modo.

2.2.3. Tarjeta de adquisicion de datos USB: Keithley kusb 3100

Esta tarjeta, Figura 2.4, al conectarse a traves del puerto USB, permitıa el uso

de diferentes computadores, lo que disminuıa la dependencia de un unico or-

denador como ocurrıa en los casos anteriores. Ademas se mostraba como una

solucion intermedia en precio entre la solucion original de control y la elegida.

Figura 2.4: Tarjeta Keithley con conexion USB.

El principal inconveniente fue que Matlab y Simulink dejaron de prestar so-

porte a esta tarjeta a partir de las versiones 2013a, con lo que las posibilidades

de integracion en Simulink se vieron reducidas drasticamente.

2.2 Eleccion del hardware de control 17

2.2.4. Solucion basada en microcontroladores de bajo coste

Dado el aumento en la potencia de calculo que estan experimentando los mi-

crocontroladores, y las posibilidades de manejo de entradas y salidas que em-

piezan a incorporar, la solucion basada en microcontroladores se mostraba como

una opcion viable.

Entre este tipo de microcontroladores se estudiaron dos soluciones: el micro-

controlador Arduino y el STM32F4.

Dentro de la familia de microcontroladores Arduino, en la fecha de realiza-

cion de este trabajo, el que ofrecıa mas posibilidades era el Arduino Mega 2560,

Figura 2.5 que permitıa su integracion con Matlab.

Figura 2.5: Tarjeta Arduino Mega 2560.

Esta solucion presentaba los siguientes inconvenientes:

18 Descripcion del sistema propuesto

Rango de frecuencias de trabajo y periodos de muestreo muy limitados.

La integracion de las senales provenientes de los encoders empleados re-

querirıa de una placa adicional.

Como una segunda posibilidad se penso en el uso del microcontrolador

STM32F4 de la empresa ST Microelectronics, Figura 2.6, que es un microcontro-

lador muy utilizado en las industrias y universidades e inclusive, actualmente

algunos paıses estan utilizando la tarjeta para investigaciones en industrias con

fines militares.

Figura 2.6: Tarjeta STM32F4 Discovery.

cuyas caracterısticas tecnicas mas importantes se resumen en el tabla 2.1

2.2 Eleccion del hardware de control 19

Tarjeta STM32F4 Discovery

Voltaje de trabajo 0,2 V hasta 3,6 V

Memoria Flash 1 MB

Protocolos Aceptados I2C, I2S, CAN, SPI

Procesador ARM Cortex - M4 180 MHz

Voltaje 1,2 con regulador para POR/PDR/PVD

Cristal Oscilador 32 kHz + 4 hasta 26 MHz

Oscilador Interno Rc 0,18

Control de Clock Si

RTC/AWU Si

Watchdogs 2 independientes

CRC 1 control de ciclo de redundancia

Acelerometro 1 ART (LIS302DL)

Canales PWM 2 x 16 bit

Timers 5 x 16 bit, 2 x 32, 3 x 16 bit

Interface para camera 1

USART 4 USART + 4 UART LIN

Interface Serial de Audio 1 x SAI

SDIO 1

USB 2.0 OTG FS 1

USB 2.0 OTG FS/HS 1

CAN 2.0B 1

Ethernet MAC 10/100 con IEEE 1588

SPI 6

Oscilador Interno Rc 2

Oscilador Interno Rc 3

Canales Analogicos 2 canales (2x 12 bit) DAC / DAC usado (CS43L22)

Canales Analogicos 24 canales (3x 12 bit) ADC, 2 MSPS

Sensor Temperatura 1

Canales DMA 16

Canales de I/O 80

Reproduce audio Si

Enviar y Recibir datos USB (sin necesidad de programador para esto)

Microfono Integrado Si, MP45DT02

Tabla 2.1: Caracterısticas princioales del Tarjeta STM32F4.

20 Descripcion del sistema propuesto

Esta solucion fue la finalmente utilizada fundamentalmente por solucionar

las carencias encontradas en los Arduinos:

Rango de frecuencias de trabajo y tiempos de muestreo mayores. (Dar va-

lores)

Posibilidades en cuanto a puertos para la conexion de sensores mucho ma-

yores, facilitandose el conexionado directo de los encoders de los motores.

Si bien sus posibilidades de conexionado con Matlab eran muy reducidas, el

trabajo realizado por Antonio Flores en cuanto a la integracion de este tipo de

microcontrolador con Simulink (F., 2014), abrio un gran campo de posibilidades

en cuanto a su utilizacion en este trabajo, facilitando la consecucion de los objeti-

vos de control del robot, integrado en Simulink con SimMechanics y a bajo coste.

Esta solucion nos permite controlar diversos motores y recibir senales de los

sensores sin ningun problema, ademas de que puede comunicar con un pc o

portatiles con diversos tipos de protocolo de comunicacion, como RS-232, USB,

Ethernet y otros. Tiene diversos tipos de pines para el control de dispositivos de

entradas y salidas analogicas y digitales, ofreciendo grandes posibilidades para

este trabajo.

Esta tarjeta puede ser controlada por cualquier tipo de sistema (ordenador,

portatiles, tabletas y moviles), y puede utilizar cualquier sistema operativo. Para

los desarrollos de la presente se ha probado en la version mas reciente de Micro-

soft, Windows 8. La tarjeta es de de facil programacion y, aunque en un principio

fue desarrollada para solamente utilizar su software de programacion (librerıas

propias), esta tarjeta es de codigo abierto al igual que Arduino.

castejon
Resaltado
Flores, 2014

2.3 Arquitectura de control propuesta 21

2.3. Arquitectura de control propuesta

Una vez se dispone del modelo del robot en SimMechanics y Simulink, el

siguiente paso es buscar la arquitectura hardware que nos facilite el control del

robot. La arquitectura de control que se propone, tras diversos estudios que se

comentaran posteriormente, consiste en una solucion basada en microcontrola-

dor, que proporciona una forma de control de bajo coste, y que se integra con

un software de diseno propio (Castejon, Carbone, Prada, y Ceccarelli, 2011) que

permite la integracion con Matlab y Simulink. En la Figura 2.7 se muestra la

solucion, en la que un computador comercial se une por USB a un microcontro-

lador que gestiona tanto la lectura de los sensores del robot como su actuacion a

traves de un driver de potencia.

Figura 2.7: Esquema de control implementado.

2.4. Plataforma hardware: Robot Sidemar

El Robot Sidemar (Castejon y cols., 2011) fue creado y disenado como un pro-

totipo general que cumpla ciertos requisitos basicos que le permitieran su uso

como robot se servicios. Su peso debe ser ligero pero a su vez debe ser capaz de

resistir todas las fuerzas a las que se vea sometido el robot a lo largo su trabajo.

La plataforma experimental se diseno (Castejon y cols., 2011) para hacer estu-

dios sobre la cinematica, tanto la cinematica directa como la inversa, ası mismo

un buen estudio sobre la dinamica.

castejon
Resaltado
Castejon et al.,
castejon
Resaltado
(Castejón et al., pero yo solo lo pondría una vez, has hecho referencia al mismo trabajo tres veces en la misma página.
castejon
Resaltado
publicaciones del SIDEMAR C. Castejón, A. Gimenez, H. Rubio, J.C. Garcia-Prada, A ANALISIS CINEMATICO AVANZADO DE ROBOTS DE SERVICIO: FLEXIBILIDAD EN LOS ESLABONES, SELECCION DE ACTUADORES, 7º CONGRESO IBEROAMERICANO DE INGENIERIA MECANICA Mexico DC, Octubre 2005 A. Gimenez, A. Jardón, C. Balaguer, C. Castejón, H. Rubio, J.C. García Prada, J. Meneses, INTEGRATED SYSTEM OF ASSISED MECHATRONIC DESIGN TO OPTIMISING THE STRUCTURE OF SERVICE ROBOTS. MECHATRONICS FORUM BIENNIAL INTERNATIONAL CONFERENCE, Penn State Great Valley, Malvern, USA Junio 2006 C.Castejón, G. Carbonne, J.C. García Prada, M. Ceccarelli, A MULTIÓBJECTIVE OPTIMIZATION FOR DESIGNING SERVICE ROBOTS. WORLD CONGRESS IN MECHANISM AND MACHINE SCIENCE Besançon, Francia Junio 2007 C. Castejón, A. Gimenez, A. Jardón, H. Rubio, J.C. García-Prada. Metodología de diseño óptimo para la construcción de robots de servicio. XVII Congreso Nacional de Ingeniería Mecánica Gijón, Asturias Febrero 2008
castejon
Resaltado
como

22 Descripcion del sistema propuesto

Entre los trabajos previos (de Tena, 2011) encontramos que dicho peso se mo-

delo mediante el uso de diferentes pesas Figura 2.8.

Figura 2.8: Trabajo previo (Estimacion de posicion con del robot sometido a diferentes pesas).

Siguiendo con la idea descrita anteriormente, el material utilizado para ha-

cer el proyecto mecanico fue una aleacion de aluminio debido a que su peso es

muy reducido si lo comparamos con otras estructuras que se encuentran en el

mercado y al mismo tiempo una rigidez que facilita el ensamblaje mecanico del

robot, ya que el aluminio es una estructura metalica dulce de facil manejo y ope-

racion mediante cortes (Peces, 2006).

Para explicar la estructura del robot, se explicaran sus diferentes partes y su

union para constituir el robot.

1) Base: La base del robot, Figura 2.9, es la parte empleada para sostener el

peso del mismo y es la encargada de mantenerlo inmovil en una posicion fija

inicial. La base del robot puede ser dividida en dos, una que posee un peso con-

siderablemente mayor en comparacion con todo el conjunto del robot destinada

a soportar las fuerzas que actuan sobre el, principalmente la de gravedad, y otra

parte que poseen un mecanismo de sujecion a una estructura o cuerpo inmovil.

2.4 Plataforma hardware: Robot Sidemar 23

Figura 2.9: Base del robot Sidemar.

La base contempla una estructura de sujecion del robot que permite fijar la

parte del robot a cualquier estructura o superficie plana, teniendo en cuenta las

restricciones de giro para el primer eslabon que no podra girar totalmente (360

grados), dificultando ası las pruebas de control en el robot. La base aloja un con-

junto motor-reductor en el que se acopla el primer eslabon o eslabon inferior del

robot.

2) Eslabon Inferior: Es un eslabon formado por 4 tubos de aluminio unido

por placas circulares de aluminio en sus extremos. Su extremo inferior va total-

mente acoplada al motor DC de la base y en su extremo superior se encuentra el

conjunto motor-reductor que hace de enlace con el segundo eslabon.

Como se puede percibir en la Figura 2.10, el brazo esta hecho de una aleacion de

aluminio, pero en una estructura tubular en vez de una maciza que proporciona

una reduccion de peso pero conservando un rigidez estrutural adecuada.

24 Descripcion del sistema propuesto

Figura 2.10: Primer Eslabon del robot Sidemar.

3) Eslabon superior: Al igual que el anterior, este eslabon (Figura 2.11)tambien

esta hecho de una estructura de aleacion de aluminio y fue construido con es-

tructura tubular para reducir el peso del robot. El eslabon se encuentra acoplado

a la reductora situada en el extremo superior del primer eslabon y su final queda

libre. Sobre el se centraran la mayorıa de los estudios, ya que marcara el alcance

total del robot y definira su area de trabajo.

Figura 2.11: Segundo Eslabon del robot Sidemar.

Despues del ensamblado de los tres componentes (base, eslabon inferior y

eslabon superior) se obtiene un sistema articulado de dos grados de libertad,

castejon
Resaltado
la foto está deformada
castejon
Resaltado
11) también
castejon
Resaltado
foto deformada

2.5 Sistemas software involucrados 25

con dos eslabones y dos articulaciones de rotacion. En la Figura 2.12 se muestra

el ensamblado final del robot.

Figura 2.12: Robot Sidemar.

2.5. Sistemas software involucrados

Para el desarrollo del trabajo a sido necesario trabajar con varias platafor-

mas software, interconectandolas entre sı para conseguir la integracion final en

Matlab y Simulink. A continuacion se describen estas herramientas.

2.5.1. AutoCad

El AutoCad es un software grafico de CAD (Computer-Aided Design) o en

castellano, Diseno Asistido por Computador, que aparte de ser un software pa-

ra el diseno por ordenador, es una forma de modelar sistemas o cualquier tipo

de objeto. Con el se puede investigar y probar ideas diferentes para implemen-

tar un sistema. El AutoCad Figura 2.13 fue desarrollado por la empresa Auto-

Desk que mantiene los derechos de no solamente este software, sino de diversos

otros que se encuentran con el logotipo de esta companıa. Este software esta en

constante evolucion, existiendo actualizaciones anuales. Cada nueva version va

castejon
Resaltado
revisar todas las fotos. Hay muchas repetidas, en este caso con una es suficiente
castejon
Tachado
castejon
Resaltado
(figura 2.13) pero mejor ponerlo detrás de Autodesk, porque es su logo,
castejon
Nota adhesiva
ponerlo aquí (figura 2.13)

26 Descripcion del sistema propuesto

desarrollando nuevas herramientas graficas o comandos nuevos para facilitar

a los ingenieros y proyectistas la elaboracion de nuevas funcionalidades en sus

proyectos (de Castro, 2013).

Figura 2.13: Logotipo de AutoDesk.

Hoy en dıa es el software mas aceptado por los ingenieros y proyectistas

de todo el mundo, y es esnenado en muchas universidades. Al igual que otros

programas de Diseno Asistido por Ordenador (DAO), AutoCad Figura 2.14 ges-

tiona una base de datos de entidades geometricas (puntos, lıneas, arcos, etc) con

la que se puede operar a traves de una pantalla grafica en la que se muestran

estas, el llamado editor de dibujo (Morales, 2013). La interaccion del usuario se

realiza a traves de comandos, de edicion o dibujo.

AutoCad puede usarse para hacer proyectos tanto en 2D como en 3D aun-

que su uso principal es en 2D para proyectos de construccion civil. Su formato

de salida es un archivo .dwg, que es un tipo de archivo propio del sistema, aun-

que para facilitar su intercambio con otras aplicaciones, la empresa AutoDesk

creo un sistema de archivos en .dxf para que quien no sea usuario de Auto-

Cad pueda utilizar sus dibujos en cualquier plataforma de diseno asistido por

computador (Morales, 2013).

castejon
Tachado
castejon
Texto insertado
enseñado
castejon
Tachado
castejon
Texto insertado
(figura 2.14)

2.5 Sistemas software involucrados 27

Figura 2.14: Logotipo de AutoCad.

Para el presente proyecto el software AutoCad ha ayudado en la confeccion y

ensamblaje del mismo. El software permite disenar sistemas identicos a la reali-

dad, con dimensiones, colores, con resistencias fısicas (mecanicas) de los mate-

riales, lo que fue de gran ayuda para el diseno y comprension del robot Sidemar.

2.5.2. Inventor

Para este proyecto, el software AutoCad ayudo en la confeccion y ensam-

blaje final del robot. En una segunda etapa, para conseguir un modelo real del

robot, se completo el modelo del robot con la herramienta Inventor Fusion Pro-

fessional Figura 2.15 de la companıa AutoDesk, que permitıa realizar ya unas

primeras simulaciones sobre la cinematica y estatica del robot.

Figura 2.15: Logotipo de Inventor.

Mientras AutoCad fue cocebido para ayudar en la estructuracion de casas,

castejon
Tachado
castejon
Tachado
castejon
Texto insertado
(figura 2.15) mejor entre paréntesis
castejon
Tachado
castejon
Texto insertado
concebido
castejon
Tachado
castejon
Texto insertado
el diseño dentro del campo de la arquitectura e instalaciones

28 Descripcion del sistema propuesto

terrenos, pisos, edificios y todo lo referente al mundo de la construccion civil,

Inventor Fusion se creo con la idea de trabajar con sistemas mecanicos basicos o

complejos en general: desde dibujar un tornillo o una tarea sencilla hasta siste-

mas muchos mas complejos como un motor entero, incluyendo todas sus partes.

Tambien tiene la posibilidad de trabajar con sistemas que utilizan fluidos para

la transmision de movimientos. Una ventaja de Inventor es que tambien permi-

te hacer calculos de resistencias, fricciones, simular la cinematica y por ultimo

tambien la cinematica (Morales, 2013). En la Figura 2.16 se puede ver la interface

del Inventor.

Figura 2.16: Interface del programa Inventor.

La interface grafica del Invetor es muy similar a la del AutoCad, cambiando

solo algunas herramientas ya que trabaja con otro tipo de sistemas mas amplios.

Pero sobre la base de la piramide de este programa se encuentra un software

totalmente identico al de AutoCad. Si una persona sabe dibujar con AutoCad

seguramente no tendra problemas en hacer un diseno en Inventor. Eso sı, el

software cambia su estructura cuando se empiezan a detallar mas los disenos de

las piezas, siendo entonces necesario estudiar sus herramientas mas avanzadas.

En el proximo capıtulo, se explicaran las herramientas que se han utilizado para

dibujar el Robot Sidemar y luego se detallaran cada una de las partes de dicho

sistema.

castejon
Tachado
castejon
Texto insertado
Inventor

2.5 Sistemas software involucrados 29

2.5.3. Matlab

Matlab basa su nombre en su concepcion original, MATrix LABoratory, o en

castellano Laboratorio de Matrices. Fue disenado para calculos numericos con

vectores y matrices. Permite ser utilizado para trabajar con numeros escalares

(reales o complejos), con cadenas de caracteres y con otras estructuras de in-

formaciones mas complejas (de Jalon, Rodriguez, y Vidal, 2005). Con Matlab,

Figura 2.17, se pueden realizar diversos tipos de calculos matematicos y fısicos,

pero su gran ventaja consiste en la posibilidad de trabajar con las denominadas

Toolbox, que son cajas de herramientas que sirven para algun tipo especıfico de

calculo en diversas ramas de la ingenierıa y de las ciencias en general.

Figura 2.17: Logotipo del programa Matlab.

Dentro del Matlab se encuentran multitud de herramientas (Toolbox) que

son utilizados en muchos ambitos, por ejemplo: sistemas quımicos (calculos

fısico-quımicos u organicos), biologicos (calculos de colonias de celulas), siste-

mas para dimensionamiento de motores, aviones o VANTS (Vehıculos Aereos

no Tripulados), logicas de control como PID, Fuzzy, algoritmos geneticos o he-

rramientas para modelar sistemas completos (como las que van a ser utilizadas

en este trabajo) (Houcque, 2005).

Una de las facultades mas atractiva de Matlab es la posibilidad de realizar

castejon
Tachado
castejon
Texto insertado
de Jalon et al.,

30 Descripcion del sistema propuesto

graficos en dos y tres dimensiones. Matlab, aparte de su lenguaje propio, permi-

te utilizar los lenguajes de programacion como C/C++ o Fortran. Hace muchos

anos que en Matlab se ha incorporado un acelerador JIT (Just in Time), que me-

jora la velocidad de ejecucion de los ficheros sus ficheros con extension *.m. La

Figura 2.18 muestra el entorno de trabajo de Matlab.

Figura 2.18: Entorno de trabajo de Matlab.

2.5.4. SimMechanics

SimMechanics es un programa incluido en Simulink que ayuda a la creacion

de sistemas mecanicos tridimensionales sin tener que hacer calculos o ecuacio-

nes especıficas para su creacion (Houcque, 2005). En la Figura 2.19 se puede ver

un ejemplo del entorno SimMechanics.

En SimMechanics se pueden encontrar muchas herramientas para diversas

2.5 Sistemas software involucrados 31

tareas y trabajos que permiten la simulacion de sistemas con multiples cuerpos,

articulaciones, y restricciones. SimMechanics ayuda a la construccion y estudio

de modelos 3D y sus dinamicas.

Una de sus ventajas, empleadas en este trabajo, es que se puede importar

cualquier tipo de sistema o diseno elaborado en plataformas CAD/CAM ex-

ternas. En este caso se ha utilizado para la importacion del robot realizada en

Inventor.

Figura 2.19: Entorno SimMechanics.

32 Descripcion del sistema propuesto

Capıtulo 3Modelado CAD del robot Sidemar

En este capıtulo se describiran los pasos seguidos para el modelado CAD del

robot Sidemar, explicando el diseno de cada parte del robot, sus dimensiones y

sus calculos cinematicos basicos. Se realizara una descripcion detallada de tal

manera que permita su aplicacion a otros tipos de estructuras roboticas.

3.1. Modelado del robot Sidemar con AutoCad 2013

Para modelar un robot hay diversos tipos de software que permiten reali-

zar esta tarea y que facilitan el diseno y modelado de sistemas fijos o moviles,

como Sketchup, Solidworks y SolidEdge, aparte de los utilizados en este traba-

jo. Para realizar el diseno y modelado del robot se van a emplear dos entornos

diferentes: primero el AutoCad y posteriormente Inventor, que pertenecen a la

misma plataforma de programacion (AutoDesk). Estos paquetes software fue-

ron escogidos principalmente por la facilidad de importar disenos entre ambos

y, ademas, por tener en comun muchas de sus herramientas de trabajo. De los

paquetes estudiados, solo Solidworks e Inventor pueden exportar sus disenos

a la herramienta SimMechanics de Matlab, que es uno de los objetivos de este

34 Modelado CAD del robot Sidemar

trabajo. Para la parte de creacion, dimensionado y ensamblaje del Robot Side-

mar se empleo el AutoCad, empleandose el Inventor para el estudio de analisis

cinematicos y estaticos.

El robot Sidemar representa un robot de servicio, siendo una posible utilidad

el ayudar a personas discapacitadas acercandoles objetos. El robot Sidemar tiene

dos grados de libertad, constituidos por dos aritculaciones ortogonales. Ambos

grados son rotativos de configuracion tal que el primer eslabon gira alrededor

de un eje horizontal, y el segundo eslabon gira alrededor de un eje vertical. Su

arquitectura constructiva es modular, permitiendo la ampliacion del robot, Su

construccion tubular proporciona un peso estructural por debajo de robots si-

milares que se encuentra hoy en dıa con estructura rıgida (Castejon, Carbone,

Prada, y Ceccarelli, 2010).

A continuacion se detalla el modelado de la estructura del robot Sidemar y

su ensamblado, y posteriormente se explicaran los trabajos de parametrizacion

del robot y los primeros estudios realizados sobre Inventor.

3.1.1. Base del sistema o bancada

El eslabon tierra o base del robot corresponde a la base que sirve de sus-

tentacion del robot. Este eslabon, por algunas reglas que se detallaran cuando

se comente su modelado cinematico, es el eslabon numero 0 o base y no tie-

ne movimiento. Este eslabon sera tomado como sistema de referencia para las

coordenadas del robot, que siempre sera referenciando desde la base hasta el

extremo del robot. En los sucesivos calculos de denominara como punto P0 y

tendra como coordenadas [0, 0, 0].

El robot presenta una estructura diferente en su base con respecto a muchos

castejon
Tachado
castejon
Texto insertado
Castejon et al.,

3.1 Modelado del robot Sidemar con AutoCad 2013 35

robots que se encuentran en el mercado. La base del robot esta asentada en una

estructura donde el eje del primer eslabon se ensambla perpendicular al mismo,

siendo su giro en un plano vertical. La base permite su sujecion a una estructura

o superficie plana mediante elementos auxiliares. En la Figura 3.1 se muestra el

diseno realizado para la base.

Figura 3.1: Modelado de la base en AutoCad.

En el diseno se ha situado un cilindro que representa el motor y que atra-

viesa la base, en cuyo extremo se ensamblara la reductora a la que se acopla

el primer eje. Para modelar la reductora, que es del tipo Harmonic Drive, se ha

realizado solamente un diseno estructural externo, representado en la Figura 3.2.

36 Modelado CAD del robot Sidemar

Figura 3.2: Modelado de la reductora (Parte externa).

3.1.2. Primer eslabon (Brazo 1)

Este elemento se acoplara al eje de la base rotando en el plano vertical, y

sobre su extremo superior se acoplara el conjunto motor-reductor del segundo

brazo. La estructura de este brazo esta hecha con cuatro barras cilındricas de tal

forma que permita la reduccion de peso que conllevarıa el hacerla totalmente

maciza. En la Figura 3.3 se muestra el resultado final del diseno de la pieza en

AutoCad.

Figura 3.3: Modelado del primer eslabon en AutoCad.

3.1 Modelado del robot Sidemar con AutoCad 2013 37

Figura 3.4: Diseno estructural del primer eslabon en AutoCad.

El brazo se ensambla a la reductora de la base mediante una superficie plana

circular que situa al eslabon de forma perpendicular a la base. La estructura de

este eslabon se cierra con otra superficie plana circular a las barras a la que se

acopla otra reductora, disenada de manera analoga a la anterior. El diseno final

queda como se muestra en la Figura 3.5.

Figura 3.5: Modelado del Brazo 1 y su respectiva reductora HD.

38 Modelado CAD del robot Sidemar

3.1.3. Segundo eslabon (Brazo 2)

Este eslabon rota perpendicularmente sobre el primer eslabon. Este eslabon

va ensamblado, por tanto formando un angulo de 90 grados con respecto al eje

del primer eslabon y esta disenado de la mismo forma que el anterior, aunque

con diferentes dimensiones. En la Figura 3.6 se puede ver el resultado final del

diseno de este brazo.

Figura 3.6: Dimensiones y estructura del segundo eslabon.

En la Figura 3.7 se puede ver el diseno final del robot con sus respectivos

eslabones, motores y sensores tipo encoder. El diseno fue realizado de la forma

mas exacta posible, tal y como se aprecia en la Figura 3.7, empleando las mismas

dimensiones y materiales en su diseno.

3.2 Modelado del Robot Sidemar con Inventor 2013 39

Figura 3.7: Robot Sidemar y su diseno en AutoCad.

3.2. Modelado del Robot Sidemar con Inventor 2013

La segunda fase del modelado consistio en importar el modelo en Inven-

tor. Inventor permite incluir los parametros estaticos y dinamicos del robot y

realizar simulaciones sobre el mismo. Si bien permite el diseno de sus partes

directamente sin la necesidad del diseno previo con AutoCad, se han separado

ambas partes considerando que los planos del robot pueden haberse realizado

en AutoCad para su fabricacion. Inventor permite ajustar parametros de diseno,

guardandolos conjuntamente con el propio diseno, y permite hacer simulacio-

nes que ayuden al ajuste de dichos parametros (STMicroelectronics, 2013).

En este apartado se va a completar el diseno de la estructura del robot consi-

derando esfuerzos, sea el de peso, compresion, presion o efectos de la gravedad.

Seran descritos todos los pesos de cada parte del sistema, y que tipo de pro-

blemas pueden ocasionar estos pesos en los eslabones o en la base. Tambien se

hallaran calculos de fuerzas, pares y momentos y se probaran mediante simula-

ciones.

40 Modelado CAD del robot Sidemar

Con Inventor se podra estudiar realizar estudios iniciales de diseno y anali-

sis de esfuerzos para el estudio y deteccion de posibles puntos crıticos. Como

ultima justificacion del uso de Inventor, cabe destacar que esta totalmente adhe-

rido a la idea de exportacion de sus disenos a Matlab, lo que no se puede hacer

con AutoCad.

3.3. Ensamblado del robot Sidemar en Inventor

Es de suma importancia conocer como se realiza el ensamblado con ayuda

del software Inventor para que en el capıtulo proximo se puedan entender los

procedimientos de la utilizacion los modelos de Inventor en SimMechanics de

Matlab. A continuacion se describen los criterios adoptados para que el pro-

cedimiento de ensamblaje del robot para facilitar su uso en Matlab mediante

SimMechanics.

Para realizar el modelo del robot completo, el proceso parte del diseno de

cada una de sus partes para posteriormente anadir las restricciones entre ellas

de cara a su ensamblaje final. En la Figura 3.8 se ve como se van anadiendo cada

una de las partes del robot.

castejon
Tachado
castejon
Texto insertado
podrán

3.3 Ensamblado del robot Sidemar en Inventor 41

Figura 3.8: Entorno para analisis de tensiones para el robot.

A continuacion se introducen las restricciones de movimiento de cada uno

de los giros. Para conseguir hacer el ensamblaje de los elementos del robot Side-

mar se tiene que crear una pantalla de desarrollo de ensamblajes para insertar

los diferentes elementos que componen el robot. En la Figura 3.9 se pueden ver

las tres piezas importadas en la misma pantalla de trabajo con la cual sera en-

samblado el robot.

Figura 3.9: Conjunto de piezas importadas.

42 Modelado CAD del robot Sidemar

Por ultimo, se completan las restricciones de movimiento, es decir, que es-

tructuras seran fijas y cuales seran moviles. Por ejemplo. En el caso de la union

entre la base y el primer eslabon, Figura 3.10, hay que seleccionar el eje del pri-

mer eslabon como la estructura que va a sufrir rotaciones y el eje de la base como

la estructura estatica o fija. Por ultimo, hay que definir el tipo de movimiento que

se desea dar a la union, en este caso, se utilizo una estructura de union del tipo

circular.

Figura 3.10: Ensamblaje del primer eslabon a la base.

Procediendo de manera analoga con el segundo eslabon, se completa el en-

samblado final del robot. En la Figura 3.11 se muestra el robot completo ensam-

blado.

3.4 Estudios del robot Sidemar en Inventor 43

Figura 3.11: Robot Sidemar ensamblado.

En la Figura 3.12 se puede ver cual es el centro de gravedad del robot real,

completando el sistema de ensamblaje.

Figura 3.12: Centro de gravedad del robot Sidemar.

3.4. Estudios del robot Sidemar en Inventor

Para la verificacion del correcto diseno del robot y comprobar la implemen-

tacion realizada en Inventor, se realizan las pruebas de esfuerzo descritas en el

trabajo previo (de Tena, 2011).

44 Modelado CAD del robot Sidemar

Para iniciar un analisis de sistemas por esfuerzos en general se va a utilizar

la herramienta de ”Analisis de tension” incluida en el menu ”Entornos”, Figu-

ra 3.13. Estas herramientas permiten realizar analisis de tensiones, deformacio-

nes y calculo de par (Leal, 2014). Los parametros introducidos son los del robot

real, pero se podrıan introducir otros parametros para realizar simulaciones con

otras caracterısticas diferentes.

Figura 3.13: Herramientas de Inventor para analisis estructural.

3.4.1. Estudios en el primer eslabon

El brazo 1 se encuentra sometido a la fuerza ejercida por el brazo 2, que se

ha considerado para una primera simulacion como de 10N (de Tena, 2011). Por

lo tanto el brazo 2 (superior) ejerce un par de torsion sobre el brazo 2 (inferior)

que se puede calcular, teniendo en cuenta la distancia al extremo final del brazo:

M=10 N x 200 mm=2000Nm

En la Figura 3.14 se muestra el efecto de la fuerza, que practicamente no

deforma dicho eslablon.

3.4 Estudios del robot Sidemar en Inventor 45

Figura 3.14: Fuerza de 10 N sobre el primer eslabon.

A continuacion se anade la gravedad de (9,8 m/s) al brazo 1, manteniendo

el par anteriormente aplicado. En este caso las deformaciones son mayores, tal

y como se muestran en la Figura 3.15

Figura 3.15: Flexion resultante en el primer eslabon anadiendo gravedad.

En la imagen anterior, Figura 3.15 puede verse, en color rojo, cuales son los

puntos sobre los que aparece la maxima tension en el eslabon, que son los pun-

tos susceptibles de ser reforzados si fuera necesario. En amarillo se muestran

puntos de tensiones intermedias, que requieren menos atencion. Como se pue-

de ver, la base de este eslabon es la parte donde las tensiones son mayores. En

la figura aparece superpuesta es la Curva de Von Mises, que es un criterio muy

utilizado en teorıa de estructuras para el dimensionamiento de las mismas, de

tal forma que cumpla los requisitos basicos de flexion y tension (V., 2012). Los

castejon
Tachado
castejon
Texto insertado
incluir el apellido

46 Modelado CAD del robot Sidemar

calculos de las tensiones principales que aparecen sobre el robot pueden reali-

zarse con las siguientes expresiones, que son aplicadas por Inventor:

σVM =

√(σ1−σ2)2+(σ2−σ3)2+(σ3−σ1)2

2

Como criterio de fallo elastico se emplea la formula:

E = 16G × [ (σ1−σ2)

2+(σ2−σ3)2+(σ3−σ1)22 ]

La tension de Von Mises se calcula a partir de tensiones principales del ten-

sor tensiones en un punto de un solido en deformacion, siendo σ1, σ2, σ3 las ten-

siones principales y el criterio de fallo elastico se obtiene a partir de la energıa

de distorsion en funcion de las tensiones principales como se ve en la segunda

expresion. Estos valores tienen que tenerse en cuenta a la hora de disenar la es-

tructura (Armando, 2009).

En la Figura 3.16 se puede ver el primer eslabon tras un giro de 90 grados

sometido al mismo esfuerzo de 10 N producido por el segundo mas la gravedad

de 9,8 m/s2. La imagen presenta puntos de tension maxima en la base de la es-

tructura, al principio y final de los tubos (en color verde). El analisis estructural

sirve para hacer un estudio inicial del diseno del robot: por una parte se asegura

que la estructura se soporta y por otro lado se pede situar el robot en posiciones

crıticas para ver si el diseno es el adecuado. En las graficas de tension y defor-

macion interesa ver los valores maximos de deformacion y tension provocados.

Si la tension se acerca a la tension de rotura, pueden aparecer problemas.

3.4 Estudios del robot Sidemar en Inventor 47

Figura 3.16: Resultado de la fuerza de 10 N mas la accion de la gravedad.

3.4.2. Estudios en el segundo eslabon

El segundo eslabon, al contrario que el primero, se ve sometido solamente

a la accion de la gravedad, ya que no se han realizado pruebas de carga, por lo

que presenta menos problemas. En la Figura 3.17 se muestran los resultados del

analisis.

Figura 3.17: Accion de la gravedad sobre el segundo eslabon.

En la Figura 3.18 se puede mirar los principales puntos de maxima tension

de este eslabon debido a la gravedad, siendo la posicion mas crıtica para este es-

labon la posicion inicial (en la vertical), haciendo un angulo recto con el primer

eslabon, tal y como se puede ver en la grafica de aplicacion del criterio de Von

Mises.

48 Modelado CAD del robot Sidemar

Figura 3.18: Resultado de la accion de la gravedad sobre el brazo 2.

3.4.3. Estudios en la base

La base del robot es la que va a soportar toda la carga de los dos eslabones.

Ello hara que el primer motor deba propocionar un par un mas alto que el se-

gundo motor. El primer motor soporta el peso del segundo eslabon y el del suyo

propio.

Aplicando una carga de 18 N, se puede calcular la accion ejercida por los dos

eslabones (de Tena, 2011). En la Figura 3.19 se muestran los resultados, donde se

observa que las tensiones que la base tiene que soportar son casi nulas. Una base

como esta, no tendra muchos problemas para soportar toda la carga a la que se

vea sometida.

Figura 3.19: Resultado de las fuerzas en la base.

3.4 Estudios del robot Sidemar en Inventor 49

3.4.4. Estudio de conjunto del Robot Sidemar

Una vez analizada cada parte del robot por separado, se procede a analizar

el sistema completo, sometido a todas las fuerzas consideradas anteriormente.

En la Figura 3.20, el efecto de las fuerzas utilizadas y la accion de la gravedad

no ofrecen tensiones maximas suscepeptibles de ser consideradas, apareciendo

el criterio de Von Misses constante a lo largo del brazo, lo que comprueba el co-

rrecto dimensionado del robot.

En segundo lugar, como se puede apreciar en la barra de intensidades de

presion (barra en colores del lateral izquierda), no aparecen puntos crıticos sig-

nificativos.

Figura 3.20: Resultado de las fuerzas aplicadas sobre el robot Sidemar.

50 Modelado CAD del robot Sidemar

Capıtulo 4Integracion del modelo CAD con

Matlab y Simulink

En este capıtulo se describen los pasos necesarios para la integracion final

del modelo CAD del robot en Matlab y Simulink con SimMechanics y se expli-

ca como se amplıa dicho esquema de Simulink para completar el esquema de

control que actue tanto sobre el robot real como sobre su modelo en SimmMe-

chanics.

4.1. Consideraciones iniciales

Dentro de SimMechanics existe una herramienta para importar el diseno

desde otras plataformas CAD. Esta herramienta permitira hacer la importacion

del robot Sidemar con todos los parametros cinematicos y dinamicos existentes

en el diseno CAD del Inventor.

Para trabajar en el entorno SimMechanics es necesario una traduccion de los

castejon
Tachado
castejon
Texto insertado
SimMechanics

52 Integracion del modelo CAD con Matlab y Simulink

disenos CAD/CAM al entorno Simulink. En la Figura 4.1 se representa el pro-

ceso completo de la importacion.

Primero: se pasa el diseno del CAD a un formato XML para que pueda ser

leıdo por SimMechanics (ya que esta es el unico formato de intercambio

valido) mediante diagrama de bloques.

Segundo: generar un archivo con formato MDL que sera el que se pueda

leer y manipular en Simuink (V., 2012).

Figura 4.1: Pasos para importar disenos CAD en SimMechanics.

Como se ve en la figura anterior hay un bloque que se llama Traductor CAD-

XML. Dentro de Simulink, se hace la traduccion del modelo CAD al lenguaje

XML, generando un fichero de texto que contiene la informacion del modelo

bajo etiquetas y parametros. Matlab traduce los parametros y caracterısticas del

modelo CAD en bloques de SimMechanics.

castejon
Resaltado
autor??

4.2 Descarga e instalacion SimMechanics 53

4.2. Descarga e instalacion SimMechanics

Un problema importante es que los software Inventor y Matlab no tienen una

librerıa especıfica para que el diseno pueda ser importado, pero sı proporcio-

na soporte para realizar la importacion. En primer lugar, fue necesario trabajar

con las dos versiones mas recientes de ambos software, utilizandose la version

R2013a de Matlab y la version de AutoDesk Inventor Fusion 2013.

En un segundo lugar se necesita descargar la version compatible del traduc-

tor de formatos de la pagina web de Matlab (Matlab, s.f.), donde se puede en-

contrar el paquete a descargar de acuerdo con las versiones que se va a utilizar

para Matlab e Inventor. Los tres software tienen que estar en consonancia.

El software descargado se puede instalar con la ayuda del instalador de pa-

quetes de Matlab y establecer el enlace con Inventor a traves del comando sm-

link linkinv. Por ultimo debe comprobarse desde Inventor que la conexion con

Matlab ha sido realizada correctamente.

En la Figura 4.2 se observa una conexion exitosa.

Figura 4.2: Conexion exitosa entre Simulink e Inventor.

54 Integracion del modelo CAD con Matlab y Simulink

4.3. Exportacion del diseno del CAD a SimMechanics

Los pasos necesarios para exportar el diseno CAD realizado en Inventor son:

1) Asegurar la correcta posicion inicial del robot y que sus restricciones de

movimiento son correctas. El robot tiene que estar ubicado en la posicion inicial

(0, 0, 0) porque cuando SimMechanics importe el sistema se importara con la

misma configuracion inicial (extremo del eslabon 2 en la posicion (301, 265, 0) y

el extremo del primer eslabon en la posicion vertical (0, 265, 0). Como se puede

ver en la Figura 4.3, aparecen dos tipos de coordenadas, una es la coordenada

inicial del programa Inventor, que sirve solamente para referenciar el origen del

diseno, y el segundo sistema de coordenadas, que constituye los ejes de coorde-

nadas de movimiento del robot, al que se referencian las posiciones del mismo.

Este sistema de coordenadas Figura 4.3 se hizo de acuerdo a los estudios de

Denavit-Hartenberg, que se detallaran en el proximo capıtulo.

Figura 4.3: Sistemas de coordenadas en Inventor.

2) Una vez realizado el proceso anterior, se procede a salvar el trabajo en el

formato standard STL.

3) A continuacion se procede a exportar el diseno de Inventor a formato

4.4 Modelo exportado resultante 55

XML, quedando listo para ser importado desde Matlab.

4) El siguiente paso es abrir Matlab y teclear en la lınea de comandos la

sentencia mech import con la direccion donde se encuentran los archivos (STL

y XML). Creando el modelo en Simulink.

5) Por ultimo, se debe comprobar que la importacion ha sido realizada co-

rrectamente, tal y como se muestra en la Figura 4.2.

Figura 4.4: Robot Sidemar en SimMechanics.

4.4. Modelo exportado resultante

Despues de hacer todos los pasos anteriores, se procede a explicar los resul-

tados del modelo exportado. Para poder llevar a cabo una simulacion se hace

necesario completar algunos detalles con respecto a la cinematica y dinamica

del robot.

En la Figura 4.5 se muestran los dos bloques exportados de SimMechanics:

first generation, con los parametros geometricos del robot, y second generation, que

incluye los parametros dinamicos del robot.

56 Integracion del modelo CAD con Matlab y Simulink

Figura 4.5: Bloques resultantes en SimMechanics tras el proceso de exportacion.

Para implementar el modelo del robot, se trabaja con la segunda generacion,

para tener un modelo que incluya cinematica, dinamica, sensores y actuadores.

Dentro de la carpeta segunda generacion, aparecen los 7 bloques mostrados en la

Figura 4.6. Estos bloques son:

Figura 4.6: Bloques basicos generados en SimMechanics.

Primero: Body (Cuerpos). En esta biblioteca se encuentra elementos que se

utilizan para modelar cualquier sistema mecanico (Ramos, 2008). El primero de

estos elementos, los Body (Cuerpos), permiten modelar cuerpos con caracterısti-

cas definidas como masa, centro de gravedad, momentos de inercia, posicion,

orientacion y coordenadas propias. Otro bloque que aparece son los Ground (Tie-

rra). Este bloque representa un punto fijo en la tierra que servira como la base de

referencia para ensamblar los elementos del sistema, sean moviles o no. Y por

4.4 Modelo exportado resultante 57

ultimo se va a hablar de la otra herramienta que es el Machine Environment, don-

de se conecta el bloque Ground. Aquı es donde se configuran las propiedades

del entorno donde trabajara el sistema mecanico.

Caso de que no se hayan importado todos los parametros, sera necesario edi-

tar los bloques y completar su propiedades, ası, en la Figura 4.7 se anade la masa

a un elemento tipo Body.

Figura 4.7: Parametros del elemento tipo Body para los eslabones.

Segundo: la Biblioteca de Joints (Ejes). Contiene los bloques que representan

los movimientos relativos entre los cuerpos que son conocidos tambien como

los grados de libertad. Como se percibe en la Figura 4.8, se encuentran diversos

tipos de articulaciones. En el caso del Robot Sidemar, se ira a destacar solamente

las juntas rotativas (porque no tiene juntas prismaticas) o en este caso Revolute.

Esta es una junta que une dos elementos en uno solo, es decir, une dos elementos

en un unico punto de contacto, ocasionando ası un grado de libertad. El robot

tiene dos juntas de este tipo.

58 Integracion del modelo CAD con Matlab y Simulink

Figura 4.8: Bloque Joint.

Tercero: Librerıa Sensors and Actuators (Sensores y Actuadores). Esta biblio-

teca contiene los bloques que miden los giros producidos en los ejes del robot

(Encoders) e inicializan los movimientos de los cuerpos y las articulaciones (Ac-

tuators). Sobre estos bloques actuaran las senales que haran funcionar el robot.

Entre estos bloques se encuentran: Body Actuator, Joint Actuator, Body Sensor, Joint

Sensor y Joint Initial Condition, mostrados en la Figura 4.9.

Figura 4.9: Bloques de sensores y actuadores.

4.5. Pruebas del modelo del robot Sidemar en SimMche-

nics

Tras el desarrollo de los pasos anteriores se prepararon unas primeras prue-

bas para verificar el funcionamiento del modelo importado. La primera de ellas

4.5 Pruebas del modelo del robot Sidemar en SimMchenics 59

consistıa en dar ordenes de movimiento al robot en cadena abierta, para compro-

bar la coherencia de la estructura importada y que todos los bloques funcionan

de manera adecuada. Para ello fue necesario anadir los bloques que generan las

senales sobre los actuadores, en este caso, una constante. En la Figura 4.10 se

muestran los bloques anadidos: sliders o potenciometros.

Figura 4.10: Diagrama de bloques en SimMechanics con sliders.

Para el correcto funcionamiento, el bloque joint necesita referencias en veloci-

dad y aceleracion, con lo que hay que introducir las correspondientes derivadas.

En la Figura 4.11 se muestra el efecto de realizar diferentes secuencias de movi-

mientos con este primer control basico.

Figura 4.11: Prueba del modelo en SimMechanics mediante el uso de sliders.

60 Integracion del modelo CAD con Matlab y Simulink

Capıtulo 5Calculos cinematicos sobre el

robot Sidemar

Se denomina analisis cinematico de un robot manipulador al estudio de las

configuraciones geometricas que puede adoptar un robot como consecuencia de

su movimiento. Excluye a las fuerzas que actuan sobre el como consecuencia de

este movimiento, que son estudiadas en un posterior analisis dinamico con ayu-

da de la Jacobiana. En (Barrientos y Balaguer, 2007) pg. 125 se cita:

”interesa por la descripcion analıtica del movimiento espacial del robot como una

funcion del tiempo, y en particular de las relaciones entre la posicion y la orientacion del

extremo final del robot con los valores que toman sus coordenadas articulares”

Los estudios cinematicos estan divididos en dos, el primero es el estudio ci-

nematico directo que es un estudio sobre el cual se debe encontrar la posicion

y orientacion del extremo final del robot mediante ayuda de un sistema de re-

ferencia inicial. Para esta etapa es importante definir los movimientos de las

articulaciones y conocer los parametros geometricos que componen el robot. El

castejon
Resaltado
Barrientos et al.???

62 Calculos cinematicos sobre el robot Sidemar

segundo estudio es el estudio cinematico inverso que consiste en encontrar, co-

nocida la posicion del extremo final del robot, cuales son los angulos que deben

girar sus articulaciones. En la Figura 5.1 (Barrientos y Balaguer, 2007) se ilustra

los problemas cinematico en en robotica.

Figura 5.1: Problemas cinematicos en robotica.

En el presente trabajo se van a hacer todos estos calculos mediante la ayu-

da del software Matlab-Simulink y mediante una de sus herramientas llama-

da Robotics Toolbox creada por Peter Corke para simular entornos cinematicos

y dinamicos. Esta herramienta se basa en la tabla de Denavit-Hartenberg, que

se detallara mas adelante. Esta tabla fue totalmente automatizada para facilitar

los calculos de las cinematicas, permitiendo tambien simular las dinamicas de

cualquier robot a traves de la Jacobiana, ası como realizar diferentes pruebas de

simulacion (Corke, 2013).

5.1. Metodo de Denavit-Hartenberg

Para calcular y resolver los problemas cinematicos hay diversas aproxima-

ciones y metodos numericos que permiten encontrar la solucion del problema

cinematico. En este apartado se comentara el metodo de Denavit y Hartenberg

(Corke, 2013). Este metodo consiste en representar la geometrıa espacial de los

5.1 Metodo de Denavit-Hartenberg 63

elementos de una cadena cinematica de un robot cualquiera mediante la utiliza-

cion de matrices de transformacion homogeneas basicas, logrando describir la

relacion espacial entre estos elementos.

Este metodo es el mas conocido hoy en dıa y es muy utilizado por ingenie-

ros y estudiantes de muchas universidades. Facilita el estudio de la cinematica

y existen diversos software para su implementacion. Este metodo busca la sim-

plificacion de los calculos separando la cadena cinematica del robot completo en

una serie de transformaciones basicas relativas a cada uno de sus eslabones por

separado y que solo dependen de la geometrıa del elemento en cuestion.

5.1.1. Matriz de Denavit-Hartenberg

La matriz homogenea que lleva el nombre de sus autores Jacques Denavit

y Richard S. Hartenberg, reduce el problema cinematico a encontrar una cade-

na de matrices de transformacion de 4x4 (siempre son cuatro los parametros

especıficos de D-H). El numero de matrices puede variar dependiendo de la

complejidad que tenga un robot, obviamente un robot de seis grados de libertad

tendra mas matrices que un robot de dos grados libertad. Al final, proporciona

la relacion entre la localizacion espacial del extremo final con respecto a la refe-

rencia (normalmente es la base del robot). Las cuatro matrices de transformacion

que apareceran sobre el robot Sidemar seran dos matrices de transformacion ho-

mogenea de translacion y dos matrices de transformaciones de rotacion, (ejes de

coordenadas X e Z) (Lab, 2013):

Primero: Matriz de translacion a lo largo de Z y a una distancia D: Tzd;

Segundo: Matriz de rotacion alrededor de Z y un angulo theta: Rzθ;

Matriz de translacion a lo largo del eje X y un valor de a: Txa;

64 Calculos cinematicos sobre el robot Sidemar

Matriz de rotacion alrededor de X y un angulo alpha: Rzα.

Por lo tanto, se puede escribir el resultado de aplicar las matrices anteriores

de la siguiente forma:

D −H = Tzd×Rzθ × Txa×Rzα

Desarrollando las matrices, se puede establecer:

D − H =

1 0 0 0

0 1 0 0

0 0 1 di

0 0 0 1

×Cθi −Sθi 0 0

Sθi Cθi 0 0

0 0 1 0

0 0 0 1

×

1 0 0 ai

0 1 0 0

0 0 1 0

0 0 0 1

×

1 0 0 0

0 Cαi −Sαi 0

0 Sαi Cαi 0

0 0 0 1

Donde C y S son las funciones seno y coseno. Operando las matrices se ob-

tiene como matriz resultado:

D −H =

Cθi −SθiCαi SθiCαi aCθi

Sθi CθiCαi CθiSαi aSθi

0 Sαi Cαi d

0 Sαi Cαi 1

Con la matriz anterior se puede comprobar que solo cuatro parametros son

suficientes para el calculo de la cinematica mediante este algoritmo y para cual-

quier robot en cuestion con independencia de su complejidad. Otra caracterısti-

ca importante es que estos parametros dependen unicamente de la geometrıa de

los eslabones y del tipo de articulaciones que unen el antecesor con su sucesor.

5.2 Transformacion de D-H para el robot Sidemar 65

5.1.2. Calculo de las matrices de Denavit-Hatenberg

Para el calculo de las matrices de Denavit-Hatenberg (D-H) es necesario te-

ner en cuenta los cuatro parametros (a, d, θ y α) necesarios para el calculo de sus

parametros. En primer lugar se encuentra un primer grupo(a, d) que define las

relaciones de tamanos y posteriormente la forma de cada eslabon y en segundo

lugar se encuentra el segundo grupo (θ y α) que son los angulos entre los es-

labones. Los parametros especıficos para definir la transformada de D-H de un

robot generico son los siguientes:

1) a: Es la distancia que existe entre los ejes Zi−1 y Z a lo largo de Xi. Con

este parametro se computa la longitud del eslabon en cuestion.

2) α: Es el angulo existente entre el eje Zi−1 y Zi sobre el plano perpendicular

a Xi

3) d: Es la distancia a lo largo del eje Zi−1 desde el origen del sistema Zi−1

hasta la interseccion del eje Zi. Este parametro se denomina longitud articular

debido a que expresa la distancia entre los dos eslabones que se encuentran mar-

cados por el tamano y forma de la articulacion.

4) θ: Angulos que forman los ejes Xi−1 y Xi sobre el plano perpendicular a

Zi−1. Se denomina angulo articular ya que expresa el angulo que forman dos

eslabones y depende del tipo de articulacion.

5.2. Transformacion de D-H para el robot Sidemar

Antes de proceder con el estudio del robot en Matlab con la ayuda de la Ro-

botics ToolBox es necesario tener medidos todos los parametros que intervienen.

66 Calculos cinematicos sobre el robot Sidemar

Se pueden encontrar diversas metodologıas para determinar los parametros de

D-H de un robot. Aquı se va a describir la que se considero la mas sencilla de

todas. A continuacion se definen los pasos dados para calcular los parametros.

5.2.1. Numeracion de los eslabones y las articulaciones del robot Si-

demar

Siguiendo el proceso de diseno del robot comentado anteriormente, se nu-

meran todos los eslabones del robot partiendo de la base del sistema (que se

considera como eslabon) y que se define como el eslabon numero cero. A con-

tinuacion se asigna el numero uno para el primer eslabon, y el dos al segundo

eslabon. El extremo del robot no cuenta en esta numeracion. A continuacion hay

que fijar los ejes que componen el robot al igual que se hizo con los eslabones.

De esta forma se asigna el numero uno al primer grado de libertad del sistema

y el numero dos al segundo grado de libertad.

Para construir los parametros que caracterizan el robot, la q significa que es-

te es un eje articulado rotativo y una d es un eje articulado prismatico. En la

Figura 5.2 se ve que el robot es de articulacion rotativa, no existiendo ninguna

prismatica.

Figura 5.2: Sentido de giro en los dos ejes.

5.2 Transformacion de D-H para el robot Sidemar 67

5.2.2. Definicion de los ejes sobre el robot Sidemar

A continuacion hay que situar en las articulaciones los ejes de cada eslabon.

Primero, se situan todos los ejes Z segun el sentido de giro y el resto de ejes se

rigen por la regla de la mano derecha. (Figura 5.3). Posteriormente se determina

las distancias que hay entre un eslabon y otro. (301 mm y 265 mm respectiva-

mente).

Figura 5.3: Definicion de ejes.

Finalmente con todos estos datos detallados, se pueden llenar los campos

necesarios para hacer la tabla de D-H del robot. En la Tabla 5.1 se encuentra con

todas las especificaciones anteriores (calculadas y explicadas).

Parametros Denavit HartenbergArticulacion d (mm) θ 0 a (mm) α 0

1 0 θ1 0 pi/2

2 d2 θ2 a2 0

Tabla 5.1: Parametros D-H del robot Sidemar.

68 Calculos cinematicos sobre el robot Sidemar

5.2.3. Calculo de la cinematica directa del robot Sidemar

5.2.3.1. Mediante Matlab

Una forma de calcular la cinematica de un robot serıa mediante el uso directo

de comandos de Matlab, sin la utilizacion de la Robotics Toolbox de Peter Corke.

Con ello se podrıa comprobar los valores de diseno del robot y visualizarlos, y

comprobarlos con los obtenidos utilizando exclusivamente comandos de Matlab

sin incluir los de la Toolbox. Los algoritmos implementados en Matlab se mues-

tran en los anexos A.1 y A.2.

La salida de estos algoritmos implementados proporciona la matriz de D-H

del primer eslabon (Tabla 5.2.) y del segundo eslabon (Tabla 5.3). La Tabla 5.4 y

Tabla 5.5 muestran el producto de ambos eslabones para encontrar la cinematica

directa del robot.

Matriz Eslabon 1Cos θ1 0 Sin θ1 0

Sin θ1 0 -Cos θ1 0

0 1 0 0

0 0 0 1

Tabla 5.2: Matriz D-H para el eslabon 1.

Matriz Eslabon 2Cos θ2 -Sin θ2 0 a2 Cos θ2Sin θ2 Cos θ2 0 a2 Sin θ20 0 1 L2

0 0 0 1

Tabla 5.3: Matriz D-H para el eslabon 2.

Sustituyendo los parametros por sus valores (codigo del anexo A.3.) , se ob-

tiene como resultado de los algoritmos, la matriz final mostrada en la tabla 5.5.

5.2 Transformacion de D-H para el robot Sidemar 69

D-H eslabones 1 y 2.Cos θ1 Cos θ2 -Cos θ1 Sin θ2 Sin θ1 a2 Cos θ1 Cos θ2Cos θ2 Sin θ1 -Sin θ1 Sin θ2 -Cos θ1 a2 Cos θ2 Sin θ1 - L2 Cos θ1Sin θ2 Cos θ2 0 a2 Sin θ20 0 0 1

Tabla 5.4: Multipicacion de Matrices D-H de los eslabones 1 y 2.

Respuesta Final Matriz C (Sustituyendo Valores)1 0 0 301

0 0 −1 −2650 1 0 0

0 0 0 1

Tabla 5.5: Matriz Final de D-H para el robot Sidemar.

5.2.3.2. Mediante la Robotics Toolbox

Los softwares vistos hasta ahora, Inventor y SimMechanics permiten realizar

simulaciones pero no contemplan herramientas ni elementos de calculo para es-

tudiar la cinematica y dinamica a partir del modelo. La herramienta Toolbox

Robotics es un software de calculo y simulacion que permite llevar a cabo los

calculos necesarios para obtener parametros de D-H y calcular jacobianas, con

lo que permite realizar el analisis cinematicos y dinamicos.

La Robotics Toolbox es una union de todas las funciones basicas para estudiar

un robot realizado bajo el software Matlab. Fue creado por Peter Corke en el ano

de 1995 en su tesis doctoral, con el fin de unificar los estudios de robots.

Desde 1995 hasta hoy la herramienta ha ido creciendo y expandiendose, y

ahora se pueden encontrar ademas de estudios robotica industrial, herramien-

tas aplicables sobre robots asistenciales, estudios de vision para robots, planifi-

cacion de trayectorias y navegacion de robots.

70 Calculos cinematicos sobre el robot Sidemar

Esta Toolbox tiene muchas funciones que pueden ser utilizadas para los es-

tudios de las cinematica y dinamica de robots manipuladores y brazos robotiza-

dos, como el caso del robot Sidemar. Van a permitir encontrar el jacobiano del

brazo y generar trayectorias a seguir por el robot. Todas las funcionalidades de

esta Toolbox se encuentran en el manual que puede encontrarse en el enlace de

Peter Corke en la red (Corke, 2013).

Para realizar los estudios de la cinematica directa desde la Robotics Toolbox,

hay que crear previamente el entorno en el que se va a trabajar y el robot me-

diante ayuda de la tabla anterior de parametros de D-H en un formato segun

indica el manual de la Toolbox. Dicho formato se muestra en la Tabla 5.6.

D-H para Robotics ToolboxArticulacion θ 0 d (mm) a (mm) α 0 α Offset1 q1 0 0 pi/2 0 0

2 q2 265 301 0 0 0

Tabla 5.6: Matriz D-H para Robotics Toolbox.

Los parametros Sigma y Offset aparecen como nuevos. El primero sirve para

decir si la articulacion con la cual que va a trabajar es prismatica o rotativa, es

decir, definida por cero o uno, el cero significa que es un eje rotativo por defecto

y el uno una junta prismatica. El parametro offset define los desfases que hay

en la medida del tramo correspondiente, con respecto al angulo θ. Pero estos

parametros adicionales pueden ser excluidos del algoritmo si se desea.

A continuacion se procede con la creacion de los eslabones con sus respecti-

vos parametros, a partir de la tabla anterior. El codigo del algoritmo se muestra

en el Anexo A.4.

En el algoritmo se utilizan funciones especıficas del propio programa para la

5.2 Transformacion de D-H para el robot Sidemar 71

construccion del robot. Las mas importantes son:

Funcion Link: permite la creacion de los eslabones (cantidad de eslabones

del robot y sus parametros).

Parametro L: union entre dos o mas eslabones (Links).

Comando Twolink: es un comando que sirve unicamente para unir dos es-

labones, exclusivamente dos a dos.

SerialLink, permite anadir eslabones para la visualizacion en Matlab.

Ficheros mdltwolink y twolink.n, que guardan la estructura geometrica y

parametros del robot.

Por ultimo el comando fkine calcula la cinematica del robot y el comando

plot genera la interfaz grafica con la geometrıa del robot.

Como respuesta del algoritmo se obtiene el modelo cinematico de las Ta-

blas 5.7, 5.8, 5.9 y como modelo final se obtiene la matriz de D-H, la mostrada

en la Tabla 5.10, que es igual a la de la Tabla 5.5. obtenida en Matlab sin utilizar

la toolbox de Peter Corke, lo que valida los resultados.

Cinematica Directa (Matriz L)θ = q1 d = 0 a = 0 α = 1,571

θ = q2 d = 265 a = 301 α = 0

Tabla 5.7: Parametros relativos a la Cinematica Directa.

GravedadX Y Z0 0 9,81

Tabla 5.8: Parametros relativos a la gravedad.

72 Calculos cinematicos sobre el robot Sidemar

Base1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Tabla 5.9: Base del sistema (origen).

Cinematica Directa (Matriz Posicion Inicial)

1 0 0 301

0 0 −1 −265

0 1 0 0

0 0 0 1

Tabla 5.10: Posicion inicial.

Capıtulo 6Resultados experimentales:

Analisis cinematico

6.1. Pruebas cinematicas con la Robotics Toolbox

En primer lugar se hicieron pruebas de simulacion sobre la herramienta Ro-

botics Toolbox. La Robotics Toolbox, ademas de realizar los calculos cinematicos,

dispone de una pequena interfaz grafica que modela el robot de forma vectorial

en un espacio 3D, cosiderando un vector para cada eslabon. En la Figura 6.1 se

ve el modelo del robot en su posicion inicial. Para esta representacion es necesa-

rio una correcta ubicacion de los ejes del robot y una correcta inicializacion de

sus parametros.

74 Resultados experimentales: Analisis cinematico

Figura 6.1: Interfaz grafica de Robotics Toolbox con el modelo del robot Sidemar.

En una primera prueba se manda girar 90 grados en los dos eslabones (codi-

go anexo A.5.), lo que produce una variacion en la posicion y orientacion, refle-

jados en la Tabla 6.1.

Matriz Total Angulo 90 grados (Dos Ejes)0 0 1 265 - X0 −1 0 0 - Y0 0 0 301 - Z0 0 0 1

Tabla 6.1: Angulo de 90 grados en los dos eslabones.

En la Figura 6.2 se comprueba la respuesta del algoritmo cuando el robot

ha girado 90o en los dos eslabones. Las posiciones Px, Py, Pz se han modificado

con respecto a la matriz anterior donde la posicion era (0, 0, 0) (Tabla 6.2), cam-

biando su posicion en terminos de valores (X, Y y Z), quedando en la posicion

mostrada en la Tabla 6.3.

6.1 Pruebas cinematicas con la Robotics Toolbox 75

Prueba Cinematica Posicion Origen 0 grados

Posicion en X Posicion en Y Posicion en Z

301 −265 0

Tabla 6.2: Posicion inicial (origen 0 grados).

Prueba Cinematica Posicion 90◦ (Dos ejes)Posicion en X Posicion en Y Posicion en Z265 0 301

Tabla 6.3: Posicion final: 90 grados en los dos eslabones.

Figura 6.2: Posicion del robot Sidemar con el primer y segundo eslabon rotado en 90 grados.

Siguiendo esta idea se crea un pequeno algoritmo (codigo anexo A.6.) para

mostrar las posibilidades que se puede encontrar para la cinematica directa del

Robot Sidemar. En este nuevo algoritmo se emplea el parametro teach, que sig-

nifica que el robot va a seguir un plan (o un mapa de puntos) dentro de la gama

de posibilidades que el algoritmo de D-H lo permite, pudiendo ası averiguar

donde puede llegar el robot, donde no se puede y tambien controlar los angulos

para los dos eslabones (q1yq2), tal como se ve en la Figura 6.3

castejon
Resaltado
faltan espacios entre las variables

76 Resultados experimentales: Analisis cinematico

Figura 6.3: Cinematica directa y posibles movimientos del robot Sidemar.

Como se ve en esta imagen, aparece un menu desplegable que orienta donde

se puede realizar los cambios de angulos mediante dos Slider (barras deslizan-

tes) que se pueden variar entre 0 y 360 grados en los dos eslabones q1yq2 y permi-

te ver la posicion y orientacion del mismo en un espacio 3D, ası como se muestra

la posicion final en X, Y, Z y tambien en la orientacion en x, y, z. Como se mues-

tra, existe la posibilidad de capturar una posicion y una orientacion concreta y

guardarla en un archivo .m de Matlab. Solo es necesario encontrar la posicion y

la orientacion deseada y hacer click sobre el boton Record. Si lo que quisieramos

fuera salir del programa, bastarıa con hacer click en el boton Quit y el programa

se cerrara automaticamente.

Por ultimo en la Figura 6.4 se muestra el espacio de trabajo del robot, que

permite comprobar si es un en espacio valido para las actividades que el robot

de servicio debe realizar.

castejon
Resaltado

6.2 Calculo de la cinematica inversa del robot Sidemar 77

Figura 6.4: Espacio de trabajo completo.

En la Figura 6.5 se muestra una seccion del espacio de trabajo (codigo anexo

A.6.), donde se puede apreciar la posicion del robot con respecto a la misma.

Figura 6.5: Area de trabajo parcial.

6.2. Calculo de la cinematica inversa del robot Sidemar

Debido a que en el estudio de la cinematica directa se realizo la creacion del

robot en un entorno de trabajo tal y como se ha mostrado anteriormente, no

habra necesidad de realizar los mismos pasos anteriores, sino solo explicar en

78 Resultados experimentales: Analisis cinematico

que consiste la cinematica inversa del robot, y aplicar los metodos de trabajo pa-

ra llevar a cabo la finalizacion de esta etapa.

La utilizacion del manual de la Robotics Toolbox se mostro de gran ayuda pa-

ra trabajar con los parametros de la cinematica inversa. El metodo consiste en

utilizar el comando ikine (inverse kinematics) o cinematica inversa traducido al

castellano, que servira unicamente para realizar tal estudio cinematico para el

robot generado en el entorno de Matlab. Esto se puede aplicar a cualquier robot

sin ninguna restriccion.

A partir de aquı, lo que se va hacer son algunas pruebas de resultados pa-

ra la cinematica inversa y comprobar que los valores son realmente los mismos

encontrados que en la cinematica directa. Se creo un algoritmo para ello y pos-

teriormente se comprobaron los valores encontrados en la cinematica directa,

consiguiendo las dos cinematicas para el dicho robot.

En el algoritmo desarrollado (codigo anexo A.8.) se emplean comandos dis-

tintos de los utilizados anteriormente para la cinematica directa, pero que tienen

el mismo efecto para comprobar la posibilidad real del robot de llegar a un pun-

to, indicando los angulos girados por los ejes. Basicamente hay que definir el

algoritmo D-H y luego ensamblar el robot, ponerle un nombre, una posicion a

la cual se quiere que el robot llegue, (en este caso especıfico es la posicion inicial

del robot para los dos ejes, Tablas 6.4 y 6.5, es decir, sin movimiento. Despues se

tiene que generar una funcion de cinematica directa para el robot (esto es obli-

gatorio) sino el programa Matlab no consigue reconocer la posicion del robot.

Luego se pone una matriz M que basicamente se debe definir como uno, los gra-

dos de libertad del robot en cuestion, en este caso sera uno para los dos primeros

eslabones, y los dos ceros que se tienen extras en esta matriz M, que son para la

definicion basica de una matriz para un robot de 6 ejes, y por regla general sino

no son 6 ejes, hay obligatoriamente que rellenar los ejes no definidos con el valor

6.2 Calculo de la cinematica inversa del robot Sidemar 79

0. Por ultimo se ejecuta el comando para encontrar la cinematica inversa ikine.

La matriz Q1, Tabla 6.7, es donde se va a comprobar si el valor del angulo real-

mente es el mismo calculado en la cinematica directa.

Con esto, se puede ver como se comporta el algoritmo y comparar con el al-

goritmo de la cinematica directa y ası verificar que realmente se ha llegado a los

valores de los angulos predeterminados.

Matriz Posicion Cero0 0

Tabla 6.4: Matriz Posicion Cero.

Matriz Cd (Posicion Inicial)0 0 1 301

0 −1 0 −2650 0 0 0

0 0 0 1

Tabla 6.5: Matriz Posicion Inicial.

Matriz M1

1 1 0 0 0 0

Tabla 6.6: Matriz M1.

Como se puede ver, la matriz Q1 toma valor (0, 0), que realmente consiste

en la posicion angular inicial de los ejes de cada eslabon del robot Sidemar, que

permanecio inmovil. Entonces se comprueba que el algoritmo esta bien elabora-

do y ademas se puede ver que la posicion para X = 301, Y = −265 y Z = 0, es

realmente la posicion que se busca en la cinematica directa.

Ahora se puede comprobar (codigo anexo A.9.) que moviendo el primer es-

labon q1 en un 90 grados la posicion final del robot es realmente la obtenida por

80 Resultados experimentales: Analisis cinematico

Matriz Q1

0 0

Tabla 6.7: Matriz Q1 para un angulo de 0 grados.

el algoritmo de la cinematica directa. Se haran las dos pruebas a la vez para sa-

ber su efectividad. En la Tabla 6.8 se muestran los dos resultados tanto de la

cinematica inversa como de la directa para el angulo de 90 grados en q1 y su

respectiva posicion en el sistema coordinado 3D. En la Tabla 6.8 se muestra la

respuesta de la cinematica inversa para un angulo de 90 grados.

Matriz Q1

1,5708 - 90 grados 0

Tabla 6.8: Matriz Q1 para un angulo de 90 grados.

Como se observa, la respuesta proporcionada por el algoritmo es en radianes

(codigo anexo A.10.) y necesita su posterior conversion a grados para su mejor

visualizacion. En la Tabla 6.9 se comprueba que los valores de la cinematica

directa para angulo de 90 grados coinciden con los calculados a partir de la ci-

nematica inversa.

Matriz final. Angulo 90 grados (Primer Eje)0 0 1 265

1 0 0 301

0 1 0 0

0 0 0 1

Tabla 6.9: Matriz final para un angulo de 90 grados.

6.3 Simulacion de trayectorias con el robot Sidemar 81

6.3. Simulacion de trayectorias con el robot Sidemar

Tras confirmar los estudios de la cinematica del robot, otro punto interesan-

te es calcular trayectorias que el robot pueda seguir sin problemas. Para esto se

planifico un algoritmo que genera trayectorias aleatorias (codigo Anexo A.11.),

siendo la base de este algoritmo igual a las anteriormente descritas.

Generar trayectorias para que un robot las pueda seguir es muy interesan-

te, ya que, se puede simular/aplicar todo lo que se vio anteriormente con la

cinematica y ver ası una aplicacion de estos metodos de forma sencilla. El algo-

ritmo que genera trayectorias aleatorias puede ser modificado para que pueda

encontrar trayectorias especıficas como por ejemplo: una trayectoria que escriba

una palabra en una hoja. Basicamente el algoritmo (codigo Anexo A.12.) con-

siste en dar una posicion inicial y un punto final, calculando el algoritmo las

trayectorias, haciendo el movimiento propuesto (haciendo aquı una cinematica

inversa para el angulo final y la cinematica directa para llegar a los puntos que

se desea). A continuacion se hace la diferencia entre los angulos y sus respec-

tivas trayectorias, se llama a la funcion TRAJ y se imprime en la pantalla todo

el movimiento del robot. En la Figura 6.6 se muestra un ejemplo donde se ha

dibujado en el aire una trayectoria circular de forma que el robot pueda volver

a su punto de origen por si solo.

castejon
Tachado
castejon
Texto insertado
implementó??

82 Resultados experimentales: Analisis cinematico

Figura 6.6: Trayectoria realizada por el robot Sidemar.

Capıtulo 7Resultados experimentales:

Pruebas de control

En este capıtulo se muestra el hardware de control implementado y se re-

cogen los resultados experimentales realizados con el sistema real y el sistema

simulado con ayuda de SimMechanics. Se se presentan pruebas de control del

robot en posicion y velocidad, funcionando en conjunto y/o por separado.

7.1. Pruebas de integracion CAD en Matlab

El hardware del sistema fue probado en dos etapas. En la primera se com-

probo el funcionamiento del sistema e intentar reducir los errores que aparecen

en las senales de los encoders, normalmente por problemas de cableado. Una

vez comprobados y aplicados un filtro de la mediana sobre dichas senales, se

procedio a implementar los sistemas y metodos de control de los motores.

Las primeras pruebas se basaron en crear un control en cadena abierta, un

control PID de posicion y un control en velocidad sobre el robot simulado. Pos-

teriormente se implemento un control en posicion para el robot Sidemar, con

84 Resultados experimentales: Pruebas de control

diferentes tipos de senales, generadas con un slider gain (barra deslizante) de

Matlab para ver de manera sencilla la evolucion del robot en tiempo real. Pos-

teriormente de cambio dicha barra por un generador de pulso de ondas cuadra-

das, que simula un cambio entre dos posiciones de los eslabones del robot de

manera continuada.

Posteriormente fue implementado el mismo controlador en posicion del sis-

tema real a los dos sistemas (sistema real y simulado) para comprobar su fun-

cionamiento coordinado. Esta funcionalidad, ademas de facilitar la implementa-

cion de reguladores en robots reales, abre muchas posibilidades en el caso mun-

do docente de la robotica, tal y como se comentara en los trabajos futuros.

7.1.1. Control en cadena abierta en el simulador del robot Sidemar

Este control fue creado para comprobar el funcionamiento del robot expor-

tado en Simulink y SimMechanics, como paso previo al diseno de controladores

en cadena cerrada y a su integracion con el robot real. En la Figura 7.1 se mues-

tra el esquema realizado, teniendo como objetivo que su implementacion sea

identica a la que se hara posteriormente con el sistema real.

7.1 Pruebas de integracion CAD en Matlab 85

Figura 7.1: Control en cadena abierta del robot simulado.

El robot real funcionara de la misma forma, incluyendo el switch necesario

para cambiar el sentido de giro del motor, que sera necesario en el robot real.

7.1.2. Control PID de posicion sobre el simulador del robot Sidemar

El controlador PID es el control mas utilizado en las industrias, por su senci-

llez, dado que no requiere una caracterizacion completa del sistema. Se basa en

combinar 3 terminos (Proporcional, Integral y Diferencial) relacionados con el

error con unas constantes que se pueden determinar a traves de un proceso de

prueba y error. La idea es implementar un control PID en posicion para el siste-

ma simulador del robot Sidemar, aplicarlo al sistema real y al final aplicarlo de

forma simultanea a ambos. Sera necesario crear un controlador PID de posicion

para cada uno de los motores del robot.

En el simulador habra que adaptar los niveles de tension de manera analoga

que se hace en el caso del sistema real, utilizando los bloques necesarios para

86 Resultados experimentales: Pruebas de control

realizar dicha adaptacion: El robot considerado tienen dos motores: un motor

DC de 24 V y otro un DC brushless de 24 V, conectados a sendos drivers de po-

tencia, que elevan la tension de las senales de entrada provinientes del circuito

implementado sobre el microcontrolador de 5 V de corriente continua a 24 V

para hacer posible su control.

Para ajustar el regulador, la senal de error se calcula a partir de la senal de

referencia producida por el generador (Pref ) y de la lectura de los encoders,

(pos) segun la ecuacion:

e(t) = (Pref − pos)

A partir del error, se calcula la accion de control segun la ecuacion:

PID = Kpe(t)×Ki∫e(t)dt×Kd

de(t)dt

La primera prueba realizada fue controlar el simulador del robot con el PID

de posicion ante entrada la onda cuadrada comentada anteriormente. El mo-

delo exportado no incluıa el modelo de los motores, con lo que fue necesario

modelarlos con sus respectivas funciones de referencia obtenidas a partir de sus

caracterısticas tecnicas:

1) Motor brazo 1: Maxon RE 36

Sus datos tecnicos son:

Kt = 36, 4mNm/A,Kv = 263rpm/V, La = 0, 20mH,Jeq = 67, 7gcm2, r2 =

85%, ra = 1, 11ohms,mS = 6.

mS = bj

7.1 Pruebas de integracion CAD en Matlab 87

b = 4,062× 10−5

con lo que se obtiene como funcion de transferencia:

H(s) = Kt×r2(Las+ra)×(Jeqs+beq)+Kt×Kv×r2

H(s) = 3,64×10−2×0,85(2,05×10−4+1,11)×(6,77×−6+4,062×10−7)+3,64×10−2×3,64×10−2×0,85

H(s) = 3,094×10−2

(1,354×10−9s2+7,514×10−6s+1,126×10−3

1) Motor brazo 1: Faulhalber Brushless

Sus datos tecnicos son:

Kt = 9, 8mNm/A,Kv = 974rpm/V, La = 180µH, Jeq = 6, 5gcm−2, r2 =

97%, ra = 2, 1ohms,mS = 14.

mS = bj

b = 9,1× 10−6

con lo que se obtiene como funcion de transferencia:

H(s) = Kt×r2(Las+ra)×(Jeqs+beq)+Kt×Kv×r2

H(s) = 9,8×10−3×0,77(1,8×10−4+2,1)×(6,5×−7+9,1×10−6)+9,84×10−2×9,84×10−2×0,77

H(s) = 7,54×10−2

(1,17×10−10s2+1,365×10−6s+9,305×10−5

Una vez obtenidos dichas funciones de transferencia, anadidos sus bloques

y los de los reguladores PIDs en el esquema de control, tal y como se muestra

88 Resultados experimentales: Pruebas de control

en la Figura 7.2, se procede a ajustar las ganancias Kp,KiyKd, con ayuda de la

representacion grafica de los osciloscopios de Simulink.

Figura 7.2: Control PID en posicion.

En la Figura 7.3 se puede ver como el sistema evoluciona para ajustar la po-

sicion con indicada como referencia (para el caso de esta imagen de 10 grados).

En esta figura se aprecian dos graficas, una por cada motor, que se observan to-

talmente estabilizadas.

7.1 Pruebas de integracion CAD en Matlab 89

Figura 7.3: Senal de referencia y posicion obtenida por los encoders.

La Figura 7.4 es una imagen de SimMechanics del robot controlado en posi-

cion, donde se le dio una consigna de 90 grados en sus dos motores. Como se ve

en la imagen, realmente el robot alcanza la posicion objetivo.

Los valores mejores valores encontrados para el ajuste del regulador fueron:

Motor Inferior: KP = 0,005yKi = 0,3;

Motor Superior: KP = 0,005yKi = 0,02

Figura 7.4: Robot alcanzando la posicion 90o en sus dos eslabones.

castejon
Resaltado
castejon
Resaltado

90 Resultados experimentales: Pruebas de control

7.1.3. Control PID de velocidad en el simulador del robot Sidemar

Sobre el modelo anterior que incluıa las funciones de transferencia de los

motores, se realizo las adaptaciones pertinentes para implementar un regulador

en velocidad. En la Figura 7.5 se muestra la respuesta en velocidad de ambos

brazos obtenida en la simulacion tras el ajuste de los controladores PID .

Figura 7.5: Respuestas en velocidad para referencia de 1 rad/s en ambos eslabones.

En la Figura 7.6 se puede observar el algoritmo de control de velocidad de

los motores juntamente con las funciones de transferencias de los respectivos

motores. Para realizar los ajustes del controlador se tiene que hacer un pequeno

estudio de las respuestas de las funciones de transferencia de dichos motores y

suavizar ası su respuesta, obteniendose el control mostrado en la Figura 7.6. La

velocidad prefijada para los motores fueron de 1 rad/s con una frecuencia de 0.1

Hz, con lo cual la variacion del par final fue entre 0 y 0.18 Nm para el motor 1

y de -0.9 hasta 0.9 Nm para motor 2. En la Figura 7.6 se puede observar el robot

Sidemar girando los dos motores a una velocidad de 1 rad/s tal cual propuesto.

7.2 Hardware de control 91

Figura 7.6: Motores girando a una velocidad de 1 rad/s.

7.2. Hardware de control

A la estructura mecanica del brazo del robot le acompanan los motores co-

mentados, los sensores relativos acoplados a ellos y las reductoras, que son del

tipo Harmonic Drive que proporcionan reducciones distintas para los dos tipos

de motores.

Estos encoders incrementales fueron necesarios utilizarlos debido que estos

motores solamente se pueden comunicar con los drivers si estos encoder estan

conectados. Estos encoders pueden ser leıdos por el software del driver o por

Matlab, pero no existe comunicacion con Simulink. Entonces se penso en uti-

lizar otros dos encoders externos para cerrar un bucle de control en posicion.

Estos encoders son de tipo absolutos y que utilizan un iman para que el micro-

procesador del encoder pueda detectar los pulsos.

Tambien hay dos drivers de potencia para estos dos motores, cada uno ad-

mite un tipo de motor, el driver del motor del eslabon superior es un driver que

admite comunicacion con un motor tipo brushless y el driver del motor inferior

92 Resultados experimentales: Pruebas de control

es un driver que admite comunicacion con un motor de corriente contınua DC,

ambos trabajan a 24 V. Ademas estos drivers pueden ser configurados via soft-

ware, tanto en posicion como en velocidad y tambien puede ser configurados

para que trabajen con PWM o con senales analogicas. Los drivers para hacer

las pruebas de control en tiempo real del robot Sidemar fueron configurados en

posicion y trabajando con senales analogicas debido a facilidad de trabajar con

estas senales.

Como los drivers admiten tensiones de 0 a 10 V, fue necesario utilizar un

circuito integrado tipo CMOS para convertir las senales analogicas de 0 a 3.3 V

generadas por la tarjeta STM32F4 para 0 a 5 V. A su vez, los encoder absolu-

tos empleados para realimentar el hardware de control son de tipo magnetico

y requieren de la colocacion de un iman adherido a los ejes de giro del robot.

Su circuito de lectura esta constituido por un microcircuito que debe situarse

enfrentado al iman. Para ello fue necesario crear algunas piezas que pudieran

sostener estos circuitos cuando los imanes estan pegados en las superficies rota-

tivas, en las Figuras 7.7 y 7.8 se puede ver es piezas. Dichas piezas se realizaron

mediante una impresora 3D.

Figura 7.7: Piezas en el primer eslabon y encoder absoluto instalado.

7.2 Hardware de control 93

Figura 7.8: Piezas en el segundo eslabon y encoder absoluto instalado.

En las Figuras 7.7 y 7.8 se puede observar que estas piezas reducen los

angulos de giro del robot. Esto no afecta a los estudios realizados sobre el robot,

ya que el angulo de giro permitido es superior a los 270o.

Los sensores de posicion comentados y los motores del robot se conectan al

microcontrolador STM32F4 elegido para hacer el control del robot. En la Figura

7.9 se puede ver como estan conectados a la tarjeta los sensores y los drivers del

robot.

El PC de control envıa senales al microcontrolador a traves del puerto USB,

que a su vez recibe las senales de los sensores y envıa senales a los drivers

del robot para que se puedan controlar los motores. Los drivers reciben senales

analogicas del microcontrolador aunque el microcontrolador puede utilizar senales

PWM para el manejo de los drivers, con las que tambien se hicieron pruebas. Se

prefirio trabajar con senales analogicas pues permitıan trabajar con niveles de

tension menor. En la Figura 7.9 se puede ver un pequeno circuito creado para

amplificar la senal generada por la tarjeta.

94 Resultados experimentales: Pruebas de control

Figura 7.9: Microcontrolador STM32F4 conectado a los sensores y drivers de potencia.

7.2.1. Configuracion software del hardware de control

Para probar el funcionamiento de los motores y sensores, el primer paso es

averiguar como se envıa y recibe los datos de la tarjeta del microcontrolador con

Matlab-Simulink. Para ello es necesario configurar los bloques de Simulink para

que admita el envıo y recepcion de datos mediante puerto USB, configurar la

frecuencia de trabajo, configurar los pines para que admita senales de entradas

o salidas analogas o digitales. Tambien habra que estudiar si se tiene necesidad

de utilizar circuitos extras para aumentar la potencia de un senal analogica.

Las pruebas del hardware fueron hechas en dos etapas:

La primera etapa consiste en poner el robot a moverse libremente con

senales analogicas y control en posicion ya seleccionados, es decir, un con-

trol en cadena abierta, no teniendo en cuenta la actuacion de los encoders

absolutos externos al robot para hacer el cierre de bucle de control.

La segunda etapa consiste en cerrar un bucle de control con los encoders

absolutos externos para que el robot pueda saber la posicion exacta a la

que tiene que llegar.

Para concluir estas dos etapas de control para los dos motores, fue de suma

7.2 Hardware de control 95

importancia ajustar los parametros adimitidos por el robot Sidemar con respecto

a la parte hardware y sobre todo la parte de software.

Como dicho anteriormente, la parte de hardware fue configurada para ad-

mitir tensiones de 0 a 5 V y con los drivers trabajando con senales analogicas y

con control en posicion. En cuanto al software de control del robot Sidemar se

explicara de forma mas detallada los pasos para una programacion basica para

un control generico para posteriormente detallarlo para el caso del robot Side-

mar.

En las Figuras 7.10 y 7.11, se pueden ver un algoritmo para configuracion

de la tarjeta para que admita senales analogicas o una PWM (en las pruebas no

se configuraron los drivers para trabajar en PWM), que pueda comunicarse con

dispositivos externos (caso de los encoders absolutos), y tambien para configu-

rar el pin para control de giro de los motores.

Figura 7.10: Configuracion tarjeta STM32F4. Entradas y salidas.

96 Resultados experimentales: Pruebas de control

Figura 7.11: Configuracion tarjeta STM32F4. Bloque USB.

En la Figura 7.10, existen una serie de configuraciones que son importantes

para comunicacion de los dispositivos externos (hardware) para el control (soft-

ware) del robot Sidemar. En esta Figura 7.10 hay seis bloques de Simulink que

son importantes para configuracion de los pines del robot.

Primero: El bloque Target Setup, este bloque es el principal bloque para

configuracion de la tarjeta con la que se esta trabajando. Para tanto hay

que identificar en el proprio bloque la tarjeta STM32F4.

Segundo: El bloque SPI o Master Setup. Este bloque sirve para identificar

cuales son los dispositivos externos (Encoders Absolutos), y cual es el dis-

positivo Master (STM32F4), pero aquı es donde se identifica cuales son los

pines MISO (Master Input, Slave Output) o MOSI (Master Output, Slave

Input) y tambien en CLK (Clock) comun a los dos dispositivos. En este

caso, solamente fueron necesarios definir los pines de CLK y MISO para

comunicacion Tarjeta-Encoder.

Tercero: El bloque Regulador DAC, este bloque regula la salida de la tarjeta

7.2 Hardware de control 97

para que convierta las senales digitales para analogicas para que las mis-

mas sean enviadas a los motores para control de estos. Desde este bloque

hasta el bloque de direccion de sentido de giro del motor, hay que poner un

bloque de memoria para que la tarjeta siempre memorize el primer valor

del ciclo de clock.

Cuarto: El bloque UC3M Basic PWM, este bloque fue creado por Antonio

Caballero debido problemas que habıa entre el bloque anterior creado por

Waijung. Este bloque sirve para enviar datos PWM a los dos motores y

no sera utilizado, pero existe la posibilidad de trabajar con esto tipo de

configuracion.

Quinto: El bloque Digital Output, es el bloque que esta configurado para

dar ordenes de control para que los motores puedan girar hacia un lado

o hacia otro, es decir, este bloque configura el pin para enviar datos para

el circuito CMOS que posteriormente enviara datos por el pin Fault del

driver que ira dar la direccion de giro al motor.

Sexto: El bloque USB VCP Receiver STM32F4, este bloque es el que confi-

gura la forma de envio de informaciones (senales) a dispositivos anexos,

por ejemplo: los motores.

La Figura 7.11 se puede observar otros tres bloques con grandes funcionali-

dades:

El bloque USB VCP Send STM32F4 es el bloque que configura la tarjeta

para que pueda recibir senales externas, por ejemplo: los encoders.

El bloque Read Sensor, este bloque es donde se define los pines de los enco-

ders para que la tarjeta pueda recibir las senales segun estos pines defini-

dos. En la Figura 7.12 se ve los dos pines configurados para recibir senales

de los encoders absolutos. En este caso, como se va a leer dos encoders al

98 Resultados experimentales: Pruebas de control

mismo tiempo, se utilizan las constantes invertidas 1 para un encoder y 0

para el otro debido que las senales deben estar desfasadas para su lectura

alterna.

El bloque Execution Time Profiler, que sirve para saber el tiempo de ejecu-

cion de las tareas para toda la tarjeta.

Figura 7.12: Configuracion Encoder.

En la Figura 7.13 aparecen un bloque nuevo, el SPI Master Read/Write que

sirve basicamente para que la tarjeta pueda leer los datos de los encoders y es-

cribirlos en la propia tarjeta mediante el bloque USB VCP Send.

7.2 Hardware de control 99

Figura 7.13: Bloque de conexion encoder.

Ademas de la configuracion de la tarjeta, tambien es importante saber los

tipos de datos con los cuales se estan trabajando, que dependen del sistema en

cuestion y del tipo de dato que se pueda enviar y recibir por los dispositivos

externos. Y dependiendo del tipo de dato, los valores buscados por la tarjeta a

veces suelen perderse o ser demasiado pequenos y esto puede influenciar en el

control de senales sobre otros dispositivos. Abajo se pone una serie de tipo de

datos que se utilizaron para las pruebas.

100 Resultados experimentales: Pruebas de control

Single: Numeros de coma flotante de 32 bits (4 Bytes). Valores que van de

-3,402823E38 a -1,401298E-45 para valores negativos y de 1,401298E-45 a

3,402823E38 para valores positivos.

Double: Numeros de coma flotante de 64 bits (8 Bytes). Valores de -1,79769313486232E308

a -4,94065645841247E-324 para valores negativos y de 4,94065645841247E-

324 a 1,79769313486232E308 para valores positivos. Normalmente el Matlab

utiliza este tipo automaticamente.

INT 8: Valores enteros de -128 hasta 127.

UINT 8: Valores enteros de 0 hasta 255.

INT 16: Valores enteros de -32768 hasta 32767.

UINT 16: Valores enteros de 0 hasta 65535.

INT 32: Valores enteros de -2147483648 hasta 2147483647.

UINT 32: Valores enteros de 0 hasta 4294967295.

7.3. Pruebas de control en cadena abierta

Para el Control en Cadena Abierta se utilizo un algoritmo simple. Se ha pues-

to los dos encoders en comunicacion con la tarjeta, configurada tal y como se co-

mento anteriormente para recibir estas senales y tambien para enviar datos a los

motores. Para esto se agrego tres bloques de gran importancia para esta prueba

en cuestion.

Bloque Host Serial Setup. Su principal funcion es crear la comunicacion en-

tre la tarjeta y el ordenador para ejecutar ordenes desde el ordenador. Sin

este bloque, los otros dos no pueden funcionar, ademas que, este bloque

debe estar bien configurado con el ordenador.

7.3 Pruebas de control en cadena abierta 101

Bloque Host Serial RX. Funcion de recibir datos por puerto serial des-

de cualquier dispositivo que fue configurado para la tarjeta recibir estas

senales.

Bloque Host Serial TX. Funcion de enviar datos por puerto serial desde la

tarjeta para cualquier dispositivo que fue configurado para la tarjeta enviar

estas senales.

En la Figura 7.14, se pueden ver estos tres bloques, que son los principales

para enviar y recibir datos desde la tarjeta, junto con otros bloques necesarios pa-

ra control y ejecucion ordenes sobre los sistemas externos (motores y sensores).

El esquema se completa con algunos bloques de constantes, sliders y tambien

Switch para control de giro de los eslabones.

Figura 7.14: Configuracion de control en cadena abierta.

102 Resultados experimentales: Pruebas de control

Las cuatro primeras constantes son para mover los motores, se pone en uno

para que el motor este siempre preparado para ejecutar movimiento. Los cuatro

primeros sliders (Analog1, Analog2, PWM M1 y PWM M2) son barras deslizan-

tes para cambiar o la tension (voltaje) de los motores o el ancho de pulso para

la PWM de los motores. En la Figura 7.15 se puede ver el slider del motor 1

ajustado para enviar tensiones de 0 a 3.3 V, aplicado tambien al segundo motor.

Figura 7.15: Slider del Motor 1.

En la Figura 7.14 se muestra dos displays y dos scopes donde se recibe las

senales de los encoders. Se ajusto a UINT 16 porque la senal del encoder es

una cadena de datos de 16 bits sin signo ya que el encoder solamente gene-

rara senales de 0 a 4096 pulsos positivos. Las senales recibidas de los dos enco-

der estan totalmente ajustadas y filtradas.

Figura 7.16: Graficas de las senales de los encoders.

En la Figura 7.14 tambien hay dos componentes para que pueda cambiar el

sentido de giro de los motores (Switch). El cambio de giro se hace mediante dos

7.3 Pruebas de control en cadena abierta 103

constantes una con el valor 1 y otra con el valor cero. Cada una indica un sentido

de giro para los dos motores.

Constante cero: Gira el motor superior a la derecha y el motor inferior a

la izquierda. La figura 7.17 muestra los dos sentidos de giros del primer

eslabon.

Constante uno: Gira el motor superior a la izquierda y el motor inferior a

la derecha. La figura 7.18 muestra los dos sentidos de giros del segundo

eslabon.

Figura 7.17: Motor 1 girando en los dos sentidos.

104 Resultados experimentales: Pruebas de control

Figura 7.18: Motor 2 girando en los dos sentidos.

7.4. Control PID con realimentacion del encoder

De manera analoga a lo comentado para el caso del robot simulado, el si-

guiente paso fue cerrar el bucle de control utilizando como realimentacion la

senal proporcionada por los encoders, utilizando valores de (Kp,KiyKd). simi-

lares a los de simulacion y comprobando las respuestas.

Para ello fue necesario implementar ciertas modificaciones al diagrama de

bloques, que ademas permitiran mas adelante el uso coordinado de la simula-

cion con el robot real.

7.4.1. Pruebas de Control PID con Slider Gain

Las pruebas de control en posicion utilizando sliders gain (barras de ganan-

cia) de Simulink, fueron pruebas donde variando en nivel de la barra lo que

7.4 Control PID con realimentacion del encoder 105

se cambiaba la referencia del encoder en pulsos. La principal idea era probar

distintas referencias a alcanzar por el robot, para comprobar el correcto funcio-

namiento del bucle de control con el mismo PID utilizado sobre el simulador.

En la Figura 7.19 se puede ver el sistema implementado para hacer el control

de posicion cerrando bucle de control con el encoder en tiempo real con dos sli-

ders gain, uno para cada motor.

Figura 7.19: Control PID en posicion con referencia mediante sliders gain.

La Figura 7.19, tiene los bloques comentados anteriormente y que son comu-

nes a todas las arquitecturas de control implementadas con el robot real para

trabajar con los motores y los sensores: Host Serial Setup, Host Serial TX y Host

Serial RX. Ademas se anadieron los bloques especıficos para realizar el control

en posicion. En la figura se ven los dos sliders gain para cambio de las referen-

cias, que se van sumadas a cada uno de los PIDs discretos que iran a gobernar

las senales para que los motores puedan girar hasta encontrar la posicion de re-

ferencia, usando como realimentacion la senal del encoder. La salida del bloque

106 Resultados experimentales: Pruebas de control

PID hacer girar los motores mediante una senal analogica que varia de 0 a 3.3

V y mediante un comparador de paso por cero que produce una senal digital 0

o 1 se activa el switch de cambio de giro del motor, conectado a la senal fault-

referencia del driver y conseguir a si la inversion en los giros del motor.

Para comprobar el funcionamiento del controlador se visualizaron tanto la

senal de control cono la salida del sistema junto con la referencia. Se recuerda

que la senal de los encoders se encuentra sometida a un filtro de la mediana. En

la Figura 7.20 se pueden ver son las senales leıdas por los scopes.

Figura 7.20: Senales sistema de control y de los encoders.

El siguiente cambio introducido en el esquema de control fue juntar las dos

referencias en una, utilizando un unico slider gain para fijar la consigna a los dos

motores y poder interactuar con los dos a la vez, tal y como se muestra en la

Figura 7.21. En la Figura 7.22 se ve los lectores graficos del voltaje de la senal

de control a los dos motores y la senal de entrada al sistema y la respuesta del

mismo.

7.4 Control PID con realimentacion del encoder 107

Figura 7.21: Diagrama de bloques con un unica referencia.

Figura 7.22: Senales del sistema con una unica referencia.

Como en el ejemplo anterior, la acumulacion de errores afectan la estabilidad

del sistema y proporciona una respuesta muy lenta, por lo cual hay que cambiar

los valores para ajustarlos.

108 Resultados experimentales: Pruebas de control

7.4.2. Pruebas de Control PID con Generadores

En esta parte, solo se cambian son los bloques slider gain y las constantes ini-

ciales para iniciar el sistema, por bloques generadores de pulsos para generar

entradas de tipo ondas cuadradas para estudiar la respuesta del sistema ante

una sucesion de cambios de referencia. En la Figura 7.23 se puede ver el dia-

grama de bloques modificado donde se observan los generadores de pulsos de

ondas cuadradas y unos nuevos bloques de constantes. Se anadio una constante

de 2400 pulsos porque el sistema fue fijado para que el iman le diera 2400 pulsos

en el punto central. La amplitud del generador se fijo en 200 (amplitud completa

de onda), con lo cual la amplitud varıa entre 2300 y 2500 pulsos (100 pulsos a

derecha e izquierda con respecto a la posicion central). La frecuencia fue fijada

en 0,1 Hz.

Figura 7.23: Diagrama de bloques con dos generadores de pulsos.

7.4 Control PID con realimentacion del encoder 109

Como se percibe en la Figura 7.24, las senales tiene la misma amplitud. Co-

mo ocurrıa en los casos anteriores, los motores tienen una respuesta muy lenta,

ademas que el acumulo de error sigue siendo un problema.

Figura 7.24: Senales del sistema con generadores de pulsos.

A continuacion, como en el caso anterior, se cambian los dos generadores de

pulsos por un unico generador de pulsos, Figuras 7.25 y 7.26 actuando sobre

los dos motores al mismo tiempo, para observar la respuesta simultanea de los

dos motores ante los mismos cambios continuados. El generador tiene la misma

configuracion de trabajo que los dos generadores funcionando por separado.

Trabajar con los controladores por separado tiene sus ventajas porque es mas

facil estabilizar los sistemas por separado que si se ajusta el sistema conjunta-

mente. Despues de estas pruebas sistema real lo que se puede percibir es que

utilizando, referencias iguales y aplicando los mismos valores de KP ,KiyKd,

los dos motores funcionan de forma parecida. Y con todo el sistema calibrado

de esta manera se puede observar el comportamiento sincronizado de los dos

brazos.

110 Resultados experimentales: Pruebas de control

Figura 7.25: Diagrama de bloques con un unico generador de pulsos.

Figura 7.26: Senales generadas con un unico generador de pulsos.

Como se ve en la Figura 7.27, el sistema funciona correctamente, aunque

todavıa se puede mejorar mas los valores probados empıricamente. Tras ha-

cer pruebas se obtuvieron como parametros del regulador KP = 0,09,Ki =

7.5 Pruebas coordinadas simulador-robot 111

0,0005yKd = 0 no siendo es necesaria la constante derivativa por generar fluc-

tuaciones en el transitorio y ser el error constante en el permanente. Los valores

de las KP yKi, se aplican a los dos motores, al final estamos trabajando con mo-

tores con comportamientos similares, obteniendose resultados de control simi-

lares. En la Figura ?? se puede ver los resultados del sistema tras el ajuste final

despues de hacer el ajuste empırico de las constantes.

Figura 7.27: Senales en posicion obtenidas con el sistema estabilizado.

7.5. Pruebas coordinadas simulador-robot

Para hacer las pruebas coordinadas se emplearon los dos ejemplos anterio-

res. La primera prueba consistio en un control en cadena abierta para comprobar

la efectividad de la conexion robot simulado y robot Sidemar. Posteriormente, a

partir de esta primera prueba, se ejecutara una segunda utilizando los mismos

valores encontrados anteriormente KP yKi y comprobar el funcionamiento de

ambos sistemas con los mismo parametros de control.

112 Resultados experimentales: Pruebas de control

7.5.1. Pruebas coordinadas en cadena abierta

La primera prueba hecha para sistema coordinado, es utilizar el mismo algo-

ritmo de cadena abierta para hacer las pruebas simultaneamente sobre el modelo

del robot y el propio robot. Para ello fue necesario realizar algunos ajustes en los

diagramas de bloques, de manera que ambos pudieran trabajar con los mismos

valores y rangos en las senales.

Figura 7.28: Diagrama de bloques de control coordinado del robot y su modelo.

Como se ve en la Figura 7.28, hay algunos bloques adicionales. Estos bloques

fueron anadidos para que las senales pudieran trabajar a la vez sobre la simula-

cion y el robot real, incluidos ambos como subsistemas del Diagrama de control

principal.

Siendo ası, en las primera pruebas coordinadas, aparecieron varios proble-

mas. Al trabajar el modelo en SimMechanics en la misma pantalla de senales

que los bloques de acceso a la tarjeta, daba errores de compilacion, indicando

error de comunicacion de senales, que no se solucionaban con convertidores de

senales. Posteriormente se agrego al diseno del robot en un bloque de condicion

de Simulink, con la idea era separar fısicamente los bloques de control del simu-

lador de los bloques de control del sistema real, sin conseguir solventar el error.

7.5 Pruebas coordinadas simulador-robot 113

Finalmente se detecto que habıa un problema de sincronismo ya que el simula-

dor no podıa trabajar a la frecuencia requerida por los motores. Fue necesario

anadir un bloque de condicion mas para que el simulador trabajase a una velo-

cidad de 10 Hz y no a los 100 Hz que requerıa el hardware de control.

Finalmente se consiguio el funcionamiento coordinado entre el robot y el mo-

delo de SimMechanics, tal y como se muestra en la Figura 7.29. De esta manera,

cualquier prueba con el simulador puede ser aplicada al sistema real conectando

al mismo tiempo.

Figura 7.29: Robot y simulacion controlados de forma coordinada.

7.5.2. Pruebas coordinadas con control PID

En esta ultima prueba sera utilizara el mismo control PID implementado en

los apartados anteriores, utilizando como senal de referencia el generador ajus-

tado en los casos anteriores. El diagrama de bloques implementado empleaba

como en el caso anterior el envıo separado de senales a la tarjeta y al simulador,

separando la frecuencia de las senales para cada uno de los mismos. En la Figu-

ra 7.30 se observa el diagrama de bloques para el control de forma coordinada

del robot Sidemar y su modelo en SimMechanics.

114 Resultados experimentales: Pruebas de control

Figura 7.30: Diagram de bloques para control coordinado con PID.

En las Figuras 7.31, 7.32 y 7.33 se muestra una secuencia de imagenes que

representa una serie de movimientos del robot Sidemar funcionando al mismo

tiempo que el simulador. El control en posicion utilizado emplea generadores de

pulsos de ondas cuadradas para cada uno de los motores, como en las pruebas

realizadas con el robot real por separado, de amplitud de 200 pulsos, variando

entre las posiciones de 2300 y 2500.

7.5 Pruebas coordinadas simulador-robot 115

Figura 7.31: Secuencia de posiciones del control coordinado robot-simulacion-I.

Figura 7.32: Secuencia de posiciones del control coordinado robot-simulacion-II.

Figura 7.33: Secuencia de posiciones del control coordinado robot-simulacion-III.

116 Resultados experimentales: Pruebas de control

Capıtulo 8Conclusiones y Trabajos Futuros

En este capıtulo se comentan las conclusiones de este trabajo y se proponen

posibles mejoras y ampliaciones del mismo.

8.1. Conclusiones

La motivacion principal de este Trabajo Fin de Master era hacer estudios de

diferentes tecnologıas para lograr la coordinacion del robot Sidemar real con el

simulador creado para este mismo robot y tambien agregar ciertos controles co-

mo el controlador PID de posicion conseguir situar al robot dentro de su espacio

de trabajo.

Desde principio fue de suma importancia estudiar el robot Sidemar, por-

que fue creado de tal manera, cuales serıan las ventajas y inconvenientes de

utilizar una estructura tal cual planteada. En paraeleo se fue analizando algu-

nas tarjetas de control de diferentes tipos. Al final, la que mejor se adapto fue la

STM32F4 debido a facilitad de trabajo, sobre todo con Simulink.

118 Conclusiones y Trabajos Futuros

Para poder realizar el estudio y control en SimMechanics, que es un herra-

mienta con un gran potencial para control de sistemas mecanicos, hacıa falta

integrar el modelo del robot en dicha herramienta. SimMechanics tiene ciertas

limitaciones en cuanto al crear disenos en 3D de forma realista, con lo que en-

tonces fue necesario la ayuda del software Inventor para crear en diseno por

completo en 3D e incorporar restricciones al movimiento de los eslabones, incor-

porar parametros como peso, acciones de la gravedad, posicion inicial del robot

y eslabones, etc. Ademas, con el robot disenado en Inventor, se podıa introdu-

cir fuerzas que permitieron hacer tambien unos primeros analisis de tensiones,

flexiones, momentos etc. Todos estos parametros pueden ser anadidos al diseno

creado en Inventor y posteriormente exportados a SimMechanics, resultando en

un diseno mas realista, tal cual el robot Sidemar real. Todo esto puede ser apli-

cado a cualquier tipo de sistema en SimMechanics.

Otros importantes estudios fueron hechos en cuanto a la utilizacion de soft-

wares CAD/CAM para trabajar en Matlab, decidiendo que el mas adecuado era

el Inventor, debido a ser una herramienta completa totalmente concebida para

sistemas mecanicos. Ademas la herramienta mostraba conectividad directa con

Matlab via exportacion de ficheros XML para creacion del modelo en el soft-

ware SimMechanics, a traves se un software que puede ser descargado de la

pagina web de Matlab. Se estudio tambien otro programa para exportar disenos

en 3D a Matlab, el SolidWorks, pero presentaba como inconveniente que Solid-

Works tiene sus ficheros propios y daba problemas a la hora de la conversion de

sus ficheros a otros programas. Inventor, como es un herramienta completa de

mecanica y creada por Autodesk, tiene compatibilidad con varios otros software

de Autodesk, como AutoCad, siendo su conversion de ficheros menos compli-

cada.

8.1 Conclusiones 119

Para modelar el sistema robotico Sidemar fue necesario hacer algunos estu-

dios previos de la propria estructura del robot y tambien delimitar hasta donde

se podrıa disenar el sistema, es decir, las reductoras tipo harmonic drive de los

dos motores no fueron disenadas internamente, con lo cual la limitacion cuanto

a precision del robot Sidemar real y el Simulador del robot muestra un desfase,

aunque resulta casi inapreciable trabajando a la vez con el robot. Esto puede ser

corregido modelando las reductoras e incorporarlas al modelo.

En primer lugar se procedio a estudiar las posibilidades de analisis de robots

que ofrecıa Matlab. La mejor opcion encontrada para este analisis fue la utiliza-

cion de la Robotics Toolbox creada por Peter Corke. Esta toolbox tiene como venta-

ja hacer los estudios cinematicos de robots generales sin muchas complicaciones,

es decir, no es necesario hacer tantos calculos para saber la cinematica directa y

inversa del robot, sino que la propria toolbox facilita esto a el programador del

robot. En este trabajo fueron calculadas las cinematicas tanto directamente con

Matlab como con la toolbox mencionada, y con ambos llegaron a los mismo re-

sultados. La toolbox estudiada, a parte de la facilidad de calculo, incorpora una

herramienta que genera una interfaz grafica del robot que facilita el estudio y

visualizacion del robot, permitiendo trabajar con algoritmos mas complicados

como planificadores de trayectorias, dinamicas del robot, calculo de velocida-

des, etc.

Entre las tarjetas analizadas (Arduino, PCLAB, Keiltley y STM32F4), en to-

das ellas siempre se encontraba limitaciones generales, debido que en este tra-

bajo el uso del Simulink era de suma importancia. Arduino fue la tarjeta que

mas se acercaba a lo pretendido en este proyecto, per fue excluido debido la baja

frecuencia de las senales de trabajo, y que no todas las tarjeta Arduino tienen

conectividad con Simulink. La PCLAB se mostraba como una buena opcion, pe-

ro presentaba el inconveniente de su conexion vıa bus interno al computador, lo

120 Conclusiones y Trabajos Futuros

que limitaba sus posibilidades de uso y portabilidad. La tarjeta Keiltley solven-

taba este problema, pero presentaba problemas de conectividad con Simulink.

Por ultimo se encontro la posibilidad de utilizar la STM32F4 que es una tarjeta

de bajo coste, del mismo tamano que la Arduino, pero que tiene gran capaci-

dad de memoria, con gran velocidad de respuesta debido a la alta frecuencia

de trabajo y ademas tenia conexion con Simulink. Dicha conectividad fue poste-

riormente mejorada debido a creacion de nuevos bloques de Simulink.

La integracion del Matlab-Simulink con el robot Sidemar real se consiguio de

forma completa, una vez seleccionada la tarjeta para el control en tiempo real

del sistema. La tarjeta STM32F4 fue mapeada por Antonio Caballero para que

pudiera aceptar comunicacion de la propria tarjeta con el ordenador mediante

uso de Simulink. Como se sabe, la xPC target de Simulink es un poco limitada

apareciendo restricciones en cuanto a manejo de tarjetas y versiones de distintos

fabricantes. Una de las ideas iniciales de este trabajo era evitar estas limitaciones

y tener mas flexibilidad de trabajo con el robot. Para realizar el control fueron

probados dos tipos diferentes, un control para los motores en cadena abierta y

un control en cadena cerrada, realizando el control en posicion del los motores

cerrando el bucle de control con los encoders.

El estudio de la integracion del robot simulado y del robot real, uno de los ob-

jetivos iniciales de este trabajo, presento inicialmente problemas, ya que a parte

de la adaptacion de senales en Simulink, la frecuencia de trabajo de SimMecha-

nics diferıa de la de trabajo de la tarjeta. La solucion fue poner un bloque que

adecuara la frecuencia de trabajo de SimMechanics, permitiendo la visualiza-

cion grafica en SimMechanics. La coordinacion del robot real y del robot simu-

lado fueron probadas con un controlador PID realimentando en posicion.

La ventaja de este sistema que permite trabajar de forma coordinada es que

8.2 Trabajos futuros 121

algoritmos y controladores pueden ser aplicados tanto sobre el robot simulado

como sobre el robot real. El sistema permite hacer pruebas de reguladores y al-

goritmos sobre el modelo del robot, y ser probados inmediatamente en el robot

real. Ademas de ser util para el estudio y control de robots reales, se muestra

como una potente herramienta docente donde el alumno puede hacer estudios

sobre el robot en su casa y posteriormente hacer las comprobaciones den el la-

boratorio. Esta primera fase de aprendizaje ademas evita choques o fallos del

robot. El bajo coste de los sistemas de control facilita la posibilidad de replicar

los prototipos de practicas, y la arquitectura de control confiere una gran porta-

bilidad al conjunto robot-controlador.

Aparte de los estudios comentados, fue necesario el implementar el hard-

ware de control, que incluıa el cableado de sensores y actuadores, que requi-

rio hacer, a parte de los circuitos de cableado, piezas de acople para los nuevos

sensores incorporados. Dichas piezas se hicieron mediante impresion 3D.

8.2. Trabajos futuros

Tras la consecucion de este trabajo, aparecen muchas lıneas en las que se pue-

den seguir trabajando. En un primer bloque de propuestas se incluyen aquellas

que serıan necesarias para completar el hardware del sistema de control:

Mejoras del diseno del sistema de sujecion de los sensores. Se puede mejo-

rar la estructura que sostiene los encoders, porque actualmente no permite

que el robot tenga libertad completa de giro.

Completado de la etapa de potencia, que permita adaptar la tension de

salida del microcontrolador a las diferentes especificaciones de los drivers

de potencia.

Cambiar los drivers de potencia por otros de menor coste, ya que el micro-

controlador es capaz de cerrar bucles en velocidad y en posicion leyendo

122 Conclusiones y Trabajos Futuros

directamente la senal de los encoders.

A continuacion se proponen un segundo bloque de propuestas con la idea

de ampliar las posibilidades del sistema propuesto:

Aumentar la sensorizacion del robot incorporando acelerometros u otro

tipo de sensores, integrando sus senales en Matlab y Simulink, ofreciendo

nuevas posibilidades de analisis y control.

Control de otro tipo de variables, como por ejemplo la velocidad.

Implementacion de otras tecnicas de control: logica borrosa, redes neuro-

nales o control adaptativo.

Incorporar las tecnicas de analisis de cinematica estudiadas para que tra-

bajen conjuntamente con el robot real.

Ampliar los estudios mecanicos sobre el robot y sus componentes.

Completar el robot con actuadores y sensores como camaras de vision,

estudiando y ampliando sus funcionalidades.

Ampliar el sistema propuesto a nuevas plataformas roboticas.

Por ultimo, desde el punto de vista docente, se podrıa trabajar en la linea

completar e implementar nuevas funcionalidades al sistema que permitan:

Estudio de las posibilidades curriculares del sistema propuesto.

Diseno de practicas de control de robots.

Diseno de practicas de analisis mecanico de robots.

Diseno de practicas de control de sistemas donde se aprovechen algunas

de las caracterısticas de la plataforma.

8.2 Trabajos futuros 123

Aumentar las posibilidades docentes mediante la incorporacion en un sis-

tema de laboratorios remotos.

El trabajo realizado abre las posibilidades comentadas, quedando una pla-

taforma disponible y extensible para otro tipo de aplicaciones que se puedan

considerar o puedan surgir con el tiempo.

124 Conclusiones y Trabajos Futuros

Referencias

Armando, C. (2009). Teorias de falla bajo cargas estaticas (Tesis Doctoral no publi-

cada). Departamento de Ingenieria Mecanica, Universidad de Salamanca.

Bajrami, X., Shala, A., Likaj, R., y Dermaku, A. (2013, Julio). New methods for

modeling of a humanoid robot archie. Internaticonal Journal of Current Enginee-

ring and Technology.

Barrientos, A., y Balaguer, C. (2007). Fundamentos de robotica (2.a ed.). Editora

MCGRAW-HILL INTERAMERICANA DE ESPANA S.A.

Caglav, E. (2006). A snake-like robot for searching, cleaning passages from debris and

dragging victims (Tesis Doctoral no publicada). The Graduate School of Natural

and Applied Science of The Middle East Technical University.

Castejon, C., Carbone, G., Prada, J. C., y Ceccarelli, M. (2011). A multi-objective

optmization design for a 4r service robot (Tesis Doctoral no publicada). Universi-

dad Carlos III de Madrid.

Castejon, C., Carbone, G., Prada, J. C. G., y Ceccarelli, M. (2010, Marzo). A

multi-objective optmization of a robotic arm for service tasks. Journal of Mecha-

nical Engineering, 316-329.

castejon
Resaltado
como es posible??? debería estar en TESEO????
castejon
Resaltado

126 REFERENCIAS

Corke, P. (2013). Software for robotics, vision and other things. Descargado 07-09-

2013, de http://petercorke.com/Home/Home.html

Cruz, P. M. (2012). Haptic interface data acquisition system (Tesis de Master no

publicada). University of Aveiro.

de Castro, F. S. (2013). Apostila basica de autocad. Descargado 12-08-2013, de

http://www.apostilando.com/download.php?cod=3003

de Jalon, G., Rodriguez, J. I., y Vidal, J. (2005). Aprenda matlab 7.0 - como si

estuviera en primero. Universidad Politecnica de Madrid.

de Tena, F. J. C. (2011). Estimacion de la posicion del robot sidemar (Tesis Doctoral

no publicada). Universidad Carlos III de Madrid.

Dung, L. T., Kang, H.-J., y Ro, Y.-S. (2010, Octubre). Robot manipulator mode-

ling in matlab-simmechanics with pd control and online gravity compensation.

En International forum on strategic technology (ifost).

F., A. C. (2014). Uc3m bloques addon. Descargado 06-01-2014,

de http://aimagin.com/forum/viewtopic.php?f=2&t=257&hilit=

uc3m&sid=0e026fc843d53195f7ba95838dc514b7.

Fatehi, M. H., Vali, A. R., Eghtesad, M., y Fatehi, A. A. (2011, Diciembre). Mode-

ling and control of 3-prs parallel robot and simulation based on simmechanics

in matlab. En 2nd international conference on control, instrumentation and automa-

tion (iccia) (p. 775-790).

Gebrehiwot, W. Z. (2009/2010). Design and control of a five bar linkage parallel ma-

nipulator with flexible arms (Tesis Doctoral no publicada). Politecnico Di Milano,

Polo Regionale Di Lecco.

Haughey, B. (2011). Simulation and optimization of a two degree of freedom, planar,

parallel manipulator (Tesis Doctoral no publicada). University of Wellington.

castejon
Resaltado
Proyecto fin de carrera
castejon
Resaltado

REFERENCIAS 127

Houcque, D. (2005). Introduction to matlab for engineering students. Northwestern

University.

Lab, R. (2013). Laboratorio de robotica uc3m. Descargado 07-09-2013, de http://

roboticslab.uc3m.es/roboticslab/

Leal, R. (2014). Diseno digital 3d autodesk inventor. Descargado 03-01-2014, de

http://disedigital3d.blogspot.com.es/

Matlab. (s.f.). El lenguaje de calculo tecnico. Descargado de http://www

.mathworks.com/

Morales, J. H. G. (2013). Autocad - conceptos, caracteristicas, pantalla, aplicacio-

nes y conclusiones. Descargado 15-08-2013, de http://docente.ucol.mx/

jgmorales/TAREA3.htm

Peces, N. D. (2006). Arquitectura hardware del banco de ensayos del sistema sidemar

(Tesis Doctoral no publicada). Universidad Carlos III de Madrid.

Ramos, R. O. (2008). Capitulo 4: Herramientas de matlab. Universidad de las

Americas Puebla.

Shah, H. L. (2011). Kinematic, dynamic and workspace analysis of a novel 6-dof pa-

rallel manipulator (Tesis Doctoral no publicada). Faculty of the Graduate School

of the University at Buffalo, State University of New York.

STMicroelectronics. (2013). Stm32f4 discovery - discovery kit for stm32f407/417

line. Descargado 08/08/2013, de http://www.st.com/st-web-ui/

static/active/en/resource/technical/document/data brief/

DM00037955.pdf

Teodoro, D. (2007). Humanoid robot − development of a simulation environment

of an entertainment humanoid robot (Tesis Doctoral no publicada). Universidade

Tecnica de Lisboa.

REFERENCIAS

Tlale, N. S., y Zhang, P. (2005a). Teaching the design of parallel manipulator

and their contollers implementing matalab, simulink, simmechanics and cad.

Internaticonal Journal Engineering(5), 838-845.

Tlale, N. S., y Zhang, P. (2005b). Teaching the design of parallel manipulator

and their contollers implementing matalab, simulink, simmechanics and cad.

Internaticonal Journal Engineering(21), 838-845.

V., S. J. D. (2012). Diseno y simulacion de un robot manipulador industrial tipo puma

capaz de levantar pesos de hasta 20 kg (Tesis Doctoral no publicada). Facultad

Ingenieria Mecanica, Universidad de Escuela Politecnica Nacional, Quito.

Yang, C., Ye, Z., Peter, O. O., y Han, J. (2010, Julio). Modeling and simula-

tion of spatial 6-dof parallel robots using simulink and simmechanics. En 3rd

ieee international conference on computer science and information technology (iccsit)

(p. 444-448).

Yu, L., Zhang, L., Zhang, N., y Yang, S. (2010, Julio). Kinematics simulation and

analysis of 3-rps parallel robot on simmechanics. En Ieee internatonal conference

on information and automation (icia) (p. 2363-2367).

castejon
Resaltado

Anexo ACodigo desarrollado

A.1. Cinematica directa eslabon 1

———

clear all

syms q1 L1 real

A=[cos(q1) -sin(q1) 0 0; sin(q1) cos(q1) 0 0; 0 0 1 0; 0 0 0 1]

B=[1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1]

C=[1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1]

D=[1 0 0 0; 0 cos(pi/2) -sin(pi/2) 0; 0 sin(pi/2) cos(pi/2) 0; 0 0 0 1]

E1=A*B*C*D

A.2. Cinematica directa eslabon 2

———

clear all

syms q2 L2 a2 real

A=[cos(q2) -sin(q2) 0 0; sin(q2) cos(q2) 0 0; 0 0 1 0; 0 0 0 1]

II Codigo desarrollado

B=[1 0 0 a2; 0 1 0 0; 0 0 1 0; 0 0 0 1]

C=[1 0 0 0; 0 1 0 0; 0 0 1 L2; 0 0 0 1]

D=[1 0 0 0; 0 cos(0) -sin(0) 0; 0 sin(0) cos(0) 0; 0 0 0 1]

E2=A*B*C*D

A.3. Cinematica directa robot completo

———

clear all

A=[cos(0) 0 sin(0) 0; sin(0) 0 -cos(0) 0; 0 1 0 0; 0 0 0 1]

B=[cos(0) -sin(0) 0 301*cos(0); sin(0) cos(0) 0 301*sin(0); 0 0 1 265; 0 0 0 1]

C=A*B

A.4. 5.4 Cinematica directa con Toolbox

———

% Create links

L(1) = Link([0 0 0 pi/2]);

L(2) = Link([0 265 301 0]);

L two link = SerialLink(L,′ name′,′Robot Sidemar′);

two link

mdl twolink

two link

twolink.n

links = two link.links

clone = SerialLink(two link,′ name′,′ bob′)

two link.fkine([00])

two link.plot([00])

A.5 Giro de 90 grados en ambos eslabones III

A.5. Giro de 90 grados en ambos eslabones

———

two link.fkine([pi/2pi/2])

link.plot([pi/2pi/2])

A.6. Algoritmo cinematica directa con interfaz grafica

———

% initialize

clear all; close all; clc

% Define numerical values of the robot

a2 = 301;

d2 = 265;

Create links

L(1)= Link(’d’,0,’a’,0,’alpha’,pi/2);

L(2)= Link(’d’,d2,’a’,a2,’alpha’,0);

% Create robot object

Robot Sidemar = SerialLink(L);

Robot Sidemar.name =′ RobotSidemar′;

Robot Sidemar.teach

IV Codigo desarrollado

A.7. Calculo del espacio de trabajo

———

xlabel(’X (in inch)’);

ylabel(’Y (in inch)’);

zlabel(’Z (in inch)’);

title(’Workspace of Robot Sidemar’);

hold on;

N=30

for i= 1:N+1

for j= 1:N+1

TR = two link.fkine([pi ∗ (i− 1)/Npi ∗ (j − 1)/N + pi/2]);

SURF(i,j,:) = TR(:,4);

end

end

surf(SURF(:,:,1), SURF(:,:,2), SURF(:,:,3));

A.8. Cinematica inversa

———

% Create links

L1 = Link([0 0 0 pi/2 0 0]);

L2 = Link([0 265 301 0 0 0]);

R=SerialLink([L1,L2]);

R.name=(’RobotSidemar’);

p0 = [0 0]

Cd0=R.fkine(p0)

M = ([1 1 0 0 0 0])

NOAP1 = R.fkine(p0);

A.9 Cinematica inversa con giro de 90 grados en primer eslabon V

Q1 = R.ikine(NOAP1, p0, M)

A.9. Cinematica inversa con giro de 90 grados en primer

eslabon

———

p0 = [pi/2 0]

Cd0=R.fkine(p0)

M = ([1 1 0 0 0 0])

NOAP1 = R.fkine(p0);

Q1 = R.ikine(NOAP1, p0, M)

A.10. Representacion grafica del giro de 90 grados en pri-

mer eslabon

———

two link.fkine([pi/20])

two link.plot([pi/20])

A.11. Trayectorias aleatorias

———

% teach(two link) Q0 = (2*rand(1,2)-1)*pi;

T0 = two link.fkine(Q0);

% two link.plot(Q0)

VI Codigo desarrollado

Qrandom = (2*rand(1,2)-1)*pi;

Trandom = two link.fkine(Qrandom);

QF = two link.ikine(Trandom,Qrandom+ 0,2 ∗ rand(1, 2), [110000]);TF = two link.fkine(QF );

% difference in joint angles

Qrandom-QF

Trandom-TF

A.12. Trayectoria circular

———

% two link.plot(QF );

TRAJ = jtraj (Q0, QF, (0:.05:1));

two link.plot(TRAJ);

Q0 = [0 0];

T0 = two link.fkine(Q0);

Q1 = [pi/2 pi/2];

T1 = two link.fkine(Q1);

Q2 = [3*pi/4 0];

T2 = two link.fkine(Q2);

Q3 = [pi/2 -pi/2];

T3 = two link.fkine(Q3);

Q4 = [0 0];

T4 = two link.fkine(Q0);

% two link.plot(QF );

TRAJ1 = jtraj (Q0, Q1, (0:.05:1));

two link.plot(TRAJ1);

A.12 Trayectoria circular VII

TRAJ2 = jtraj (Q1, Q2, (0:.05:1));

two link.plot(TRAJ2);

TRAJ3 = jtraj (Q2, Q3, (0:.05:1));

two link.plot(TRAJ3);

TRAJ4 = jtraj (Q3, Q4, (0:.05:1));

two link.plot(TRAJ4);