• No se han encontrado resultados

Teleoperación de un brazo robótico asistida por procesamiento de imágenes

N/A
N/A
Protected

Academic year: 2020

Share "Teleoperación de un brazo robótico asistida por procesamiento de imágenes"

Copied!
39
0
0

Texto completo

(1)

U

NIVERSIDAD DE LOS

A

NDES

Facultad de Ingeniería

Departamento de Ingeniería Mecánica

TELEOPERACIÓN DE UN BRAZO ROBÓTICO ASISTIDA POR

PROCESAMIENTO DE IMÁGENES

P

ROYECTO DE

G

RADO

Natalia Sánchez Tamayo.

Estudiante de pregrado de Ingeniería Mecánica e Ingeniería Civil.

n.sanchez3330@uniandes.edu.co

Jonathan Camargo Leyva.

Profesor Instructor. MSc.

Departamento de Ingeniería Mecánica - Universidad de Los Andes

jon-cama@uniandes.edu.co

Junio 2016

Bogotá D.C. – Colombia

08

Otoño

(2)

1

“Die Presse, die Maschine, die Eisenbahn, der Telegraph sind Prämissen, deren tausendjährige Konklusion noch niemand zu ziehen gewagt hat”

(3)

2

“A Jonathan por su entusiasmo hacia tantas cosas en la vida, a Julián por su apoyo incondicional y especialmente a mis padres por su increíble amor y compresión.”

(4)

3

TABLA DE CONTENIDO

LISTA DE ILUSTRACIONES 4

LISTA DE FOTOGRAFÍAS 4

LISTA DE TABLAS 4

1. RESUMEN 5

2. INTRODUCCIÓN Y JUSTIFICACIÓN 6

3. OBJETIVOS 7

4. MARCO TEÓRICO 8

4.1MANIPULADORES ROBÓTICOS 8

4.2CINEMÁTICA DIRECTA 10

4.2.1MATRIZ DE TRANSFORMACIÓN HOMOGÉNEA 10

4.2.2CADENA CINEMÁTICA 10

4.2.2.1CINEMÁTICA DIRECTA CON LA CONVENCIÓN DENAVIT-HARTENBERG 11 4.2.2.2ASIGNACIÓN DE LOS SISTEMAS DE COORDENADAS LOCALES 12

5. MORFOLOGÍA DE LA SOLUCIÓN 14

5.1 SISTEMA DE MANDO 16

5.1.1POTENCIÓMETROS UTILIZADOS 16

5.1.2MODELO DEL EXOESQUELETO 18

5.2 PROCESAMIENTO DE IMÁGENES 20

5.3 CINEMÁTICA INVERSA 22

5.3.1REDES NEURONALES 22

5.3.2RED NEURONAL ESCOGIDA 24

5.3.3ENTRENAMIENTO DE LA RED NEURONAL 25

5.3.4RESULTADOS RED NEURONAL 28

5.4 IMPLEMENTACIÓN DE LA SOLUCIÓN 32

5.4.1RESULTADOS DE LA IMPLEMENTACIÓN 33

6. CONCLUSIONES 37

(5)

4

LISTA DE ILUSTRACIONES

Ilustración 1. Representación gráfica articulaciones rotacionales ... 9

Ilustración 2. Cadena cinemática Zortrax M200. ... 9

Ilustración 3. Esquema de la solución implementada. ... 15

Ilustración 4. Potenciómetros lineales ... 16

Ilustración 5. Modelo cinemático del exoesqueleto. ... 18

Ilustración 6.Procesamiento de imágenes ... 21

Ilustración 7. Arquitectura de la red neuronal utilizada, se muestran 4 neuronas por capa de las 15 utilizadas25 Ilustración 8. Cadena cinemática robot Zortrax M200, Notación de D-H ... 26

Ilustración 9. Datos de entrenamiento obtenidos para combinaciones de 𝜽𝟏, 𝜽𝟐, 𝜽𝟑, 𝜽𝟒, 𝜽𝟓 uniformes ... 27

Ilustración 10. Datos de entrenamiento una vez depurados. ... 27

Ilustración 11. Posibles configuraciones del robot Zortrax M200. ... 28

Ilustración 12. Índice de desempeño 0.71 para epoch 36 ... 28

Ilustración 13. Distribución del error en x- espacio de trabajo Zortrax M200 ... 29

Ilustración 14. Distribución del error en y- espacio de trabajo Zortrax M200 ... 29

Ilustración 15. Distribución del error en z- espacio de trabajo Zortrax M200 ... 30

Ilustración 16. Gráfica del error absoluto (mm) en el espacio de trabajo del brazo robótico Zortrax M200. .... 31

Ilustración 17. Distribución del error en x ... 33

Ilustración 18. Distribución del error en y ... 34

Ilustración 19. Distribución del error en z ... 34

Ilustración 20. Gráfica error absoluto en mm para el espacio de trabajo del sistema ... 35

LISTA DE FOTOGRAFÍAS

Fotografía 1. Manipulador robótico Zortrax M200 ... 8

Fotografía 2. Escena simulada en V-Rep. Brazo Zortrax, elementos en el espacio y sensor de visión. ... 14

Fotografía 3. Exoesqueleto utilizado en la implementación de la solución. ... 16

Fotografía 4. Imágenes del control exoesqueleto-Zortrax. ... 36

LISTA DE TABLAS

Tabla 1. Parámetros D-H para el exoesqueleto ... 18

Tabla 2. Parámetros de Denavit-Hartenberg para el manipulador Zortrax M200... 26

Tabla 3. Probabilidad de error lineal menor a 2 cm ... 30

Tabla 4. Probabilidad de error lineal para coordenadas x,y,z ... 30

Tabla 5. Probabilidad de error lineal para coordenadas x,y,z ... 33

(6)

5

1.

RESUMEN

Una de las áreas más importantes de la robótica se dedica al estudio de la cinemática de robots manipuladores [1], dado que ésta permite el control de la posición y el movimiento de un efector robótico para la ejecución de tareas en distintas aplicaciones industriales como soldadura, empaquetamiento y ensambles de precisión.

La cinemática directa establece la relación entre las articulaciones de un robot y la posición y orientación del efector en coordenadas cartesianas. De manera que conociendo el estado de cada eslabón del robot con respecto al anterior se puede calcular la cinemática del sistema. La cinemática inversa es el proceso opuesto, consiste en la transformación de coordenadas espaciales a posición angular en las articulaciones y permite controlar el movimiento del efector al calcular los ángulos requeridos en cada articulación para alcanzar una posición específica.

En este proyecto se diseñó el control remoto en tiempo real del brazo robótico Zortrax M200 con 5 grados de libertad, a través del uso de un exoesqueleto como sistema de mando conectado al brazo derecho del operador y del procesamiento de imágenes obtenido a través de una cámara en la escena.

Por un lado, el sistema de mando captura el movimiento del operador calculando con la cinemática directa, la posición y orientación de su mano, que determinan el punto objetivo al que se quiere dirigir el efector del robot. Por otro lado se realiza el procesamiento de imágenes obtenidas por una cámara ubicada sobre el robot, que identifica los elementos encontrados en el espacio y modifica el punto objetivo para acercarse a éstos. Finalmente, se realiza la cinemática inversa del brazo Zortrax utilizando redes neuronales multiperceptrón (MLPNN), que aportan los ángulos requeridos en cada una de las articulaciones para que el efector alcance el objetivo determinado. Realizando este procedimiento continuamente se obtiene en tiempo real un sistema de control intuitivo del brazo robótico que resulta del movimiento natural del usuario sobre su espacio de trabajo.

(7)

6

2.

INTRODUCCIÓN Y JUSTIFICACIÓN

El hombre ha buscado siempre nuevas formas de aprovechar el entorno y adaptarse a él. En la actualidad, la robótica se presenta como una solución a gran cantidad de actividades que no pueden ser realizadas por el ser humano. Frente a esto, la teleoperación es la forma de controlar sistemas a distancia de manera que se pueden realizar actividades en sitio sin la presencia de un operario en el mismo ambiente de trabajo.

En la actualidad la teleoperación se ha destacado en un amplio número de aplicaciones, extendiéndose a aplicaciones nucleares, aeroespaciales, militares, submarinas y médicas. Por una parte, estos sistemas resultan útiles para la industria nuclear en la realización de actividades que resultan peligrosas para el ser humano, como la manipulación de sustancias radioactivas, la operación, mantenimiento y descontaminación de instalaciones para la elaboración de combustible nuclear. Por otra parte, también son usados en aplicaciones para lugares remotos que solo un robot puede alcanzar, se destacan las aplicaciones aeroespaciales que usan este tipo de sistemas para controlar vehículos de exploración planetaria, realizar el mantenimiento y operación de satélites y estaciones espaciales.

Los sistemas de teleoperación tienen distintos tipos de control, por ejemplo, existen sistemas comunes de botones y palancas u otros más intuitivos dónde el usuario mueve una réplica del dispositivo (ej. brazo robótico), lo que genera una reproducción en el sistema de los movimientos generados por el operador (esclavo-maestro). De igual manera también existen mandos que se adaptan a la anatomía humana como exoesqueletos y sistemas de captura de movimiento a partir de visión computacional.

En el presente proyecto se propuso utilizar como sistema de mando un exoesqueleto de forma que el usuario pudiera controlar intuitivamente el brazo robótico con el movimiento natural de su brazo derecho.

(8)

7

3.

OBJETIVOS

GENERAL:

Diseñar e implementar el sistema de control de posición para un brazo robótico que permita emular la respuesta capturada a través de un sistema de mando, asistiendo la operación con información provista por video sobre el entorno en que opera.

ESPECÍFICOS:

 Definir y modelar el sistema de mando a utilizar por el usuario.

 Diseñar un programa de computación que asista la operación del brazo robótico a través del procesamiento de imágenes obtenidas por una cámara en el entorno.

 Diseñar un sistema de control para el brazo robótico, que permita alcanzar la posición deseada sobre el espacio de trabajo.

(9)

8

4.

MARCO TEÓRICO

La robótica es un campo relativamente joven de la tecnología moderna que involucra conocimientos en matemáticas, ingeniería mecánica, electrónica, industrial y de sistemas. Una de sus aplicaciones más importantes es el uso de brazos robóticos industriales, o manipuladores robóticos, controlados por computadora. Un Robot de este tipo es definido por el Robot Institute of America (RIA) como un manipulador multifuncional diseñado para mover materiales, partes, herramientas o equipos especializados a través de movimientos variables programados para el desempeño de distintas tareas, como el que se puede ver en la siguiente imagen, que es el robot Zortrax M200 utilizado en este proyecto:

Fotografía 1. Manipulador robótico Zortrax M200

Este brazo robótico fue diseñado por la empresa Zortrax bajo licencia Creative commons. Su diseño original, mostrado en la anterior fotografía, está basado en tres motores y logra levantar elementos de hasta 0.1 kg [2], posee un efector que permite sujetar distintos elementos y que puede ser reemplazado por otros efectores como electroimán o taladro dependiendo de las necesidades del usuario.

4.1 Manipuladores robóticos

Los manipuladores robóticos se componen de eslabones conectados por articulaciones para formar una cadena cinemática, el último eslabón corresponde comúnmente al efector que permite realizar distintas acciones como sujetar objetos, soldar elementos, etc. Las articulaciones representan la unión entre dos eslabones, pueden ser de tipo rotacional (revoluta) o lineal (prismático). Las articulaciones tipo revoluta que son las utilizadas en el robot Zortrax M200 permiten movimiento rotacional relativo entre dos eslabones y se representan gráficamente como se ve en la Ilustración 1. En este proyecto se denota el eje de rotación de una revoluta o el eje de translación de una articulación prismática como 𝑧𝑖, dónde la articulación i conecta el eslabón i con el eslabón i+1.

(10)

9 Ilustración 1. Representación gráfica articulaciones rotacionales

Dado que la base del manipulador se considera fija y los eslabones se consideran rígidos, se puede calcular la posición de cualquier punto en el manipulador al conocer los valores de las variables en la operación (articulaciones). El número de articulaciones en un manipulador robótico representa el número de grados de libertad (GDL) que posee, es decir el mínimo necesario de parámetros que especifican totalmente la posición y orientación del robot.

Para que un manipulador sea capaz de alcanzar todas las posiciones y orientaciones posibles en su espacio de trabajo se requieren mínimo 6 GDL, tres para alcanzar la posición y tres para la orientación, contando con que no se encuentren obstáculos en el espacio. El manipulador Zortrax M200 posee 5 GDL como se puede ver en la Ilustración 2 que representa la cadena cinemática. Esto significa que el manipulador no puede alcanzar orientaciones arbitrarias en cada punto de su espacio de trabajo, sino que las posibles orientaciones del efector en una posición específica son limitadas.

Ilustración 2. Cadena cinemática Zortrax M200.

El espacio de trabajo de un manipulador se define como el volumen que recorre el efector tomando en cuenta todas sus posibles configuraciones y se puede dividir en el espacio alcanzable y el espacio diestro (dexterous). El espacio de trabajo alcanzable corresponde al conjunto total de puntos que puede alcanzar el efector, entre los cuales el espacio de trabajo diestro hace referencia a aquellos que el manipulador puede alcanzar con una orientación arbitraria del efector.

2D

3D

𝑧

𝑖

i

i+1

𝑥0

𝑦0

𝑧0

𝑥𝑛

𝑦𝑛

𝑧𝑛

𝑂𝑛

(11)

10

4.2 Cinemática directa

4.2.1 Matriz de transformación homogénea

El análisis de la cinemática directa se realiza para determinar la posición y orientación del efector dados los valores de las articulaciones, que son las variables de la cadena cinemática. Una forma de representar la posición y orientación del efector para un manipulador de 𝑛 GDL es la matriz de transformación homogénea 𝐻𝑛0 , que describe la transformación desde el sistema de coordenadas local del efector (𝑣𝑒𝑐𝑡𝑜𝑟 𝑝𝑛 en el sistema 𝑜𝑛𝑥𝑛𝑦𝑛𝑧𝑛) al sistema de coordenadas base (𝑣𝑒𝑐𝑡𝑜𝑟 𝑝0 en el sistema 𝑜0𝑥0𝑦0𝑧0). Ver Ilustración 2.

Esta transformación se puede expresar como una multiplicación de matrices, de la siguiente manera:

[𝑝0

1] = 𝐻𝑛0[𝑝 𝑛

1] (4.1)

La matriz de transformación homogénea más general se escribe como:

𝐻𝑛0 = [ 𝑛𝑥

𝑛𝑦𝑠𝑠𝑥𝑦𝑎𝑎𝑦𝑥𝑑𝑑𝑥𝑦 𝑛𝑧

0 𝑠𝑧

0 𝑎𝑧

0 𝑑1𝑧

] = [𝑛0 𝑠0 𝑎0 𝑑1] (4.2)

En la cual 𝑛 = (𝑛𝑥, 𝑛𝑦, 𝑛𝑧)𝑇es un vector que representa la dirección de 𝑥𝑛 en el sistema 𝑜0𝑥0𝑦0𝑧0, 𝑠 = (𝑠𝑥, 𝑠𝑦, 𝑠𝑧)𝑇es un vector que representa la dirección de 𝑦𝑛, y 𝑎 = (𝑎𝑥, 𝑎𝑦, 𝑎𝑧)𝑇es un vector que representa la dirección de 𝑧𝑛. El vector 𝑑 = (𝑑𝑥, 𝑑𝑦, 𝑑𝑧)𝑇representa el vector desde el origen 𝑜0 al origen 𝑜1 expresado en el sistema base (𝑜0𝑥0𝑦0𝑧0), lo que indica la posición final del efector en el sistema de coordenadas base.

La transformación se puede definir como una traslación pura del origen, más una rotación pura del sistema de coordenadas, puede incluir factor de escala y perspectiva como se muestra en la siguiente representación:

𝐻𝑛0= [𝑅3𝑥3 | 𝑑3𝑥1 𝑓1𝑥3 | 𝑠1𝑥1] = [

𝑅𝑜𝑡𝑎𝑐𝑖ó𝑛| 𝑇𝑟𝑎𝑛𝑠𝑙𝑎𝑐𝑖ó𝑛

𝑃𝑒𝑟𝑠𝑝𝑒𝑐𝑡𝑖𝑣𝑎 | 𝐹𝑎𝑐𝑡𝑜𝑟 𝑑𝑒 𝑒𝑠𝑐𝑎𝑙𝑎] (4.3)

Sin embargo para este proyecto se toma (𝑓1𝑥3 𝑠1𝑥1) como (0, 0, 0, 1) considerando únicamente rotación y traslación pura.

4.2.2 Cadena cinemática

El objetivo de la cinemática directa es determinar el efecto acumulado del set de variables conocidas, es decir determinar la posición y orientación del efector a partir de los valores de las articulaciones. Un manipulador robótico con n articulaciones posee n+1 eslabones dado que cada

(12)

11 articulación conecta dos eslabones. Las articulaciones se numeran desde 0 hasta 𝑛 comenzando desde la base y la articulación i conecta el eslabón i con el eslabón i+1. En el análisis se considera la ubicación de la articulación i fija con respecto al eslabón i +1, es decir si la articulación i es accionada el eslabón i se mueve con respecto al i+1. Como consecuencia el eslabón 0 es fijo en todo momento con respecto a su base. Para realizar el análisis cinemático se fija rígidamente un sistema de coordenadas a cada eslabón, por ejemplo el sistema de coordenadas 𝑜𝑖𝑥𝑖𝑦𝑖𝑧𝑖 se fija al eslabón i y se mueve con él.

Seguidamente en el análisis cinemático se calcula la matriz de transformación homogénea 𝐴𝑖 para cada GDL, que expresa la posición y orientación de 𝑜𝑖𝑥𝑖𝑦𝑖𝑧𝑖 con respecto a 𝑜𝑖−1𝑥𝑖−1𝑦𝑖−1𝑧𝑖−1. Esta matriz no es constante y depende de la configuración del robot, por lo que 𝐴𝑖 es una función de las variables en las articulaciones denotadas como 𝑞𝑖. La variable 𝑞𝑖 se define como un ángulo en el caso de articulaciones rotacionales 𝜃𝑖 o como una distancia en el caso de articulaciones lineales 𝑑𝑖. Finalmente la posición y orientación del efector en el sistema de coordenadas de su base está dado por la multiplicación de las matrices 𝐴𝑖:

𝐻𝑛0= 𝑇𝑛0= 𝐴1(𝑞1) … 𝐴𝑛(𝑞𝑛) (4.4)

4.2.2.1 Cinemática directa con la convención Denavit-Hartenberg

En esta sección se muestra la metodología implementada para calcular las matrices 𝐴𝑖 que definen la cinemática directa. Una convención usada comúnmente para seleccionar los sistemas de coordenadas en cada eslabón es la convención Denavit-Hartenberg (D-H), en la cual cada transformación 𝐴𝑖 es representada como el producto de cuatro transformaciones básicas [2]:

𝐴𝑖= 𝑅𝑜𝑡𝑧,𝜃𝑖𝑇𝑟𝑎𝑛𝑠𝑧, 𝑑𝑖𝑇𝑟𝑎𝑛𝑠𝑥,𝛼𝑖𝑅𝑜𝑡𝑥, 𝛼𝑖

𝐴𝑖 = [

𝑐𝜃𝑖

𝑠𝜃𝑖−𝑠𝑐𝜃𝜃𝑖𝑖 00 00 0

0 00 10 01 ] [

1

0 01 00 00 0

0 00 10 𝑑1𝑖 ] [

1

0 01 00 𝑎𝑖

0 0

0 00 10 01 ] [

1 0

0 𝑐∝𝑖

−𝑠0 ∝𝑖 0 0 0 0 𝑠𝑖

0 𝑐𝑖

0 01 ]

= [

𝑐𝜃𝑖 −𝑠𝜃𝑖𝑐𝑖

𝑠𝜃𝑖 𝑐𝜃𝑖𝑐𝑖 −𝑐𝑠𝜃𝜃𝑖𝑠𝑖𝑠∝𝑖𝑖 𝑎𝑎𝑖𝑖𝑐𝑠𝜃𝜃𝑖𝑖 0 𝑠𝑖

0 0

𝑐𝑖 𝑑𝑖

0 1 ]

(4.5)

Dónde las cuatro cantidades 𝑎𝑖,∝𝑖, 𝑑𝑖, 𝜃𝑖 son parámetros asociados con el eslabón i y la articulación

i, que usualmente son llamados en inglés como link length, link twist, link offset y joint angle

respectivamente. Entre éstos, tres valores son constantes y el valor de la articulación es variable, que corresponde a 𝑑𝑖 para una articulación lineal y 𝜃𝑖 para una rotacional. De acuerdo con esto una transformación homogénea puede ser definida completamente a partir de cuatro parámetros, gracias a la libertad de escoger el origen y la orientación de los sistemas de coordenadas basados en la convención D-H.

(13)

12 En la siguiente sección se muestra la metodología utilizada para obtener los parámetros de D-H y con estos calcular la cinemática directa de un manipulador robótico. La explicación y demostración detallada del método se encuentra en [3].

4.2.2.2 Asignación de los sistemas de coordenadas locales

Los parámetros de D-H dependen de los sistemas de coordenadas locales asignados a cada eslabón, por lo que no existe una única solución correcta. Es posible que existan diferentes soluciones correctas que cumplen con la metodología mostrada a continuación:

En primer lugar, se definen los ejes 𝑧0, … , 𝑧𝑛−1. Para cada articulación desde la i hasta la n-1 se escoge la orientación de 𝑧𝑖 de forma arbitraria sobre el eje de actuación de la articulación i+1. Por ejemplo, 𝑧0 se ubica sobre el eje de actuación de la articulación 1; en el caso en que la articulación es una revoluta el eje de actuación es el eje de giro. Si por el contrario la articulación es lineal el eje de actuación es el eje de traslación.

Seguidamente se realiza la asignación del origen y orientación del sistema de coordenadas base, como sea conveniente cumpliendo la regla de la mano derecha. Este es el marco de referencia 0. Una vez el marco 0 ha sido definido, se procede a asignar el marco i con base en el i-1, este procedimiento se realiza para los sistemas de coordenadas 0,…, n-1 del robot. Para esto se consideran tres casos:

1. 𝑧𝑖−1 y 𝑧𝑖 no son coplanares.: Si esta condición se cumple existe un único segmento de línea perpendicular a ambos 𝑧𝑖−1 y 𝑧𝑖, tal que conecta ambas líneas con la mínima distancia. Se llama la normal común, define la dirección de 𝑥𝑖 y el punto en que ésta intersecta 𝑧𝑖 corresponde al origen. Para completar la especificación se selecciona 𝑦 de forma que se tenga un sistema de coordenadas de mano derecha.

2. 𝑧𝑖−1 es paralela a 𝑧𝑖: Si esta condición se cumple hay un número infinito de normales comunes por lo que se escoge el origen 𝑜𝑖 en cualquier punto sobre 𝑧𝑖. 𝑥𝑖 se escoge en cualquier sentido sobre la línea que generan 𝑜𝑖 y 𝑧𝑖−1. Para simplificar el análisis se escoge 𝑥𝑖 sobre la normal que pasa por 𝑜𝑖−1, siendo 𝑜𝑖 el punto en el cual la normal intersecta 𝑧𝑖. En este caso 𝑑𝑖 sería igual a cero. Una vez se fija 𝑥𝑖, 𝑦𝑖 se determina por la regla de la mano derecha. Dado que 𝑧𝑖−1 es paralela a 𝑧𝑖, ∝𝑖 es cero.

3. 𝑧𝑖−1 intersecta a 𝑧𝑖: en este caso 𝑥𝑖 se escoge normal al plano formado por 𝑧𝑖 y 𝑧𝑖−1, su dirección se escoge arbitrariamente. 𝑜𝑖 se puede escoger a lo largo de 𝑧𝑖, sin embargo es preferible escoger en el punto de intersección de 𝑧𝑖−1 y a 𝑧𝑖.

El sistema de coordenadas del eslabón n es el correspondiente al efector, para un manipulador robótico como el Zortrax M200 se puede llamar sujetador. El origen 𝑜𝑛 generalmente se selecciona simétricamente entre los dedos del sujetador (gripper). 𝑦𝑛 (𝑠 “sliding”) corresponde a la dirección de deslizamiento de los dedos del sujetador, 𝑧𝑛 se orienta en la dirección de acercamiento del sujetador (𝑎 “approach”) y 𝑥𝑛 corresponde a la dirección normal al plano formado por 𝑎y 𝑠. Como se puede ver en la Ilustración 2.

(14)

13 Una vez se han definido los sistemas de coordenadas de todos los eslabones que componen el manipulador robótico se determinan los parámetros 𝑎𝑖,∝𝑖, 𝑑𝑖, 𝜃𝑖 para cada grado de libertad. 𝑎𝑖: es la distancia a lo largo de 𝑥𝑖 desde 𝑂𝑖 a la intersección entre 𝑥𝑖 y 𝑧𝑖−1

𝑑𝑖: es la distancia a lo largo de 𝑧𝑖−1 desde 𝑂𝑖−1 a la intersección de 𝑥𝑖y 𝑧𝑖−1. Es variable cuándo i es prismática.

𝑖: es el ángulo entre 𝑧𝑖−1 y 𝑧𝑖 medido alrededor de 𝑥𝑖.

𝜃𝑖: es el ángulo entre 𝑥𝑖−1 y 𝑥𝑖 medido alrededor de 𝑧𝑖−1.𝜃𝑖 es variable cuándo i es revoluta. Por último, se forman las matrices de transformación homogénea y se sustituyen en la ecuación (4.4). Ésta da la posición y orientación del marco de referencia del efector expresada en el sistema de coordenadas base.

(15)

14

5.

MORFOLOGÍA DE LA SOLUCIÓN

La solución implementada para el objetivo propuesto consiste en operar el brazo robótico Zortrax M200 utilizando como sistema de mando un exoesqueleto ajustable al brazo del operador humano. Se agrega procesamiento de imágenes al sistema para mejorar su desempeño.

La implementación se realiza con el uso del programa V-Rep, que permite simular la operación del brazo robótico así como su interacción con el ambiente. A través de este programa se realizó un modelo del brazo Zortrax M200 rodeado de elementos de distintos colores, tamaños y formas, que permitió evaluar el desempeño del robot en operación.

Fotografía 2. Escena simulada en V-Rep. Brazo Zortrax, elementos en el espacio y sensor de visión.

La solución está formada por tres partes principales. La primera parte es un exoesqueleto ajustable que funciona como sistema de mando y permite al usuario el control del brazo robótico. Este funciona capturando en tiempo real con una tarjeta Arduino Nano la posición de la mano del operador, que sería la posición objetivo, de manera que se pueda generar el mismo movimiento en el brazo robótico.

La segunda parte consiste en realizar un procesamiento de imágenes a través del Toolbox de Matlab para procesamiento de imágenes que asiste la operación del sistema al facilitar el acercamiento a los objetivos detectados. Por último, un programa realizado en Matlab, encargado de realizar la cinemática inversa del robot, transforma la posición objetivo desde el espacio de trabajo del usuario en coordenadas cartesianas, al espacio de ángulos en las articulaciones del robot que definen su posición. A continuación se muestra un esquema que representa los componentes de la solución implementada:

(16)

15 Cada iteración del programa completo realizado en Matlab incluye como mínimo la lectura de los valores en las articulaciones del exoesqueleto, el cálculo de su cinemática directa, la adquisición de datos de la cámara de v-Rep, el cálculo de la cinemática inversa del robot Zortrax y el control de los motores del manipulador robótico.

CAPTURA DE MOVIMIENTO DETECCIÓN DE OBJETIVO POR VIDEO CONTROL DE BRAZO ROBÓTICO

+

CINEMÁTICA

INVERSA

𝑃

𝑃

𝑜𝑏𝑗

Cinemática directa

y z

x

y

x

𝜃𝑖

(17)

16

5.1

Sistema de mando

El sistema de mando que permite controlar el robot se basa en un exoesqueleto ajustable que se coloca en el brazo derecho del usuario y que sigue su movimiento. El exoesqueleto, diseñado por Julián Mancera, consiste en un mecanismo de ocho eslabones en MDF con articulaciones hechas de PVC. En este proyecto se adaptaron potenciómetros lineales a cada una de las articulaciones para realizar la medición de la posición angular entre eslabones y con éstas determinar la posición en coordenadas cartesianas de la mano del usuario.

Fotografía 3. Exoesqueleto utilizado en la implementación de la solución.

5.1.1 Potenciómetros utilizados

Los potenciómetros utilizados son potenciómetros lineales L103 de bajo costo. La medición de la posición angular en las articulaciones se realizó fijando el cuerpo del potenciómetro a un eslabón y ajustando el dialal otro.

Ilustración 4. Potenciómetros lineales

Se utilizó una tarjeta Arduino Nano para adquirir la señal análoga de los potenciómetros. Como la tarjeta posee un conversor análogo digital de 10 bits, la lectura obtenida dentro del rango del potenciómetro (0°-240°) se divide en 1024 intervalos, con lo cual la resolución de la lectura es de 0,235°. Experimentalmente se realizó la calibración de los potenciómetros obteniendo la siguiente curva de giro en ángulos vs lectura análoga.

(18)

17 A partir de la regresión lineal realizada a los datos se puede estimar la medición angular (𝜃𝑖) como 𝜃𝑖 = 0.2326 ∗ 𝑙𝐴+ 4.53, siendo 𝑙𝐴 el valor análogo obtenido en la tarjeta.

Una vez realizado el ensamble de los potenciómetros sobre el exoesqueleto se realizó un ajuste lineal a la regresión obtenida, en cada articulación, para que las mediciones de 𝜃𝑖 cumplan con la notación dada en la sección 4.2.2.2 Asignación de los sistemas de coordenadas locales.

an = 0.2326x + 4.5307

R² = 0.9991

0 50 100 150 200 250 300

0 200 400 600 800 1000 1200

Á

N

G

UL

O

ME

DIDO

]

LECTURA ANÁLOGA

(19)

18 5.1.2 Modelo del exoesqueleto

El exoesqueleto utilizado se modeló como un mecanismo con muñeca esférica de nueve grados de libertad (GDL). De estos GDL se miden siete que actúan en la operación del exoesqueleto, mientras los otros dos son restringidos a cero grados. El modelo cinemático utilizado se basa en la notación de Denavit-Hartenberg como se mostró en la sección 4.2.2 Cadena cinemática con la cual se definen cuatro parámetros para cada grado de libertad que permiten calcular la cinemática directa del efector. Los ángulos 𝜃𝑖 corresponden a los ángulos entre eslabones y se obtienen a partir de la medición en tiempo real realizada por los potenciómetros lineales.

En la siguiente imagen se muestra la notación y los marcos de referencia utilizados en este análisis de acuerdo a la metodología descrita en el marco teórico.

Ilustración 5. Modelo cinemático del exoesqueleto.

En la siguiente tabla se muestran los parámetros de D-H definidos para el exoesqueleto:

Tabla 1. Parámetros D-H para el exoesqueleto

Con base en estos parámetros se calcula en tiempo real las matrices 𝐴1, … , 𝐴9 de la ecuación (4.5) de las cuáles las únicas variables son 𝜃1, 𝜃2, 𝜃3, 𝜃4, 𝜃5, 𝜃6 𝑦 𝜃8 y con éstas se calcula la matriz de transformación homogénea para el efector robótico (ecuación 4.4):

PARÁMETROS D-H PARA EXOESQUELETO

Eslabón a d α 𝜃

1 0 d1=28 90° 𝜃1

2 a2=90 d2=-28 0° 𝜃2

3 a3=70 0 0° 𝜃3

4 0 d4=25 -90° 𝜃4

5 A5=281.77* d5=-59.23 0° 𝜃5

6 0 d6=75 -90° 𝜃6

7 0 d7=260* -90° 𝜃7= 0

8 0 0 90° 𝜃8

9 0 d8=75 0° 𝜃9= 0

*estos valores son ajustables y dependen del operador.

𝑥0 𝑦0 𝑧0 𝑥1 𝑦1 𝑧1 𝑥2 𝑧2 𝑦2 𝑧3 𝑥3 𝑦3 𝑥4 𝑦4 𝑧4 𝑥5 𝑦5 𝑧5 𝑥6 𝑦6 𝑧6

𝑥7, 𝑥8

𝑧7, 𝑧8

𝑧8 𝜃9

𝜃8 𝜃7 𝜃6 𝜃5 𝜃4 𝜃3 𝜃2 𝜃1

(20)

19 De la matriz se obtienen los valores 𝑑𝑥, 𝑑𝑦 y 𝑑𝑧 que determinan la posición del efector robótico en el sistema de coordenadas base. Para el exoesqueleto, el origen del sistema de coordenadas base se encuentra en la primera articulación que se ubica sobre el hombro derecho del usuario, desde dónde X se dirige a la derecha, Y al frente y Z hacia arriba de la persona. Como se muestra en la Ilustración 3.

La posición del efector robótico en el sistema de coordenadas que se acaba de describir es en un principio la posición objetivo que se envía a la cinemática inversa del robot Zortrax M200, para generar el movimiento deseado. Sin embargo, como el sistema de coordenadas y el espacio de trabajo del brazo humano son distintos a los del robot Zortrax, se realizó en la implementación del sistema una transformación de la posición objetivo desde un sistema de coordenadas al otro. Esta transformación se especifica en la sección 5.4.

(21)

20

5.2

Procesamiento de imágenes

El propósito del procesamiento de imágenes en este proyecto es asistir al usuario durante la operación del brazo robótico, de forma que mejore el desempeño del sistema. En este caso el procesamiento de imágenes permite que la posición objetivo determinada a partir del exoesqueleto sea modificada para acercarse a un elemento en el espacio que se ha detectado como objetivo. En primer lugar se detecta la posición de los elementos en el espacio 𝑥, 𝑦 por medio de procesamiento de imágenes. Como se trata de un ambiente controlado, la posición del efector del brazo Zortrax es conocida y su proximidad a algún elemento se puede utilizar como indicativo de la intención del usuario para acercarse a éste. De esta forma, cuándo el efector se encuentra en el área de influencia de 70mm de radio de algún elemento, se considera éste como el objetivo del operador y por lo tanto la posición objetivo detectada por el exoesqueleto, en el sistema de coordenadas base del brazo robótico para 𝑥, 𝑦, es ajustada para acercarse más rápidamente al centroide detectado del elemento objetivo.

Lo anterior se realiza a través de una cámara simulada en v-rRep, como sensor de visión, que se ubica sobre el brazo robótico y permite observar su espacio de trabajo y los objetos ubicados en él, como se observa en la Fotografía 2. Las imágenes obtenidas con la cámara desde v-Rep son transmitidas a Matlab cada 10 iteraciones del programa a través de la comunicación de API remota, que permite transmitir comandos e información entre ambos programas. Cada imagen se procesa con el siguiente código para obtener las coordenadas en 𝑥, 𝑦 de los elementos en el espacio:

function [coor,bx]=coorde(img) Im=im2double(img);

[r c p]=size(Im); imR=squeeze(Im(:,:,1)); imG=squeeze(Im(:,:,2)); imB=squeeze(Im(:,:,3)); xlong=1400; %mm

ylong=1400; %mm

numpixX=1024; numpixY=1024; imBinaryR=im2bw(imR,graythresh(imR)); imBinaryG=im2bw(imG,graythresh(imG)); imBinaryB=im2bw(imB,graythresh(imB)); imBinary=imcomplement(imBinaryR&imBinaryG&imBinaryB); s=regionprops(imBinary,'Centroid','area');

%disp(cat(1,s.Centroid)) b=cat(1,s.Centroid); coor(:,1)=-xlong/2+b(:,1)*(xlong/numpixX); coor(:,2)=ylong/2-b(:,2)*(ylong/numpixY); [bx,by]=size(b); end

(22)

21 Dentro de este código la función im2double convierte la intensidad de la imagen a doble precisión, el comando squeeze elimina las dimensiones que son iguales a 1, La función im2bw convierte la imagen en imagen binaria basándose es limites (threshold) y la función imcomplement genera el complemento de la imagen binaria. Con base en este complemento se utiliza la función regionprops

que devuelve las propiedades centroide y área para cada uno de los elementos reconocidos como región en la imagen. Estos valores obtienen en píxeles y se organizan de acuerdo a la notación usada para filas y columnas de Matlab. Como la cámara simulada posee una resolución de 1024x1024 píxeles y abarca una longitud de 1400mm para 𝑥 y para 𝑦, se pueden calcular las coordenadas de los centroides en el espacio de trabajo transformando los valores desde la notación utilizada en la imagen a las coordenadas conocidas en mm de la escena.

𝑐𝑜𝑜𝑟𝑑𝑒𝑛𝑎𝑑𝑎𝑥 = −1400

2 + 𝑐𝑒𝑛𝑡𝑟𝑜𝑖𝑑𝑒 ∗

1400 1024

𝑐𝑜𝑜𝑟𝑑𝑒𝑛𝑎𝑑𝑎𝑦=1400

2 − 𝑐𝑒𝑛𝑡𝑟𝑜𝑖𝑑𝑒 ∗

1400 1024

En la siguiente ilustración se muestra la imagen inicial sin procesamiento, el complemento de la imagen binaria utilizada y las coordenadas obtenidas para cada elemento en el espacio, respectivamente:

Ilustración 6.Procesamiento de imágenes

Como se puede ver en la ilustración anterior, el programa de Matlab detecta la posición de los elementos en el espacio, incluyendo en estos el manipulador robótico. Sin embargo, dado que el manipulador siempre tendrá en la cámara un área mayor que todos los demás elementos y que éstos han sido etiquetados por la función regionprops, el centroide correspondiente al manipulador se elimina posteriormente para tomar en cuenta únicamente los elementos externos.

Una vez se tienen las coordenadas de los elementos en el espacio, se detecta si el punto de posición objetivo se encuentra a una distancia menor a 70 mm de cualquiera de los elementos, esto se realiza para cada imagen obtenida del sensor. Si esta condición se cumple, la posición objetivo obtenida por el exoesqueleto 𝑃𝑒𝑥𝑜 es ajustada a una nueva posición objetivo 𝑃𝑗 que resulta de la

(23)

22 suma de 𝑃𝑗= 0.3𝑃𝑒𝑥𝑜+ 0.7𝑃𝑖𝑚𝑔, dónde 𝑃𝑖𝑚𝑔 corresponde al centroide en 𝑥, 𝑦 del elemento cercano, proceso que se realiza en cada iteración del programa siempre que se cumpla la condición.

5.3

Cinemática inversa

El problema de la cinemática inversa consiste en determinar el set de variables requerido para obtener una determinada posición y orientación en el efector de un manipulador robótico. Este problema es generalmente más complejo que el problema de la cinemática directa. El problema se puede definir como sigue.

Dada una matriz de transformación homogénea:

𝐻 = [𝑅3𝑥3 𝑑3𝑥1

0 1 ] (5.1)

Encontrar una o todas las soluciones a la ecuación: 𝑇𝑛0(𝑞

1, … , 𝑞𝑛) = 𝐻 = 𝐴1(𝑞1), … , 𝐴𝑛(𝑞𝑛) (5.2)

Dónde H representa la posición y orientación deseada del efector, el objetivo es encontrar los valores 𝑞1, … , 𝑞𝑛 que cumplan la ecuación (5.2). La ecuación (5.2) resulta en doce ecuaciones no lineales con 𝑛 variables desconocidas:

𝑇𝑖𝑗(𝑞1, … , 𝑞𝑛) = ℎ𝑖𝑗→ 𝑖 = 1,2,3, 𝑗 = 1, … ,4 (5.3)

Resolver la cinemática inversa es una tarea particularmente compleja porque tiene que resolver el problema de múltiples soluciones y singularidades a la hora de calcular la configuración necesaria del manipulador para obtener una posición y orientación dadas.

Como se dijo anteriormente, para que un manipulador robótico pueda ser ubicado en una posición y orientación arbitraria dentro de su espacio de trabajo se requiere que posea al menos 6 GDL. Este es un problema que se ha estudiado extensamente. En este caso, la solución de la cinemática inversa se puede simplificar realizando “kinematic decoupling”, que consiste en convertir el problema de la cinemática inversa en dos problemas más sencillos; la cinemática inversa de la posición y la cinemática inversa de la orientación. De manera que para un manipulador con muñeca esférica (muñeca con 3 GDL) el problema se puede dividir en dos más simples, primero se encuentra la posición de la intersección de los ejes de la muñeca y después se encuentra la orientación de la muñeca. Esto simplifica significativamente el análisis de la cinemática inversa cuya complejidad aumenta con los GDL del robot.

5.3.1 Redes neuronales

Aunque un manipulador con 6 GDL es más versátil, existen tareas que pueden ser ejecutadas con menos GDL. En manipuladores de 5 GDL como el Zortrax M200 la cinemática inversa se puede realizar por métodos analíticos o numéricos que son derivados para cada manipulador en particular. Los métodos analíticos, aunque eficientes en aplicaciones de control en tiempo real,

(24)

23 requieren un análisis complejo de la cinemática del manipulador. En contraposición, los métodos numéricos requieren realizar múltiples iteraciones que consumen tiempo, por lo que no son adecuadas para aplicaciones en tiempo real.

Como alternativa, se encuentran las soluciones basadas en redes neuronales, que han sido utilizadas ampliamente para resolver este problema, incluso en problemas de cinemática inversa para manipuladores de 5 GDL, obteniendo soluciones múltiples y precisas con un error aceptable [4]. En estos casos se calcula la cinemática inversa del manipulador robótico tomando en cuenta únicamente la posición. De acuerdo al trabajo previo en esta área se puede encontrar que la mayoría de los investigadores han adoptado métodos de inteligencia artificial como redes neuronales (ANN Artificial Neural network) y ANFIS (Adaptative Network Based Fuzzy Interference Systems) [5].

En este proyecto se escogió ANN pues en [6] se encontró que a pesar de que ambas pueden ser utilizadas para realizar la solución al problema de IK, la arquitectura compleja de ANFIS podría ser un cuello de botella para la implementación en tiempo real. Las redes neuronales (ANN) usadas más frecuentemente para el problema de IK, son las redes Multi Layer de tipo feed-forward, llamada también Multi Layer Perceptron (MLP). Se ha visto que la simulación y computación de la cinemática inversa usando MLPNN son particularmente útiles cuando se requieren tiempo computacionales menores, como en control adaptativo en tiempo real. [7]

En primer lugar, la MLPNN está formada por una capa de entrada multidimensional que transmite información hacia las capas ocultas (hidden layer) intermedias y éstas a su vez transmiten información hacia la capa de salida. Las capas están formadas por cierto número de neuronas, que son elementos de trabajo con una memoria local. Cada neurona transmite información a todas las neuronas de la siguiente capa y a su vez recibe información (como entrada) de todas las neuronas de la capa anterior.

Estas conexiones entre neuronas están relacionadas por un peso que establece la importancia de la conexión. La neurona calcula la suma ponderada de las entradas que posee, la cual pasa por una función de transferencia no lineal para producir la salida de la neurona. La función de transferencia no lineal más popular es la de tipo sigmoidal.

Una típica función sigmoidal es de la forma:

𝑓(𝑥) = 1

1 + 𝑒−𝑔𝑡 (5.4)

El entrenamiento de la red neuronal consiste en ajustar los pesos de tal manera que se minimice el error entre la salida obtenida por la red neuronal y la salida deseada. Para esto se implementó el algoritmo BackPropagation que utiliza técnicas de gradient descent para minimizar la función de costo, que se calcula como la diferencia media cuadrada entre la salida deseada y la real. Para una muestra de entrenamiento n:

(25)

24

𝐸(𝑛) =1

2∑ (𝑑𝑗(𝑛) − 𝑜𝑗(𝑛))

2 𝑀

𝑗=1

(5.5)

Dónde 𝑑𝑗(𝑛) es la salida deseada para el componente 𝑗 del vector de salida, 𝑀 es el número de salidas y 𝑜𝑗(𝑛) es el elemento j del vector de salida producido para la entrada n.

Se define la suma ponderada de la neurona j en la capa oculta para la entrada n como:

𝑠ℎ𝑗(𝑛) = ∑ 𝑊ℎ𝑗𝑖𝑥𝑖(𝑛) 𝑁

𝑖=1

(5.6)

Dónde 𝑊ℎ𝑗𝑖 es el peso que conecta la unidad de entrada i con la neurona oculta j y N es el número de unidades de entrada. Se define de forma similar para las demás capas de la red. De acuerdo a esto la función de costo que utiliza el algoritmo Backpropagation es la siguiente:

𝐸 = ∑ 𝐸(𝑛) 𝑃

𝑛=1

(5.7)

Dónde P es el número de muestras de entrenamiento.

El algoritmo se basa en buscar una superficie de error (como función de los pesos de la ANN) usando gradient descent para los puntos con mínimo error. Cada iteración (epoch) está constituida por dos pasos: la activación hacia adelante para producir una solución y la Backpropagation que consiste en devolverse hacia la entrada para modificar los pesos de las conexiones. Usando aprendizaje supervisado estas redes aprender a mapear de un espacio de datos a otro. [6]

5.3.2 Red neuronal escogida

El manipulador robótico Zortrax M200, como se dijo anteriormente, posee 5 GDL y por ello no puede alcanzar toda configuración arbitraria de posición y orientación dentro de su espacio de trabajo. Debido a esto y para evitar problemas a la hora de intentar alcanzar soluciones imposibles, el entrenamiento para la cinemática inversa se realiza únicamente sobre la posición final del efector, sin tomar en cuenta la orientación. Tal como se ve en [4] y [6].

La implementación de ANN para la solución del problema de IK tiene dos problemas principales. Uno es la selección del tipo apropiado de red neuronal, con su arquitectura y el otro es la generación de un set de datos para entrenamiento apropiado [8]. La arquitectura de la red neuronal consiste en especificar el número de capas de la red y la cantidad de nodos en cada una. Tomando en cuenta estudios previos sobre la estructura de este tipo de redes se usa como base que cuando el número de neuronas en las capas ocultas es igual al número de neuronas en la entrada la red neuronal produce mejores resultados [8], con esto para una capa con tres entradas, el mínimo número de neuronas en las capas ocultas sería 3.

(26)

25 La arquitectura final utilizada se encontró experimentalmente comparando los índices de desempeño de cada red para distintas combinaciones entre número de capas ocultas (1,2,3) número de neuronas por capa (2,3,4,6,10,15,20) y cantidad de datos (25, 55,75,95, 125,155). La arquitectura escogida consiste en tres capas ocultas de 15 neuronas cada una, con función de transferencia sigmoidal logsig en las capas ocultas y función de transferencia lineal a la salida. En la siguiente imagen se muestra esquemáticamente la arquitectura de la red neuronal utilizada.

Ilustración 7. Arquitectura de la red neuronal utilizada, se muestran 4 neuronas por capa de las 15 utilizadas

Se seleccionó esta arquitectura pues presentó un mejor índice de desempeño. Es decir, se eligió la red que experimentalmente demostró un menor error medio cuadrado. Para generar y entrenar la red se usó el Neural Network Toolbox de Matlab.

La arquitectura generada es representada por Matlab en la siguiente imagen:

5.3.3 Entrenamiento de la red neuronal

El entrenamiento de la red neuronal utiliza un conjunto de datos de entrenamiento consistente en parejas de posición (𝑒𝑛𝑡𝑟𝑎𝑑𝑎 𝑥, 𝑦, 𝑧) con configuración (𝑠𝑎𝑙𝑖𝑑𝑎: á𝑛𝑔𝑢𝑙𝑜𝑠 𝜃1, 𝜃2, 𝜃3, 𝜃4, 𝜃5). Este conjunto de datos se obtiene a partir de la cinemática directa del robot Zortrax M200, que se calcula con base en la convención de D-H explicada anteriormente. A continuación, se muestra la cadena cinemática definida para el brazo robótico.

𝜃1

𝜃2

𝜃3

𝜃4

𝜃5 X

Y

Z

Bias Bias

Entradas

Salidas

(27)

26 Ilustración 8. Cadena cinemática robot Zortrax M200, Notación de D-H

De acuerdo a la notación mostrada se calculan los parámetros de D-H que definen la cinemática directa del manipulador:

PARÁMETROSD-HZORTRAXM200

Eslabón a d α 𝜃

1 a1=12.71 d1=86.62 90° 𝜃1

2 a2=157.74 0 0° 𝜃2

3 a3=182.6 0 0° 𝜃3

4 0 0 90° 𝜃4

5 0 d5=130.13 0° 𝜃5

Tabla 2. Parámetros de Denavit-Hartenberg para el manipulador Zortrax M200

El conjunto de datos para el entrenamiento de la red se genera tomando combinaciones diferentes de ángulos 𝜃1, 𝜃2, 𝜃3, 𝜃4, 𝜃5 para calcular las correspondiente posiciones 𝑥, 𝑦, 𝑧 del efector, con el objetivo de entrenar la red neuronal para que realice el proceso inverso. Estos valores se obtienen de la matriz de transformación homogénea definida por las ecuaciones (4.4 y 4.5). Por consiguiente, debe resolverse el problema de escoger el conjunto de datos que se usarán en el entrenamiento. Como el entrenamiento de la red neuronal se basa en el error cuadrado medio, el error a la salida de la ANN será mayor para aquellas respuestas que no se encuentran bien representadas en el conjunto de datos para el entrenamiento [10]. Por lo que se debe producir datos de entrenamiento

𝑥, 𝑦, 𝑧 que se encuentren distribuidos uniformemente en el espacio.

Como los valores 𝑥, 𝑦, 𝑧 corresponden a la salida de la cinemática directa usada para el entrenamiento, no se puede obtener fácilmente un set de puntos 𝑥, 𝑦, 𝑧 distribuidos uniformemente en el espacio. Esto sucede porque al asignar valores aleatorios con distribución uniforme para cada 𝜃i, no se obtendrán valores de 𝑥, 𝑦, 𝑧 distribuidos uniformemente en el espacio cartesiano, sino que se obtiene una distribución como la mostrada en la siguiente ilustración.

𝑥0

𝑦0

𝑧0

𝑧1 𝑥1

𝑦1

𝑥2

𝑧2

𝑦2

𝑧3, 𝑦4 𝑧4

𝑦3

𝑥3, 𝑥4

𝜃1

𝜃2 𝜃3 𝜃4

𝜃4

𝑧5

𝑦5

(28)

27 Ilustración 9. Datos de entrenamiento obtenidos para combinaciones de 𝜽𝟏, 𝜽𝟐, 𝜽𝟑, 𝜽𝟒, 𝜽𝟓 uniformes

Para eludir este problema se generan primero un número alto de muestras (537824) que seleccionan valores aleatorios de 𝜃1, 𝜃2, 𝜃3, 𝜃4, 𝜃5 considerando para cada variable una distribución de probabilidad uniforme entre los límites geométricos que tiene cada articulación. Seguidamente se define una malla en tres dimensiones que separa el espacio de trabajo del brazo Zortrax M200 en elementos cúbicos, dividiendo el rango de cada eje (𝑥, 𝑦, 𝑧) sobre 40. Por último, se depuran los datos para dejar únicamente una muestra por cubo, la que se encuentre en el punto más cercano a su centro, obteniendo 30625 muestras distribuidas de forma aproximadamente uniforme:

Otro elemento que afecta el desempeño de la red neuronal es la existencia de múltiples soluciones, puesto que distintas configuraciones del brazo robótico pueden alcanzar la misma posición en el espacio. En la siguiente ilustración se muestran las distintas configuraciones que puede tener el robot para alcanzar un mismo punto.

(29)

28 Ilustración 11. Posibles configuraciones del robot Zortrax M200.

Esto significa que el problema de la cinemática inversa podría tener cualquiera de las soluciones mostradas, que se pueden llamar; elbow-up wrist-up, elbow-up wrist-down, elbow-down wrist-down

y elbow-down wrist-up respectivamente. Como se espera que el brazo robótico trabaje sobre la primera configuración, la elección de los límites en la distribución aleatoria de la Ilustración 9 asegura que los ángulos 𝜃2, 𝜃3, 𝜃4 sean negativos de acuerdo a la convención de Ilustración 8, restricción por la cual la configuración usada en el entrenamiento es siempre elbow-up wrist-up. 5.3.4 Resultados red neuronal

El entrenamiento es realizado durante 297 epoch, obteniendo el mejor desempeño en el epoch 283, con error medio cuadrado de 0.7104:

(30)

29 Una vez entrenada la red neuronal se realizó una validación, dónde se calculó la salida simulada por la red (𝜃1, 𝜃2, 𝜃3, 𝜃4, 𝜃5) para los datos del entrenamiento y se comparó con la salida deseada. Esto se hace calculando el error lineal en los tres ejes y el error absoluto:

𝑒 = √𝑒𝑥

2

+ 𝑒𝑦

2

+ 𝑒𝑧

2

(5.8)

Dónde 𝑒𝑥, 𝑒𝑦, 𝑒𝑧 son los errores lineales entre la posición obtenida por la red neuronal y la posición esperada para 𝑥, 𝑦, 𝑧 respectivamente. Para el error lineal en cada eje se realizó un análisis de bondad de ajuste en Crystal Ball que determine la probabilidad de obtener un error menor a 2cm:

Ilustración 13. Distribución del error en x- espacio de trabajo Zortrax M200

(31)

30 Ilustración 15. Distribución del error en z- espacio de trabajo Zortrax M200

En resumen, las probabilidades de obtener errores menores a 2cm para todo el espacio de trabajo del manipulador Zortrax son las siguientes:

PROBABILIDAD ERROR MENOR A 2CM COORDENADA PROBABILIDAD

X 84.5%

Y 81.72%

Z 85.7%

Tabla 3. Probabilidad de error lineal menor a 2 cm

Para esto se realizó el ajuste de los datos (error lineal en 𝑥, 𝑦, 𝑧) clasificando la bondad del ajuste con Anderson-Darling, obteniendo los siguientes resultados:

DISTRIBUCIÓNDEPROBABILIDADAJUSTADA COORDENADA DISTRIBUCIÓN A-D

X Logística 161.95 Media= 0.10,Escala=9.41 Y t de Student 35.1724 Media=0.45, Escala=11.30 GDL 2.332 Z Logística 51.4322 Media= -1.49 Escala=7.68

Tabla 4. Probabilidad de error lineal para coordenadas x,y,z

Adicionalmente El error absoluto de la ecuación (5.8) se graficó como mapa de color en el espacio de trabajo del robot Zortrax M200 para visualizar las regiones del espacio dónde el error es mayor.

(32)

31 Ilustración 16. Gráfica del error absoluto (mm) en el espacio de trabajo del brazo robótico Zortrax M200.

Se puede observar en la gráfica anterior que los errores de la red neuronal varían con la posición del efector. Podría decirse que por lo general los errores suelen ubicarse en los intervalos de color con valor menor a 60mm, apreciando regiones dónde el error absoluto predominante es menor 25mm (colores: verde, tierra) y regiones dónde el error se acerca a 50 mm (bandas amarilla y naranja).

(33)

32

5.4

Implementación de la solución

La implementación de la solución incluye conectar el exoesqueleto, obtener la posición deseada en tiempo real, transformarla al espacio de trabajo del manipulador, ajustarla con el procesamiento de imágenes y calcular la cinemática inversa para este punto en el robot Zortrax M200. Como el manipulador es de un tamaño y configuración diferente al brazo humano, los espacios de trabajo de ambos son distintos, razón por la cual debe realizarse la transformación desde un sistema de coordenadas al otro.

La transformación de coordenadas de un sistema a otro se realiza escalando linealmente las coordenadas en 𝑥, 𝑦, 𝑧 para hacer coincidir el punto máximo de alcance del robot Zortrax con el máximo alcance que se obtiene cómodamente con el exoesqueleto. Con este objetivo el origen de los ejes 𝑥, 𝑦 se mantienen coincidentes mientras que para las coordenadas 𝑧 se hace un offset de 180mm. La transformación se realiza con las siguientes ecuaciones:

𝑋

𝑧𝑜𝑟𝑡𝑟𝑎𝑥

=

𝑋

𝑒𝑥𝑜

1.3

(5.9)

𝑌

𝑧𝑜𝑟𝑡𝑟𝑎𝑥

=

𝑌

𝑒𝑥𝑜

1.3

(5.10)

𝑍

𝑧𝑜𝑟𝑡𝑟𝑎𝑥

=

𝑍

𝑒𝑥𝑜

(34)

33 5.4.1 Resultados de la implementación

Se realizó un mapeo del espacio de trabajo del operador usando el exoesqueleto y se transformó estos valores al sistema de referencia del brazo Zortrax M200. De forma similar a la sección anterior se realizó una prueba de bondad de ajuste para caracterizar la probabilidad de obtener un error en coordenadas menor a 2cm para cada eje. El ajuste de datos (error en coordenadas 𝑥, 𝑦, 𝑧) se realizó clasificando la bondad del ajuste con Anderson-Darling, obteniendo los siguientes resultados:

DISTRIBUCIÓNDEPROBABILIDADAJUSTADA COORDENADA DISTRIBUCIÓN A-D

X t de Student 273.395 Punto medio=-0.19,Escala=7.10 GDL 2.1 Y Logística 1966.7 Media=2.68, Escala=12.98 Z .t de Student 419.539 Punto medio=-5.97 Escala=6.39 DGL 1.9

Tabla 5. Probabilidad de error lineal para coordenadas x,y,z

(35)

34 Ilustración 18. Distribución del error en y

Ilustración 19. Distribución del error en z

PROBABILIDAD ERROR MENOR A 2CM COORDENADA PROBABILIDAD

X 90.21%

Y 87.36%

Z 93.94%

Tabla 6. Probabilidad de error lineal menor a 2 cm

El error absoluto se graficó en 3 dimensiones para visualizar la precisión de la solución en el espacio de trabajo del sistema (conexión exoesqueleto-Zortrax M200)

(36)

35 Ilustración 20. Gráfica error absoluto en mm para el espacio de trabajo del sistema

En la imagen anterior se puede ver que el espacio de trabajo que tiene el exoesqueleto, al realizar la transformación de coordenadas, resulta ser un subconjunto del espacio de trabajo del brazo Zortrax M200. Más aún, se puede ver en las tablas 5 y 6 que el error encontrado en el subconjunto utilizado en el sistema (espacio de trabajo de la transformación Exoesqueleto-Zortrax) posee mayor probabilidad para presentar errores menores a 2 cm que el espacio de trabajo completo del manipulador. Siendo la probabilidad para 𝑥 de 90.21%, para 𝑦 de 87.36% y para 𝑧 de 93.94%. Estos resultados indican que la red neuronal utilizada resuelve satisfactoriamente el problema de la cinemática inversa para la conexión mando-manipulador, obteniendo errores de coordenadas menores a 2cm con al menos un 87.3% de probabilidad.

La operación del robot mediante este sistema resulta natural al usuario y genera movimientos suaves a través del espacio de trabajo cumpliendo usualmente la configuración elbow-up wrist-up

usada en el entrenamiento. Es importante aclarar que la posición de cada articulación de acuerdo a la cinemática inversa utilizada fue controlada a través de PID que v-Rep permite simular. Esto con el objetivo de obtener una respuesta más fluida y cercana al control real de un manipulador robótico. La solución produce en el efector un movimiento fluido que permite acercarse con relativa facilidad a los elementos. Aunque el efecto del procesamiento de imágenes no puede ser cuantificado sencillamente, el operador puede observar que una vez se incluye el procesamiento de imágenes en la solución, se puede alcanzar más rápidamente el centro de los elementos (ejes 𝑥, 𝑦). Cuando se realiza el control únicamente con el exoesqueleto se dificulta al usuario realizar cambios pequeños que permitan centrar rápida y adecuadamente el elemento, por lo que la adición del procesamiento de imágenes mejora el desempeño del sistema.

(37)

36 La velocidad de la respuesta en la simulación depende de la capacidad del ordenador utilizado para correr los dos programas utilizados en la implementación (Matlab, v-Rep). En esta implementación se calculó una media de aproximada-mente 0.017 segundos de procesamiento por dato para calcular la cinemática inversa, por lo que el método resulta apropiado para el uso en tiempo real. En las siguientes imágenes se muestra el comportamiento de la solución propuesta:

(38)

37

6.

CONCLUSIONES

Se diseñó e implementó satisfactoriamente un sistema de control que permite transmitir a un manipulador robótico el movimiento generado por el brazo derecho del operador humano. Esto se realizó principalmente sobre el programa Matlab R2013b que se conectó con el entorno de simulación robótica v-rep 3.1.

Como sistema de mando se utilizó un exoesqueleto que se acopla al brazo del operador y que captura su movimiento a través de análisis cinemático y el uso de potenciómetros lineales de bajo costo. La utilización del exoesqueleto como sistema de mando permite que el operador pueda controlar el brazo robótico a través del movimiento natural de su brazo, lo que resulta cómodo y sencillo para el operador. Sin embargo, los potenciómetros lineales utilizados en el ensamble y el diseño del exoesqueleto dificultan capturar movimientos cortos y precisos en el espacio, por lo que el desempeño del sistema mejora al reemplazar el sistema de mando por uno más preciso y con mayor resolución. El procesamiento de imágenes ayuda a mejorar el desempeño del sistema pues acerca el punto obtenido por el exoesqueleto hacia el objetivo detectado por video, lo que contrarresta parcialmente el problema anterior.

El sistema de control diseñado está basado en redes neuronales MLPNN que generan la cinemática inversa del manipulador robótico Zortrax M200 de 5 GDL, obteniendo errores en coordenadas menores a 2cm con, al menos un 87.3% de probabilidad. Un error de 2 cm es menos del 4% del radio que constituye el espacio de trabajo del manipulador Zortrax M200. En trabajos previos relativos a este problema [11] se aprecia que el error encontrado en el uso de MLPNN para el cálculo de la cinemática inversa arroja errores cercanos al 5% en promedio. Por ende, se considera que la solución propuesta provee resultados adecuados para la metodología utilizada.

Así mismo, la solución propuesta puede ser implementada en manipuladores robóticos de distinta configuración y GDL, siempre y cuando sea posible formular la cinemática directa de éstos. De hecho, si se trata de manipuladores con 6 GDL o redundantes se podría generar mayor precisión en la respuesta al incluir en el análisis de cinemática inversa la posición y orientación del efector.

(39)

38

7.

REFERENCIAS

[1] M. Aghajarian y K. Kiani, «Inverse Kinematics Solution of PUMA 560 Robot Arm Using ANFIS,» de 8th International Conference on Ubiquitous Robots and Ambient Intelligence (URAI 2011), Incheon, 2011.

[2] ZOTRAX, «ZORTRX LIBRARY,» 21 Septiembre 2015. [En línea]. Available:

http://library.zortrax.com/project/zortrax-robotic-arm/. [Último acceso: 15 05 2016].

[3] M. W. Spong, S. Hutchinson y M. Vidyasagar, Robot Modeling and Control, New York / Chichester / Weinheim / Brisbane / Singpore / Toronto: John wiley & sons,inc..

[4] B. B. B. y. O. P. S. Panchanand Jha, «Intelligent Computation of Inverse Kinematics of a 5-dof manipulator using MLPNN,» Springer international Publishin , Switzerland, 2014.

[5] Philip.D.W, «Neural Computing: Theory and Practice.,» Coriolis Group c/o Publishing Resources Inc., 1989.

[6] A. M.-C. ,. Ú. C. J. S. C. C. E. O. J. M. T. ,. J. M. E. J. G. Rodrigo Pérez-Rodríguez, «Inverse kinematics of a 6 DoF human upper limb using ANFIS and ANN for anticipatory actuation in ADL-based physical Neurorehabilitation,» Expert systems with applications, nº 39, pp. 9612-9622, 2012.

[7] e. l. AT Hasan, «An adaptative-learning algorith to solve the inverse kinematics problem of a 6 DOF serial robot manipulator,» Advances in Engineering Software, nº 37, pp. 432-438, 2006.

[8] Funahashi, «On the approximate realization of continuous mapping by neural networks,» Neural Networks 2, nº 3, pp. 183-192, 1989.

[9] S. A. Bekir Karlik, «Improved approach to the solution of inverse kinematics problems for robot manipulators,» ENGINEERING APPLICATIONS OF ARTIFICIAL INTELLIGENCE, nº 13, pp. 159-164, 2000.

[10] E. S. T. a. S. G. T. SPYROS N. RAPTIS, «Robot Inverse Kinematics via Neural and Neurofuzzy Networks: Architectural and Computational Aspects for Improved Performance,» Journal of Information and Optimization Sciences, vol. 6, nº 28, pp. 905-933, 2007.

[11] A. G. Z. Ahmad, «Solution to the Inverse Kinematics Problem in Robotics by Neural Networks,”,» San Diego,California, 1988.

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

De hecho, este sometimiento periódico al voto, esta decisión periódica de los electores sobre la gestión ha sido uno de los componentes teóricos más interesantes de la