0% encontró este documento útil (0 votos)
34 vistas103 páginas

Control Maxon Matlab

a

Cargado por

jednsa
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
34 vistas103 páginas

Control Maxon Matlab

a

Cargado por

jednsa
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Comunicacin y control de las

articulaciones de un exoesqueleto

Titulacin: Ingeniero Industrial


Alumno/a: Jos Antonio Parra Aznar
Director/a/s: Dr. Javier Molina Vilaplana
Dr. Jorge Feliu Batlle

Cartagena, 18 de Diciembre de 2015


Comunicacion y control de las articulaciones de un exoesqueleto

Agradecimientos

En primer lugar, y como personas mas importantes en mi desarrollo personal y profesional,


agradecer a mi padre, a mi madre y a mi hermana. Estas personas me han ayudado, han
apoyado y soportado toda la carga que supone realizar una formacion superior, y en concreto,
este proyecto. Mencionar tambien a D. Pedro A. Parra, una persona que me ha apoyado en
todo lo relacionado a mi formacion y apoyado en todo lo referente a este proyecto. No quisiera
dejar de agradecer a una persona muy importante en mi vida, una persona que siempre estara
en mi recuerdo y que ha sido un gran apoyo todos estos anos, Gracias Abuela.

Agradecer al Dr. Javier Molina Vilaplana su tiempo y dedicacion como director de este pro-
yecto, as como sus consejos, apoyo y motivacion recibida durante el proyecto. Agradecer tam-
bien al departamento de la Universidad Politecnica de Cartagena de Ingeniera de Sistemas y
Automatica, a todo su personal y en especial al Dr. Jorge Feliu Batlle por su colaboracion.

En tercer lugar, agradecer al grupo de investigacion NEUROCOR, en especial a su investi-


gador responsable D. Juan Lopez Coronado por cederme sus instalaciones para la realizacion
de este proyecto, y por su incansable apoyo y animo recibido.

Por ultimo, y no menos importante, agradecer a todas aquellas personas que me han ayu-
dado tanto personal como profesional y que es imposible mencionar a todas, ya que han sido
numerosas las personas que de alguna forma u otra me han apoyado en este proyecto. De todas
estas personas, agradecer en especial a la Ingeniera Industrial Dona Esther Conesa Garca, por
su incansable apoyo y comprension durante todos los anos de formacion, y en especial durante
la realizacion de este proyecto.

Universidad Politecnica de Cartagena 3


Indice
1. Introduccion 11
1.1. Exoesqueletos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2. EXOLEGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.3. Hadware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2. Desarrollo de Algortmo de comunicacion con Hadware 29


2.1. Comunicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2. Modos de operacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3. Propiedades del objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4. Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.5. Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3. Resultados 55
3.1. Conexion y Comunicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.2. Sintonizacion de PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.3. Movimiento de un motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.4. Movimiento simultaneo de dos motores . . . . . . . . . . . . . . . . . . . . . . . 66
3.5. Movimiento independiente de dos motores . . . . . . . . . . . . . . . . . . . . . 71
3.6. Movimiento de cadera y rodillas . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.7. Modelo propuesto para la simulacion del Exoesqueleto . . . . . . . . . . . . . . 77
3.8. Problemas y limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.9. Mejoras propuestas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.10. Trabajos futuros respecto a algortmos de control . . . . . . . . . . . . . . . . . 85

4. Anexos 87
4.1. Flujograma de funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.2. Algortmo de programacion en Matlab . . . . . . . . . . . . . . . . . . . . . . . 89
4.3. Algortmo de programacion en Simulink . . . . . . . . . . . . . . . . . . . . . . 92
4.4. Hojas de caractersticas Maxon . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Comunicacion y control de las articulaciones de un exoesqueleto

Indice de figuras
1. Prototipo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2. Engranaje conico helicoidal 3:1. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3. Modos de operacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4. Perfil de posicion, Trapezoidal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5. Perfil de posicion, Senoidal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6. Perfil de velocidad, Trapezoidal. . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7. Perfil de velocidad, Senoidal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
8. Homing Mode, Trapezoidal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9. Homing Mode, Senoidal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
10. Interpolated Position Mode, Ejemplo de interpolacion. . . . . . . . . . . . . . . 36
11. Master Encoder Mode, Ejemplo de funcionamiento. . . . . . . . . . . . . . . . . 37
12. Step Direction Mode, Ejemplo de funcionamiento. . . . . . . . . . . . . . . . . . 37
13. Tipos de datos, Descripcion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
14. Ejemplo de la clase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
15. Rutina de funcionamiento en Matlab. . . . . . . . . . . . . . . . . . . . . . . . . 42
16. Diagrama de bloques generico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
17. Condiguracion Level-2 Matlab S-Function. . . . . . . . . . . . . . . . . . . . . . 51
18. Diagrama de bloques generico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
19. Rutina de operacion completa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
20. Parametros del bloque S-Function. . . . . . . . . . . . . . . . . . . . . . . . . . 53
21. Esquema de funcionamiento PID . . . . . . . . . . . . . . . . . . . . . . . . . . 58
22. Respuesta con controlador P=520, I=12 y D=3. . . . . . . . . . . . . . . . . . . 61
23. Respuesta con controlador P=520, I=100 y D=100. . . . . . . . . . . . . . . . . 62
24. Respuesta con controlador P=1000, I=100 y D=100. . . . . . . . . . . . . . . . 62
25. Modelo de 1 motor en Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
26. Movimiento de un Motor ante un tren de pulsos. . . . . . . . . . . . . . . . . . . 64
27. Movimiento de un Motor ante un escalon. . . . . . . . . . . . . . . . . . . . . . 65
28. Diagrama de bloques de dos motores simultaneos. . . . . . . . . . . . . . . . . . 66
29. Parametros de entrada del bloque motor. . . . . . . . . . . . . . . . . . . . . . . 67
30. Movimiento de dos motores de forma simultanea. . . . . . . . . . . . . . . . . . 67
31. Movimiento de dos motores de forma simultanea con carga. . . . . . . . . . . . . 68
32. Parametro de configuracion del tipo de motor. . . . . . . . . . . . . . . . . . . . 69

Universidad Politecnica de Cartagena 7


Comunicacion y control de las articulaciones de un exoesqueleto

33. Motor en estado de error a 30 grados aproximadamente. . . . . . . . . . . . . . 69


34. Movimiento de las rodillas simultaneamente. . . . . . . . . . . . . . . . . . . . . 70
35. Desviacion maxima permitida en la cadera. . . . . . . . . . . . . . . . . . . . . . 71
36. Movimiento independiente a ambos lados de la cadera. . . . . . . . . . . . . . . 72
37. Movimiento independiente a ambos lados de la cadera. . . . . . . . . . . . . . . 73
38. Modelo de Simulink para Rodillas y Cadera. . . . . . . . . . . . . . . . . . . . . 74
39. Movimiento de Rodillas y Cadera. . . . . . . . . . . . . . . . . . . . . . . . . . . 75
40. Comportamiento de los motores ante un acto de levantarse. . . . . . . . . . . . . 76
41. Modelo de Simulink del exoesqueleto. . . . . . . . . . . . . . . . . . . . . . . . . 77
42. Espacio disponible para realizar pruebas. . . . . . . . . . . . . . . . . . . . . . . 79
43. Limitacion de carga de los motores de la rodilla. . . . . . . . . . . . . . . . . . . 80
44. Limitacion de movimientos del prototipo. . . . . . . . . . . . . . . . . . . . . . . 81
45. Regulador averiado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
46. Red de comunicacion, protocolo CANOpen. . . . . . . . . . . . . . . . . . . . . 82
47. Posible mejora de diseno. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
48. Trayectoria de levantarse y sentarse, Karlj y Bajd (1989). . . . . . . . . . . . . 85

Universidad Politecnica de Cartagena 8


Comunicacion y control de las articulaciones de un exoesqueleto

Resumen y objetivos del Proyecto

Desde el departamento de Sistemas y Automatica y en colaboracion con el grupo de inves-


tigacion NEUROCOR se propuso un proyecto basado en un exoesqueleto. El proyecto que se
propuso se trataba de controlar las articulaciones de un prototipo dado. El proyecto se engloba
dentro de un proyecto europeo llamado EXOLEGS.

El prototipo a controlar simula el tren inferior de un ser humano, este prototipo incluye las
articulaciones de la cadera, rodillas y tobillos. Este proyecto esta orientado a personas mayores
y rehabilitacion, por lo tanto, el prototipo tiene que ser capaz de realizar movimientos basicos
para los seres humanos.

Se planteo la posibilidad de hacer el proyecto en Matlab debido a que este se trata de


un software matematico muy potente, y dispone de la herramienta de Simulink para realizar
simulaciones dinamicas. El primer objetivo se trata de adaptar la librera del fabricante de los
controladores a lenguaje Matlab ya que no se dispone de comunicacion con dicho software. Una
vez modificada la librera y conseguida una comunicacion es el momento de realizar las rutinas
de programacion necesarias y optimas para el control de cada una de las articulaciones. Todo
el protocolo de comunicacion se va a realizar mediante USB.

En segundo lugar se tiene que realizar una comunicacion completa en la que se habilite el
controlador. Para poder habilitar el controlador se necesita configurar cada uno de sus parame-
tros, as como el modo de funcionamiento, sensores, motores... Para toda esta parametrizacion
se tiene que realizar una o varias clases con todas las propiedades necesarias, de esta forma se
podra modificar todo de una forma mas sencilla y eficaz.

Para realizar el control del exoesqueleto se tienen que estudiar cada uno de los modos de
operacion disponible posibles y elegir el que mas se adecue a el criterio establecido. Una vez
elegido el modo de operacion, para el control, se va a usar el controlador interno PID que
dispone el controlador. La sintonizacion de este PID se llevara a acabo de forma teorica y
experimental en vaco, y se comprobara con carga.

Para una simulacion completa se necesita realizar un diagrama de bloques en Simulink. Para
la simulacion de las articulaciones se va a proporcionar una entrada de posicion en grados. El
diagrama de bloques tiene que estar optimizado para que se puedan anadir y quitar motores

Universidad Politecnica de Cartagena 9


Comunicacion y control de las articulaciones de un exoesqueleto

de una forma facil y rapida, sin necesidad de reprogramar todo el codigo. Para el analisis de
resultados se dispondra de una salida en tiempo real que comparara la posicion objetivo con
la posicion real frente a un tiempo. En el diagrama de bloques se ha de ser capaz de poder
modificar parametros de los motores, tipos de motor e identificadores de cada controlador.

Para el proyecto se va a usar el prototipo inicial del proyecto EXOLEGS, esto no quiere decir
que esta configuracion sea la definitiva, por tanto, como objetivo principal de este proyecto, se
plantea una rutina de comunicacion en Simulink capaz de realizar labores de control y analisis
de la respuesta del exoesqueleto ante diferentes entradas. Este modelo tiene que ser capaz de
mediante parametros modificar los diferentes cambios que se puedan realizar en el prototipo
del exoesqueleto final, relacion de transmision, cambios de motor, cambios de identificadores...

En resumen, los objetivos del proyecto seran los siguientes:

1. Compatibilidad de librera del fabricante con lenguaje Matlab

2. Conexion y comunicacion con la controladora

3. Sintonizacion del PID

4. Modelo en Simulink optimo

5. Simulacion en tiempo real

6. Problemas y mejoras

El proyecto se realizara en su totalidad en la Universidad Politecnica de Cartagena, en el


laboratorio del grupo de investigacion NEUROCOR, en este laboratorio se dispondra de to-
do lo necesario para la realizacion del proyecto: CPU, controladores, prototipo, manuales del
fabricante...

Universidad Politecnica de Cartagena 10


Comunicacion y control de las articulaciones de un exoesqueleto

1. Introduccion

Universidad Politecnica de Cartagena 11


Comunicacion y control de las articulaciones de un exoesqueleto

1.1. Exoesqueletos

Los exoesqueletos tienen el objetivo de maximizar las habilidades fsicas del ser humano,
dotandolo de una gran fuerza, capaz de levantar hasta 10 veces su peso. El concepto de los
exoesqueletos viene desarrollandose desde hace mas de 30 anos, en sus inicios fueron disenados
para uso industrial y con el paso del tiempo fueron evolucionando hasta llegar a lo que se
conoce actualmente. A pesar de que muchos de estos trajes roboticos son disenados para uso
militar, tambien existen empresas dedicadas a la fabricacion de exoesqueletos aplicados a la
rehabilitacion. En el siguiente artculo se hara un pequeno recorrido historico y se conocera
alguno de estos trajes, desde el primer prototipo hasta algunos de los mas avanzados.

1.1.1. Aplicaciones de exoesqueletos

Las aplicaciones de los exoesqueletos para personas pueden dividirse en tres importantes
grupos:

Exoesqueletos para rehabilitacion de personas que han sufrido accidentes o padecen en-
fermedades que pueden mejorar los sntomas con ejercicios controlados.

Exoesqueletos para hacer que una persona en buen estado fsico pueda realizar un mayor
esfuerzo (por ejemplo, exoesqueletos militares o prototipos ideados para que un trabajador
pueda portar pesos mayores durante la jornada laboral).

Exoesqueletos para ayudar a personas a llevar una vida menos dependiente. En este caso
estan las personas con movilidad reducida, ya sea por accidentes que les han quitado la
movilidad de sus extremidades, por enfermedades cronicas o por los efectos de la edad,
ancianos que ven reducidas sus capacidades fsicas.

A pesar de que durante el uso de exoesqueletos con los fines del primer grupo, rehabilitacion,
y del ultimo, servir de proporcionar movilidad a personas, se realiza un ejercicio que puede
mejorar la movilidad y la forma fsica del usuario, hay que realizar una separacion entre ambas.
Esta separacion se ha hecho teniendo en cuenta que el primer grupo son situaciones transitorias
con un tiempo relativamente corto del uso del exoesqueleto (con un horario diario o semanal
fijado hasta que la persona es capaz de volver a la normalidad tras la rehabilitacion), y el ultimo
grupo se ha considerado un uso cotidiano (sin horario fijo, estando el exoesqueleto a disposicion
de la persona para su uso privado) debido al caracter cronico de la enfermedad o debido al
estado y edad de la persona.

Universidad Politecnica de Cartagena 12


Comunicacion y control de las articulaciones de un exoesqueleto

En este caso, el proyecto EXOLEGS esta centrado en exoesqueletos para personas ancianas,
con baja movilidad y que la ayuda de un exoesqueleto les ayudara a llevar una vida lo menos
dependiente posible.

1.1.2. Ejercicio fsico en personas mayores

Desde el nacimiento hasta las ultimas horas de vida, es a traves del cuerpo y del movimiento
la manera mediante la cual interaccionamos constantemente con nuestro entorno. Cuerpo y
movimiento son dos terminos estrechamente relacionados entre s. El movimiento garantiza
el correcto funcionamiento del organismo y a su vez, un cuerpo sano es base fundamental
para el movimiento libre. La realizacion de actividad fsica sistematica y controlada es una
clara herramienta de influencia positiva para preservar, conservar y promocionar los multiples
factores que intervienen en el mantenimiento de un cuerpo sano a lo largo de los anos.

Se aconseja la practica regular de ejercicio fsico en mayores de 65 anos, dado que esto conlleva
efectos beneficiosos sobre la diabetes, la hipertension, las cadas, el nivel de independencia, los
niveles de colesterol y la enfermedad coronaria, entre otras patologas.
Un exoesqueleto puede proporcionar a determinadas personas parte de esa movilidad extra
que necesitan para salir de ese anquilosamiento muscular y fsico, reactivar el movimiento,
caminar mas a menudo (realizando un menor esfuerzo) realizar tareas cotidianas simples. De
esta forma realizar estas tareas cotidianas es realizar ejercicios leves que conllevan a una mejora
en la condicion fsica de la persona. Los movimientos realizados en las extremidades inferiores
con ayuda del exoesqueleto y los realizados en las extremidades superiores debido a que ahora
si pueden desplazarse con facilidad para realizar tareas, as como la actividad en el tronco de
la persona son ejercicios que antes de usar el exoesqueleto no se realizaban porque eran muy
costosos, o si se realizaban podran dar lugar a lesiones, y ahora ayudan a una mejora continua
en la persona.
Ventajas del uso de exoesqueletos en personas mayores.

Ya se han comentado en el parrafo anterior muchas de las ventajas que tiene el uso de
exoesqueletos, as, se pueden resumir en los siguientes puntos:

Previene la atrofia de los musculos y puede iniciar un proceso de recuperacion en caso de


que se haya producido esa atrofia.

Aumenta la autonoma de la persona.

Universidad Politecnica de Cartagena 13


Comunicacion y control de las articulaciones de un exoesqueleto

La menor dependencia y el ejercicio fsico crea una seguridad en la persona que le ayuda
a mejorar su estado psicologico.

No es necesario adaptar el entorno de la persona que porta un exoesqueleto.

Reduce el esfuerzo que necesita la persona para moverse.

El usuario no pone todo su peso en las articulaciones, produciendo un desgaste menor.

Se puede hacer estudios centrados en articulaciones o musculos concretos.

1.1.3. Evolucion de los exoesqueletos

Tipos de exoesqueletos hay diversos, ya que se puede robotizar cualquier parte del cuerpo
humano de forma mecanica, pero este proyecto tiene como interes el tren inferior del cuerpo
humano. En el tren inferior se encuentran la cadera, las rodillas y los tobillos. Para realizar una
evolucion de los exoesqueletos nos centraremos en los que mas se asemejan a este proyecto, es
decir, aquellos que estan enfocados al tren inferior humano, y orientados a la rehabilitacion.

Proyecto Hardiman

En la decada de los 60, Ralph Mosher, ingeniero de General Electric diseno un traje roboti-
co capaz de potenciar la fuerza humana, brindandole al usuario la posibilidad de cargar hasta
1500 kilogramos sin mayor dificultad. Hardiman fue el primer proyecto serio de un exoesqueleto
robotico y el mas ambicioso de General Electric y digno de admiracion para la epoca en que fue
creado. General Electric tena grandes expectativas para el proyecto Hardiman, pues esperaba
que fuera utilizado a bordo de portaaviones para la carga de bombas, construccion submarina,
en centrales nucleares, y en el espacio exterior. Lamentablemente el proyecto fracaso, la incon-
trolable violencia de sus movimientos la ineficiencia de sus piernas que componan la base del
traje no permitieron que llegara a tener un desarrollo optimo. Al fracasar el proyecto Hardi-
man decidieron reducir medidas y crearon un brazo robotico. Esta especie de guante bionico
era capaz de levantar hasta 340 kilogramos de peso. Ironicamente, este guante bionico pesaba
el doble de lo que poda levantar, 680 kilos. No, no era muy util, as que la investigacion fue
cancelada.

Universidad Politecnica de Cartagena 14


Comunicacion y control de las articulaciones de un exoesqueleto

Lifesuit

En 1986 Monty Reed, comenzo a trabajar en un traje robotico que puediera ser utilizado
como herramienta de rehabilitacion. El traje pesaba unas 75 libras, era una combinacion de una
mochila y un paquete de cohetes y tanques de buceo. En los ultimos 20 anos Monty Reed ha
destinado su propio dinero al desarrollo e investigacion de un exoesqueleto capaz de devolverle
la habilidad de caminar incluso a personas con cuadriplejia. Hasta el momento se han creado
varias versiones del Lifesuit obteniendo muy buenos resultados, actualmente el LIFESUIT 14
tienen la capacidad de caminar una milla llevando un peso extra de 92 kilogramos.

Traje de apoyo asistido

En 1990 los cientficos del Instituto de Tecnologa de Kanagawa d en Japon disenaron un


traje robotico de asistencia, el cual estaba destinado a simplificar la labor de las enfermeras.
Este traje constaba con extremidades plegables, las cuales funcionaban con tensores de aire
comprimido que reaccionaban gracias a informacion enviada por un ordenador que controlaban
los sensores de esfuerzo del [Link] la enfermera decida movilizar a un paciente, el traje se
activaba facilitando el traslado del enfermo, minimizando el esfuerzo de las zonas activas de la
enfermera como el tronco, hombros y cintura. Una enfermera de 67 kilogramos poda levantar a
un paciente de 70 kilogramos sin esfuerzo. Este traje fue disenado con la finalidad de evitar las
lesiones de espalda que muchas veces sufre el personal medico al tratar pacientes con movilidad
limitada.

Universidad Politecnica de Cartagena 15


Comunicacion y control de las articulaciones de un exoesqueleto

HAL de Cyberdyne

Desde el ano 2002 Yoshiyuki Sankai, investigador de robotica de la Universidad de Tsukuba en


Japon y fundador de la empresa japonesa Cyberdyne, ha venido trabajando en un traje robotico
disenado para ayudar a ancianos y personas discapacidades motoras. EL traje HAL (Hybrid
Assisting Limb), es un robot cibernetico con elementos de la bionica, robotica y electronica.
Despues de varias versiones actualmente es un traje de solo 25 kilos es capaz de multiplicar la
fuerza del usuario de dos a diez [Link] el 2009 la empresa Cyberdyne, anuncio la fabricacion
en masa del HAL para ser comercializado, ofreciendo dos opciones, el traje completo y otro
solo para miembros inferiores.

1.1.4. Exoesqueletos en la actualidad

En la actualidad existen diversos tipos de exoesqueletos, desde aquellos que simulan un


cuerpo humano al completo hasta aquellos que realizan una unica accion. Como objeto de este
proyecto se van a hablar de los exoesqueletos actuales orientados al tren inferior humano, y mas
concretamente a personas mayores y a rehabilitacion. Actualmente los proyectos mas desarro-
llados y comercializados los tienen, entre otras, las siguientes empresas, los cuales detallaremos
a continuacion: Ekso Bionics, Rex Bionics y Cyberdine.

Ekso Bionics

EKSO es un traje bionico portatil que permite a las personas con limitaciones en las ex-
tremidades inferiores ponerse de pie y caminar por un terreno natural, proporcionan un apoyo
completo al suelo. La accion de caminar es posible cuando los sensores del exoesqueleto detectan
peso, entonces se inicia la accion de caminar. Todo el peso y las acciones de las extremidades
deficientes son realizadas por motores alimentados con baterias. Este exoesqueleto proporciona
la posibilidad de ponerse de pie y caminar para personas con discapacidad total. Ayuda a los
pacientes volver a aprender los patrones de pasos adecuados.

EKSO es un exoesqueleto para su uso bajo supervision medica por individuos con diferentes
niveles de paralisis o hemiparesia debida a enfermedades neurologicas como el ictus, lesion de
la medula espinal o enfermedad, lesion cerebral traumatica y mas. Con el alta medica, por
lo general facilita el caminar de las personas con una amplia gama de habilidades motoras y
tamanos. Todo el mundo medicamente tratado que ha pasado el examen fsico ha caminado en
su primera sesionDisenado para la utilidad y facilidad de uso en un entorno clnico

Universidad Politecnica de Cartagena 16


Comunicacion y control de las articulaciones de un exoesqueleto

Rex Bionics

REX es un dispositivo de movilidad robotica manos libres para la rehabilitacion. Disenado


para las personas con problemas de movilidad, REX es completamente autosuficiente y rapi-
damente ajustable para cada usuario, se abre una gran posibilidad de rehabilitacion para una
amplia gama de [Link] Bionics esta trabajando con los fisioterapeutas para desarrollar
la practica de la fisioterapia asistida por robot (RAP). En una sesion de RAP, REX levanta a
los pacientes de una posicion sentada a una posicion de pie, lo que les permite caminar de forma
segura y poder hacer ejercicios de estiramiento, disenados por fisioterapeutas especializados.

REX tambien limita la carga sobre los terapeutas durante la manipulacion manual y reduce
la cantidad de ayuda necesaria para ayudar a los pacientes que se someten a terapia de [Link]
personas en silla de ruedas se encuentran en riesgo de padecer numerosas complicaciones medicas
por largos periodos de estar sentado, por lo que este dispositivo les permite pasar mas tiempo
de pie, caminar y hacer ejercicio. REX puede ofrecer beneficios significativos para la salud. Un
programa de ensayos clnicos esta actualmente en curso para evaluar estos beneficios potenciales
para la salud de las personas.

Cyberdyne

El modelo de Cyberdine se llama HAL. Las principales causas de las discapacidades de las
extremidades inferiores son trastornos del sistema muscular y nervioso cerebral. En esos ca-
sos, el cerebro no puede utilizar las vas neurales ordinarios y no puede ordenar de mover las
piernas. HAL para uso medico mueve las piernas del usuario de acuerdo con la intencion del
usuario, Quiero caminar..O Quiero estar de pie., Y permite la retroalimentacion oportuna
de los sentimientos , que poda caminar. .oYo podra ponerse de pie. . En consecuencia, esto
acelera el aprendizaje por el cerebro. HAL para uso medico es el unico dispositivo de recupe-
racion robotico que puede ensenar el cerebro como mover las piernas. Este dispositivo se puede
aplicar a personas que sufren de lesiones de la medula espinal, lesiones cerebrales traumaticas,
enfermedades cerebrovasculares, enfermedades del cerebro y del sistema neuromuscular, etc.

Universidad Politecnica de Cartagena 17


Comunicacion y control de las articulaciones de un exoesqueleto

Cuando una persona se mueve, el cuerpo enva diferentes senales desde el cerebro a los
musculos a traves de nervios. Esas senales aparecen en la superficie de la piel como senales
bio-electrica [BES]. HAL lee el Modelo BES del usuario, por lo tanto compensa la fuerza
muscular de las extremidades inferiores y el o ella ayuda a caminar, pararse, y sentarse de
forma autonoma.

(a) Ekso Bionics (b) Rex Bionics

(c) HAL de Cyberdine

Universidad Politecnica de Cartagena 18


Comunicacion y control de las articulaciones de un exoesqueleto

1.2. EXOLEGS

La mayora de las personas de edad sufren de leve a grados agudos de la degeneracion fsica
y cognitiva. El caracter progresivo de estos trastornos a menudo conduce a la perdida de la
independencia que afecta la calidad de vida. Sin embargo, se ha demostrado que la movilidad
fsica y el ejercicio cardiovascular mejora directamente las capacidades cognitivas humanas. Por
lo tanto, esta propuesta va a desarrollar una gama de soluciones de asistencia activa exoes-
queleticas de miembros inferiores (Basic, Standard y Deluxe) para proporcionar la movilidad
interior y exterior para ayudar a las personas mayores a mantener y mejorar los niveles de
actividad fsica para una vida plena, activa e independiente.

Los requisitos de movilidad demandados al exoesqueleto para que las personas de edad avan-
zada puedan llevar a cabo sus actividades cotidianas de una manera independiente son los
siguientes:

Movilidad interior: mover libremente dentro de espacios cerrados que dan un valor anadi-
do considerable sobre sillas de ruedas, sea capaz de realizar maniobras de sentarse y
levantarse, subir y bajar escaleras, pasar por encima de objetos, caminar recto.

Movilidad al aire libre: caminar sobre diferente tipo de superficies y sobre superficies
irregulares, evitar el trafico cruzando las carreteras, poder acceder al transporte publico,
usar escaleras mecanicas.

Apoyo cognitivo: proporcionar informacion para permitir la toma de decisiones cuando la


persona mayor se encuentra perdida o en un estado de confunsion.

Objetivos

EXOLEGS tiene como finalidad el desarrollo de exoesqueletos de movilidad corporal del tren
inferior para ayudar a las personas a realizar tareas normales de la vida diaria. Los movimientos
incluyen tareas como levantarse, sentarse, caminar en lnea recta en terreno plano, pasar por
encima de los objetos, caminar sobre terreno blando y desigual, subir y bajar escaleras, etc.
En el proyecto EXOLEGS, se desarrollaran marcos teoricos y modulares capaces de realizar
prototipos de dispositivos que pueden ser utiles para ayudar a la movilidad humana. Existiran 3
tipos de exoesqueletos: Basic, Standard y Deluxe, que seran disenados, desarrollados y probados
en los siguientes pases de la Union Europea: Suecia, Alemania, Espana, Reino Unido y Suiza.

Universidad Politecnica de Cartagena 19


Comunicacion y control de las articulaciones de un exoesqueleto

Valor Agregado sobre sillas de ruedas

El valor anadido de EXOLEG en funcion de las soluciones de movilidad en silla de ruedas


actuales, es que va a proporcionar a los usuarios la capacidad de moverse en diferentes tipos de
suelo (duro, blando, irregular, etc), subir y bajar escaleras, y pasar por encima de los objetos.
Por otra parte, los exoesqueletos tienen un tamano considerablemente menor que las sillas
de ruedas a la hora de desenvolverse por una casa domestica. Los exoesqueletos imitan la
postura normal del cuerpo, su uso tendra beneficios significativos para la salud, a diferencia
de las sillas de ruedas, (como la recuperacion de las funciones normales de vejiga e intestino),
proporcionando as la capacidad de hacer ejercicio y aumentar la actividad muscular. Es bien
sabido que tal ejercicio aumenta las habilidades cognitivas a medida que aumenta el flujo de
oxgeno al cerebro, dando otra razon para elegir esta opcion sobre las sillas de ruedas.

La clave del exito de adopcion de las soluciones EXOLEGS se basan en los sistemas de
seguridad (cumpliendo con existente y las normas de seguridad ISO / IEC emergentes), inspira
confianza en el usuario y siendo accesible a traves de un modelo de negocio adecuado (alquiler,
arrendamiento, uso de varias personas, prescripcion, etc.). El proyecto EXOLEGS tendra en
cuenta todas estas cuestiones en el plan de trabajo detallado.

Universidad Politecnica de Cartagena 20


Comunicacion y control de las articulaciones de un exoesqueleto

1.2.1. Prototipo

Para conseguir el objetivo de este proyecto se cuenta con un prototipo previamente fabricado.
El prototipo ha sido disenado y dimensionado en Espana. Este prototipo cuenta con el tren
inferior completo de una persona humana. Tanto el hadware de control como el prototipo ha
sido construido y escogido previamente a este proyecto.

El prototipo consta principalmente de dos partes: la estructura y los actuadores y sensores.


En referencia a la estructura se puede observar que es una estructura metalica, aparentemente
no parece muy pesada pero en la practica cuenta con un peso aproximado de 30Kg. Para la
sujecion con la persona cuenta con bandas de tela tanto en la cadera como a lo largo de toda
la pierna. Para realizar todo este proyecto el prototipo ha estado unido en la parte inferior por
una plancha de acero.

En la parte referente a los actuadores y sensores se observa que hay 6 motores. Cada motor
cuenta de forma integrada con un encoder y una reductora, y de forma externa y de union
con las extremidades con un engranaje conico reductor. Todos los sensores integrados son los
mismos para todos los motores. En la zona de la cadera se encuentra un motor de 70W de la
marca Maxon, y para la zona de las articulaciones de la rodilla y tobillo, se encuentran unos
motores de 100W de la marca Maxon.

Figura 1: Prototipo.

Universidad Politecnica de Cartagena 21


Comunicacion y control de las articulaciones de un exoesqueleto

1.2.2. Motores

En el prototipo que se ha proporcionado tiene instalado dos tipos de motores. En primer



lugar, para la cadera, se usa un motor EC45 (70W) con referencia n 397172 del catalogo Maxon,

y para las rodillas y tobillos, se ha utilizado un motor EC60 (100W) con referencia n 412825
del catalogo Maxon. A continuacion se detallaran los parametros usados de los motores.

EC45 (70W) EC60 (100W)

MotorType = 10 MotorType = 10

NominalCurrent = 3210 NominalCurrent = 3210

MaxOutputCurrent = 6420 MaxOutputCurrent = 6420

ThermalTimeConstant = 29.6 ThermalTimeConstant = 40

NbOfPolePairs = 8 NbOfPolePairs = 7

1.2.3. Sensores

En la parte de sensores, en este prototipo se tienen instalado 6 encoders, 1 en cada motor.


En este caso, nos encontramos con un encoder rotatorio, el cual se encarga de decirnos en
que posicion esta el motor en cada momento. Los encoders que llevan montados estos motores
son incrementales, y tienen un problema asociado a este proyecto desde un punto de vista
de seguridad. Estos sensores se reinician en el momento que se le quita la alimentacion, por
tanto cuando se alimentan por primera vez despues de desconectarlos es imposible saber en
que posicion se encuentra la estructura sin verla. Los encoders usados tienen como referencia

n 421986 del catalogo Maxon, y ah se pueden ver todas sus caractersticas. A la hora de
configuracion y operacion sus parametros son los siguientes:

SensorType = 2

EncoderResolution = 1024

Universidad Politecnica de Cartagena 22


Comunicacion y control de las articulaciones de un exoesqueleto

1.2.4. Engranajes

Cada uno de los motores, aparte del sensor, lleva integradas unas reductoras, las cuales
se encargan de transmitir el par y de hacer mas sencillo su control y precision reduciendo la
velocidad.

En el interior de cada motor se encuentran unas reductoras planetarias de acero inoxidable. En


cada articulacion se tendran diferentes relaciones de transmision en funcion de las necesidades.
En la articulacion de la cadera se encontrara una reductora planetaria 53:1 con referencia

n 203121 en el catalogo Maxon. En las articulaciones de las rodillas y tobillos, se tendran las
mismas configuraciones de reductoras, por lo tanto, en ambas se encontraran unas reductoras

planetarias 19:1 con referencia n 223085 del catalogo Maxon.

Como union de los actuadores con las articulaciones, se encuentran unos engranajes conicos
helicoidales integrados en la estructura. Estos engranajes se tratan como una reductora 3:1 la
cual se encarga de transmitir el par de la reductora planetaria de cada motor y de reducir la
velocidad aun mas.

Figura 2: Engranaje conico helicoidal 3:1.

Universidad Politecnica de Cartagena 23


Comunicacion y control de las articulaciones de un exoesqueleto

1.3. Hadware

Para la realizacion del proyecto se ha necesitado un hadware mnimo: un ordenador o CPU,


un derivador de voltaje como medida de proteccion ante sobretensiones, una fuente de alimen-
tacion o diferentes fuentes de alimentacion capaces de proporcional la potencia necesaria y por
ultimo las controladoras.

1.3.1. CPU

Como CPU y para realizar los ensayos, se ha utilizado un ordenador de sobremesa con
Windows 7, el cual es capaz de mover el software necesario para el control en tiempo real del
prototipo. En el proyecto real este ordenador no es un sobremesa, se trata de un miniordenador
con un sistema operativo basado en software libre (linux).

1.3.2. Regulador de voltaje

Como medida de proteccion ante sobretensiones se tienen 3 reguladores de voltaje. Estos


reguladores de voltaje se configuran para suministrar un voltaje maximo a su salida, y si
hay sobretensiones estos las eliminan en forma de calor. Para este proyecto se van a usar
3 reguladores ya que cada regulador es capaz de suministrar la potencia necesaria para dos
controladoras con sus respectivos actuadores. Para la configuracion del regulador de voltaje y
el voltaje a la salida de este, se dispone de unos microinterruptores los cuales estan compuestos
por 6 microinterruptores que son capaces de establecer el lmite de voltaje a la salida del
regulador. Los reguladores son de la marca Maxon.

(a) Derivador de voltaje

Universidad Politecnica de Cartagena 24


Comunicacion y control de las articulaciones de un exoesqueleto

1.3.3. Fuente de alimentacion

Para la alimentacion de las controladoras y los motores se usan dos fuentes de alimentacion
diferentes. Para los motores de menor potencia que son los de la cadera (EC45) se dispone de
una fuente para ellos que suministrara 24V y 2A. Para la articulacion de las rodillas y tobillos se
dispone de una fuente capaz de suministrar mas potencia ya que cada motor tiene una potencia
de 100W.

(b) Fuente Cadera (c) Fuente Rodilla y Tobillo

1.3.4. Controlador

La parte o el hadware mas importante para el proyecto es el controlador, que es la que se


encarga de suministrar la potencia necesaria en cada momento a los motores para moverlos. El
controlador se trata de un hadware de la marca Maxon y es el modelo EPOS2 50/5. EPOS2
50/5 es un controlador digital de posicion modular. Apto para motores CC de escobillas con
encoder o para motores EC sin escobillas con sensores Hall y encoder desde 5 hasta 250 W.
Este controlador puede funcionar en diferentes interfaces: USB, RS232 y CAN. En el interior
del controlador tiene un controlador integrado, tambien es capaz de regular la corriente, la
velocidad y la posicion de los motores.

(d) Controlador EPOS2 50/5

Universidad Politecnica de Cartagena 25


Comunicacion y control de las articulaciones de un exoesqueleto

1.4. Software

Para la realizacion de este proyecto se han usado dos software diferentes. En primer lugar,
para el testeo y correcta configuracion de las controladoras y motores, se ha usado un software
proporcionado por el fabricante, Epos Studio. Este software permite conectar y trabajar de
manera inmediata con los motores. En segundo lugar, para la realizacion del proyecto, obtencion
de datos, control y operacion, se ha usado el lenguaje Matlab en el entorno de programacion
de Matlab. Para realizar pruebas a tiempo real se ha optado por el modulo de Matlab que se
llama Simulink, el cual se trata de un entorno de programacion mediante bloques que permite
simulaciones dinamicas

1.4.1. Epos Studio

Epos Studio es un software desarrollado por el fabricante de los controladores, motores,


sensores y engranajes del exoesqueleto. Este software lo proporciona la empresa Maxon con el
fin de poder trabajar de forma sencilla con los motores. Este software permite analizar cualquier
parametro de configuracion de los controladores, motores y sensores en cualquier instante de
tiempo, siempre y cuando esten conectadas.

En primer lugar, para la utilizacion de este software es necesario tener conectadas y correc-
tamente alimentados los controladores, motores y sensores. En este proyecto solo se ha usado
este software para testear el funcionamiento de los motores y para adquirir parametros de
configuracion que no venan dados en ninguna gua.

Este software permite conectar todas los controladores a la vez y mediante diferentes proto-
colos de comunicacion, el software se adapta al protocolo de comunicacion que hayamos elegido.
Una vez creado el proyecto, el software muestra un esquema de conexion donde pone los iden-
tificadores y puertos de conexion de cada uno de los controladores, de esta forma se sabra en
que puerto esta conectado cada uno y el identificador de nodo que tenga cada controlador si se
trabaja con el protocolo de comunicacion CANOpen.

Para poder realizar correctamente el testeo del montaje en cuestion, se puede hacer con
cualquier modo de operacion que se estime oportuno. En los diferentes modos de operacion
se pueden modificar diferentes parametros. Por ultimo este software tiene una aplicacion que
permite sintonizar de manera automatica el controlador PID de la controladora mas adecuado.

Universidad Politecnica de Cartagena 26


Comunicacion y control de las articulaciones de un exoesqueleto

1.4.2. Matlab

Matlab es una herramienta de software matematico que ofrece un entorno de desarrollo


integrado con un lenguaje de programacion, a este lenguaje se le denomina lenguaje Matlab o
M. Entre sus prestaciones basicas se hallan: la manipulacion de matrices, la representacion de
datos y funciones, la implementacion de algoritmos, la creacion de interfaces de usuario y la
comunicacion con programas en otros lenguajes y con otros dispositivos hardware.

El paquete Matlab dispone de dos herramientas adicionales que expanden sus prestaciones,
Simulink y [Link] permite una programacion basada en bloques para simulaciones
dinamicas, y Guide permite la creacion de interfaces de usuario de manera sencilla. Ademas, se
pueden ampliar las capacidades de Matlab con las cajas de herramientas (toolboxes), y las de
Simulink con los paquetes de bloques (blocksets).

Las aplicaciones de Matlab se desarrollan en un lenguaje de programacion propio. Este len-


guaje es interpretado, y puede ejecutarse tanto en el entorno interactvo, a traves de un archivo
de script (archivos *.m). Este lenguaje permite operaciones de vectores y matrices, funciones,
calculo lambda, y programacion orientada a objetos.

Simulink es un entorno de diagramas de bloque para la simulacion multidominio y el di-


seno basado en modelos. Admite el diseno y la simulacion a nivel de sistema, la generacion
automatica de codigo y la prueba y verificacion continuas de los sistemas embebidos. Simulink
ofrece un editor grafico, bibliotecas de bloques personalizables y solvers para modelar y simular
sistemas dinamicos. Se integra con Matlab, lo que permite incorporar algoritmos de Matlab
en los modelos y exportar los resultados de la simulacion a Matlab para llevar a cabo mas
analisis. Es de destacar que no toda la funcionalidad del lenguaje Matlab se puede extrapolar a
la programacion en Simulink debido a algunas incompatibilidades con funciones predisenadas
en Matlab, un ejemplo de ello es la funcion delay.

Universidad Politecnica de Cartagena 27


Comunicacion y control de las articulaciones de un exoesqueleto

2. Desarrollo de Algortmo de comunicacion con


Hadware

Universidad Politecnica de Cartagena 29


Comunicacion y control de las articulaciones de un exoesqueleto

2.1. Comunicacion

En este apartado, se va a desarrollar la rutina creada para una comunicacion exitosa entre el
controlador y el software de control. Para realizar la conexion, se va a necesitar una biblioteca
especfica para aprovechar al maximo nuestro hadware. Se presento un primer problema, y fue
que no haba unos drivers especficos para Matlab, nuestro software de control. Una solucion
fue contactar con una persona que modifico los drivers para adaptarlos a Matlab. Una vez que
se ha cargado la librera satisfactoriamente, se podra empezar a comunicar con el hadware, pero
antes de utilizarlo hay que configurarlo, ya que este hadware tiene diferentes parametros para
segun el motor y sensores a los que este conectado.

2.1.1. Librerias y configuracion necesaria

Como se ha dicho anteriormente, lo necesario para tener una comunicacion, es disponer de


una librera que sea capaz de poder conectar el software de control con el hadware. Se va a
usar una librera modificada para Matlab, disponible tanto para versiones de 32bit como de
64bit. Esta librera se denomina [Link] para 32bit y [Link] para 64 bit. No
solo se necesita una librera para poder conectarlo, tambien se necesita un archivo denominado
Definitions.h, el cual se encarga de definir cada una de las funciones de la librera, as como
cada uno de los tipos de datos, constantes, etc.

El archivo Definitions.h se usa para poder cargar la librera. Este archivo se encarga de
compatibilizar las funciones de la librera y definir los tipos de datos que se estan usando. Este
archivo se tuvo que modificar debido a una incompatibilidad en el tipo de dato. Se modifico
un tipo de dato que no se reconoca, por uno equivalente reconocido por nuestro software. Se
definieron estos datos nuevamente y se soluciono el error de comunicacion.

A la hora de cargar la librera en Matlab mostraba una serie de errores, los cuales no permitan
cargar la librera. Eran numerosos errores, pero analizando, se observo que se trataba en todos
los casos del mismo tipo de error. El error consta de una incompatibilidad de matlab con el
tipo de dato int8 e int8Ptr. Estos tipos de datos corresponden en su equivalente matlab al
tipo de dato int8 e int8* . A continuacion se muestra la solucion propuesta, la cual funciona de
forma correcta y permite cargar la librera sin errores.

#define __int8 int8;


#define __int8Ptr int8*;

Universidad Politecnica de Cartagena 30


Comunicacion y control de las articulaciones de un exoesqueleto

Con esta modificacion, se tiene una librera compatible con Matlab, que servira para comu-
nicarse con la controladora.

Una vez se ha cargado la librera, se tendra que configurar el controlador para nuestros
elementos de sensorizacion y motores. Para que el control sea optimo se tendra que parametrizar
y configurar el controlador de la siguiente manera, y con el siguiente orden:

Establecer dialogo con el hadware

Establecer un protocolo de comunicacion

Limpiar los errores guardados

Configuracion de parametros de operacion

Configuracion de Motores y Sensores

Habilitar controlador

Todas estas rutinas, se desarrollaran mas adelante, en un apartado especfico para la rutina
de conexion. Si toda esta configuracion se ha llevado a cabo sin ningun error, se tendra el
controlador conectada al software, con el cual se podra controlar los motores y recibir la posicion
de las articulaciones en cada instante de tiempo. Para concluir con la comunicacion, se tendra
que realizar una desconexion exitosa, para no tener problemas de conexion en un futuro. Para
realizar la desconexion, se realizara en el siguiente orden.

Deshabilitar controlador

Desconectar dispositivos

Quitar librera de memoria

Universidad Politecnica de Cartagena 31


Comunicacion y control de las articulaciones de un exoesqueleto

2.2. Modos de operacion

El controlador dispone de diferentes modo de operacion, con los cuales se puede establecer
un modo de trabajo del motor que mas se adapte a el objetivo. Existen varios modos de
operacion, cada uno tiene unos parametros prioritarios de funcionamiento, por lo tanto, se
tendra una variedad de modos de operacion para escoger el que mas se ajuste. A continuacion
se desarrolla en una tabla los diferentes modos de operacion, y sus valores para seleccionarlos
en el controlador cuando se esta configurando.

Figura 3: Modos de operacion.

Profile Position Mode

En el modo de operacion de perfil de posicion, se tiene que el objetivo principal es la posicion,


es decir, el numero de pasos que se pretende que el motor avance, o en el caso de el exoesqueleto,
el numero de grados que se quiere girar las articulaciones. La caracterstica de este perfil, es la
capacidad de realizar ese movimiento mediante diferentes trayectorias, trapezoidal y senoidal.

Como se dispone de estos dos tipos de perfil para generar la trayectoria, se tendra que
decidir cual es el mejor para cada uno de los movimientos. Para realizar unos movimientos lo
mas natural posible, necesitaremos un perfil de velocidad acampanado, de forma que no acelere
de forma lineal, y que cuando vaya a llegar a la posicion vaya cada vez mas lento. En funcion
de estas premisas, y analizando el comportamiento de los perfiles Trapezoidal y Senoidal, se
elegira para los movimientos un perfil Senoidal.

Universidad Politecnica de Cartagena 32


Comunicacion y control de las articulaciones de un exoesqueleto

Figura 4: Perfil de posicion, Trapezoidal.

Figura 5: Perfil de posicion, Senoidal.

Se observa, que para establecer nuestro perfil de posicion, se exige una serie de parame-
tros. Estos parametros se podran modificar en cualquier momento, sin necesidad de apagar la
controladora. Los parametros con los cuales se puede trabajar son:

Perfil de Velocidad

Perfil de Aceleracion

Perfil de Deceleracion

Mediante el Perfil de Velocidad, se puede modificar la velocidad con la que se quiere mover
la articulacion, medidas en rpm. Mediante el perfil de Aceleracion y Deceleracion, se establecen
los parametros para generar dichas trayectorias, limitando dichas trayectorias a los valores
establecidos.

Universidad Politecnica de Cartagena 33


Comunicacion y control de las articulaciones de un exoesqueleto

Profile Velocity Mode

En el modo de operacion de perfil de Velocidad, se trabaja configurando una trayectoria de


velocidad, junto con una funcion de control de velocidad. El objetivo de este modo de operacion,
a diferencia del de perfil de posicion, es una velocidad. Igual que en el modo de perfil de Posicion,
se tendra una trayectoria Trapezoidal y una trayectoria Senoidal.

Se puede observar en las siguientes figuras de los perfiles, que el perfil que mejor se adapta a
unos movimientos naturales de las articulaciones, sigue siendo el perfil Senoidal.

Figura 6: Perfil de velocidad, Trapezoidal.

Figura 7: Perfil de velocidad, Senoidal.

Para la configuracion de las trayectorias de velocidad, se exige una serie de parametros. Estos
parametros se podran modificar en cualquier momento, sin necesidad de apagar la controladora.
Los parametros con los cuales se puede trabajar son:

Perfil de Aceleracion

Perfil de Deceleracion

Universidad Politecnica de Cartagena 34


Comunicacion y control de las articulaciones de un exoesqueleto

Mediante el perfil de Aceleracion y Deceleracion, se establecen los parametros para generar


dichas trayectorias, limitando dichas trayectorias a los valores establecidos.

Homing Mode

El modo de operacion Homing, se usa para encontrar la posicion de referencia o posicion


cero. Para esto hay diferentes formas, pero una de las principales se trata, con un encoder
incremental, de buscar la posicion cero, y de esta forma, se obtendra la posicion de referencia,
otro metodo, consiste en la utilizacion de microinterruptores.

En este modo de operacion, tambien se generan trayectorias, y por lo tanto, tendremos


trayectorias Trapezoidal y Senoidal. Se elegira siempre una trayectoria Senoidal, debido a su
naturalidad a la hora de realizar movimientos.

Figura 8: Homing Mode, Trapezoidal.

Figura 9: Homing Mode, Senoidal.

Universidad Politecnica de Cartagena 35


Comunicacion y control de las articulaciones de un exoesqueleto

Interpolated Position Mode

El modo de operacion de Interpolacion, funciona como su propio nombre indica, con un meto-
do que interpola dos puntos dados, los cuales proporcionan informacion de posicion, velocidad
y tiempo. Con estos datos se genera una trayctoria para un tercer punto, a continuacion se
presenta una imagen como ejemplo de funcionamiento.

Figura 10: Interpolated Position Mode, Ejemplo de interpolacion.

Position Mode

El modo de operacion de posicion, se diferencia del de perfil de posicion, en que predomina


la posicion y no se pueden modificar trayectorias para llegar a esa posicion. Este modo de
operacion se utiliza cuando se quiere llegar a una posicion sin importar los demas parametros,
aceleracion, velocidad...

Velocity Mode

En el modo de operacion de velocidad, se establece como parametro determinante la velocidad


del motor. Este modo es util para hacer un buen control de velocidad, siempre y cuando se tenga
un buen sistema de lazo cerrado para el control de la posicion, de esta forma controlaremos la
velocidad por un lado, y de forma externa, mediante un bucle, la posicion.

Current Mode

En el modo de operacion de corriente, funciona ejerciendo un control sobre la corriente, y


limitando una velocidad. Este modo se usa cuando se tiene una referencia de posicion con un
bucle de control de velocidad.

Universidad Politecnica de Cartagena 36


Comunicacion y control de las articulaciones de un exoesqueleto

Master Encoder Mode

En el modo de operacion de Encoder Maestro, se pretende controlar una posicion por un


encoder externo. Este modo funciona mediante dos entradas digitales, con las cuales se controla
la posicion, en este modo se puede cambiar la polaridad del software, por tanto podramos poner
la direccion de giro que se desee. Como se tiene una controladora EPOS2 50/5, las entradas las
tenemos en los pines 7 y 8, a continuacion se muestra un ejemplo de funcionamiento.

Figura 11: Master Encoder Mode, Ejemplo de funcionamiento.

Step Direction Mode

En el modo de operacion de Direccion de paso, el controlador se comporta como un motor


paso a paso, de esta forma se tendran dos entradas digitales, las cuales una representa la posicion
y la otra el impulso. En la controladora Epos2 50/5 las entradas se tienen en los pines 7 y 8.

Figura 12: Step Direction Mode, Ejemplo de funcionamiento.

Universidad Politecnica de Cartagena 37


Comunicacion y control de las articulaciones de un exoesqueleto

2.3. Propiedades del objeto

En este apartado, se va a tratar la creacion de un objeto, cuyas propiedades sean los parame-
tros necesarios para el buen funcionamiento de el exoesqueleto. Para la descripcion de nuestro
objeto, se va a analizar el tipo de datos necesario para el funcionamiento con la librera, se
describira cada una de las variables creadas, y por ultimo se creara una clase con todas estas
propiedades y su constructor.

2.3.1. Tipos de datos

En este apartado, se va a definir los tipos de datos que el controlador utiliza. Para un buen
funcionamiento se necesita que los tipos de datos que estan declarados en la librera, sean los
mismos tipos que se le ofrezcan para la configuracion. Como se ha comentado en el apartado
de Comunicacion, se ha tenido que realizar la conversion a su equivalente de un tipo de dato,
ya que este tipo de dato no era compatible con nuestro software, y por tanto se ha hecho su
equivalencia de forma satisfactoria.

A continuacion se presenta una tabla con los tipos de datos necesarios, y con los rangos
de valores que son compatibles, esto hay que tenerlo en cuenta a la hora de darle valor a las
variables.

Figura 13: Tipos de datos, Descripcion.

Como se puede ver, en la tabla se especifica cada rango de valores, y tambien se tendra
en cuenta sus equivalentes sin signo, es decir los tipos de datos unsigned, que se escriben de
la siguiente forma(ulong, uint...). Con toda esta informacion ya se podra configurar de forma
correcta los valores de las variables, para tener una coherencia con los tipos de datos de la
librera.

Universidad Politecnica de Cartagena 38


Comunicacion y control de las articulaciones de un exoesqueleto

2.3.2. Definicion de Propiedades

Para una correcta configuracion y comunicacion, el objeto creado tiene que tener una serie
de propiedades, las cuales tienen que ser compatibles con los tipos de datos de la librera, y
crearemos tantas propiedades como parametros a modificar se deseen.

1. Propiedades de Comunicacion. Estas propiedades se utilizan para configurar el tipo y


protocolo de comunicacion que se va a usar, as como su configuracion.

Dll Archivo [Link], librera donde estan configuradas todas las funciones
de la controladora.

Header Archivo Definitions.h, necesario para definir los tipos de datos de la li-
brera.

ReturnValue Propiedad que sirve para comprobar que una instruccion se ha hecho
de forma correcta, ya que si se hace de forma incorrecta da un valor diferente.

DeviceName Esta propiedad para este proyecto es EPOS2 y es un parametro de


configuracion para la comunicacion con la controladora.

ProtocolStackName En esta propiedad se establecera el protocolo utilizado para


la conexion, en este caso al ser por USB, el valor de esta propiedad es MAXON
SERIAL V2.

InterfaceName Esta propiedad nos indica la interfaz a la que esta conectado, en


este caso USB.

PortName Esta propiedad sirve para identificar, de forma unica el puerto al que
esta conectado cada controlador, (USB0, USB1,...).

KeyHandle Es un parametro identificador de tipo HANDLE

NodeId Esta propiedad nos identifica el nodo al que esta conectado la controla-
dora.

Baudrate Parametro de configuracion, 1e6

Timeout Parametro de configuracion, 100/500mseName Esta propiedad nos


indica la interfaz a la que esta conectado, en este caso USB.

2. Propiedades de Configuracion. Estas propiedades son las mnimas necesarias para poder
configurar el controlador y poder usarlo.

Mode En esta propiedad se selecciona el modo de operacion deseado.

Universidad Politecnica de Cartagena 39


Comunicacion y control de las articulaciones de un exoesqueleto

pMode Esta propiedad recibe el valor del modo de operacion con el cual esta
configurado.

ProfileVelocity Parametro de configuracion del perfil de Velocidad para los modos


de operacion.

Connected Esta es una propiedad, creada para el control de la comunicacion, y


que se activa cuando todo el proceso de comunicacion ha ido satisfactoriamente y se
puede proceder al control del exoesqueleto.

MaxAcceleration Limitacion del parametro de la aceleracion.

MaxFollowingError En esta propiedad se establece un error maximo.

MaxProfileVelocity Limitacion del parametro de la velocidad.

VelDimension Dimension de las unidades de la velocidad.

VelNotation Unidades de la velocidad, rpm.

P Parametro Proporcional del controlador PID

I Parametro Integral del controlador PID

D Parametro Derivativo del controlador PID

3. Propiedades de Motores y Sensores. Estas propiedades nos indican el tipo de motor y


sensor que se quiere controlar.

MotorType Parametro de configuracion de Hadware, en el que indica el tipo de


motor.

NominalCurrent Parametro del motor, corriente nominal.

MaxOuputCurrent Parametro del motor, Maxima salida de corriente.

ThermalTimeConstant Parametro del motor, Constante Termica.

NbOfPolePairs Parametro del motor, numero de pares de polos.

SensorType Tipo de sensor que se tiene instalado.

EncoderResolution Resolucion del Encoder.

InvertedPolarity En esta propiedad se puede modificar la polaridad del sensor.

Universidad Politecnica de Cartagena 40


Comunicacion y control de las articulaciones de un exoesqueleto

2.3.3. Creacion de una clase

Se usara Matlab para el control del exoesqueleto, y esto quiere decir que la programacion
sea orientada a objetos, y por tanto la necesidad de usar una clase es para la definicion de
propiedades, metodos y eventos.

Para que todas las propiedades o variables descritas antes sean faciles de asignar, se creara
una clase en Matlab. Se creara una clase class epos de tipo handle, la cual tendra todas las
propiedades anteriormente descritas, de esta forma, se podran crear diferentes objetos para las
diferentes controladores con las mismas propiedades, simplemente variando el objeto.

Nuestra utilidad para usar la clase, es crear un constructor que cree un objeto con todas
estas propiedades. De esta forma en nuestra rutina para conectar diferentes controladoeas, y
como veremos mas adelante, con las mismas lneas de codigo y funciones, y solo variando unas
propiedades se podra controlar cualquier numero de motores y configurar sus controladores.

Figura 14: Ejemplo de la clase.

Universidad Politecnica de Cartagena 41


Comunicacion y control de las articulaciones de un exoesqueleto

2.4. Matlab

En esta seccion, se va a desarrollar en el entorno de Matlab, una comunicacion completa.


Para llegar a esa comunicacion, esta seccion se dividira en tres: Rutina de conexion, Rutina de
operacion y Rutina de desconexion.

Figura 15: Rutina de funcionamiento en Matlab.

En la Rutina de conexion se trataran y explicaran los parametros y funciones de configu-


racion necesarias, hasta llegar a la habilitacion para realizar el control del controlador. En la
Rutina de operacion se va a describir el modo de operacion seleccionado, sus funciones para
su configuracion y se va a proceder a realizar un movimiento. En la Rutina de desconexion,
se explicara como en un orden especificado, la desconexion correcta del hadware y las libreras
usadas para su funcionamiento.

2.4.1. Rutina de conexion

Para realizar una buena conexion y comunicacion con el Hadware, se necesita seguir un orden
a la hora de su configuracion. En primer lugar se necesita cargar la librera para la comunicacion
con el Hadware, en segundo lugar se necesita la configuracion de motores, sensores y parametros
de operacion lmite, y por ultimo, si todo ha salido de forma satisfactoria se habilitara el
controlador para poder realizar movimientos y control. Por tanto, para una buena rutina se
tendra que seguir estos pasos de forma rigurosa, de no ser as, la configuracion y el control
puede ser erroneo.

1. Parametrizacion de la conexion.

2. Configuracion de motores, sensores y parametros lmite.

3. Habilitar controlador.

Universidad Politecnica de Cartagena 42


Comunicacion y control de las articulaciones de un exoesqueleto

Parametrizacion de la conexion

En esta parte, se va a desarrollar cada una de las instrucciones necesarias para la comunica-
cion, as como su orden de ejecucion para que todo funcione de forma correcta.

1. Loadlibrary. Con la funcion loadlibrary predefinida por Matlab, lo que se pretende es la


posibilidad de cargar un archivo .Dll con su archivo de definiciones .h . Esta funcion se
usara al inicio de la rutina siempre, ya que se necesita en todo momento, puesto que es
la librera que contiene todas las funciones y definiciones necesarias para el controlador.

2. OpenDevice. En esta parte, ya se pasa a las funciones de la librera para la conexion con el
controlador. En la funcion OpenDevice, lo que se hace es abrir el puerto para una primera
configuracion del controlador. Para que esta funcion funcione de forma correcta se necesita
que sus parametros de entrada esten definidos de forma correcta. Estos parametros son:

DeviceName

ProtocolStackName

InterfaceName

PortName

3. SetProtocolStackSettings. En esta funcion se establecera los parametros de comunicacion.


Estos parametros son la velocidad de transferencia y el tiempo que esta abierto el puer-
to, para eso, esas propiedades del objeto tienen que estar definidas anteriormente. Los
parametros son:

Baudrate

Timeout

4. ClearFault. Esta funcion, aunque no necesaria, es muy importante ponerla en esta posi-
cion de la rutina de comunicacion, debido a que si hubiera algun error guardado en la
controladora, esta funcion lo quitara y nos dejara trabajar, de lo contrario, el control
queda bloqueado. Los parametros de entrada de esta funcion son:

NodeId

5. SetPositionRegulatorGain. Esta funcion establece los parametros PID del controlador de


posicion integrado en el controlador. Estos parametros han sido establecidos por nosotros
previamente mediante un ensayo experimental. Los parametros de entrada son:

Universidad Politecnica de Cartagena 43


Comunicacion y control de las articulaciones de un exoesqueleto

NodeId

6. SetVelocityUnits. Con esta funcion estableceremos las unidades de los parametros de


velocidad, as como su notacion. En la notacion podemos elegir si es estandar, deci-,
centi-, o mili-.

NodeId

VelDimension

VelNotation

Configuracion de motores, sensores y parametros lmite

En esta parte, se establecera el tipo de motor y sensor que estamos utilizando, as como sus
caractersticas. Tambien se establecera los parametros lmite de operacion. Las caractersticas
del motor y del sensor, se encontraran en el catalogo del fabricante. En esta parte, es donde se
van a modificar los parametros en el caso de que se modifiquen los motores o sensores, se tienen
dos clases preparadas con las configuraciones para los motores EC45 y EC60. Para realizar todo
esto se procedera con las siguientes instrucciones:

1. SetMotorType. Esta funcion permite establecer de que tipo es el motor el cual se esta
usando, ya que el fabricante dispone de tres tipos de motores. En este caso se usara el
tipo 10, que corresponde con un motor EC senoidal conmutado. Los parametros para esta
funcion son:

NodeId

MotorType

2. SetEcMotorParameter. En esta funcion se van a establecer los parametros de operacion


del motor. Con estos parametros se limitara la maxima corriente en continua, la maxima
corriente admitida de salida, la constante termica y el numero de pares de polos que tiene
el motor.

NodeId

Universidad Politecnica de Cartagena 44


Comunicacion y control de las articulaciones de un exoesqueleto

NominalCurrent

MaxOutputCurrent

ThermalTimeConstant

NbOfPolePairs

3. SetSensorType. Como se ha hecho anteriormente con el motor, ahora con esta funcion
se establecera el tipo de sensor que tenemos montado. Se puede elegir entre 5 tipos de
sensores diferentes, pero en este caso, se esta utilizando un sensor incremental de dos
canales. Los parametros de entrada de esta funcion son:

NodeId

SensorType

4. SetIncEncoderParameter. Como se trata de un encoder incremental, para establecer su


modo de funcionamiento se usara esta funcion. Con esta funcion se podra establecer la
resolucion del encoder, y se podra elegir la polaridad con la que trabajara el sensor. La
maxima resolucion del encoder se encuentra en el catalogo del producto. Los parametros
de configuracion son:

NodeId

EncoderResolution

InvertedPolarity

5. SetMaxAcceleration. Con esta funcion, se va a establecer un criterio de seguridad con


respecto a la maxima aceleracion y deceleracion permitida. Esta funcion limita la acele-
racion a la hora de generar trayectorias en los modos de operacion. Los parametros de la
funcion son:

NodeId

MaxAcceleration

6. SetMaxFollowingError. Esta funcion, es tambien una funcion de seguridad, debido a que


limita el error maximo que se puede tener, entre la posicion demandada y la actual. Esta
propiedad se mide en pasos, en este caso, el error definido es de 2000 pasos. Los parametros
de entrada son:

NodeId

Universidad Politecnica de Cartagena 45


Comunicacion y control de las articulaciones de un exoesqueleto

MaxFollowingError

7. SetMaxProfileVelocity. Con esta funcion, se establecera un lmite de seguridad para el


perfil de velocidad, de esta forma no podra superar esta velocidad el motor. Este lmite
afecta a las trayectorias de los diferentes modos de operacion. Los parametros de entrada
de la funcion son:

NodeId

MaxProfileVelocity

8. SetOperationMode. Antes de poder habilitar la controladora, se tiene que establecer el


modo de operacion con el que va a trabajar. Como se ha visto en su captulo tenemos dife-
rentes modos, aunque en este caso, se usara el modo de perfil de posicion. Los parametros
de entrada de la funcion son:

NodeId

Mode

Habilitar controlador

Por ultimo, para acabar con la rutina de comunicacion, solo queda habilitar la controladora
para poder acceder al control del exoesqueleto. La controladora no se va a poder habilitar si
no se han hecho correctamente los pasos anteriores. Si toda lo configuracion ha sido correcta se
procedera a habilitar la controladora con la siguiente instruccion:

1. SetEnableState. Con esta funcion se va a habilitar la controladora que corresponda con


el objeto tratado. Los parametros para la ejecucion de la funcion son:

NodeId

Universidad Politecnica de Cartagena 46


Comunicacion y control de las articulaciones de un exoesqueleto

2.4.2. Rutina de operacion

En esta fase, se va a desarrollar las funciones que se han utilizado para activar un modo
de operacion, para mover las articulaciones y para la recepcion de datos del sensor. En los
modos de operacion se podran modificar sus parametros cada vez que se desee realizar un
movimiento. En este caso, se podra modificar la trayectoria del perfil de posicion en cada
movimiento, modificando as su velocidad, aceleracion... En la rutina de operacion, se podran
activar diferentes modos de operacion, pero los parametros de cada modo de operacion, solo se
podran cambiar siempre que el modo este activado.

Establecer modo de operacion

En esta parte se va a desarrollar la funcion utilizada para la activacion del modo de operacion.
En este caso, al querer trabajar con el modo de operacion de perfil de posicion, se tendra una
funcion especfica para activar este modo. Para cada modo de operacion se dispone de una
funcion especfica de cada uno par la activacion de este.

1. ActivateProfilePositionMode. Esta funcion unicamente permite activar el modo de ope-


racion, de perfil de posicion, no pudiendola usar para activar cualquier otro modo. Los
parametros necesarios para su funcionamiento son:

NodeId

Movimiento de articulaciones

En esta parte se va a desarrollar como se configuran los parametros de un modo de ope-


racion y el movimiento de los motores. Como se ha mencionado antes, existen mas modos de
operacion pero en este caso se va a trabajar con el modo de perfil de posicion, por lo tanto, las
funciones aqu descritas unicamente seran validas para este modo de operacion. En este modo
de operacion, se podran modificar los perfiles de aceleracion, de velocidad, y por consiguiente
la trayectoria. Tambien se podra modificar si se quiere una trayectoria trapezoidal o senoidal.
Con respecto al movimiento, se establecera si se quiere mover el motor en coordenads relativas
o absolutas, la posicion a la que se desea mover el motor y si se quiere que el movimiento del
motor sea instantaneo, o espera a que se realice el movimiento anterior para realizar el nuevo.
Todo esto se configura con las siguientes funciones:

Universidad Politecnica de Cartagena 47


Comunicacion y control de las articulaciones de un exoesqueleto

1. SetPositionProfile. En esta funcion se van a establecer los datos de configuracion del


modo de operacion. Se podra configurar la velocidad, la aceleracion, y por consiguiente
la trayectoria generada por ambos. Los parametros de entrada de la funcion son:

NodeId

ProfileVelocity

ProfileAcceleration

ProfileDeceleration

2. SetObject. Esta funcion sirve para modificar cualquier objeto de la controladora, en es-
te caso la usaremos para modificar el perfil de trayectoria, para que sea senoidal. Los
parametros de entrada de la funcion son:

NodeId

ObjectIndex

ObjectSubIndex

pData

NbOfBytesToWrite

3. MoveToPosition. Esta funcion es la encargada del movimiento del motor, y en ella se


podra definir la posicion deseada del motor, el sistema de coordenadas, si es absoluto o
relativo, y si el movimiento se quiere que se realice de forma instantanea.

NodeId

TargetPosition

Absolute

Inmediately

Lectura del sensor de posicion

En la parte de recepcion de datos del sensor, se realiza de forma simple mediante una funcion.
La lectura se recibe en pasos, por lo tanto si se esta trabajando en otra unidad, se tendra que
convertir para que sea coherente con el proyecto. La funcion usada para la lectura del encoder
es:

Universidad Politecnica de Cartagena 48


Comunicacion y control de las articulaciones de un exoesqueleto

1. GetPositionIs. Esta funcion es la encargada de la lectura de los datos del encoder, estos
datos vienen predefinidos por los parametros de configuracion del encoder. Los parametros
de entrada de la funcion son:

NodeId

PositionIs

2.4.3. Rutina de desconexion

Por ultima, y para finalizar la conexion y comunicacion de forma exitosa, se necesita una
buena rutina de desconexion, la cual se tiene que hacer de forma ordenada y secuencialmente,
de esta forma se asegurara una buena desconexion. En primer lugar se deshabilitara la contro-
ladora, des pues se preocedera al cierre de la comunicacion con el ordenador y por ultimo se
quitara la librera de la memoria del ordenador.

Deshabilitar controladora

En primer lugar se deshabilitara la controladora, si no fuera de esta forma, si antes se cerrara


la conexion o quitaramos la librera no se podra deshabilitar, creando un conflicto en la siguiente
conexion. La funcion que realiza esta tarea es:

1. SetDisableState.

Desconexion de dispositivos

Una vez deshabilitada la controladora, se procedera al cierre de la comunicacion, y esto se va


a hacer mediante dos funciones, una que cierra los dispositivos uno a uno y otra que los cierra
todos, de esta forma se asegura una desconexion correctta. Las funciones son:

1. CloseDevice.

2. CloseAllDevices.

Quitar libreria

Por ultimo, para finalizar la conexion se quitara de memoria la librera mediante una funcion
de Matlab. Esta funcion es unloadlibrary, y como parametro sera la librera que se esta usando.

Universidad Politecnica de Cartagena 49


Comunicacion y control de las articulaciones de un exoesqueleto

2.5. Simulink

Para la simulacion y pruebas, se va a usar el software de simulacion de Matlab, Simulink.


Simulink es un modulo de Matlab el cual permite una comunicacion en tiempo real entre la
computadora y la controladora. El principal objetivo es realizar una comunicacion en tiempo
real, en la cual se pueda controlar el exoesqueleto, y la recepcion de los valores ledos por los
sensores de cada uno de los motores. Para la implementacion, se va a usar un diagrama de
bloques muy simple.

Figura 16: Diagrama de bloques generico.

Como se observa en la figura, principalmente se va a trabajar con cuatro tipo de bloques


diferentes. El bloque que realmente se va a encargar de toda la tarea de comunicacion y control
es el bloque de Level-2 Matlab S-Function. Se va a utilizar una entrada en escalon y un tren
de pulsos para las pruebas realizadas, y para ver la respuesta se utilizara un osciloscopio. A
continuacion se va a detallar la funcion de cada bloque:

Source. Este bloque sirve para darle una entrada al sistema de control, es decir, para
decirle a que posicion se desea que vaya el motor. El bloque de Source en este caso,
principalmente sera un tren de pulsos, que se modificara de tal forma, para ver la reaccion
de los motores ante entradas muy dispares, y para de esta forma, poder sintonizar los
valores del controlador de una forma coherente.

Gain. Este bloque representa una ganancia, principalmente se pone este bloque para
controlar mediante este parametro una constante proporcional. En este caso este bloque
se usa para la direccion de los motores, es decir, para que todos los motores tengan el
mismo sistema de giro, simplificando al maximo la rutina de control y operacion.

Level-2 Matlab S-Function. Este bloque, sera el mas importante de todos, ya que per-
mitira la inclusion de script de Matlab en el diagrama de bloques. Este bloque crea una
instancia al modelo, en la cual se puede introducir parametros. Para su utilizacion, el blo-

Universidad Politecnica de Cartagena 50


Comunicacion y control de las articulaciones de un exoesqueleto

que tiene que estar configurado con el nombre del script, y con los parametros necesarios
de configuracion.

Figura 17: Condiguracion Level-2 Matlab S-Function.

Scope. En este bloque se va a representar en un osciloscopio digital, la posicion deseada y


la posicion en cada instante de tiempo de los motores, leyendo la informacion del encoder
que llevan estos instalados.

2.5.1. Diagrama de bloques

El diagrama de bloques para este proyecto, sera muy similar al planteado en el apartado
anterior, anadiendo un bloque mas, que sera el que gestione la conexion con la librera. Se va
a desarrollar el modelo para 1 motor, el cual sera el siguiente:

Figura 18: Diagrama de bloques generico.

Como se puede apreciar en el diagrama de bloques, se tienen dos partes diferenciadas, pero
que a su vez dependen entre s. Se tendra una primera parte que es un bloque aislado del resto,

Universidad Politecnica de Cartagena 51


Comunicacion y control de las articulaciones de un exoesqueleto

en el cual se encargara de cargar la librera, y en segundo lugar, se tendra un diagrama de


bloques mas completo que se encargara de toda la rutina de comunicacion con la controladora,
movimiento, lectura de datos y de desconexion.

Cargar Libreria

En primer lugar, lo que se tiene que asegurar es que se haya cargado la librera antes de que
la rutina de comunicacion funcione, y por eso se tratara de forma independiente de la rutina de
comunicacion. Para hacer la carga de la librera y que esta condicione al resto, se va ha crear
una variable global, que se va a encargar de que si la librera esta cargada funcione el modelo,
y si no, que emita un error, o que hasta que no se cargue no funcione.

Esta funcion, principalmente lo que hace, es cargar la librera con la funcion de Matlab
loadlibrary, y cuando se ejecute, se comprobara mediante la funcion libisloaded que la librera
esta correctamente cargada. Una vez comprobada la carga de la librera, la variable global
gLibraryLoad, se establecera a 1(si ha fallado), o a 2(Si esta cargada correctamente). Por
ultimo para hacerlo de una forma mas visual, mientras la librera este sin cargar, el fondo del
bloque estara de color rojo, y en el momento que se cargue se pondra de color verde, de esta
forma, se podra saber de forma visual si la librera esta cargada o no.

(a) Librera sin car- (b) Cargando Li- (c) Librera carga-
gar brera da

Rutina de Operacion

En la rutina de operacion se va a realizar todas las tareas de comunicacion, configuracion,


movimiento, control, y desconexion de cada uno de los motores. Se han agrupado todas estas
tareas en una rutina, debido a que los motores pueden variar, las controladoras tambien, y
de esta forma se tendra de forma independiente cada controladora, junto con sus motores y
sensores. Esto es muy importante, ya que en cada momento se va a tener un control total de cada
motor por separado, pudiendo variar sus caractersticas de operacion en cada momento, sin que
afecten a los otros motores. La rutina de operacion se va a dividir en 3 partes: comunicacion,

Universidad Politecnica de Cartagena 52


Comunicacion y control de las articulaciones de un exoesqueleto

Figura 19: Rutina de operacion completa.

control y desconexion. Esta rutina esta controlada principalmente por el bloque y el script
motor.m. Este bloque tiene unos parametros de configuracion, los cuales son el puerto al que
esta conectado la controladora, y el tipo de motor. Con estos parametros se permite crear un
objeto, el cual tiene las propiedades de ese motor y la comunicacion se va ha hacer en ese
puerto. Para habilitar las tareas de comunicacion y configuracion de la controladora, como se
ha mencionado anteriormente, se dispone de una variable global de control gLoadLibrary, la
cual se encarga de asegurar que la librera este cargada. Si la librera esta cargada, se dispone
a realizar el protocolo de comunicacion y configuracion de la controladora. Este protocolo se
divide en varias partes: comunicacion, configuracion de motores, sensores y parametros lmite,
y por ultimo la habilitacion de la controladora.

Figura 20: Parametros del bloque S-Function.

Toda la rutina de comunicacion se encuentra en un archivo llamado library-epos.m. En este


archivo se encontrara con una serie de opciones relacionadas con la comunicacion y configuracion

Universidad Politecnica de Cartagena 53


Comunicacion y control de las articulaciones de un exoesqueleto

de la controladora. En primer lugar realizaremos el protocolo de conexion y comunicacion, en el


cual se abrira el puerto y se establecera un protocolo. Despues se procedera a la configuracion
de todos los parametros referentes al motor, sensor y parametros lmites de seguridad que se
deseen. Una vez que toda la parte de configuracion ha sido realizada de forma correcta, se
procedera a habilitar la controladora para poder realizar el control del exoesqueleto. Cuando se
habilita la controladora, automaticamente, y si no se ha producido ningun error, una variable
global lo recoge, produciendo as una segunda variable de control global, la cual se encarga de
que la rutina de control se pueda hacer sin ningun tipo de problema.

Para el movimiento del motor, necesitamos que nos lo habilite la variable gEposConnected.
Esta variable se tratara como una propiedad del objeto, teniendo cada objeto creado su propia
variable de control. Una vez que la variable nos habilita el movimiento del motor, se procedera
a leer la posicion en la que se encuentra, y si es diferente de la que se desea, se movera el motor,
teniendo esta rutina en un script llamado movements.m. En esta rutina de movimiento, se
establecera una conversion de grados a pasos del motor, se establecera la velocidad y acelera-
cion, con la que se creara una trayectoria. Se configurara para tener una trayectoria o de tipo
trapezoidal o de tipo senoidal, y una vez configurado se procedera al movimiento, configurando
este en coordenadas absolutas o relativas, y si queremos el movimiento instantaneo o esperamos
a que acabe el movimiento [Link] de realizar el movimiento, se leera la posicion en
la que se encuentra el motor en cada instante de tiempo, pudiendo mediante esta senal, actuar
y hacer acciones de control del tipo PID.

Despues de realizar toda la rutina de operacion necesaria, se procede con la rutina de des-
conexion, la cual, en un orden secuencial, deshabilita la controladora, cierra conexion con los
diferentes dispositivos conectados al puerto, y por ultimo quita la librera de memoria. Despues
de toda esta rutina, el exoesqueleto esta preparado para una nueva rutina de operacion.

Universidad Politecnica de Cartagena 54


Comunicacion y control de las articulaciones de un exoesqueleto

3. Resultados

Universidad Politecnica de Cartagena 55


Comunicacion y control de las articulaciones de un exoesqueleto

3.1. Conexion y Comunicacion

Como primera parte del proyecto, se pidio una conexion y comunicacion entre las controla-
doras y el software Matlab. Para ello se ha implementado un protocolo de comunicacion antes
descrito, en el cual se establece una conexion mediante USB entre las controladoras y Matlab
o Simulink.

Esta primera parte consiste en realizar una conexion entre Matlab con las controladoras, ya
que no se dispone de drivers para este software. Para realizar la conexion se ha partido de
un archivo .DLL modificado para C++ y de un archivo Definitions.h, estos archivos fueron
proporcionados por una persona que realizo la conexion con Matlab y estas controladoras. Los
archivos fueron probados y no funcionaron ya que no estaban correctamente configurados y
los tipos de datos no eran validos para Matlab. Se modifico el archivo Definitions.h haciendo
compatible la librera para Matlab. Una vez conseguida una librera valida para la conexion
con Matlab se procede a establecer un protocolo de conexion y comunicacion.

Cada controladora se conecta al ordenador mediante un USB diferente, de esta forma el


identificador del puerto hay que ponerlo como parametro en cada controladora. Para que se
pueda configurar de una manera eficiente cualquier configuracion de motores, se dispondra de
una o varias clases con los diferentes motores y actuadores que se pudieran poner en nuestra
controladora, de esa forma solo se configurara la parte de la controladora y de comunicacion,
teniendo cada uno de los parametros de motores y sensores en sus clases correspondientes.

En todo el protocolo de comunicacion se configurara cualquier parametro que tenga que


ver con la conexion, as como todos los parametros de seguridad. Se estableceran los lmites
maximos de aceleracion, de velocidad y de error permitido. Despues de configurar parametros de
seguridad y de comunicacion, se procedera a la configuracion de los parametros de los motores
y sensores que se vayan a controlar, para eso, y como se ha mencionado anteriormente, se
dispondra de una o varias clases con estos datos predefinidos. En ultima instancia se establecera
el modo de operacion deseado, y por ultimo se procedera a la habilitacion de la controladora
para proceder al control del motor y movimientos. Para que la controladora se habilite tiene
que estar correctamente configurada, de lo contrario se pueden producir errores que impediran
que se habilite. Para ver en todo momento que pasa en la comunicacion se han establecido unos
mensajes por pantalla en los que se informara del proceso que esta ocurriendo.

Universidad Politecnica de Cartagena 56


Comunicacion y control de las articulaciones de un exoesqueleto

Para terminar con la comunicacion, es necesario realizar una desconexion de forma correcta
para evitar posibles fallos en una comunicacion futura. Para realizar una desconexion exitosa, en
primer lugar hay que deshabilitar la controladora, en segundo lugar se cerrara la conexion con
los puertos USB usados, y por ultimo quitaremos la librera de memoria de nuestro ordenador.
Por este orden y de esta forma se procede a una correcta desconexion de la controladora con
Matlab.

Universidad Politecnica de Cartagena 57


Comunicacion y control de las articulaciones de un exoesqueleto

3.2. Sintonizacion de PID

En este apartado, se va a sintonizar de manera experimental el PID correspondiente al modo


de operacion de perfil de posicion. Para su sintona se parte de un modelo de funcionamiento
de un motor, y se necesitara que nuestro sistema responda de manera estable y segura, a las
diferentes entradas que se puedan tener. Para esto se va a realizar la sintona mediante una
entrada de 10 posiciones diferentes que varan entra 0 y 27 grados.

3.2.1. Control mediante PID

Un controlador PID es un mecanismo de control por realimentacion ampliamente usado en


sistemas de control industrial. Este calcula la desviacion o error entre un valor medido y un
valor deseado.

El algoritmo del control PID consiste de tres parametros distintos: el proporcional, el integral,
y el derivativo. El valor Proporcional depende del error actual. El Integral depende de los errores
pasados y el Derivativo es una prediccion de los errores futuros. La suma de estas tres acciones
es usada para ajustar al proceso.

Figura 21: Esquema de funcionamiento PID

Para el correcto funcionamiento de un controlador PID que regule un proceso o sistema se


necesita, al menos:

Un sensor, Encoder situado en el motor.

Un controlador, EPOS2 50/5.

Un actuador, Motor.

Universidad Politecnica de Cartagena 58


Comunicacion y control de las articulaciones de un exoesqueleto

En este caso, se tendra como esquema de control, un bucle situado dentro de la controladora,
la cual lleva implementado un PID que se encarga del control. Para configurar este PID se hace
antes de su funcionamiento. El funcionamiento del PID dentro de la controladora solo se puede
aplicar en el modo de operacion de perfil de posicion, ya que para otros modos de operacion
lleva implementado otro tipo de controlador. En el interior del controlador, se interpreta la
senal del encoder, y se contrasta con la senal final, de esta forma se tiene la senal de error, que
es procesada mediante el PID, y este se encarga de enviar las condiciones de trabajo hacia el
motor. Para la sintonizacion del PID, se ha hecho de forma teorica y luego se ha optimizado
de forma emprica.

3.2.2. Sintonizado teorico

Para la sintonizacion teorica, se ha optado por el Metodo de la curva de reaccion de Ziegler-


Nichols. Este metodo consiste en realizar una prueba en lazo abierto con las siguientes carac-
tersticas.

1. Llevar manualmente la planta a lazo abierto a un punto de operacion normal manipulando


u(t). Supongamos que la planta se estabiliza en y(t) = y0 para u(t) = u0

2. En un instante inicial t0 aplicar un cambio escalon en la entrada,u0 a u del valor nominal.

3. Registrar la respuesta de la salida hasta que se estabilice en el nuevo punto de operacion.

4. Trazar una recta en el punto de maxima pendiente tangente a la curva y sacar los parame-
tros caractersticos cuando esta corte a y0 e y

5. Obtencion de los siguientes parametros.

Universidad Politecnica de Cartagena 59


Comunicacion y control de las articulaciones de un exoesqueleto

6. Calculo de los siguientes parametros.

Para la sintonizacion teorica se ha realizado el ensayo anteriormente descrito para un valor



objetivo de 15 y con una carga de 5Kg. Los resultados son los siguientes:

Los parametros obtenidos para aplicar el metodo de Ziegler-Nichols son:

0 =1; 0 =2600; 0 =6

Una vez realizados todos los calculos necesarios, los parametros teoricos del PID son:

Proporcional=520 ; Integrador=12 ; Derivativo=3

Universidad Politecnica de Cartagena 60


Comunicacion y control de las articulaciones de un exoesqueleto

3.2.3. Sintonizado experimental

Para el sintonizado experimental del PID se partira de los parametros calculados anterior-
mente. El criterio a seguir es la suavidad en la respuesta y el tiempo mnimo de establecimiento.
Para conseguir los valores optimos se va a seguir una pruba de un tren de pulsos en el cual se
le aplicara una carga, y se vera la reaccion del controlador.

Figura 22: Respuesta con controlador P=520, I=12 y D=3.

En la figura 22 se observa que se tiene una respuesta correcta ante una entrada de pulsos,
pero tambien se observa que no es una respuesta muy suavizada, por lo tanto, se optimizaran
los parametros del PID para conseguir que la respuesta a esta entrada sea lo mas suavizada
posible y lo mas exacta posible. A continuacion se realizaran unas pruebas para conseguir los
parametros optimos.

En la figura 23 se observa una respuesta ante la misma entrada de pulsos y la misma ganancia
mas suavizada, esto se debe a que se han modificado los valores del parametro integrador y del
parametro derivativo. Tambien se observa que se necesita una mejor respuesta y para ello se va
a modificar el parametro proporcional.

Universidad Politecnica de Cartagena 61


Comunicacion y control de las articulaciones de un exoesqueleto

Figura 23: Respuesta con controlador P=520, I=100 y D=100.

Figura 24: Respuesta con controlador P=1000, I=100 y D=100.

En la figura 24 se observa que se ha suavizado la respuesta del motor ante la entrada de


pulsos de diferentes amplitudes. Se consideraran estos parametros para la sintonizacion del
controlador PID interno. Por tanto, los parametros del controlador PID son:

Proporcional=1000 ; Integrador=100 ; Derivativo=100

Universidad Politecnica de Cartagena 62


Comunicacion y control de las articulaciones de un exoesqueleto

3.3. Movimiento de un motor

Despues de haber realizado un protocolo de comunicacion exitoso, y disponer de una librera


compatible con Matlab, se dispondra a la segunda parte del proyecto, la cual se corresponde
con el movimiento de los motores del exoesqueleto, es decir con el control y movimiento de las
articulaciones del exoesqueleto.

Para realizar el movimiento del motor, se ha hecho mediante codigo en Matlab y Simulink.
La diferencia entre ambos, pese a ser el mismo lenguaje de programacion, es que Simulink no
acepta todas las palabras reservadas e instrucciones de Matlab, y esto hay que adaptarlo a
el diagrama de bloques de Simulink. Basicamente, para poder mover y controlar un motor, el
procedimiento seguido es el siguiente:

1. Activar modo de Operacion.

2. Configurar parametros del modo de Operacion.

3. Realizar accion sobre el motor.

Como se ha mencionado anteriormente en el apartado de Modos de Operacion, se dispone de


multiples modos de Operacion para la controladora. En el caso de este proyecto y para realizar
las pruebas se ha usado el modo de operacion de perfil de posicion. En primer lugar se tiene
que activar dicho modo de operacion. Una vez activado se procede a establecer los parametros
de configuracion del modo, configurables en cada movimiento, estos parametros son:

Velocidad

Aceleracion

Tipo de perfil de la trayectoria

Posicion relativa o absoluta

Una opcion muy interesante, es la de poder cambiar el perfil de trayectoria creada, y se puede
elegir entre seonidal o trapezoidal. Para realizar movimientos de una forma mas realista, se elige
una trayectoria senoidal,ya que el perfil de la velocidad es maximo en el recorrido, y mnimo
en los extremos. Una vez configurado todo, se realizara el movimiento del motor, y para ello
vamos a usar el siguiente modelo en Simulink:

Universidad Politecnica de Cartagena 63


Comunicacion y control de las articulaciones de un exoesqueleto

Figura 25: Modelo de 1 motor en Simulink

Como se puede observar en el modelo de Simulink, se dispone de varios bloques en los que se
realizaran todas las tareas anteriormente descritas. Para visualizar los datos se usara el bloque
LECTURA, que mostrara la posicion demandada y la leda por el encoder en cada momento.
Para realizar las pruebas, se va a someter al motor a un movimiento de 0-27 grados, en los que
se va a generar un tren de pulsos y se vera el comportamiento del mismo.

Figura 26: Movimiento de un Motor ante un tren de pulsos.

Universidad Politecnica de Cartagena 64


Comunicacion y control de las articulaciones de un exoesqueleto

En la figura 26 se lleva a cabo el movimiento de un motor. En esta grafica se puede observar


y analizar la respuesta del motor ante una entrada de un tren de pulsos. El motor analizado
se trata de un EC45, correspondiente a la articulacion de la cadera. Como se observa en la
figura 26, el motor responde de una manera lineal y eficaz ante las diferentes variaciones de
posicion dadas. El tiempo que tarda el motor en llegar a la posicion dada se debe a la baja
velocidad con la que se estan realizando las pruebas ya que en su aplicacion real la velocidad
tiene que ser lo mas parecida a la del movimiento del cuerpo humano. Se puede concluir que
con la configuracion dada para la conexion y control de un motor, este funciona de manera
aceptable.

Figura 27: Movimiento de un Motor ante un escalon.

En la figura 27 se observa la respuesta de un motor EC45 a una entrada de tipo escalon.



Como se puede observar en la figura, se propone un escalon de 20 el cual es alcanzado por el
motor en un tiempo de 0.6 segundos. La respuesta observada es de tipo lineal y de una forma
eficaz y segura para la velocidad dada.

Universidad Politecnica de Cartagena 65


Comunicacion y control de las articulaciones de un exoesqueleto

3.4. Movimiento simultaneo de dos motores

Para realizar el control sobre dos motores de forma simultanea, el principal problema que se
encontro fue la sincrona entre ambos para poder realizar todas las tareas de forma simultanea.
Para la realizacion de esta prueba se ha usado el siguiente modelo en Simulink:

Figura 28: Diagrama de bloques de dos motores simultaneos.

Como se puede observar en el diagrama de bloques, se tiene un motor con coordenadas


positivas, y otro con coordenadas negativas. Esto se hace debido a que los motores son los de
la cadera, y como estan de forma simetrica pero en diferentes sentidos, las coordenadas seran
las mismas pero complementarias entre s. Se va a realizar el estudio con un tren de pulsos que
oscilara entre 0 y 27 grados. Como se ha mencionado anteriormente, el principal problema ha
sido realizar un codigo totalmente complementario entre s, siendo capaz de agregar hadware
nuevo o quitarlo sin necesidad de modificar el codigo. Para ello se ha usado un bloque S-Function
Level 2, el cual se comporta como un bucle, inicializa, realiza la operacion hasta que se acabe
cualquier solicitacion, y por ultimo termina.

El bloque principal es el llamado motor, y en el se ejecuta toda la rutina de configuracion


de la controladora y la conexion. En este bloque se establece una condicion para que empiece
a funcionar, y es que la librera tiene que estar cargada, si no esta cargada no funcionara
nada. Como se ha dicho, lo importante para este proyecto, es realizar un codigo facilmente
configurable y modificable a la hora de anadir o quitar hadware a nuestro modelo, y para
ello se dispone de una estructura de codigo en la cual solo se necesitan dos parametros de

Universidad Politecnica de Cartagena 66


Comunicacion y control de las articulaciones de un exoesqueleto

entrada para la configuracion de ese hadware. Estos parametros son: el identificador del puerto
al que esta conectado y el tipo de motor que tenemos. Con estos parametros correctamente
configurados, el codigo genera un objeto unico de cada bloque, que a su vez va relacionado con
el identificador del objeto.

Figura 29: Parametros de entrada del bloque motor.

Una vez acabada toda la configuracion de las controladoras que se tengan en el modelo de
Simulink, se procedera al movimiento de forma simultanea de todos los motores agregados. Por
ultimo, se procedera a la rutina de desconexion de forma completa llevando a la posicion de
origen a los motores.

Figura 30: Movimiento de dos motores de forma simultanea.

Universidad Politecnica de Cartagena 67


Comunicacion y control de las articulaciones de un exoesqueleto

Esta grafica correspondiente a la figura 30 es de los motores EC45, pertenecientes a la ar-


ticulacion de la cadera. En ella se puede observar una respuesta simultanea de dos motores
opuestos entre s, con una respuesta totalmente simultanea entre s. Con este ensayo se preten-
de demostrar la capacidad para levantarse y sentarse en trabajos futuros.

Movimiento de la cadera con carga

Se va a realizar una prueba de l articulacion de la cadera para ver como responde sometido a
carga. La prueba consiste en realizar una serie de movimientos poniendo y quitando una carga
de 5Kg. Los resultados son los siguientes:

Figura 31: Movimiento de dos motores de forma simultanea con carga.

Esta grafica correspondiente a la figura 31 es de los motores EC45 sometido a una carga
de 5Kg, pertenecientes a la articulacion de la cadera. En ella se puede observar una respuesta
simultanea de dos motores opuestos entre s, y a pesar de la carga el control de la posicion de
los motores es total. Si analizamos los resultados podemos deducir que se comporta muy similar
a si estuviera trabajando en vaco, por tanto, en la cadera el control de los motores funciona
de forma correcta.

Universidad Politecnica de Cartagena 68


Comunicacion y control de las articulaciones de un exoesqueleto

Movimiento para la articulacion de la rodilla

Se va a realizar una conexion, cambiando los parametros para las rodillas, las cuales llevan
incorporados unos motores EC60. Para realizar ese cambio de parametros y como se ha dicho
anteriormente, solo es necesario variar un parametro de entrada en el bloque motor, en nuestro
caso el segundo parametro le pondremos como dato 60.

Figura 32: Parametro de configuracion del tipo de motor.

El ensayo con la articulacion de las rodillas solo se puede hacer con los motores de forma
simultanea, debido a una placa que une la extremidad inferior del exoesqueleto. A la hora de
realizar el ensayo, se ha comprobado que no es capaz de subir por s solo toda la estructura,
sin que alguno de los dos motores entre en una situacion crtica de error.

Figura 33: Motor en estado de error a 30 grados aproximadamente.

Universidad Politecnica de Cartagena 69


Comunicacion y control de las articulaciones de un exoesqueleto

La figura 33 representa una prueba en vaco de movimiento simultaneo entre los dos motores
de las rodillas. Como se puede observar, y por motivos de diseno del prototipo, estos motores
o esta configuracion de engranajes es incapaz de levantar la estructura, por lo tanto se esta
limitado a la hora de realizar los movimientos y el analisis a no excedernos de 30 grados. Como
se observa en la grafica, cuando la estructura alcanza una amplitud de 28 grados, uno de los
motores falla, provocando el fallo del otro motor debido al peso. Se ha realizado una prueba en
la que se levanta la estructura 45 grados con ayuda humana. Esta ayuda consiste en apoyar a
los motores con una mano en la cadera para que no recaiga todo el peso sobre ellos. Como se
puede observar en la prueba de levantamiento a 45 grados, la prueba ha sido satisfactoria en
cuanto a simultaneidad y comportamiento de motores se refiere.

Figura 34: Movimiento de las rodillas simultaneamente.

La figura 34 representa la prueba realizada con ayuda humana del exoesqueleto para poder

realizar movimientos de mas de 28 en los motores de las rodillas. Como se observa, la respuesta
de los motores es totalmente simultanea, de esta forma, podemos afirmar que en un futuro este
algortmo, por su eficacia, sera capaz de realizar tareas de levantarse y sentarse de forma segura.

Universidad Politecnica de Cartagena 70


Comunicacion y control de las articulaciones de un exoesqueleto

3.5. Movimiento independiente de dos motores

En esta prueba, lo que se pretende es comprobar la seguridad en la articulacion de la cadera,


tanto para saber si se puede mover de forma independiente los dos lados aun estando unidos, y
para ver cual es la maxima desviacion que podemos tener sin que los motores den error. Para
este ensayo, se va a usar el mismo esquema del apartado anterior pero con diferentes entradas
de pulsos para cada motor, de esta forma se podran variar tanto posicion como la duracion de
esta en cada uno de los motores.

Para realizar esta prueba, y para comprobar cual es el lmite de la union entre los dos motores
de la cadera, se va a realizar un ensayo, en el cual se le van a dar diferentes posiciones a cada
uno de los motores pero el ensayo se realizara en vaco.

Figura 35: Desviacion maxima permitida en la cadera.

Universidad Politecnica de Cartagena 71


Comunicacion y control de las articulaciones de un exoesqueleto

Como se puede observar en la figura 35 los dos motores se mueven de forma independiente
hasta que existe una desviacion maxima entre ambos de 18 grados, por tanto los motores de la
cadera nunca deben de estar desfasados mas de 18 grados, de ser as provocara un error que
nos liberara los motores. Esta prueba se hace ya que a la hora de caminar, la cadera de cada
lado es independiente del lado opuesto, por eso se tiene que comprobar que se puede trabajar
con diferentes posiciones a la vez en ambos lados de la cadera.

Para terminar el analisis de los movimientos en ambos lados de la cadera, se va a proceder a


realizar una prueba en la que no se va a exceder el lmite de 18 grados impuesto por la union de
la cadera. Como se puede observar en la imagen, si no se excede ese valor los motores trabajan
de forma correcta.

Figura 36: Movimiento independiente a ambos lados de la cadera.

La figura 36 representa la respuesta de los dos motores de la cadera, trabajando de forma


simultanea pero con diferentes valores de posicion. Como se puede observar la sinergia entre

Universidad Politecnica de Cartagena 72


Comunicacion y control de las articulaciones de un exoesqueleto

ambos es total, y la respuesta a pesar de la diferencia de posiciones dadas es muy eficaz. Esta
prueba se ha realizado para, en un futuro, poder realizar la tarea de caminar, ya que esta
tarea consta de movimientos simultaneos de la cadera pero con diferentes posiciones entre los
diferentes lados.

Figura 37: Movimiento independiente a ambos lados de la cadera.

La figura 37 representa el movimiento independiente de los dos motores de la cadera. En esta


prueba se ha optado por darle una posicion constante a un lado de la cadera mientras el otro
lado va realizando cambios de posicion. Como se puede observar la respuesta de ambos motores
es correcta.

Universidad Politecnica de Cartagena 73


Comunicacion y control de las articulaciones de un exoesqueleto

3.6. Movimiento de cadera y rodillas

En esta seccion se va a proceder a hacer un movimiento simultaneo y controlado de las


rodillas y la cadera, es decir, se va a combinar motores EC45 con motores EC60. Para realizar
esto, y como se ha dicho anteriormente, en nuestro modelo de Simulink solo hay que anadir dos
motores mas, ya que el codigo realizado en Matlab permite esa flexibilidad y comodidad a la
hora de realizar el modelo en Simulink, por lo tanto el modelo de Simulink es el siguiente:

Figura 38: Modelo de Simulink para Rodillas y Cadera.

Como se puede observar en el modelo, se dispone de cuatro bloques principales llamados


motor, los cuales representan a cada uno de los motores que intervienen en el movimiento:
cadera izquierda, cadera derecha, rodilla izquierda y rodilla derecha. Como se ha mencionado
anteriormente las pruebas de movimiento van a estar limitadas tanto en espacio para la cadera,
como en lmite de peso para los motores. Se van a realizar dos pruebas, una en la que se moveran
las rodillas de forma simultanea, y movimiento de cadera, y la segunda consiste en la simulacion
de un acto de levantarse, dentro de las limitaciones de movimiento del prototipo.

Universidad Politecnica de Cartagena 74


Comunicacion y control de las articulaciones de un exoesqueleto

Figura 39: Movimiento de Rodillas y Cadera.

En la figura 39 se representa una prueba realizada de un movimiento simultaneo de arti-


culaciones, pero estas desfasadas entre s. Como se puede observar, la simultaneidad de las
articulaciones es total y la respuesta es muy eficaz. Esta prueba se ha realizado para comprobar
la independencia de cada uno de los motores, as como de las articulaciones. Se observa que en
ningun momento las articulaciones se ven afectadas por el movimiento de otras articulaciones.

En la figura 40 se realiza una prueba de levantarse, mantenerse en una posicion, y sentarse


dentro de las limitaciones de nuestro prototipo. Como se puede observar en la prueba la si-
multaneidad es total, ofreciendo as nuestro algortmo una capacidad de trabajo de los motores
independiente y a la vez simultaneo cuando se requiere. En la figura se observa como de forma
simultanea se mueven las rodillas y la cadera hasta su posicion objetivo dada. Esta trayectoria
no es natural del cuerpo humano debido a las limitaciones del prototipo, pero con este ensayo
se pretende demostrar una capacidad real del algortmo para realizar este tipo de maniobras.

Universidad Politecnica de Cartagena 75


Comunicacion y control de las articulaciones de un exoesqueleto

Figura 40: Comportamiento de los motores ante un acto de levantarse.

Universidad Politecnica de Cartagena 76


Comunicacion y control de las articulaciones de un exoesqueleto

3.7. Modelo propuesto para la simulacion del Exoesqueleto

Para una simulacion completa del exoesqueleto se ha realizado un modelo, pero no se ha


podido poner en funcionamiento debido a que un regulador de voltaje, el cual va a los motores de
los tobillos esta cortocircuitado internamente y no se ha remplazado. Como se puede observar en
la figura, el modelo esta compuesto por 6 bloques principales que funcionan de forma simultanea,
de los cuales cada bloque motor pertenece a cada uno de los siguientes motores: cadera derecha,
cadera izquierda, rodilla derecha, rodilla izquierda, tobillo derecho y tobillo izquierdo.

Figura 41: Modelo de Simulink del exoesqueleto.

Universidad Politecnica de Cartagena 77


Comunicacion y control de las articulaciones de un exoesqueleto

Una vez realizado este modelo, para poner en funcionamiento y programar el exoesqueleto,
se tienen que estudiar las trayectorias que se desee que realice el exoesqueleto. Para que este
modelo funcione las articulaciones tienen que tener una cierta sinergia entre s, es decir, que
tienen que ser capaces de moverse de forma simultanea o independiente. Como se ha comprobado
anteriormente para los diferentes ensayos, esa sinergia se puede conseguir.

Se ha propuesto este modelo debido a los resultados realizados con el modelo de las articula-
ciones de la cadera y la rodilla trabajando de forma simultanea. Este modelo es similar pero con
una articulacion mas, por este motivo este modelo tiene que funcionar de la misma manera que
el de dos articulaciones completas. El modelo tiene que ser capaz de hacer trabajar de forma
simultanea a las articulaciones, y tambien tiene que ser capaz de hacerlas funcionar de forma
independiente.

Si se analiza el diagrama de bloques propuesto se observa que cada motor es independiente


del anterior, pero esto no es inconveniente para que trabajen de forma simultanea, ya que se
ha comprobado anteriormente que pueden ser totalmente simultaneos trabajando independien-
temente. De esta forma se puede justificar la propuesta de este modelo como valido para el
movimiento total del exoesqueleto.

Universidad Politecnica de Cartagena 78


Comunicacion y control de las articulaciones de un exoesqueleto

3.8. Problemas y limitaciones

En este apartado se van a tratar todos los problemas que han surgido, y las limitaciones que
se han tenido para la correcta realizacion del proyecto. Se han tenido limitaciones de espacio
en la zona de trabajo y de movilidad, as como una limitacion de movimientos por el diseno del
prototipo. Por ultimo y como problema principal, se ha tenido un problema con el derivador
de voltaje que alimenta los motores de los tobillos, los cuales quedaron inutilizados y no se ha
podido probar el exoesqueleto entero.

3.8.1. Limitacion de espacio

Con respecto a la limitacion de espacio, el prototipo se encuentra en posicion sentada en una


silla con respaldo inclinado. Al estar el prototipo sentado y no tener ningun tipo de medio para
poder realizar movimientos sin riesgo de seguridad, solamente se podra mover mientras este
sentado. En esta postura y como se muestra en la imagen, solo se dispone de aproximadamente
27 grados de movimiento, por lo tanto es un movimiento bastante limitado, pero suficiente para
realizar diversas pruebas configuraciones.

(a) Limitacion respaldo (b) Limitacion cableado

Figura 42: Espacio disponible para realizar pruebas.

Otra limitacion relacionada con el espacio, es el cableado, que se situa de forma libre entre
el exoesqueleto y las controladoras. Este cableado es un riesgo de seguridad, debido a que si
en algun momento uno de los cables se queda enganchado en algun sitio, se puede producir la
rotura del mismo o un error en la controladora, el cual nos puede provocar un importante dano
en nuestro prototipo si nos encontramos en ese momento trabajando con el y en movimiento.

Universidad Politecnica de Cartagena 79


Comunicacion y control de las articulaciones de un exoesqueleto

3.8.2. Limitacion de peso

Como se ha comprobado cuando se ha intentado realizar movimientos con la articulacion


de la rodilla, los motores seleccionados no son capaces de aportar toda el par necesario para
mover el prototipo. Se ha observado que debido al peso del prototipo y que tiene que soportar
cuando realiza el movimiento para levantarse, cuando llega a una cierta inclinacion, los motores
entran en corte. Si los motores entran en corte, automaticamente aparece un error interno de la
controladora por el cual deja libre a los motores, y en un caso real, la persona a la que estuviera
ayudando le producira una caida.

Figura 43: Limitacion de carga de los motores de la rodilla.

3.8.3. Limitacion de movimientos naturales, topes

Para realizar los movimientos de levantarse, sentarse, andar, ... Se necesita una disponibi-
lidad de capacidad de movimiento del prototipo muy amplia para la realizacion de una forma
natural de todos estos movimientos, la cual este prototipo no cumple de forma natural a ciertos
movimientos.

Para el movimiento de levantarse y sentarse, se necesita desplazar el centro de gravedad de


el peso del cuerpo para mantener el equilibrio, y esto se consigue inclinando la cadera hacia
delante mientras estamos sentados. Como se puede observar en la imagen de la limitacion de
cadera, ese movimiento no lo permite debido al diseno del prototipo, por lo tanto con este
prototipo sera imposible realizar una accion natural tanto de levantarse como de sentarse.

Otras limitaciones importantes de movimiento que se encuentran estan en las articulaciones


de la rodilla y de los tobillos. Como se puede observar en las imagenes, los rangos de movimientos
son amplios para los movimientos normales, pero si queremos realizar algun movimiento mas

Universidad Politecnica de Cartagena 80


Comunicacion y control de las articulaciones de un exoesqueleto

complejo o diferente, este prototipo nos impedira poder realizar dichos movimientos debido a
su diseno mecanico.

(a) Limitacion Cadera (b) Limitacion Rodilla (c) Limitacion Tobillo

Figura 44: Limitacion de movimientos del prototipo.

3.8.4. Problema del Regulador de tension para los motores EC60

Se ha tenido un problema importante, el cual todava no se ha resuelto, y es la rotura de


un regulador de voltaje, el cual alimenta a los motores EC60 asociado en un primer momento
con el lado izquierdo del exoesqueleto. El problema es aparentemente un cortocircuito, ya que
se han realizado unas pruebas superficiales para ver que regulador o cuales reguladores estaban
fallando y para detectar el porque del fallo. Una vez detectado el regulador se ha anulado para
no provocar mas fallos y se ha modificado el esquema de conexion para poder aprovechar el otro
regulador disponible. Para poder avanzar en el proyecto se ha conectado la rodilla izquierda
al regulador de voltaje que alimenta a los motores EC60 del lado derecho, prescindiendo del
tobillo derecho.

Figura 45: Regulador averiado.

Universidad Politecnica de Cartagena 81


Comunicacion y control de las articulaciones de un exoesqueleto

3.9. Mejoras propuestas

Para intentar solucionar estas limitaciones y problemas, y para optimizar todo el proceso se
proponen una serie de mejoras, las cuales engloban a aspectos como la seguridad para trabajar,
otras opciones de comunicacion posiblemente mas efectivas, ampliacion de sensores para una
mayor seguridad y un nuevo diseno mecanico que permita unos movimientos mas naturales.

3.9.1. Sistemas de seguridad

Para la mejora del aspecto de seguridad, se propone un banco de pruebas en el que se pueda
trabajar con el exoesqueleto y realizar pruebas sin ningun tipo de limitacion. Para esta mejora
se propone que el exoesqueleto se situe colgado sobre un polipasto. Esta accion permite poder
simular cualquier tipo de movimiento sin riesgo de peligro y con total seguridad.

3.9.2. Protocolo de comunicacion

Actualmente se dispone de una comunicacion va USB, independiente para cada controla-


dora. Esta comunicacion presenta varios inconvenientes, entre los que se encuentra la cantidad
de conexiones que hay que realizar con el ordenador, y por tanto mas probabilidad de que algun
puerto USB falle.

Para optimizar lo realizado, se propone una comunicacion mediante una red de sensores
CAN. Estas redes son mas factibles debido a que solo se hara una conexion al ordenador, el
cual enviara las ordenes a los diferentes sensores que estan conectados entre s, pero cada uno
es un nodo diferente, pudiendo de esta forma poder intercambiar datos entre ellos y evitar
conexiones independientes de cada controladora por separado. De esta forma se dispondra de
una red interconectada entre s y capaz de interactuar ante cualquier fallo.

Figura 46: Red de comunicacion, protocolo CANOpen.

Universidad Politecnica de Cartagena 82


Comunicacion y control de las articulaciones de un exoesqueleto

3.9.3. Implantacion de Encoders Absolutos

Actualmente se tiene un problema a la hora de la configuracion de los motores, debido a


que una vez que se apaga la alimentacion, todos los encoders establecen su nuevo 0 cuando se
le alimenta, de esta forma es imposible saber en la posicion en la que esta el exoesqueleto al
iniciar.

Para solucionar este problema se propone implantar algun sistema de seguridad que nos
permita saber la posicion del exoesqueleto de forma exacta. Para ello se propone la implantacion
de una red de encoders absolutos, los cuales nos permitan saber en cada momento en que
posicion estamos, para de esta forma configurar los motores y las trayectorias de forma correcta
y segura antes de cada movimiento. Se proponen los encoders absolutos de la marca Maxon, ya
que son perfectamente compatibles con las entradas de los controladores utilizados.

3.9.4. Implantacion de Giroscopio

A la hora de realizar un control de equilibrio en suelos irregulares se observa que no se


dispone de medios electronicos para saber en cada momento el grado de equilibrio que tenemos.
Para solucionar esto se propone la implantacion de un giroscopio en la cadera para controlar la
nivelacion de la persona en cada momento. De esta forma, cuando el individuo pase por suelos
irregulares, sera capaz de controlar el equilibrio y la posicion de sus articulaciones en funcion
de los datos obtenidos por el giroscopio.

Universidad Politecnica de Cartagena 83


Comunicacion y control de las articulaciones de un exoesqueleto

3.9.5. Diseno del prototipo

Para solucionar los problemas de diseno de prototipo se proponen diferentes medidas: reducir
el peso con otro material y reducir angulos entre las extremidades del exoesqueleto.

Para la reduccion de peso del exoesqueleto, se propone la utilizacion de otro tipo de material
mas ligero, pero capaz de resistir la carga para la que el exoesqueleto se necesita. otra medida
para la reduccion de peso es la de la optimizacion del diseno evitando sobredimensionados de
la estructura del exoesqueleto.

Figura 47: Posible mejora de diseno.

Para poder aumentar el rango de movimientos del exoesqueleto, se propone un diseno con
una union entre extremidades circular, lo cual, nos permite unos movimientos practicamente
ilimitados. Como el cuerpo humano tiene unas limitaciones, se propone poner unos sistemas de
seguridad en el lmite de los movimientos naturales, estas medidas de proteccion podran ser
unos interruptores finales de carrera, encoders, o cualquier otro sistema mecanico o electronico
capaz de ofrecer la maxima seguridad.

Universidad Politecnica de Cartagena 84


Comunicacion y control de las articulaciones de un exoesqueleto

3.10. Trabajos futuros respecto a algortmos de control

Como continuacion y finalizacion del proyecto se proponen trabajos futuros con respecto
a algortmos de control de trayectorias. Si se analiza el diagrama de bloques propuesto se
observa que esta preparado para sustituir las entradas a los motores por una funcion que genere
trayectorias. Esta funcion tiene que ser capaz de comunicar todos los motores y condicionar las
entradas de cada uno con respecto a la trayectoria que se vaya a realizar.

Trayectoria de levantarse y sentarse

Para la trayectoria de levantarse y sentarse, se ha tomado como referencia el trabajo de Karlj


y Bajd (1989) donde se describe que la accion de ponerse en pie y sentarse esta dividida en
fases, las cuales se pueden representar en la siguiente imagen.

Figura 48: Trayectoria de levantarse y sentarse, Karlj y Bajd (1989).

Como se observa en la grafica, para levantarse se necesitan realizar diferentes movimientos.


En primer lugar se tiene que inclinar la cadera hacia adelante para conseguir desplazar el centro
de gravedad, en segundo lugar, se eleva el cuerpo, moviendo todas las articulaciones de forma
simultanea para no perder el equilibrio, y en ultimo lugar se procede a la estabilizacion de la
posicion totalmente erguido.
Para realizar la trayectoria de sentarse hay que realizar de forma rigurosa pero a la inversa,
una trayectoria similar, cuidando en todo momento el equilibrio y el centro de gravedad para
no producir una cada.

Esta trayectoria sera un ejemplo de como afrontar la parte del algortmo de control de
trayectorias. Las trayectorias principales a estudiar seran: Ponerse de pie y sentarse, andar,
subir y bajar escaleras, mantener el equilibrio en plataformas oscilantes, etc.

Universidad Politecnica de Cartagena 85


Comunicacion y control de las articulaciones de un exoesqueleto

4. Anexos

Universidad Politecnica de Cartagena 87


Comunicacion y control de las articulaciones de un exoesqueleto

4.1. Flujograma de funcionamiento

Universidad Politecnica de Cartagena 88


Comunicacion y control de las articulaciones de un exoesqueleto

4.2. Algortmo de programacion en Matlab

A continuacion se muestra un ejemplo completo de una rutina de movimiento. Como se


puede comprobar esta todo en el mismo orden anteriormente explicado, de esta forma se expone
un codigo con el que realizar de forma satisfactoria un movimiento de un motor. Este codigo
esta referenciado al movimiento de la cadera, si se quisiera otra extremidad, ya que cambiara
el motor, solamente habra que cambiar la clase donde esten las propiedades con los valores
correctos de ese motor.

%---RUTINA PARA TESTEAR UN MOTOR CONECTADO A USB0, ESTA RUTINA ESTA CONFIGURADA PARA UN
%MOTOR EC45, SI QUEREMOS UN MOTOR EC60 CAMBIAREMOS LA PRIMERA LINEA DE
%CODIGO POR LA SEGUNDA.------------------------------------------------

%--------SE CREA EL OBJETO CON EL QUE VAMOS A TRABAJAR-----------------


epos = class epos(); %MOTOR EC45
%epos = class epos60(); %MOTOR EC60
[Link]='USB0';
cerrar=1;
%---------CARGAR LIBRERIA-----------------------------------------------
[notfound, warnings]= loadlibrary ('EposCmd', 'Definitions.h');

%--------CONFIGURACION Y HABILITACION DEL HADWARE-----------------------


%--------PARAMETRIZACION DE LA CONEXION-----------------------
[[Link], [Link], [Link], [Link], [Link]
[Link]] = calllib ('EposCmd', 'VCS OpenDevice',[Link], [Link]
[Link], [Link], [Link]);

[[Link], [Link], [Link]] = calllib ('EposCmd', 'VCS SetProtocolSt


[Link], [Link],[Link] , [Link]);

[[Link], [Link], [Link]] = calllib ('EposCmd', 'VCS ClearFault',


[Link],[Link], [Link]);

[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetPositionReg


[Link],[Link], epos.P, epos.I, epos.D, [Link]);

[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetVelocityUni


[Link],[Link], [Link], [Link], [Link]);

Universidad Politecnica de Cartagena 89


Comunicacion y control de las articulaciones de un exoesqueleto

%--------CONFIGURACION DE MOTORES, SENSORES Y PARAMETROS LIMITE-----------------------


[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetMotorType',
[Link],[Link], [Link], [Link]);

[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetEcMotorPara


[Link],[Link], [Link],[Link],[Link]
[Link],[Link]);

[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetSensorType'


[Link],[Link], [Link], [Link]);

[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetIncEncoderP


[Link],[Link], [Link], [Link], [Link])

[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetMaxAccelera


[Link],[Link], [Link], [Link]);

[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetMaxFollowin


[Link],[Link], [Link], [Link]);

[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetMaxProfileV


[Link], [Link], [Link], [Link]);

[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetOperationMo


[Link],[Link], [Link], [Link]);

%--------HABILITAR CONTROLADORA-----------------------
[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetEnableState
[Link], [Link], [Link]);

disp('EPOS2 Habilitada, Puede comenzar a testear...');

%-----------------RUTINA DE OPERACION-----------------------
%--------ESTABLECER MODO DE OPERACION-----------------------
[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS ActivateProfil
[Link], [Link], [Link])

%--------MOVIMIENTO DE ARTICULACIONES-----------------------
[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetPositionPro

Universidad Politecnica de Cartagena 90


Comunicacion y control de las articulaciones de un exoesqueleto

[Link], [Link], [Link], [Link],...


[Link], [Link]);

%TIPO DE PERFIL, 0--> TRAPEZOIDAL, 1--> SENOIDAL


profile = 1;
number = 0;

[[Link],[Link], profile, number ,[Link]] = calllib ('EposCmd',...


'VCS SetObject', [Link], [Link], 24710, 0, profile, 2, number, [Link]

[[Link], [Link], [Link]] = calllib ('EposCmd', 'VCS MoveToPositio


[Link], [Link], pasos, [Link], [Link], [Link]);
%--------LECTURA DEL SENSOR DE POSICION-----------------------
[[Link], [Link], [Link], [Link]] = calllib ('EposCmd',..
'VCS GetPositionIs', [Link], [Link], [Link], [Link]);

%------------RUTINA DE DESCONEXION-----------------------
if cerrar==1

%--------DESHABILITAR CONTROLADORA-----------------------
[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS SetDisableStat
[Link],[Link], [Link]);

%--------DESCONEXION DE DISPOSITIVOS-----------------------
[[Link],[Link], [Link]] = calllib ('EposCmd', 'VCS CloseDevice',.
[Link], [Link]);

[[Link], [Link]] = calllib ('EposCmd', 'VCS CloseAllDevices', [Link]

%--------QUITAR LIBRERIA DE MEMORIA-----------------------


unloadlibrary EposCmd

end

Universidad Politecnica de Cartagena 91


Comunicacion y control de las articulaciones de un exoesqueleto

4.3. Algortmo de programacion en Simulink

Como ejemplos de programacion de simulink se van a poner las paginas de codigo corres-
pondientes a los bloques motor y load library. En estos bloques se realiza toda la accion de
control y comunicacion.

Script para cargar librera, Load Library.m

function load library(block)

setup(block);

function setup(block)

% Register number of ports


[Link] = 0;
[Link] = 0;

global gEpos;
global gLibraryLoad;
global gEpos2Conected;

% Register parameters
[Link] = 0;
[Link] = [0 0];
[Link] = 'DefaultSimState';
[Link]('PostPropagationSetup', @DoPostPropSetup);
[Link]('InitializeConditions', @InitializeConditions);
[Link]('Start', @Start);
[Link]('Outputs', @Outputs); % Required
[Link]('Update', @Update);
[Link]('Derivatives', @Derivatives);
[Link]('Terminate', @Terminate); % Required

function DoPostPropSetup(block)
[Link] = 1;

[Link](1).Name = 'x1';
[Link](1).Dimensions = 1;
[Link](1).DatatypeID = 0; % double

Universidad Politecnica de Cartagena 92


Comunicacion y control de las articulaciones de un exoesqueleto

[Link](1).Complexity = 'Real'; % real


[Link](1).UsedAsDiscState = true;

function InitializeConditions(block)
global gEpos;

if ~iscell(gEpos)
gEpos = cell(1);
disp('ya es cell por Conf');
end %Fin de inicializar condiciones

function Start(block)
global gLibraryLoad;
set param('exoconencoderintegrator/CargarDLL','BackgroundColor','white')
[notfound, warnings]= loadlibrary ('EposCmd', 'Definitions.h');
gLibraryLoad = libisloaded('EposCmd')+1;
set param('exoconencoderintegrator/CargarDLL','BackgroundColor','green')
[Link](1).Data = 0;

%OUTPUTS
function Outputs(block)
[Link](1).Data;

function Update(block)

[Link](1).Data = 1;

function Derivatives(block)

function Terminate(block)
pause(2);

unloadlibrary EposCmd;
set param('exoconencoderintegrator/CargarDLL','BackgroundColor','red')

Universidad Politecnica de Cartagena 93


Comunicacion y control de las articulaciones de un exoesqueleto

Script que realiza todo la tarea de configuracion y control, Motor.m

function motor(block)

setup(block);

function setup(block)

% Register number of ports


[Link] = 1;
[Link] = 1;
%global gKeyHandle;
%[Link];

% Override output port properties


[Link](1).Dimensions = 1;
[Link](1).DatatypeID = 0; % double
[Link](1).SamplingMode = 'sample';
[Link](1).Complexity = 'Real';

% Override input port properties


[Link](1).Dimensions = 1;
[Link](1).DatatypeID = 0; % double
[Link](1).SamplingMode = 'sample';
[Link](1).Complexity = 'Real';

% Register parameters
[Link] = 2;

[Link] = [0 0];

[Link] = 'DefaultSimState';

[Link]('PostPropagationSetup', @DoPostPropSetup);
[Link]('InitializeConditions', @InitializeConditions);
[Link]('Start', @Start);
[Link]('Outputs', @Outputs); % Required
[Link]('Update', @Update);
[Link]('Derivatives', @Derivatives);
[Link]('Terminate', @Terminate); % Required

Universidad Politecnica de Cartagena 94


Comunicacion y control de las articulaciones de un exoesqueleto

function DoPostPropSetup(block)
[Link] = 1;
[Link](1).Name = 'x1';
[Link](1).Dimensions = 1;
[Link](1).DatatypeID = 0; % double
[Link](1).Complexity = 'Real'; % real
[Link](1).UsedAsDiscState = true;

function InitializeConditions(block)

global gEpos

%%COMPROBAMOS SI ES EL EC45 O EC60 PARA CREAR SU OBJETO CORRESPONDIENTE


if [Link](2).Data==45
epos=class epos;
[Link] =[Link](1).Data;
[Link] = USBPortName([Link]);
%[Link] = [Link](1).Data+1; NO PUEDO CAMBIARLE EL ID
%PORQUE SE BLOQUEA LA SIMULACION
end

if [Link](2).Data==60
epos=class epos60;
[Link] =[Link](1).Data;
[Link] = USBPortName([Link]);
[Link] = [Link](1).Data+1;
end
%% FIN DE LA ASIGNACION DE MOTOR EC45 O EC60

if ~iscell(gEpos)
gEpos = cell(1);
disp('ya es cell por READ');
end

gEpos{[Link](1).Data+1} = epos;
gEpos{[Link](1).Data+1}

function Start(block)

Universidad Politecnica de Cartagena 95


Comunicacion y control de las articulaciones de un exoesqueleto

function Outputs(block)
global gEpos;
global gLibraryLoad;

if (gEpos{[Link](1).Data+1}.Connected==1)
library epos ('get position is', '', gEpos{[Link](1).Data+1});
% OBTENER POSICION DEL SENSOR

if(gEpos{[Link](1).Data+1}.PositionIs ~= [Link](1).Data)
%fprintf('\n( %s, %i, %i)',gEpos{[Link](1).Data+1}.PortName,...
%gEpos{[Link](1).Data+1}.TargetPosition,
gEpos{[Link](1).Data+1}.PositionIs); %MOSTRAR POSICION
gEpos{[Link](1).Data+1}.TargetPosition = [Link](1).Data;
% NUMERO DE PASOS O POSICION ABSOLUTA
movements ('move to position', 'Moviendo', gEpos{[Link](1).Data+1});
% MOVER EL MOTOR
%pause(0.5);
movements ('get position is', '', gEpos{[Link](1).Data+1});
% OBTENER POSICION DEL SENSOR

%EL GET POSITION LO DIVIDIMOS ENTRE 1000 PARA PASAR DE PASOS A


%GRADOS
fprintf('\t( %s, %i, %i)',gEpos{[Link](1).Data+1}.PortName,...
gEpos{[Link](1).Data+1}.TargetPosition,
(gEpos{[Link](1).Data+1}.PositionIs/904.53)); %MOSTRAR POSICION DEL S
end

elseif (gLibraryLoad==2) %&& gEpos{[Link](1).Data+1}.TargetPosition==0)


%disp('CARGADA');
library epos ('connect device manually', 'Conectando...', gEpos{[Link](1).Data+1}
%operating mode(gEpos{[Link](1).Data+1}.Mode, 'Seleccionando modo de operacion',
gEpos{[Link](1).Data+1});
%library epos ('enable', 'Habilitando...', gEpos{[Link](1).Data+1});
library epos ('configuration devices', 'Configurando motores y sensores...',
gEpos{[Link](1).Data+1});
library epos ('enable', 'Habilitando...', gEpos{[Link](1).Data+1});

Universidad Politecnica de Cartagena 96


Comunicacion y control de las articulaciones de un exoesqueleto

operating mode(gEpos{[Link](1).Data+1}.Mode, 'Seleccionando modo de operacion',


gEpos{[Link](1).Data+1});

if(gEpos{[Link](1).Data+1}.ReturnValue~=0)
gEpos{[Link](1).Data+1}.Connected=1;
disp('CORRECTO');
else
disp('ERRORR');
end
end

% DIVIDIMOS ENTRE 904.53 PARA PASAR DE PASOS A GRADOS


[Link](1).Data=double((gEpos{[Link](1).Data+1}.PositionIs/904.53));

function Update(block)

function Derivatives(block)

function Terminate(block)
global gEpos;
gEpos{[Link](1).Data+1}.TargetPosition = 0;

% MOVER EL MOTOR
movements ('move to position', 'Moviendo al origen por movements',
gEpos{[Link](1).Data+1});
library epos ('disable', 'Deshabilitando...', gEpos{[Link](1).Data+1});

Universidad Politecnica de Cartagena 97


Comunicacion y control de las articulaciones de un exoesqueleto

4.4. Hojas de caractersticas Maxon


EC 45 flat 42.8 mm, Conmutacin electrnica (Brushless), 70 W

maxon flat motor


Conector tipo:
39-28-1083 Molex

M 1:2
Programa Stock Referencia
Programa Estndar
Programa Especial (previo encargo)

con sensores Hall 397172 402685 402686 402687


Datos del motor (provisionales)
Valores a tensin nominal
1 Tensin nominal V 24 30 36 48
2 Velocidad en vaco rpm 6110 6230 6330 3440
3 Corriente en vaco mA 234 194 166 48.1
4 Velocidad nominal rpm 4860 4990 5080 2540
5 Par nominal (mx. par en continuo) mNm 128 112 108 134
6 Corriente nominal (mx. corriente en continuo) A 3.21 2.36 1.93 0.936
7 Par de arranque mNm 1460 1170 1100 915
8 Corriente de arranque A 39.5 25.8 20.7 6.97
9 Mx. rendimiento % 85 84 83 84
Caractersticas
10 Resistencia en bornes fase-fase W 0.608 1.16 1.74 6.89
11 Inductancia en bornes fase-fase mH 0.463 0.691 0.966 5.85
12 Constante de par mNm / A 36.9 45.1 53.3 131
13 Constante de velocidad rpm / V 259 212 179 72.7
14 Relacin velocidad / par rpm / mNm 4.26 5.44 5.85 3.82
15 Constante de tiempo mecnica ms 8.07 10.3 11.1 7.24
16 Inercia del rotor gcm2 181 181 181 181
Especificaciones Rango de funcionamiento Leyenda
Datos trmicos n [rpm] Funcionamiento continuo
17 Resistencia trmica carcasa/ambiente 3.56 K/W Teniendo en cuenta los valores de resistencia tr-
18 Resistencia trmica bobinado/carcasa 4.1 K/W 70 W
19 Constante de tiempo trmica del bobinado 29.6 s mica antes mencionados (lneas 17 y 18). El rotor
20 Constante de tiempo trmica del motor 178 s 397172 alcanzar la mxima temperatura durante funciona-
21 Temperatura ambiente -40 ... +100C miento continuo a 25C de temperatura ambiente =
+125C
22 Mx. temperatura del bobinado lmite trmico.
Datos mecnicos (rodamiento a bolas pretensado)
23 Mx. velocidad permitida 10000 rpm Funcionamiento intermitente

24 Juego axial con < 4.0 N 0 mm El motor puede ser sobrecargado durante cortos

carga axial > 4.0 N 0.14 mm perodos (cclicamente).
25 Juego radial pretensado
26 Carga axial mx. (dinmica) 3.8 N 25 50 75 125 150 Potencia nominal asignada
27 Mx. fuerza de empuje a presin (esttica) 50 N
1.0 2.0 3.0 4.0

(idem, con eje sostenido) 1000 N
28 Carga radial mx. a 8 mm de la brida 21 N

Otras especificaciones Sistema Modular maxon Esquema general en pgina 2025


8
29 Nmero de pares de polos
3
30 Nmero de fases Reductor planetario Encoder MILE
31 Peso del motor 141 g 42 mm 256 - 2048 ppv,
3 - 15 Nm 2 canales
Los datos de la tabla son valores nominales. Pgina 285 Pgina 308
Conexiones Reductor engranaje recto
Pin 1 Sensor Hall 1* 45 mm
Pin 2 Sensor Hall 2* 0.5 - 2.0 Nm
Pin 3 VHall 4.5 ... 18 VDC Pgina 286
Pin 4 Bobinado 3 motor
Pin 5 Sensor Hall 3*
Pin 6 GND
Pin 7 Bobinado 1 motor Electrnicas Recomendadas:
Pin 8 Bobinado 2 motor ESCON
Pgina 36/3 EC 342
*interna pull-up (7 13 kW) su pin 3 ESCON Mod. 50/4 EC-S 343
Esquema de conexionado para los sensores Hall v. ESCON Module 50/5 343
p. 35 ESCON 50/5 344
DEC Module 50/5 346
Cables EPOS2 Module 36/2 350
Cable de la conexin Universal, L = 500 mm 339380 EPOS2 24/5, 50/5 351
Cable de la conexin EPOS, L = 500 mm 354045 EPOS2 P 24/5 354
Opcin EPOS3 70/10 EtherCAT 357
Con Cables y Conector MAXPOS 50/5 360
(Temperatura ambiente -20 ... +100C) Notas 24
Edicin julio 2014 / Sujeto a modificaciones maxon EC motor 233

Universidad Politecnica de Cartagena 98


Comunicacion y control de las articulaciones de un exoesqueleto

EC 60 flat 68 mm, Conmutacin electrnica (Brushless), 100 W


EC motor
maxon flat

IP 54* IP 00
M 1:2.5
Programa Stock Referencia
Programa Estndar
Programa Especial (previo encargo)

IP 54* (con tapa) 412819 408057 412821


IP 00 (sin tapa) 412823 411678 412825
Datos del motor
Valores a tensin nominal
1 Tensin nominal V 12 12 24 24 48 48
2 Velocidad en vaco rpm 3710 3710 4250 4250 3970 3970
3 Corriente en vaco mA 671 671 419 419 187 187
4 Velocidad nominal rpm 3260 3170 3840 3740 3580 3490
5 Par nominal (mx. par en continuo) mNm 231 279 227 289 257 319
6 Corriente nominal (mx. corriente en continuo) A 7.81 9.25 4.43 5.47 2.3 2.78
7 Par de arranque mNm 2850 2850 4180 4180 5010 5010
8 Corriente de arranque A 93.5 93.5 78.2 78.2 43.8 43.8
9 Mx. rendimiento % 84 84 86 86 88 88
Caractersticas
10 Resistencia en bornes fase-fase W 0.128 0.128 0.307 0.307 1.1 1.1
11 Inductancia en bornes fase-fase mH 0.0615 0.0615 0.188 0.188 0.864 0.864
12 Constante de par mNm/A 30.5 30.5 53.4 53.4 114 114
13 Constante de velocidad rpm/V 313 313 179 179 83.4 83.4
14 Relacin velocidad/par rpm/mNm 1.32 1.32 1.03 1.03 0.798 0.798
15 Constante de tiempo mecnica ms 16.7 16.7 13 13 10.1 10.1
16 Inercia del rotor gcm2 1210 1210 1210 1210 1210 1210
Especificaciones Rango de funcionamiento Leyenda
Datos trmicos n [rpm] Funcionamiento continuo
 Resistencia trmica carcasa/ambiente 4.34 (2.5) K/W
17 Teniendo en cuenta los valores de resistencia tr-
 Resistencia trmica bobinado/carcasa
18 3.5 K/W 100
 Constante de tiempo trmica del bobinado
19 40 s mica antes mencionados (lneas 17 y 18). El rotor
6000
 Constante de tiempo trmica del motor 155 (86.9) s
20 411678 alcanzar la mxima temperatura durante funciona-
-40+100C
21 Temperatura ambiente miento continuo a 25C de temperatura ambiente =
+125C
22 Mx. temperatura del bobinado 4000 lmite trmico.
Datos mecnicos (rodamiento a bolas pretensado)
23 Mx. velocidad permitida 6000 rpm 2000 Funcionamiento intermitente
Juego axial con
24 < 12.0 N 0 mm El motor puede ser sobrecargado durante cortos

carga axial > 12.0 N 0.14 mm perodos (cclicamente).
25 Juego radial  pretensado
26 Carga axial mx. (dinmica) 12 N 100 200 300 Potencia nominal asignada
27 Mx. fuerza de empuje a presin (esttica) 170 N 1.5 3.0 4.5 6.0
(idem, con eje sostenido) 8000 N
28 Carga radial mx. a 7.5 mm de la brida 100 N
Otras especificaciones
29 Nmero de pares de polos Sistema Modular maxon Esquema general en pgina 2025
7
30 Nmero de fases
3
31 Peso del motor Reductor planetario Encoder MILE
 Los datos de la tabla son valores nominales. 470 g 52 mm 512 - 4096 ppv,
Conexiones motor (cables AWG 18) 4 - 30 Nm 2 canales
rojo Bobinado 1 motor Pin 1 Pgina 288 Pgina 309
negro Bobinado 2 motor Pin 2
blanco Bobinado 3 motor Pin 3
N.C. Pin 4
Conector N de artculo
Molex 39-01-2040
Conexiones sensores (cables AWG 28)
gris Sensor Hall 1 Pin 1
gris Sensor Hall 2 Pin 2
gris Sensor Hall 3 Pin 3 Electrnicas Recomendadas:
gris GND Pin 4 ESCON
Pgina Mod. 50/5 343
azul VHall 4.518 VDC Pin 5 ESCON 50/5 344
N.C. Pin 6 ESCON 70/10 344
Conector N de artculo DEC Module 50/5 346
Molex 430-25-0600 EPOS2 24/5 351
Esquema de conexionado para los sensores Hall ver EPOS2 50/5 351
pgina 35 EPOS2 70/10 351
* Grado de proteccin, solamente si est sellado por el EPOS2 P 24/5 354
lado de la brida. EPOS3 70/10 EtherCAT 357
MAXPOS 50/5 360
Notas 24
236 maxon EC motor Edicin julio 2014 / Sujeto a modificaciones

Universidad Politecnica de Cartagena 99


Comunicacion y control de las articulaciones de un exoesqueleto

Encoder MILE 5124096 ppv, 2 canales, con line driver


Integrado en el motor
Ciclo C = 360e
Pulso P = 180e

maxon sensor
Canal A

Desfase
90e

Canal B

s3 s4 s1 s2 s 1..4 = 90e
s < 45e

Sentido de rotacin cw (Definicin cw P. 78)

Programa Stock Referencia


Programa Estndar
Programa Especial (previo encargo)
421985 421986 421987 421988
Tipo
Nmero de pulsos por vuelta 512 1024 2048 4096
Nmero de canales 2 2 2 2
Mx. frecuencia de funcionamiento (kHz) 500 500 500 500
Mx. velocidad (rpm) 6000 6000 6000 6000

Longitud total Longitud total

Sistema Modular maxon


+ Motor Pgina + Reductor Pgina + Freno Pgina Longitud total [mm] / ver reductor
EC 60 flat, IP00 236 39.0 39.0 39.0 39.0
EC 60 flat, IP00 236 GP 52, 4 - 30 Nm 288
EC 60 flat, IP54 236 43.0 43.0 43.0 43.0
EC 60 flat, IP54 236 GP 52, 4 - 30 Nm 288

Datos tcnicos Conexin Ejemplo de conexin


Tensin de alimentacin VCC  5 V 10% 1 N.C. Terminacin electrnica del
Encoder, Line Driver

Seal de salida CMOS y TTL compatible 2 1 2 VCC usuario. CI recomendados


3 GND - MC 3486
Longitud de estado sn (1000 rpm) 90e <45e VCC - SN 75175
4 N.C.
Tiempo del frente de subida 5 Canal A Gnd
- AM 26 LS 32
(tpico con CL = 25 pF, RL = 1 kW, 25C) 100 ns 6 Canal A
Tiempo del frente de bajada 7 Canal B
(tpico con CL = 25 pF, RL = 1 kW, 25C) 100 ns 10 9 8 Canal B Canal A
9 No conectar R
Rango de temperaturas -40+100C 300 10
10 No conectar Canal A C
Momento de la inercia de la rueda de cdigo 13 gcm2
Corriente de salida por canal mx. 4 mA Conector DIN 41651/EN 60603-13
Cable plano AWG 28 Canal B
Salida open collector de los sensores Hall R

con resistencia pull-up  10 k 20% integrada Canal B C

Esquema de conexionado para los sensores Hall


ver pgina 35 Nota: No se permiten resistencias pull-down
(<100k) en las salidas del encoder. Se permiten
resistencias pull-up, aunque no son necesarias.
Ms informacin en la seccin Descargas Resistencia de conexin R op. = tpica 120
de la tienda online. Condensador C 0.1 nF por cada metro lineal de lnea

Edicin julio 2014 / Sujeto a modificaciones maxon sensor 309

Universidad Politecnica de Cartagena 100


Comunicacion y control de las articulaciones de un exoesqueleto

Reductor planetario GP 52 C 52 mm, 430 Nm


Versin cermica
Datos tcnicos
Reductor planetario diente recto
Eje de salida acero inoxidable
Rodamiento de salida  rodamiento a bolas pretensado

maxon gear
Juego radial a 12 mm de la brida mx. 0.06 mm
Juego axial con carga axial < 5 N 0 mm
> 5 N mx. 0.3 mm
Mx. carga axial admisible 200 N
Mx. fuerza adm. en acoplamientos a presin 500 N
Sentido de giro, entrada/salida =
Mx. velocidad de entrada en continuo 6000 rpm
Rango de temperatura aconsejado -15+80C
Rango de temp. extendido opcional -40+100C
Nmero de etapas 1 2 3 4
Mx. carga radial adm. a 12 mm
de la brida 420 N 630 N 900 N 900 N
M 1:4
Programa Stock Referencia
Programa Estndar
Programa Especial (previo encargo)
223080 223083 223089 223094 223097 223104 223109
Datos del Reductor
1 Reduccin 3.5:1 12:1 43:1 91:1 150:1 319:1 546:1
2 Reduccin absoluta 7
2 49
4 343
8 91 2401
16 637
2 546
10 Momento de inercia gcm2 20.7 17.6 17.3 16.7 17.3 16.8 16.4
3 Dimetro mx. del eje del motor mm 10 10 10 10 10 10 10
Referencia 223081 223084 223090 223095 223099 223105 223110
1 Reduccin 4.3:1 15:1 53:1 113:1 186:1 353 :1 676:1
2 Reduccin absoluta 13
3 91
6 637
12 338
3 4459
24 28561
81 676
10 Momento de inercia gcm2 12 16.8 17.2 9.3 17.3 9.4 9.1
3 Dimetro mx. del eje del motor mm 8 10 10 8 10 8 8
Referencia 223085 223091 223096 223101 223106 223111
1 Reduccin 19:1 66:1 126:1 230:1 394:1 756:1
2 Reduccin absoluta 169
9 1183
18 126 8281
36 1183
3 756
10 Momento de inercia gcm2 9.5 16.7 16.4 16.8 16.7 16.4
3 Dimetro mx. del eje del motor mm 8 10 10 10 10 10
Referencia 223086 223092 223098 223102 223107 223112
1 Reduccin 21:1 74:1 156:1 257:1 441:1 936:1
2 Reduccin absoluta 21 147
2 156 1029
4 441 936
10 Momento de inercia gcm2 16.5 17.2 9.1 17.3 16.5 9.1
3 Dimetro mx. del eje del motor mm 10 10 8 10 10 8
Referencia 223087 223093 223103 223108
1 Reduccin 26:1 81:1 285:1 488:1
2 Reduccin absoluta 26 219727 1537954 43949
10 Momento de inercia gcm2 9.1 9.4 16.7 9.4
3 Dimetro mx. del eje del motor mm 8 8 10 8
4 Nmero de etapas 1 2 3 3 4 4 4
5 Mx. par en continuo Nm 4 15 30 30 30 30 30
6 Mx. par admisible de forma intermitente Nm 6 22.5 45 45 45 45 45
7 Mx. rendimiento % 91 83 75 75 68 68 68
8 Peso g 460 620 770 770 920 920 920
9 Holgura media en vaco 0.6 0.8 1.0 1.0 1.0 1.0 1.0
11 Longitud reductor L1 mm 49.0 65.0 78.5 78.5 92.0 92.0 92.0

Longitud total Longitud total

Sistema Modular maxon


+ Motor Pgina + Sensor Pgina Freno Pg. Longitud total [mm] = Longitud motor + longitud reductor + (sensor/freno) + piezas de montaje
RE 40, 150 W 114 120.1 136.1 149.6 149.6 163.1 163.1 163.1
RE 40, 150 W 114 MR 320 131.5 147.5 161.0 161.0 174.5 174.5 174.5
RE 40, 150 W 114 HED_ 5540 325/327 140.8 156.8 170.3 170.3 183.8 183.8 183.8
RE 40, 150 W 114 HEDL 9140 331 174.1 190.1 203.6 203.6 217.1 217.1 217.1
RE 40, 150 W 114 AB 28 372 156.2 172.2 185.7 185.7 199.2 199.2 199.2
RE 40, 150 W 114 AB 28 373 164.2 180.2 193.7 193.7 207.2 207.2 207.2
RE 40, 150 W 114 HED_ 5540 325/327 AB 28 372 173.4 189.4 202.9 202.9 216.4 216.4 216.4
RE 40, 150 W 114 HEDL 9140 331 AB 28 373 184.6 200.6 214.1 214.1 227.6 227.6 227.6
RE 50, 200 W 115 157.1 173.1 186.6 186.6 200.1 200.1 200.1
RE 50, 200 W 115 HED_5540 326/328 177.8 193.8 207.3 207.3 220.8 220.8 220.8
RE 50, 200 W 115 HEDL 9140 332 219.5 235.5 249.0 249.0 262.5 262.5 262.5
RE 50, 200 W 115 AB 44 376 219.5 235.5 249.0 249.0 262.5 262.5 262.5
RE 50, 200 W 115 HEDL 9140 332 AB 44 376 232.5 248.5 262.0 262.0 275.5 275.5 275.5
EC 40, 170 W 193 129.1 145.1 158.6 158.6 172.1 172.1 172.1
EC 40, 170 W 193 HED_5540 326/328 152.5 168.5 182.0 182.0 195.5 195.5 195.5
EC 40, 170 W 193 Res 26 337 156.3 172.3 185.8 185.8 199.3 199.3 199.3
EC 40, 170 W 193 AB 32 374 171.8 187.8 201.3 201.3 214.8 214.8 214.8
EC 40, 170 W 193 HED_5540 326/328 AB 32 374 190.2 206.2 219.7 219.7 233.2 233.2 233.2

Edicin julio 2014 / Sujeto a modificaciones maxon gear 287

Universidad Politecnica de Cartagena 101


Comunicacion y control de las articulaciones de un exoesqueleto

Reductor planetario GP 42 C 42 mm, 315 Nm


Versin cermica
Datos tcnicos
Reductor planetario diente recto
Eje de salida acero inoxidable
Rodamiento de salida  rodamiento a bolas pretensado

maxon gear
Juego radial a 12 mm de la brida mx. 0.06 mm
Juego axial con carga axial < 5 N 0 mm
> 5 N mx. 0.3 mm
Mx. carga axial admisible 150 N
Mx. fuerza adm. en acoplamientos a presin 300 N
Sentido de giro, entrada/salida =
Mx. velocidad de entrada en continuo 8000 rpm
Rango de temperatura aconsejado -40+100C
Nmero de etapas 1 2 3 4
Mx. carga radial adm. a 12 mm
de la brida 120 N 240 N 360 N 360 N
M 1:4
Programa Stock Referencia
Programa Estndar
Programa Especial (previo encargo)
203113 203115 203119 203120 203124 203129 203128 203133 203137 203141
Datos del Reductor
1 Reduccin 3.5:1 12:1 26:1 43:1 81:1 156:1 150:1 285:1 441:1 756:1
2 Reduccin absoluta 7
2 49
4 26 343
8 2197
27 156 2401
16 15379
54 441 756
10 Momento de inercia gcm2 14 15 9.1 15 9.4 9.1 15 15 14 14
3 Dimetro mx. del eje del motor mm 10 10 8 10 8 8 10 10 10 10
Referencia 203114 203116 260552* 203121 203125 260553* 203130 203134 203138 203142
1 Reduccin 4.3:1 15:1 36:1 53:1 91:1 216:1 186:1 319:1 488:1 936:1
2 Reduccin absoluta 13
3 91
6 36
1 637
12 91 216
1 4459
24 637
2 4394
9 936
10 Momento de inercia gcm2
9.1 15 5.0 15 15 5.0 15 15 9.4 9.1
3 Dimetro mx. del eje del motor mm 8 10 4 10 10 4 10 10 8 8
Referencia 260551* 203117 203122 203126 203131 203135 203139 260554*
1 Reduccin 6:1 19:1 66:1 113:1 230:1 353 :1 546:1 1296:1
2 Reduccin absoluta 6
1 169
9 1183
18 338
3 8281
36 28561
81 546 1296
1
10 Momento de inercia gcm2 4.9 9.4 15 9.4 15 9.4 14 5.0
3 Dimetro mx. del eje del motor mm 4 8 10 8 10 8 10 4
Referencia 203118 203123 203127 203132 203136 203140
1 Reduccin 21:1 74:1 126:1 257:1 394:1 676:1
2 Reduccin absoluta 21 147
2 126 1029
4 1183
3 676
10 Momento de inercia gcm2 14 15 14 15 15 9.1
3 Dimetro mx. del eje del motor mm 10 10 10 10 10 8
4 Nmero de etapas 1 2 2 3 3 3 4 4 4 4
5 Mx. par en continuo Nm 3.0 7.5 7.5 15.0 15.0 15.0 15.0 15.0 15.0 15.0
6 Mx. par admisible de forma intermitente Nm 4.5 11.3 11.3 22.5 22.5 22.5 22.5 22.5 22.5 22.5
7 Mx. rendimiento % 90 81 81 72 72 72 64 64 64 64
8 Peso g 260 360 360 460 460 460 560 560 560 560
9 Holgura media en vaco 0.6 0.8 0.8 1.0 1.0 1.0 1.0 1.0 1.0 1.0
11 Longitud reductor L1 mm 41.0 55.5 55.5 70.0 70.0 70.0 84.5 84.5 84.5 84.5
*no combinacin con motor EC 45 (150 W y 250 W)

Longitud total Longitud total

Sistema Modular maxon


+ Motor Pgina + Sensor Pg. Freno Pg. Longitud total [mm] = Longitud motor + longitud reductor + (sensor/freno) + piezas de montaje
RE 35, 90 W 112 112.1 126.6 126.6 141.1 141.1 141.1 155.6 155.6 155.6 155.6
RE 35, 90 W 112 MR 320 123.5 138.0 138.0 152.5 152.5 152.5 167.0 167.0 167.0 167.0
RE 35, 90 W 112 HED_ 5540 325/327 132.8 147.3 147.3 161.8 161.8 161.8 176.3 176.3 176.3 176.3
RE 35, 90 W 112 DCT 22 336 130.2 144.7 144.7 159.2 159.2 159.2 173.7 173.7 173.7 173.7
RE 35, 90 W 112 AB 28 372 148.2 162.7 162.7 177.2 177.2 177.2 191.7 191.7 191.7 191.7
RE 35, 90 W 112 HED_ 5540 325/327 AB 28 372 165.4 179.9 179.9 194.4 194.4 194.4 208.9 208.9 208.9 208.9
RE 40, 150 W 114 112.1 126.6 126.6 141.1 141.1 141.1 155.6 155.6 155.6 155.6
RE 40, 150 W 114 MR 320 123.5 138.0 138.0 152.5 152.5 152.5 167.0 167.0 167.0 167.0
RE 40, 150 W 114 HED_ 5540 325/327 132.8 147.3 147.3 161.8 161.8 161.8 176.3 176.3 176.3 176.3
RE 40, 150 W 114 HEDL 9140 331 166.2 180.7 180.7 195.2 195.2 195.2 209.7 209.7 209.7 209.7
RE 40, 150 W 114 AB 28 372 148.2 162.7 162.7 177.2 177.2 177.2 191.7 191.7 191.7 191.7
RE 40, 150 W 114 AB 28 373 156.2 170.7 170.7 185.2 185.2 185.2 199.7 199.7 199.7 199.7
RE 40, 150 W 114 HED_ 5540 325/327 AB 28 372 165.4 179.9 179.9 194.4 194.4 194.4 208.9 208.9 208.9 208.9
RE 40, 150 W 114 HEDL 9140 331 AB 28 373 176.7 191.2 191.2 205.7 205.7 205.7 220.2 220.2 220.2 220.2
EC 40, 170 W 193 121.1 135.6 135.6 150.1 150.1 150.1 164.6 164.6 164.6 164.6
EC 40, 170 W 193 HED_ 5540 326/328 144.5 159.0 159.0 175.5 175.5 175.5 188.0 188.0 188.0 188.0
EC 40, 170 W 193 Res 26 337 148.3 162.8 162.8 177.3 177.3 177.3 191.8 191.8 191.8 191.8
EC 40, 170 W 193 AB 32 374 163.8 178.3 178.3 192.8 192.8 192.8 207.3 207.3 207.3 207.3
EC 40, 170 W 193 HED_ 5540 326/328 AB 32 374 182.2 196.7 196.7 211.2 211.2 211.2 225.7 225.7 225.7 225.7
EC 45, 150 W 194 152.3 166.8 166.8 181.3 181.3 181.3 195.8 195.8 195.8 195.8
EC 45, 150 W 194 HEDL 9140 331 167.9 182.4 182.4 196.9 196.9 196.9 211.4 211.4 211.4 211.4
EC 45, 150 W 194 Res 26 337 152.3 166.8 166.8 181.3 181.3 181.3 195.8 195.8 195.8 195.8
EC 45, 150 W 194 AB 28 373 159.7 174.2 174.2 188.7 188.7 188.7 203.2 203.2 203.2 203.2
EC 45, 150 W 194 HEDL 9140 331 AB 28 373 176.7 191.2 191.2 205.7 205.7 205.7 220.2 220.2 220.2 220.2
EC 45, 250 W 195 185.1 199.6 199.6 214.1 214.1 214.1 228.6 228.6 228.6 228.6
EC 45, 250 W 195 HEDL 9140 331 200.7 215.2 215.2 229.7 229.7 229.7 244.2 244.2 244.2 244.2
EC 45, 250 W 195 Res 26 337 185.1 199.6 199.6 214.1 214.1 214.1 228.6 228.6 228.6 228.6
EC 45, 250 W 195 AB 28 373 192.5 207.0 207.0 221.5 221.5 221.5 236.0 236.0 236.0 236.0
EC 45, 250 W 195 HEDL 9140 331 AB 28 373 209.5 224.0 224.0 238.5 238.5 238.5 253.0 253.0 253.0 253.0

Edicin julio 2014 / Sujeto a modificaciones maxon gear 283

Universidad Politecnica de Cartagena 102


Comunicacion y control de las articulaciones de un exoesqueleto

Referencias
[1] Fundamentos de Robotica. Antonio Barrientos. MCGraw-Hill

[2] Fundamentals of Robotics. Analisys and Control. R.J. Schilling. Prentice-Hall

[3] Karlj, A.R. and Bajd, T. (1989). Functional electrical stimulation: standing and walking
after spinal cord injury. Boca Raton, Fla : CRC Press, c1989

[4] Robotica: control, deteccion, vision e inteligencia. K.S. Fu, R.C. Gonzalez y C.S.G. Lee.
McGraw-Hill

[5] Pagina Oficial de EXOLEGS, [Link]

[6] Pagina Oficial de Maxon, [Link]

[7] Pagina Oficial de Matlab, [Link]

[8] Pagina Oficial de Cyberdine, [Link]

[9] Pagina Oficial de Rex Bionics, [Link]

[10] Pagina Oficial de Ekso Bionics, [Link]

Universidad Politecnica de Cartagena 103

También podría gustarte