SciELO - Scientific Electronic Library Online

 
 número36Plataforma de Análisis de Datos Para la Evaluación de Desempeño de SoftwareUna revisión sistemática de la literatura enfocada al uso de vehículos aéreos no tripulados durante el proceso de detección de vegetación índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


RISTI - Revista Ibérica de Sistemas e Tecnologias de Informação

versión impresa ISSN 1646-9895

RISTI  no.36 Porto mar. 2020

https://doi.org/10.17013/risti.36.65-81 

ARTÍCULOS

Algoritmo para controlar un brazo antropomórfico usando una transformación lineal

Algorithm to control an anthropomorphic arm using a linear transformation

Yadira Quiñonez 1, Oscar Zataraín 1, Carmen Lizárraga 1, Juan Peraza 1, Juan Peraza1, Jezreel Mejía 2

1 Universidad Autónoma de Sinaloa, Facultad de Informática, Av. Leonismo Internacional S/N y Av. de los Deportes, Ciudad Universitaria, 82000, Mazatlán, Sinaloa, México. yadiraqui@uas.edu.mx, 2016030617@upsin.edu.mx, carmen.lizarraga@uas.edu.mx, jfperaza@uas.edu.mx, restrada@uas.edu.mx, ozatarain@uas.edu.mx

2 Centro de Investigación en Matemáticas, Unidad Zacatecas, Parque Quantum, Ciudad el Conocimiento Avenida Lassec, Andador Galileo Galilei, Manzana, 3 Lote 7, 98160. Zacatecas, México. jmejia@cimat.mx


 

RESUMEN

En este artículo se propone un algoritmo para manipular un brazo antropomórfico utilizando una pantalla táctil LCD y una transformación lineal para obtener la trayectoria del brazo robótico, cinemática inversa y directa. Con la finalidad de que las personas con discapacidades físicas que tienen algún problema para mover sus cuerpos o simplemente no tienen la fuerza para moverlo puedan controlar el brazo robótico en las actividades cotidianas de una forma natural y fácil. La implementación del algoritmo se ha desarrollado en MATLAB, a través de esta simulación se visualiza la trayectoria del brazo robótico y la representación con las tres articulaciones que son movidas por motores paso a paso. El artículo termina con una discusión crítica de los resultados experimentales.

Palabras-clave: Brazo Antropomórfico; Transformación Lineal; Pantalla Táctil LCD; Personas con Discapacidades Físicas; MATLAB.


 

ABSTRACT

In this paper proposes an algorithm to manipulate an anthropomorphic arm using an LCD touch screen and a linear transformation to obtain the trajectory robotic arm, inverse and direct kinematics. In order to people with physical disabilities who have an issue to move their bodies or simply do not have enough force to move it, can control the robotic arm in daily activities in a natural and easy way. The implementation of the algorithm has been developed in MATLAB, through this simulation the trajectory of the robotic arm is visualized and the representation with the three joints that are moved by stepper motors. The article ends with a critical discussion of the experimental results.

Keywords: Anthropomorphic Arm; Linear Transformation; LCD Touch Screen; People with Physical Disabilities; MATLAB.


 

1. Introducción

En las últimas dos décadas, la automatización y el control se han convertido en un tema de interés para investigadores en diferentes áreas de aplicación, donde lo más importante es la Experiencia de Usuario (UX) (Fernández-Ordoñez, 2019), esto con la finalidad de facilitar la interacción hombre-máquina tan natural como sea posible (Lara, 2019). Exite una gran variedad de aplicaciones de autimatización y control, sin embargo, el área médica has sido muy beneficiada, a continuación, se mecionan algunos trabajos relacionados con ésta área. En la robótica industrial (Grau, 2017, Yenorkar, 2018) y en los sistemas robotizados aplicados en el área médica, tales como la cirugía tele operada (Burgner-Kahrs, 2015), el corte de patrones quirúrgicos (Murali, 2015), según Shademan et al. (2016) la precisión de un robot industrial ofrece grandes ventajas en esta área. Actualmente, existen un sinfín desarrollos tecnológicos y diversas aplicaciones como prótesis (Allen, 2016), ortesis (Niyetkaliyev, 2017), exoesqueletos (Proietti, 2016, Rehmat 2018, Young, 2017) y dispositivos para la tele operación con el fin de mejorar las capacidades humanas (Makin, 2017, Beckerle, 2018, Jiang, 2012, Kruthika, 2016). De acuerdo con Chung et al. (2013) realizó una revisión de la literatura sobre los diferentes manipuladores de asistencia robótica desde 1970 hasta 2012, menciona que la confiabilidad, rentabilidad, apariencia, funcionalidad y facilidad de uso son factores determinantes para lograr una comercialización exitosa. Algunos trabajos relacionados para la rehabilitación de pacientes con capacidad de movimiento reducida han utilizado la realidad virtual para mejorar la manipulación de los movimientos e influir positivamente en un entorno virtual (Perez-Marcos, 2017, Levin, 2015, Kokkinara, 2015, Bovet, 2018). Recientemente, en un trabajo de Atre et al. (2018) han utilizado técnicas de visión por computadora para crear un brazo robótico controlado por gestos, mencionan la importancia de que un brazo robótico sea más eficiente en relación con la precisión y la velocidad, en otros trabajos, Badrinath et al. (2016) proponen el control de un brazo robótico utilizando una cámara Kinect 3-D para rastrear los movimientos de las personas mediante la técnica de visión por computador.

2. Descripción del algoritmo

En la actualidad, es común utilizar un joystick para controlar los movimientos de un brazo robótico, de hecho, el uso del joystick es implementado en muchos tipos de aplicaciones electrónicas y una de estas, en la que se enfoca este trabajo, es controlar un brazo robótico antropomórfico para dar asistencia a las personas con discapacidades físicas. El Joystick puede ser una gran herramienta de control, sin embargo, al momento de implementarlo en alguna problemática en particular como lo es el brazo robótico para personas con discapacidades físicas no cubre con las necesidades o expectativas para sacar el máximo aprovechamiento, debido a que se requiere de un esfuerzo constante y tiempo de espera para ejercer una fuerza, sin mencionar que se necesita coordinación al momento de ejecutarlo. Suponiendo que un paciente también sufre de diabetes (en el caso de hipoglucemia) o para las personas que sufren de lupus u otra enfermedad que impida tener una buena coordinación, usar un Joystick puede ser una alternativa complicada para las personas que sufren alguno de estos casos, ya que a veces se requieren movimientos muy largos para que el brazo robótico llegue al punto deseado, y aunque el Joystick sea muy fácil de usar y programar, controlar un brazo robótico puede ser aún más fácil, sin tanto esfuerzo, sin aplicar una fuerza constante, de manera intuitiva y con un solo dedo poder mover el brazo robótico hasta el punto deseado. Esto es posible utilizando una pantalla LCD táctil, que ayuda a ejecutar el algoritmo usando una transformación lineal (también llamada función lineal, aplicación u operador lineales) la cual es una herramienta importantísima para la ejecución del algoritmo y diversos problemas, en el siguiente apartado se desarrolla este tema.

Al implementar este control, una persona con limitaciones físicas solo es necesario realizar un ligero movimiento con el dedo y tocar un punto en la superficie de la pantalla táctil, para hacer que el brazo robótico obtenga un punto en el espacio, realizar este proceso es similar a utilizar un teléfono celular, una tableta o cualquier otro aparato electrónico que cuente con una pantalla táctil y que se puedan realizar las actividades cotidianas que se realizan hoy en día, de esta forma, se proporciona al paciente más libertad para controlar un brazo robótico en las actividades cotidianas de una forma natural.

El algoritmo está pensado para que el brazo robótico antropomórfico llegue al punto deseado a más tardar en un segundo, es decir, todas las articulaciones se moverán para que el brazo robótico llegue al punto deseado en menos de un segundo si la posición es menor que a la posición máxima, en otro caso, las articulaciones se mueven para que el brazo robótico llegue en un segundo si la posición es la máxima. Por ejemplo, este algoritmo está pensado para que una articulación llegue como máximo en 1 segundo a 180 grados, por lo que los grados α serán menor o iguales a 180 grados (a =180) en sentido horario o antihorario dependiendo el punto que se haya tocado en la pantalla LCD. En este sentido, de la pantalla táctil LCD se puede obtener una coordenada (x,y), sin embargo, es necesario obtener otra dimensión para poder mover el brazo robótico en el espacio, entonces, de las coordenadas (x,y) se puede obtener un tercer dato, el cual es a=tang(y/x),, por lo tanto, se puede decir que x es diferente a cero y los números x,y y α serán representados en intervalos de entre cero y 1, entonces, y se encuentra en un conjunto cerrado [0,1] , x estará en el conjunto [0,1], y α estará en el intervalo [0,1]. Otro punto importante es que las articulaciones son movidas por motores paso a paso, sin embargo, este método también se puede utilizar cuando se tiene otro tipo de motor que use un pulso PWM para el control de su torque, pero tiene mejor rendimiento cuando se utilizan motores paso a paso.

3. Transformación lineal y condiciones

Para representar una coordenada que se toca en la pantalla táctil LCD, se tienen cuatro condiciones, en las cuales los valores de x e y son caracterizados por ser mayor o igual que el otro, es decir, se puede tener el caso donde x=y o y=x de esta manera se identifican las cuatros condiciones, se construyen cuatro triángulos rectángulos que cubre la pantalla táctil LCD la cual se cumple que x≥y o y≥x .

 

 

Es decir, existe el límite para cuando x se aproxima a cero, pero no existe a(0) porque se trata de una función divergente que tiene discontinuidad de salto.

 

 

Transformación Lineal: En realidad, la figura 1 es la representación de la transformación lineal que se comentó en el apartado de desarrollo del algoritmo. Se sabe que una pantalla táctil LCD es un espacio con dos dimensiones y se necesita mover el brazo robótico en un espacio con 3 dimensiones. Con los datos que hemos definido, tenemos entonces un vector x,y,a), se puede definir la siguiente transformación, sea T:R^3?R^3 y k es cualquier número real. Se define la siguiente transformación lineal para cuando a gira en un sentido antihorario.

 

 

 

 

 

4. Desarrollo del Algoritmo

Utilizando la pantalla táctil LCD, se intenta mover tres motores paso a paso para llegar a las posiciones correspondientes dada por la transformación lineal, cada motor tiene una resolución de 1.8 grados por paso la cual se alcanza cuando se le aplica a la bobina del motor un pulso PWM de 10 milisegundos. Se nombra al motor a como el motor de la primera articulación, este motor hace girar al brazo robótico en el sentido horario y anti horario en el eje vertical paralelo al brazo robótico, después se define el motor x el cual se mueve a través del eje x de la figura 1, y por último el motor y se moverá a través del eje y. Para ver mejor la forma en la que se mueve el brazo robótico, se utilizó como ejemplo el brazo, el motor α representa a los movimientos que hace el hombro de manera vertical, el motor a representa los movimientos de reflexión y contracción del codo, por último, el motor y representa los movimientos del hombro de manera horizontal, posicionando nuestra mano en un punto en el espacio. Se sabe que la resolución del motor es de 1.8 grados y que se necesita un pulso PWM para mover un paso de 1.8 grados, entonces, los grados obtenidos son por el número de pasos de 10 milisegundos, por lo que se construye la siguiente función:

 

 

donde n es el número de pulsos PWM con grosor de 10 milisegundos, quiere decir que, para alcanzar 180 grados, se necesitarán 100 pulsos, por lo tanto, se alcanzan en 1 segundo. La función discreta (11) funciona de una forma correcta, de hecho, es una función precisa, sin embargo, al momento de utilizar la pantalla LCD y mandar los pulsos PWM se debe hacer por lo menos una pausa de 5 milisegundos para poder mandar otro pulso de 10 milisegundos, de no ser así, puede hacer que las uniones del brazo robótico no lleguen a la posición deseada, pues se genera un tráfico en cada unión del brazo robótico. Para llegar 180 grados se necesita más de un segundo para llegar, entonces, se propone la siguiente función, la cual puede alcanzar una cantidad muy grande con un solo pulso.

 

 

 

4.1. Representación del Algoritmo

 

 

 

4.2. Simulación del Algoritmo en Matlab

Se ha seleccionado Matlab para hacer la simulación del algoritmo, se realizó la trayectoria del brazo robótico haciendo las combinaciones de las funciones discretas presentadas. Se ha utilizado una interfaz gráfica de usuario tal y como se muestra en la figura 3. Colocando los grados en los que se quiere mover cada junta y oprimiendo el push button llamado “Get position” el algoritmo realiza la trayectoria y trabaja simultáneamente con la transformación lineal presentada para obtener la cinemática inversa del brazo robótico y se muestra una representación del brazo robótico con las tres articulaciones haciendo la trayectoria. Además, se realiza el cálculo del número de combinaciones, tiempo límite superior, tiempo límite superior sin los tiempos de espera agregados por cada pulso de 10 milisegundos de la primera función discreta, tiempo límite inferior y los grados que se obtienen tomando el tiempo límite superior y el tiempo límite inferior.

La obtención de la trayectoria está inspirada en el método de polinomios cúbicos, en este caso, los grados en el tiempo límite inferior son calculados usando los polinomios cúbicos y tomando el tiempo límite inferior para aproximar los grados que se pueden obtener en caso de usar dicho límite. Se presenta en este apartado un ejemplo para cuando el motor α (primera articulación) se mueva a 45 grados. En resumen, el programa calcula los grados que corresponden al tiempo límite superior y el tiempo límite inferior con el método de polinomios cúbicos para comparar los resultados con los resultados del algoritmo propuesto.

 

 

5. Resultados

Los resultados están enfocados en la simulación en MATLAB y en el código de Arduino generado mediante la simulación en MATLAB, se utilizó una pantalla táctil LCD modelo 2.4 TFT y motores paso a paso Nema 17, los resultados se presentan como los valores deseados de α obtenida al tocar la pantalla LCD comparando los con los resultados de la simulación en MATLAB y la ejecución del código de Arduino. La tabla 2 representa a los resultados obtenidos tocando a la pantalla LCD en la primera condición.

 

 

Entonces, se tiene la siguiente función la cual representa la mejor opción para usarse en esta primera condición.

 

 

 

Entonces, la combinación de las funciones es representada como:

 

 

 

Se obtiene la siguiente función:

 

 

 

 

La figura 4 se muestra el resultado de cada función y la aproximación de la función f(n) y f(s), se puede observar como la combinaciones pueden ser construidas y cuales pueden ser usadas. Por último se obtiene la función para la cuarta condición:

 

 

 

6. Conclusiones

Se ha analizado un método para mejorar el control de un brazo robótico antropomórfico donde se puede calcular fácilmente su cinemática inversa o cinemática directa, además, se puede generar una trayectoria combinando las dos funciones discretas, esto es lo más interesante, debido a que de esta forma se puede utilizar una pantalla táctil para que un paciente con discapacidades/dificultades físicas pueda controlar un brazo robótico tan solo tocar con un solo dedo la coordenada de la pantalla táctil LCD. Entonces, usando un espacio con dos dimensiones, es posible generar una trayectoria en un espacio con tres dimensiones, como se mostró anteriormente, esto se lleva a cabo con una transformación lineal, la cual obtiene una coordenada en el espacio con dos dimensiones, después, se selecciona la condición donde se posiciona coordenada, y de esta forma, saber cuántos grados se debe mover cada articulación y la posición final en el eje X, eje Y y eje a, la cual se representa como el vector de llegada de la transformación lineal. Después, se usa el algoritmo propuesto para traducir los datos que la transformación lineal ha proporcionado, entonces, se genera la trayectoria del brazo robótico moviendo motores paso a paso de cada articulación, sin embargo, el brazo robótico puede tardar como máximo 1.5 segundos, esto hace que los movimientos del brazo robótico sean muy rápidos.

Sería interesante controlar el tiempo de la trayectoria del brazo robótico, sin embargo, con este método no es posible, entonces, para futuros trabajos, se busca encontrar una función que genere la trayectoria del brazo robótico controlando el tiempo en el que el brazo robótico llega a su partida y que además pueda ser fácil de implementar usando diferentes motores y reduciendo el número de combinaciones. Se espera que con este algoritmo y la transformación lineal sea más fácil diseñar una función en la que se pueda utilizar cualquier pantalla táctil LCD y usando cualquier tipo de motor en las articulaciones del brazo robótico antropomórfico para generar la trayectoria. Además, al encontrar una nueva función, será posible que sea mucho más fácil de programarse, más rápido de ejecutar el programa, mejorar el consumo de memoria, y por lo tanto, la ejecución será más fácil y rápida.

 

REFERENCIAS

Allen, S. (2016). New Prostheses and Orthoses Step Up their Game: Motorized Knees, Robotic Hands, and Exosuits Mark Advances in Rehabilitation Technology. IEEE Pulse, 7(3), 6-11.         [ Links ]

Atre, P., Bhagat, S., Pooniwala, N., & Shah, P. (2018). Efficient and Feasible Gesture Controlled Robotic Arm. In: Proceeding of Second International Conference on Intelligent Computing and Control Systems, (pp. 1-6), Madurai, India: IEEE Publishing.         [ Links ]

Badrinath, A.S., Vinay, P.B., & Hegde, P. (2016). Computer Vision based semi-intuitive Robotic arm. In: Proceeding of 2nd International Conference on Advances in Electrical, Electronics, Information, Communication and Bio-Informatics, pp. 563-567. Chennai, India: IEEE Publishing.         [ Links ]

Beckerle, P., Kõiva, R., Kirchner, E. A., Bekrater-Bodmann, R., Dosen, S., Christ, O., Abbink, D. A., Castellini, C., & Lenggenhager, B. (2018). Feel-Good Robotics: Requirements on Touch for Embodiment in Assistive Robotics. Frontiers in Neurorobotics, 12, 1-84.         [ Links ]

Bovet, S., Debarba, H. G., Herbelin, B., Molla, E., & Boulic, R. (2018). The Critical Role of Self-Contact for Embodiment in Virtual Reality. IEEE Transactions on Visualization and Computer Graphics, 24(4), 1428-1436.         [ Links ]

Burgner-Kahrs, J., Rucker, D.C., & Choset, H. (2015). Continuum Robots for Medical Applications: A Survey. IEEE Transactions on Robotics and Automation, 31(6), 1261-1280.         [ Links ]

Chung, C.S., Wang, H., & Cooper, R.A. (2013). Functional assessment and performance evaluation for assistive robotic manipulators: Literature review. The Journal of Spinal Cord Medicine, 36(4), 273-289.         [ Links ]

Fernández-Ordoñez, J., Maza, L., Torres-Carrión, P., Barba-Guzmán, L., & Rodríguez-Morales, G. (2019). Experiencia Afectiva Usuario en ambientes con Inteligencia Artificial, Sensores Biométricos y/o Recursos Digitales Accesibles: Una Revisión Sistemática de Literatura. RISTI - Revista Ibérica de Sistemas e Tecnologias de Informação, (35), 35-53. DOI: 10.17013/risti.35.35-53.         [ Links ]

Grau, A., Indri, M., Bello, L.L., & Sauter, T. (2017). Industrial robotics in factory automation: From the early stage to the Internet of Things. In: Proceeding of 43rd Annual Conference of the IEEE Industrial Electronics Society, pp. 6159-6164. Beijing, China: IEEE publishing.         [ Links ]

Jiang, H., Wachs, J.P., & Duerstock, B.S. (2012). Facilitated Gesture Recognition Based Interfaces for People with Upper Extremity Physical Impairments. In: L. Alvarez, M. Mejail, L. Gomez, J. Jacobo (eds.). Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications, pp. 228-235. Berlin, Heidelberg: Springer.         [ Links ]

Kokkinara, E., Slater, M., & López-Moliner, J. (2015). The effects of visuomotor calibration to the perceived space and body through embodiment in immersive virtual reality. ACM Transactions on Applied Perception, 13(1), 1-22.         [ Links ]

Levin, M.F., Weiss, P.L., & Keshner, E.A. (2015). Emergence of virtual reality as a tool for upper limb rehabilitation: incorporation of motor control and motor learning principles. Physical Therapy, 95(3), 415-425.         [ Links ]

Kruthika, K., Kumar, B.M.K., & Lakshminarayanan, S. (2016). Design and development of a robotic arm. In: Proceeding of International Conference on Circuits, Controls, Communications and Computing, pp. 1-4. Bangalore, India: IEEE publishing.         [ Links ]

Lara, G., Santana, A., Lira, A., & Peña, A. (2019). El Desarrollo del Hardware para la Realidad Virtual. RISTI - Revista Ibérica de Sistemas e Tecnologias de Informação, (31), 106-117. DOI: 10.17013/risti.31.106-117.         [ Links ]

Makin, T., de Vignemont, F., & Faisal, A. (2017). Neurocognitive barriers to the embodiment of technology. Nature Biomedical Engineering, 1(0014), 1-3.         [ Links ]

Murali, A., Sen, S., Kehoe, B., Garg, A., Mcfarland, S., Patil, S., …. Goldberg, K. (2015). Learning by observation for surgical subtasks: Multilateral cutting of 3D viscoelastic and 2D Orthotropic Tissue Phantoms. In: Proceeding of International Conference on Robotics and Automation, pp. 1202-1209. Seattle, WA, USA: IEEE Publishing.

Niyetkaliyev, A.S., Hussain, S., Ghayesh, M.H., & Alici, G. (2017). Review on Design and Control Aspects of Robotic Shoulder Rehabilitation Orthoses. IEEE Transactions on Human-Machine Systems, 47(6), 1134-1145         [ Links ]

Perez-Marcos, D., Chevalley, O., Schmidlin, T., Garipelli, G., Serino, A., Vuadens, P., Tadi, T., Blanke, O., & Millán, J.D. (2017). Increasing upper limb training intensity in chronic stroke using embodied virtual reality: a pilot study. Journal of NeuroEngineering and Rehabilitation, 14(1), pp. 119.

Proietti, T., Crocher, V., Roby-Brami, A., & Jarrassé, N. (2016). Upper-Limb Robotic Exoskeletons for Neurorehabilitation: A Review on Control Strategies. IEEE Reviews in Biomedical Engineering, 9, 4-14,         [ Links ]

Rehmat, N., Zuo, J., Meng, W., Liu, Q., Xie, S.Q., & Liang, H. (2018). Upper limb rehabilitation using robotic exoskeleton systems: a systematic review. International Journal of Intelligent Robotics and Applications, 2(3), 283-295.         [ Links ]

Shademan, A., Decker, R.S., Opfermann, J.D., Leonard, S., Krieger, A., & Kim, P.C. (2016). Supervised autonomous robotic soft tissue surgery. Science Translational Medicine, 8(337), 337ra64.

Yenorkar, R., & Chaskar, U. M. (2018). GUI Based Pick and Place Robotic Arm for Multipurpose Industrial Applications. In: Proceeding of the Second International Conference on Intelligent Computing and Control Systems, (pp. 200-203). Madurai, India: IEEE publishing.         [ Links ]

Young, A.J., & Ferris, D.P. (2017). State of the Art and Future Directions for Lower Limb Robotic Exoskeletons. IEEE Transactions on Neural Systems and Rehabilitation Engineering, 25(2), 171-182.         [ Links ]

 

Recebido/Submission: 16/09/2019
Aceitação/Acceptance: 13/01/2020

Creative Commons License Todo el contenido de esta revista, excepto dónde está identificado, está bajo una Licencia Creative Commons