tesis fin de máster/tese final de mestrado - arquitectura hardware-software para diseÑo, anÁlisis...
TRANSCRIPT
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
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
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.
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
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.
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.
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.
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.
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.
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,
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
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).
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,
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.
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
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.
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
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.
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
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.
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
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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).
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);