Documente Academic
Documente Profesional
Documente Cultură
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecatrónica
Proyecto Final
BIOMECANICA
AUTOR(es):
AGUILAR CONTRERAS; Jose
CHAVEZ GERONIMO, Heber
GALVEZ INFANTE, Victor
MIRANDA CABANILLAS; Jherson
MENDEZ POLO; Jack
VIERA ZEGARRA, Diego
DOCENTE:
Ing. ALVA ALCANTARA; Josmell Henry
CICLO:
X CICLO
Trujillo, Perú
2019
UNIVERSIDAD NACIONAL DE TRUJILLO
CONTENIDO
CAPÍTULO 1: INTRODUCCION ............................................................................................ 3
1. REALIDAD PROBLEMÁTICA .................................................................................... 3
2. ANTECEDENTES .......................................................................................................... 4
3. OBJETIVOS.................................................................................................................... 6
3.1. OBJETIVO GENERAL .............................................................................................. 6
4. MARCO TEORICO ........................................................................................................ 6
4.1. ROBOTICA ................................................................................................................. 6
4.1.1. CINEMATICA DIRECTA .......................................................................................... 7
4.1.2. CINEMATICA INVERSA .......................................................................................... 9
4.2. PROTOCOLO I2C .................................................................................................... 10
4.3. FILTRO DE KALMAN ............................................................................................ 12
4.4. MULTIPLEXOR TCA9548A ................................................................................... 12
4.5. MPU 6050 ................................................................................................................. 13
4.5.1. SENSOR GIROSCOPIO ........................................................................................... 13
4.5.2. SENSOR ACELEROMETRO .................................................................................. 13
4.5.3. ESPECIFICACIONES .............................................................................................. 14
5. DESARROLLO DEL PROYECTO.............................................................................. 14
5.1 MODELADO CAD .................................................................................................... 14
5.2 ADQUISICIÓN DE DATOS ...................................................................................... 16
5.3 FILTRADO DE DATOS ....................................................................................... 17
5.4 OBTENCIÓN DE VALORES DE PARÁMETROS ARTICULARES ................ 19
5.5 SIMULACIÓN EN V-REP......................................................................................... 21
CAPÍTULO 2 ........................................................................................................................... 22
RESULTADOS Y DISCUCIONES ..................................................................................... 22
CAPÍTULO 3 ........................................................................................................................... 26
CONCLUSIONES ................................................................................................................ 26
REFERENCIAS ....................................................................................................................... 27
ANEXOS .................................................................................................................................. 28
NOVIEMBRE DE 2019 1
UNIVERSIDAD NACIONAL DE TRUJILLO
Lista de figuras
Figura 1: Esquema que relaciona la cinemática directa e inversa (Lee et Al, 1988) ................ 7
Figura 2:Ejemplificacion de la relacion Maestro-Esclavo entre dos equipos (TeslaBEM,
2017)......................................................................................................................................... 11
Figura 3: Estructura del mensaje en Protocolo I2C (TeslaBEM, 2017). ................................ 11
Figura 4:MPU6050 (hetpro-store, 2014). ............................................................................... 14
Figura 5: Diseño Cad del brazo de 3GDL en el software SolidWorks ................................... 15
Figura 6: Diseño Cad de los brazaletes que contienen los sensores en el software
SolidWorks. .............................................................................................................................. 15
Figura 7: Impresión 3D del brazo de 3GL. ............................................................................. 16
Figura 8: Brazo de 3GDL importado al software V-REP. ...................................................... 16
Figura 9: Tarjeta Arduino Mega conectada a un multiplexor y sensores. .............................. 17
Figura 10: Posicionamiento de sensores a lo largo del brazo. ................................................ 17
Figura 11: Movimiento de flexión para el 3er GDL del brazo con los 2DGL del hombro. ... 22
Figura 12: Movimiento de flexión hacia adelante para los 2DGL del hombro. ..................... 23
Figura 13: Movimiento de Abducción y Aducción horizontal para los 2GDL asociados al
hombro. .................................................................................................................................... 23
Figura 14: Movimiento de flexión del 3er GDL del brazo obtenidos en el software V-REP. 24
Figura 15: Movimiento de flexión para el brazo de 3GDL. ................................................... 25
Figura 16: Movimiento de aducción-abducción para el brazo de 3DGL................................ 25
NOVIEMBRE DE 2019 2
UNIVERSIDAD NACIONAL DE TRUJILLO
CAPÍTULO 1: INTRODUCCION
1. REALIDAD PROBLEMÁTICA
El ser humano ha realizado desde sus inicios en este planeta, diversas herramientas que le
han permitido adaptar el entorno a sus necesidades. Descubrimientos realizados en la
década del 90, permitieron darnos cuenta que ya nuestros antecesores evolutivos las usaban,
quizás hasta medio millón de años antes (Nobel, 1995). Las primeras herramientas no eran
más que cuchillos de roca primariamente tallados, que, sin embargo, le aportaban un
beneficio en cuanto a su capacidad de obtener alimento. Arqueólogos encabezados
por Zeresenay Alemseged de la California Academy of Sciences, también afirman que
tienen pruebas indirectas de uso de herramientas por parte de los homininos africanos,
concretamente del género Australophitecus, especie afarensis, la misma a la que pertenece
la famosa Lucy encontrada en Afar (Etiopia), en 1974, por el equipo de Donald Johanson
(Carbonell, 2010).
Estas primitivas herramientas han avanzado hasta conseguir las modernas naves espaciales
como la estación espacial internacional o el robot no tripulado Curiosity, el cual viaja por
la superficie de Marte desde 2012 en busca de depósitos de agua que nos den algún indicio
de vida extraterrestre (La República, 2019).
Dada esta enorme ambición de transformarlo todo, el propio cuerpo del ser humano no
podía quedar fuera de la investigación, no solo por los avances en la medicina y
biotecnología, sino también por los continuos avances en las prótesis humanas que cada vez
responden con mayor eficiencia a los movimientos del usuario. El material comúnmente
más usado es el polipropileno, que, a pesar de su cómodo precio, es difícil de adquirir. Ante
este problema de acceso a la materia prima la implementación de impresoras 3D promete
ser una solución viable, debido principalmente a que el material utilizado es de fácil acceso
y bajo costo.
Con el uso de impresiones 3D, las prótesis pueden modificarse fácilmente en el software
asociado a la impresora. Con esto se logra personalizar las prótesis a las necesidades de
cada paciente y además una rápida obtención del producto. Por ejemplo, los elementos de
una prótesis de mano demoran solo dos días en imprimirse y un poco más de tres horas en
ensamblarse (Borjas, R. 2015).
NOVIEMBRE DE 2019 3
UNIVERSIDAD NACIONAL DE TRUJILLO
Hay que tener en cuenta que para realizar una prótesis adecuada esta debe cumplir con ser
capaz de captar las características sensoriales de un miembro humano real como lo son la
fuerza, el tacto, el contacto, el deslizamiento y la posición; las cuales pueden ser captadas
por los sensores como celdas de carga, acelerómetros, rodadores elementos piezoeléctricos
(Vivas, 2019).
Una variante de esta prótesis es aquella que es usada para repetir el movimiento de un ser
humano y replicarlo en un objeto biomecánico que está situado a larga distancia. Esto es la
llamada tele operación, la cual resulta incompatible con una autonomía robótica, ya que el
robot no es quien debe decidir a donde moverse sino el ser humano que lo controla.
Los estudios realizados en esta materia demuestran que una limitación presente en la tele
operación es la capacidad de procesamiento de señales y con ello la coordinación hombre-
robot. Siempre será un factor crítico la interface hombre-máquina, haciendo que el operador
de este sistema debe ser una persona entrenada. El sistema teleoperador consta de una
estación de tele operación, un sistema de comunicación maestro-esclavo que puede ser un
manipulador o un robot equipado con un manipulador situado en un ambiente lejano (Cerón,
2015).
La importancia de la tele operación radica en que existen muchas circunstancias en las
cuales no es seguro emplear personas para realización de algunas tareas debido al riesgo
elevado al que se exponen como pueden ser químicos tóxicos o explosivos. Es por esto que
se pretende aportar un avance en cuanto a la tele operación, haciendo que un brazo robótico
de 3 grados de libertad pueda caracterizar el movimiento del brazo de un ser humano.
2. ANTECEDENTES
A nivel local, existen estudios relacionado al ámbito del presente proyecto, sobretodo, en
la Pontificia Universidad Católica del Perú, donde existen todo tipo de proyectos de
investigación sobre estudio y elaboración de prótesis.
Siendo así el estudio realizado por Salas (2014), cuyo proyecto denominado “Diseño de una
Prótesis Mioeléctrica para desarticulación de muñeca”; el cual, como su propio nombre
dice, se pretende realizar el diseño de una prótesis de una mano para la desarticulación de
una muñeca con el fin de sujetar objetos mayores a 3 cm3, además de regular la fuerza que
se requiere para manipular dichos objetos.
NOVIEMBRE DE 2019 4
UNIVERSIDAD NACIONAL DE TRUJILLO
Es así como se llegó a realizar el proyecto de forma efectiva, y que se puede ver plasmado
en simulaciones realizadas en el software SolidWorks. Sin embargo, existen ciertas
limitaciones a la hora de a la hora de sujetar objetos pequeños debido a que el área de
contacto de las falanges resulta relativamente grande a comparación de ciertos objetos.
Además, cabe mencionar que dicha prótesis es capaz de soportar objetos con peso mayor a
2 kg.
Además, la investigación realizada por Sullcahuaman (2013) denominada “Diseño
mecánico de un prototipo de prótesis mioeléctrica transradial”, cuyo fin es el de elaborar un
prototipo de prótesis mioelectrica orientada a pacientes que sufrieron amputaciones por
debajo del codo. El proyecto consiste en diseñar e implementar un mecanismo de un grado
de libertad el cual simule el movimiento de los dedos índice y pulgar de la mano humana
con la finalidad de realizar la sujeción de objetos de 0.5 kg de masa.
Dicha investigación se llevó a realizar con total conformidad el principal objetivo del
proyecto, el cual es el de diseñar y elaborar un prototipo de prótesis para personas que
sufrieron amputaciones por debajo del codo y además de tener la capacidad de poder
sostener objetos con un peso mayor a 500 gramos. Algo que tener en consideración es que
los materiales a partir de los cuales se realizó dicho proyecto fueron rentables en el aspecto
económico. Además, cabe mencionar, que se hizo uso de material rugo en la punta de los
dedos para así aumentar la capacidad de carga del prototipo.
Finalmente, tenemos el trabajo realizado por Bernal (2016), el cual tiene por nombres
“Modelación y simulación dinámica de un mecanismo de 4 GDL para desarrollar una
prótesis para personas con desarticulación humeral”. Este proyecto logra facilitar el análisis
de la biomecánica del movimiento en el miembro superior con el fin de obtener parámetros
dinámicos para iniciar un posterior diseño de la prótesis.
Este modelo logro obtener parámetros de selección de actuadores mediante la simulación
numérica, acorde a los requerimientos de carga de la prótesis. Además, el modelo permite
variaciones en las características físicas del mecanismo como peso, longitud e inercia de
los eslabones y actuadores, los cuales son los parámetros de entrada para la rutina del
cálculo.
NOVIEMBRE DE 2019 5
UNIVERSIDAD NACIONAL DE TRUJILLO
3. OBJETIVOS
3.1. OBJETIVO GENERAL
Caracterizar el movimiento biomecánico convencional que posee un ser humano y
asociarlo al movimiento de un brazo robótico articular de 3GDL.
3.2. OBJETIVOS ESPECIFICOS
4. MARCO TEORICO
4.1. ROBOTICA
Para dar un alcance inicial, partimos de lo que es robótica en sí. La palabra robótica es
un derivado de la palabra robot, la cual posee varios significados acordes al investigador
del caso. Es tal el caso de Webster, quien define a un robot como un dispositivo
automático que efectúa funciones ordinariamente asignadas a los seres humanos. Pero,
la definición más usual es la que propone el Robot Institute of América, donde se indica
que es un manipulador reprogramable multifuncional diseñado para mover materiales,
piezas o dispositivos especializados a través de movimientos programados variables
para la realización de una diversidad de tareas. (Craig, 2006)
Teniendo una idea ya clara de lo que es robótica, es que se puede dar paso al estudio de
esta. Para nuestro caso de estudio, se analizará solo el aspecto cinemático del sistema,
el cual comprende a la cinemática directa y la cinemática inversa, y cuya explicación
viene a continuación.
NOVIEMBRE DE 2019 6
UNIVERSIDAD NACIONAL DE TRUJILLO
Figura 1: Esquema que relaciona la cinemática directa e inversa (Lee et Al, 1988)
𝑀𝑎𝑡𝑟𝑖𝑧 𝑑𝑒 𝑅𝑜𝑡𝑎𝑐𝑖𝑜𝑛 (3𝑥3) 𝑉𝑒𝑐𝑡𝑜𝑟 𝑑𝑒 𝑃𝑜𝑠𝑖𝑐𝑖𝑜𝑛 (3𝑥1)
𝑇=[ ] (4-1)
𝑇𝑟𝑎𝑛𝑠𝑓𝑜𝑟𝑚𝑎𝑐𝑖𝑜𝑛 𝑑𝑒 𝑃𝑒𝑟𝑠𝑝𝑒𝑐𝑡𝑖𝑣𝑎 𝐸𝑠𝑐𝑎𝑙𝑎𝑑𝑜
NOVIEMBRE DE 2019 7
UNIVERSIDAD NACIONAL DE TRUJILLO
homogénea que englobe todos los grados de libertad del robot viene dado de la siguiente
forma (Barrientos, 2007):
T= 0An = 0A1* 1A2* 2A3*, …,n−1An (4-3)
Representación Denavit-Hartenberg
Para explicar la relación de traslación y orientación entre elementos
consecuentes, Denavit y Hartenberg, allá por los 1955, elaboraron un método
matricial el cual es capaz de establecer un sistema de coordenadas para cada
eslabón que compone al manipulador (Lee et Al, 1988).
Acorde a la representación de Denavit-Hartenberg, si se realiza una correcta
selección de los ejes coordenados correspondientes a cada elemento, es factible
pasar al siguiente a través de 4 transformaciones sencillas, las cuales dependen
de las características geométricas del elemento. Dichas transformaciones
consisten en una serie de rotaciones y traslaciones, las cuales permiten relacionar
el sistema coordenado i-1 con el sistema i (Barrientos, 2007). Dichas
transformaciones se detallan a continuación:
1. Rotación alrededor del eje Zi-1 un ángulo θi
2. Traslación a lo largo de Zi-1 una distancia di
3. Traslación a lo largo del eje Xi una distancia ai
4. Rotación alrededor del eje Xi un ángulo αi
Estas transformaciones mantienen una dependencia directa de 4 parámetros, los
cuales tienen relación a cada eslabón del manipulador, y que, por medio de estos,
se pueden describir las articulaciones prismáticas o de revoluta. Dichos
parámetros se definen de la siguiente forma:
- θi: Es el ángulo de la articulación del eje Xi-1 al eje Xi respecto del eje Zi-1. Se
trata de un parámetro variable en articulaciones giratorias.
- di: Es la distancia desde el origen del sistema de coordenadas (i-1)-ésimo hasta
la intersección del eje Zi-1 con el eje Xi a lo largo del eje Zi-1. Se trata de un
parámetro variable en articulaciones prismáticas.
- ai: Es la distancia de separación desde la intersección del eje Zi-1 con el eje Xi
hasta el origen del sistema i-ésimo, en el caso de articulaciones giratorias. En el
NOVIEMBRE DE 2019 8
UNIVERSIDAD NACIONAL DE TRUJILLO
caso de que sean prismáticas, se calcula como la distancia más corta entre Zi-1 y
Zi.
- αi: Es el ángulo de separación del eje Zi-1 al eje Zi medido en un plano
perpendicular al eje Xi. (Lee, Gonzales & Fu, 1998)
NOVIEMBRE DE 2019 9
UNIVERSIDAD NACIONAL DE TRUJILLO
Desacoplo cinemático
Las técnicas mencionadas anteriormente, suelen ser útiles cuando se trata
solamente de obtener los valores de las 3 primeras variables articulares, las
cuales son las que posicionan al efector final; aunque también pueden ser
aplicados a robots con más grados de libertad, pero es ahí donde la complejidad
aumenta. Sin embargo, no basta con solo posicionar el efector final, ya que, en
la mayoría de los casos, es necesario orientarlo de una forma específica.
Por ello es que la mayoría de los robots existentes poseen 3GDL, los cuales
continúan con la cadena de eslabones y que reciben el nombre de “muñeca del
robot”, cuyo objetivo primordial es la de reorientar la herramienta que posee el
efector final libremente en el espacio.
Es aquí donde la técnica del desacoplo cinemático toma importancia, ya que su
base está en separar el problema del posicionamiento con el de orientación. El
desarrollo de esto se basa en que, dada una posición y orientación del efector
final deseados, desliga inicialmente a la muñeca del robot de los tres primeros
elementos que componen al robot, y, de los cuales, obtendremos nuestras tres
primeras variables articulares. Una vez conseguido esto, y con los datos de
orientación del robot, es que se inicia el análisis en la muñeca del robot para
obtener el resto de variables articulares. (Barrientos, 2007)
4.2. PROTOCOLO I2C
NOVIEMBRE DE 2019 10
UNIVERSIDAD NACIONAL DE TRUJILLO
Con el protocolo I2C la información viaja en mensajes. Los mensajes van divididos
en tramas de datos. Cada mensaje lleva una trama con una dirección la cuál transporta
la dirección binaria del esclavo al que va dirigido el mensaje, y una o más tramas que
llevan la información del mensaje. También el mensaje contiene condiciones de inicio
y paro, lectura y escritura de bits, y los bits ACK y NACK. Todo esto va entre cada
sección de datos. (TeslaBEM, 2017)
NOVIEMBRE DE 2019 11
UNIVERSIDAD NACIONAL DE TRUJILLO
NOVIEMBRE DE 2019 12
UNIVERSIDAD NACIONAL DE TRUJILLO
4.5.MPU 6050
El MPU6050 es un sensor y acelerómetro para Arduino con 6 grados de libertad. El
propósito de este tutorial consiste de dos partes, la primera será mostrar lo que es un
acelerómetro y giroscopio y la lectura de valores del MPU-6050 utilizando un Arduino
Uno. También se mostrarán las mediciones en el monitor serial. La segunda parte del
tutorial será de la implementación de una Unidad de Medición Inercial – IMU por sus
siglas en ingles. (Inertial Measurement Unit). (hetpro-store, 2014)
4.5.1. SENSOR GIROSCOPIO
Un giroscopio es un dispositivo que funciona para miden velocidades angulares
basándose en el mantenimiento del impulso de rotación. Si intentamos hacer girar
un objeto que está girando sobre un eje que no es el eje sobre el que está rotando, el
objeto ejercerá un momento contrario al movimiento con el fin de preservar el
impulso de rotación total. (hetpro-store, 2014).
El giroscopio muestra el cambio de rango en rotación en sus ejes X, Y y Z.
NOVIEMBRE DE 2019 13
UNIVERSIDAD NACIONAL DE TRUJILLO
4.5.3. ESPECIFICACIONES
NOVIEMBRE DE 2019 14
UNIVERSIDAD NACIONAL DE TRUJILLO
Para poder calcular los ángulos de rotación del brazo se hizo uso de 3 sensores
MPU6050, estos fueron colocados a lo largo del brazo de la persona a la cual se desea
imitar el movimiento, con este fin se diseñó unos brazaletes ajustables Figura 6 que
contienen en su interior los sensores, haciendo así que los movimientos puedan ser
recolectados de cualquier persona con estos brazaletes ajustables. Los planos del
brazalete son mostrados en el Anexo2.
Figura 6: Diseño Cad de los brazaletes que contienen los sensores en el software
SolidWorks.
Los diseños modelados fueron confeccionados en impresión 3D Figura 7 para luego
ser ensamblados.
NOVIEMBRE DE 2019 15
UNIVERSIDAD NACIONAL DE TRUJILLO
NOVIEMBRE DE 2019 16
UNIVERSIDAD NACIONAL DE TRUJILLO
NOVIEMBRE DE 2019 17
UNIVERSIDAD NACIONAL DE TRUJILLO
Predicción
- Predicción del estado.
𝑥𝑝 (𝑘) = 𝐴 − 𝑥𝑝 (𝑘 − 1) + 𝐵𝑢(𝑘) (5_1)
- Predicción covarianza del error.
𝑃𝑝 (𝑘) = 𝐴𝑃(𝑘 − 1)𝐴𝑇 + 𝑄 (5_2)
Donde:
𝑥𝑝 : Estado predicho.
𝑃𝑝 : Covarianza del error predicha.
𝐴: Matriz de coeficientes de términos que depende de las variables de estado.
B: Matriz de coeficientes de términos que no dependen de las variables de estado.
𝑢: Vector de variables de control.
Q: Matriz de ruido de la covarianza del proceso.
Corrección
- Calculo de la ganancia de Kalman
𝐾(𝑘) = 𝑃(𝑘)𝐻 𝑇 (𝐻𝑃(𝑘)𝐻 𝑇 + 𝑅)−1 (5_3)
- Actualización de la estimación con las medidas 𝑧(𝑘).
𝑥𝑐 (𝑘) = 𝑥𝑝 (𝑘) + 𝐾(𝑘)(𝑧(𝑘) − 𝐻𝑥𝑝 (𝑘)) (5_4)
- Actualización de la covarianza del error.
𝑃𝑐 (𝑘) = (𝐼 − 𝐾(𝑘)𝐻)𝑃𝑝 (𝑘) (5_5)
Donde:
𝑥𝑐 : Estado corregido.
𝑃𝑐 : Covarianza del error corregido.
𝑧: Muestra tomada en el instante k.
K: Ganancia de Kalman.
𝑅: Matriz de covarianza de la medida.
𝐻: Matriz que adapta la estructura de la matriz de covarianza del proceso para que
coincida con la matriz de covarianza de la medida.
En el caso de la primera iteración, al no existir una salida del filtro, se utilizan valores
iniciales previamente establecidos.
NOVIEMBRE DE 2019 18
UNIVERSIDAD NACIONAL DE TRUJILLO
NOVIEMBRE DE 2019 19
UNIVERSIDAD NACIONAL DE TRUJILLO
𝑎𝑦
𝜃𝑦 = tan−1 ( )
√𝑎𝑥 2 + 𝑎𝑧 2
Al realizar las pruebas se determinó que el sensor presentaba una mejor respuesta con
el ángulo de inclinación en el eje Y por lo que se utilizó este.
Luego de obtener el ángulo de inclinación en radianes se utilizó 3 filtros de Kalman para
los 3 angulos de inclinación hallados, uno por cada sensor, posteriormente se escaló
para el rango de trabajo de cada servomotor, ya que se estableció ángulos finales e
NOVIEMBRE DE 2019 20
UNIVERSIDAD NACIONAL DE TRUJILLO
NOVIEMBRE DE 2019 21
UNIVERSIDAD NACIONAL DE TRUJILLO
CAPÍTULO 2
RESULTADOS Y DISCUCIONES
Los movimientos analizados fueron los de flexión, extensión, abducción y aducción.
Para la flexión del 3er grado de libertad del brazo se obtuvieron las señales mostradas en la
Figura 11, se muestran las señales originales captadas y además las que se obtiene luego de
aplicar el filtro de Kalman. Las señales obtenidas mediante los sensores MPU6050 estan en
radianes.
Figura 11: Movimiento de flexión para el 3er GDL del brazo con los 2DGL del hombro.
En la Figura 12 se muestra el movimiento de flexión hacia adelante que realiza el brazo en el
cual están involucrados principalmente los 2GDL asociados al hombro. Se aprecia la señal
original recogida por los sensores y además las señales ya luego de aplicarles el filtro de
Kalman.
NOVIEMBRE DE 2019 22
UNIVERSIDAD NACIONAL DE TRUJILLO
Figura 12: Movimiento de flexión hacia adelante para los 2DGL del hombro.
En la Figura 13 se muestran los movimientos de abducción y aducción horizontal del brazo, en
este movimiento están involucrados principalmente los 2GDL del hombro, por lo cual en la
imagen se muestran las señales obtenidas de los sensores originalmente y las que se obtienen
luego de aplicar el filtro de Kalman.
Figura 13: Movimiento de Abducción y Aducción horizontal para los 2GDL asociados al
hombro.
NOVIEMBRE DE 2019 23
UNIVERSIDAD NACIONAL DE TRUJILLO
En las gráficas mostradas anteriormente se pueden notar la gran cantidad de ruidos obtenidos
al usar los sensores por lo que es una potente solución el uso del filtro de Kalman.
Adicionalmente de obtener los datos mediante los sensores también se obtuvieron los dados en
el simulador V-REP que son los siguientes.
Por la configuración inicial del brazo en el software V-REP los parámetros articulares se
muestran en negativo.
En la Figura 14 se muestra el movimiento de flexión del 3GDL del brazo en grados
sexagesimales.
Figura 14: Movimiento de flexión del 3er GDL del brazo obtenidos en el software V-REP.
En la Figura 15 se muestran los valores de los parámetros articulares en grados sexagesimales
a lo largo del movimiento de flexión para todo el brazo.
NOVIEMBRE DE 2019 24
UNIVERSIDAD NACIONAL DE TRUJILLO
NOVIEMBRE DE 2019 25
UNIVERSIDAD NACIONAL DE TRUJILLO
CAPÍTULO 3
CONCLUSIONES
El diseño del modelo Cad del brazo de 3GDL sigue las longitudes de las extremidades de un
ser humano en una escala de 1:2.
El uso de los sensores MPU6050 para determinar los parámetros articulares del brazo genera
una señal con presencia de ruido por ello se hace necesario la utilización de un filtro de Kalman
para cada señal, obteniendo una señal más estable y evitando así las vibraciones en la estructura
del brazo robótico.
Los movimientos generados son de flexión, abducción y aducción, para estos se obtuvo las
señales asociados a los parámetros articulares en radianes, tanto las señales originales, así como
las obtenidas después de aplicar el filtro de Kalman, logrando el seguimiento del brazo humano.
Los valores obtenidos con los sensores después de aplicarles el filtro son pasados al software
V-REP en el cual se simula el movimiento del brazo en tiempo real, dichos parámetros
articulares resultaron negativos por la propia configuración inicial del robot al momento de
exportarlos a URDF.
Los parámetros que mejor respondieron para el filtro de Kalman son R=10 y Q=0.1.
La simulación en Vrep, se puede observar un pequeño retraso comparado con el movimiento
real de brazo humano y el movimiento de prototipo impreso en 3D, esto es debido al tiempo
que se toma para la comunicación serial y al procesamiento de obtener los datos en Matlab
escalarlos y luego enviarlos a Vrep.
Debido a las posiciones de los sensores y que se está utilizando un solo ángulo de inclinación
de cada uno, nos restringe movimientos a un solo cuadrante y a movimientos básico como
extensión, aducción y abducción.
NOVIEMBRE DE 2019 26
UNIVERSIDAD NACIONAL DE TRUJILLO
REFERENCIAS
Barrientos, A. (2007). Fundamentos de Robotica. Madrid: McGrawHill.
Bernal. (2016). MODELACIÓN Y SIMULACIÓN DINÁMICA DE UN MECANISMO DE 4
GDL PARA DESARROLLAR UNA PRÓTESIS PARA PERSONAS CON
DESARTICULACIÓN HUMERAL. Lima.
Craig, J. (2006). Robotica. Mexico: Pearson.
hetpro-store. (5 de Abril de 2014). hetpro-store. Obtenido de https://hetpro-
store.com/TUTORIALES/
Lee et Al. (1988). Robotica: control, deteccion, vision e inteligencia. España: McGrawHill.
Salas. (2014). Diseño de una Prótesis Mioeléctrica para desarticulación de muñeca. Lima.
Sullcahuaman. (2013). DISEÑO MECÁNICO DE UN PROTOTIPO DE PRÓTESIS
MIOELÉCTRICA TRANSRADIAL . Lima.
TeslaBEM. (4 de Abril de 2017). TeslaBEM. Obtenido de http://www.teslabem.com
NOVIEMBRE DE 2019 27
ANEXOS
Anexo 1: Planos de Brazo de 3GDL
Anexo 2: Planos de brazaletes
Anexo 3: Código I de Arduino.
/* UNIVERSIDAD NACIONAL DE TRUJILLO
* CURSO BIOMECANICA
* CALIBRACIÓN DE SENSORES MPU6050
*/
// Librerias I2C para controlar el mpu6050
// la libreria MPU6050.h necesita I2Cdev.h, I2Cdev.h necesita Wire.h
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Wire.h"
// Valores RAW (sin procesar) del acelerometro y giroscopio en los ejes x,y,z
int ax, ay, az;
int gx, gy, gz;
void setup() {
Serial.begin(57600); //Iniciando puerto serial
Wire.begin(); //Iniciando I2C
sensor.initialize(); //Iniciando el sensor
Serial.println("Offsets:");
Serial.print(ax_o); Serial.print("\t");
Serial.print(ay_o); Serial.print("\t");
Serial.print(az_o); Serial.print("\t");
Serial.print(gx_o); Serial.print("\t");
Serial.print(gy_o); Serial.print("\t");
Serial.print(gz_o); Serial.print("\t");
Serial.println("nnEnvie cualquier caracter para empezar la calibracionnn");
// Espera un caracter para empezar a calibrar
while (true){if (Serial.available()) break;}
Serial.println("Calibrando, no mover IMU");
void loop() {
// Leer las aceleraciones y velocidades angulares
sensor.getAcceleration(&ax, &ay, &az);
sensor.getRotation(&gx, &gy, &gz);
f_ay = f_ay-(f_ay>>5)+ay;
p_ay = f_ay>>5;
f_az = f_az-(f_az>>5)+az;
p_az = f_az>>5;
f_gx = f_gx-(f_gx>>3)+gx;
p_gx = f_gx>>3;
f_gy = f_gy-(f_gy>>3)+gy;
p_gy = f_gy>>3;
f_gz = f_gz-(f_gz>>3)+gz;
p_gz = f_gz>>3;
sensor.setXAccelOffset(ax_o);
sensor.setYAccelOffset(ay_o);
sensor.setZAccelOffset(az_o);
counter=0;
}
counter++;
}
void setup() {
// Se declaran la
myservo.attach(8);
myservo2.attach(9);
myservo3.attach(10);
myservo.write(120);
myservo2.write(65);
myservo3.write(30);
/*
if (sensor1.testConnection()) Serial.println("Sensor iniciado correctamente");
else Serial.println("Error al iniciar el sensor 1");
if (sensor2.testConnection()) Serial.println("Sensor iniciado correctamente");
else Serial.println("Error al iniciar el sensor 1");
delay(2000);
*/
}
void tcaselect(uint8_t i) {
if (i > 7) return;
Wire.beginTransmission(TCAADDR);
Wire.write(1 << i);
Wire.endTransmission();
}
void loop(){
// Leer las aceleraciones angulares
tcaselect(1);
sensor1.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
float accel_ang_y=atan(ay/sqrt(pow(ax,2) + pow(az,2)));
ang_y=kalman(accel_ang_y);
int ang1=((-70/1.2)*ang_y)+120;
if(ang1>120){
ang1=120;
}
if(ang1<50){
ang1=50;
}
tcaselect(2);
sensor2.getMotion6(&ax2, &ay2, &az2, &gx2, &gy2, &gz2);
float accel_ang_y2=atan(ay2/sqrt(pow(ax2,2) + pow(az2,2)));
ang_y2=kalman2(accel_ang_y2);
int ang2=(-65/0.44)*(ang_y2-1.3);
if(ang2>65){
ang2=65;
}
if(ang2<0){
ang2=0;
}
tcaselect(3);
sensor3.getMotion6(&ax3, &ay3, &az3, &gx3, &gy3, &gz3);
float accel_ang_y3=atan(ay3/sqrt(pow(ax3,2) + pow(az3,2)));
ang_y3=kalman3(accel_ang_y3);
int ang3=((60/1.03)*(ang_y3-0.3))+30;
if(ang3>90){
ang3=90;
}
if(ang3<30 or ang1<100){
ang3=30;
}
Serial.print(ang_y);
Serial.print(",");
Serial.print(ang_y2);
Serial.print(",");
Serial.println(ang_y3);
/* Serial.print(accel_ang_y);
Serial.print(",");
Serial.print(ang_y);
Serial.print(",");
Serial.print(accel_ang_y2);
Serial.print(",");
Serial.print(ang_y2);
Serial.print(",");
Serial.print(accel_ang_y3);
Serial.print(",");
Serial.println(ang_y3);
*/
myservo.write(ang1);
myservo2.write(ang2);
myservo3.write(ang3);
[r,h(1)]=vrep.simxGetObjectHandle(clientID,'Hombro',vrep.simx_opmode_bloc
king );
[r,h(2)]=vrep.simxGetObjectHandle(clientID,'Antebrazo',vrep.simx_opmode_b
locking );
[r,h(3)]=vrep.simxGetObjectHandle(clientID,'Brazo',vrep.simx_opmode_block
ing );
%Inicializar puerto serial a usar
delete(instrfind({'Port'},{'COM5'}));
puerto_s=serial('COM5','BaudRate',115200,'Terminator','CR/LF');
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
%Apertura de puerto serial
fopen(puerto_s);
j=1;
while true
a = fscanf(puerto_s,'%e,%e,%e',21)
ang1=((pi/2)*a(1)/1.2)-(pi/2);
if ang1>0
ang1=0;
end
if ang1<-pi/2
ang1=-pi/2;
end
ang2=(-(pi/2)/(1.38-0.86))*(a(2)-0.86);
if ang2>0
ang2=0;
end
if ang2<-pi/2
ang2=-pi/2;
end
ang3=((pi/2)/1.03)*(a(3)-0.3);
if ang3>pi/2
ang3=pi/2;
end
if ang3<0 || ang1>-(80*(pi/180))
ang3=0;
end
a1(j,1)=ang1*180/pi;
a2(j,1)=ang2*180/pi;
a3(j,1)=-ang3*180/pi;
joint_pos1=[ang1,ang2,-ang3]
for i=1:3
vrep.simxSetJointTargetPosition(clientID,h(i),joint_pos1(i),vrep.simx_opm
ode_streaming);
end
j=j+1;
end
fclose(puerto_s);
delete(puerto_s);
clear puerto_s;
else
disp('Failed connecting to remote API server');
end
vrep.delete(); % call the destructor!
disp('Program ended');