desarrollo de una aplicaciÓn android para el …

38
Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío: Fecha de recepción: Fecha de aceptación: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL MANEJO CINEMÁTICO DE LA PLATAFORMA ROBÓTICA R700 VECTOR ROBOTIC ARM. DEVELOPMENT OF AN ANDROID APPLICATION FOR THE KINEMATIC HANDLING OF THE ROBOTIC PLATFORM R700 VECTOR ROBOTIC ARM. Ing. Dora Lilia Castañeda Yisel Tatiana Parra Duarte ** Daniel Stiven Suarez González *** Resumen: En este artículo se especifica el proceso de optimización de la plataforma robótica R700: VECTOR ROBOTIC ARM de la empresa Nuevos Recursos S.A.S y a su vez del software con el que viene, pues aunque tiene librerías para el funcionamiento del robot esto genera al usuario la necesidad de saber programar y también requiere de tiempo prolongado para lograr movimientos muy sencillos que no permiten sacar total provecho de la funcionalidad de este. Para esto, inicialmente se realizaron los respectivos cálculos de la cinemática directa e inversa del mismo, a partir de dichos cálculos se desarrolló una aplicación móvil en Android Studio, que permite al usuario interactuar con el robot de una manera más sencilla, logrando así manipular cada uno de los servomotores, probar rutinas de posiciones ya asignadas, y programar rutinas por medio de la cinemática directa y cinemática inversa. También se adicionó un módulo bluetooth para lograr la conectividad Ingeniera Electrónica Universidad Distrital Francisco José de Caldas, Investigadora semillero de Investigación SITA. Profesora adscrita a la Facultad Tecnológica de la Universidad Distrital Francisco José de Caldas. e-mail: [email protected] ** Estudiante de Tecnología en Electrónica. Universidad Distrital Francisco José de Caldas (Colombia). e-mail: [email protected] *** Estudiante de Tecnología en Electrónica. Universidad Distrital Francisco José de Caldas (Colombia). e-mail: [email protected]

Upload: others

Post on 22-Nov-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL MANEJO

CINEMÁTICO DE LA PLATAFORMA ROBÓTICA R700 VECTOR ROBOTIC ARM.

DEVELOPMENT OF AN ANDROID APPLICATION FOR THE KINEMATIC

HANDLING OF THE ROBOTIC PLATFORM R700 VECTOR ROBOTIC ARM.

Ing. Dora Lilia Castañeda Yisel Tatiana Parra Duarte** Daniel Stiven Suarez González***

Resumen: En este artículo se especifica el proceso de optimización de la plataforma robótica

R700: VECTOR ROBOTIC ARM de la empresa Nuevos Recursos S.A.S y a su vez del

software con el que viene, pues aunque tiene librerías para el funcionamiento del robot esto

genera al usuario la necesidad de saber programar y también requiere de tiempo prolongado

para lograr movimientos muy sencillos que no permiten sacar total provecho de la

funcionalidad de este. Para esto, inicialmente se realizaron los respectivos cálculos de la

cinemática directa e inversa del mismo, a partir de dichos cálculos se desarrolló una

aplicación móvil en Android Studio, que permite al usuario interactuar con el robot de una

manera más sencilla, logrando así manipular cada uno de los servomotores, probar rutinas

de posiciones ya asignadas, y programar rutinas por medio de la cinemática directa y

cinemática inversa. También se adicionó un módulo bluetooth para lograr la conectividad

Ingeniera Electrónica Universidad Distrital Francisco José de Caldas, Investigadora semillero de Investigación SITA. Profesora adscrita a la Facultad Tecnológica de la Universidad Distrital Francisco José de Caldas. e-mail: [email protected] ** Estudiante de Tecnología en Electrónica. Universidad Distrital Francisco José de Caldas (Colombia). e-mail: [email protected] *** Estudiante de Tecnología en Electrónica. Universidad Distrital Francisco José de Caldas (Colombia). e-mail: [email protected]

Page 2: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

entre la plataforma y el móvil del usuario. Adicional a esto, se elaboró un documento con la

descripción detallada del uso del R700 por medio de la aplicación nombrada ARM_R700.

Palabras clave: Android, aplicación móvil, cinemática directa, cinemática inversa, plataforma

robótica R700 vector robotic arm.

Abstract: This article specifies the optimization process of the robotic platform R700

VECTOR ROBOTIC ARM of the company Nuevos Recursos S.A.S. For this, initially the

respective calculations of the direct and inverse kinematics of the same were made, from

these calculations a mobile application was developed in Android Studio, which allows the

user to interact with the robot in a simpler way, thus managing to manipulate each one of the

servomotors, test routines of positions already assigned, and program routines by means of

direct kinematics and inverse kinematics. A bluetooth module was also added to achieve

connectivity between the platform and the user's mobile. In addition to this, a document with

the detailed description of the use of the robot was elaborated by means of the application

named ARM_R700.

Key words: Android, mobile application, direct kinematics, inverse kinematics, robotic

platform R700 VECTOR ROBOTIC ARM

1. Introducción

En el área de la electrónica, ramas como la robótica requieren de una enseñanza

constructivista en donde el aprendizaje va ligado a la autonomía del estudiante para la

edificación de su conocimiento [1]. Es así, como herramientas didácticas que contribuyan

con esta formación son de impacto positivo para este modelo pedagógico [2]. Elementos

como la plataforma robótica R700 VECTOR ROBOTIC ARM [3], a pesar de ser un buen

prototipo importado por la empresa Nuevos Recursos S.A.S, no cuenta con una herramienta

que facilite su uso y su manejo a las personas con poco conocimiento sobre programación y

robótica, entonces se tiene que, aunque es una buena plataforma didáctica para el aula, no

Page 3: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

ofrece un manual de uso para todo tipo de estudiante con conocimientos básicos de

electrónica y/o robótica, puesto que su lenguaje es muy técnico. Es por esto, que se hace

necesario desarrollar la cinemática de la plataforma para poder configurar sus movimientos y

crear una interfaz en dispositivos móviles que facilite que la persona que adquiera el robot

pueda manipularla de manera más sencilla por medio de conexión bluetooth.

2. Objetivos

• Implementar la cinemática inversa y directa de la plataforma en la aplicación móvil.

• Desarrollar una aplicación en Android S.O. que permita al usuario manipular los

movimientos de la plataforma de forma manual, o con rutinas ya asignadas

• Establecer la comunicación Bluetooth entre cualquier dispositivo móvil con sistema

operativo Android y la plataforma.

3. Caracterización de la plataforma R700

El R700 es un brazo robótico diseñado para aficionados y estudiantes que quieran

interactuar y comenzar a conocer el mundo de la robótica, figura 1.

Figura 1. Plataforma R700 VECTOR ROBOTIC ARM

Page 4: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

El brazo tiene 5 grados de libertad de movimiento y una pinza de agarre que se mueven

mediante 6 servomotores. Adicionalmente en la base cuenta con el microcontrolador y

puertos de conexión disponibles para programar y agregar módulos de comunicación como

WIFI o Bluetooth.[3]

3.1. Microcontrolador y puertos de conexión

El microcontrolador es un ATMEL ATMEGA64 de 8-bit, el cual tiene 64KB de memoria flash y

tiene un reloj interno de 16 MHz. Puertos para módulos ARX-WRL [APC220] o ARX-BT3

(módulo inalámbrico Bluetooth). Conexiones de bus I2C, SPI y UART, compatible con los

módulos de extensión RP6V2 XBUS, Conectores de extensión adicionales con todos los

pines de I/O libres del ATMEGA64. Adicionalmente cuenta con 6 preamplificadores con una

resistencia de derivación para medir la corriente de los servomotores, figura 2.

Figura 2. Tarjeta de control y puertos de conexión [3]

3.2. Puerto de alimentación.

La plataforma R700 se puede alimentar de dos formas diferentes como se aprecia en la

Figura 3. Una de ellas es por medio de un cargador DC 12V/3A que viene con la plataforma,

y la otra forma de alimentación es una conexión de baterías externas que tengan un voltaje

entre 9V y 14V. Es importante resaltar que si el voltaje disminuye por debajo de los 6.7V el

sistema muestra una advertencia, figura 3.

Page 5: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

Figura 3. Puertos de alimentación. [3]

3.3. Encendido y reset del programa.

La plataforma cuenta con un interruptor de 2 posiciones y un pulsador, estos controlan el

estado de encendido/apagado y el start/reset del programa cargado a la plataforma,

respectivamente.

3.4. Servomotores

Los servomotores que permiten el movimiento de la plataforma están ubicados en cada una

de las articulaciones y la pinza de agarre. Así mismo, para identificar cada uno de ellos, se

enumeraron del 1 al 6 desde la pinza hasta la base, figura 4.

Figura 4. Ubicación de servomotores [3]

Page 6: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

4. Programación de la aplicación.

4.1 Software WinAVR

El software WinAVR es el entorno de desarrollo donde se escribirá el código fuente en

lenguaje C, y se genera el archivo .hex que se cargará a la plataforma mediante la interfaz

RobotLoader.[4]

4.2 Interfaz RobotLoader.

El RobotLoader como se muestra en la Figura 5, es una interfaz diseñada para cargar

nuevos programas a la plataforma a través de comunicación serial de 38400Baud con el

computador. El programa es guardado en la memoria EEPROM del microcontrolador que

cuenta con un espacio de 2KB.

Adicionalmente en esta interfaz se puede verificar el estado de la comunicación serial, el

registro de errores, un terminal serial y permite ver la conexión con módulos WIFI en caso de

tener establecida esta conexión, figura 5.

Figura 5. Interfaz RobotLoader

5. Uso de la plataforma

Inicialmente para usar la plataforma lo que se debe hacer es la conexión USB con el

computador y comprobar que la comunicación esté funcionando correctamente.

Page 7: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

5.1 Librerías incorporadas con la plataforma

El R700 trae una carpeta nombrada RobotArmLib con las librerías que permiten configurar

todos los puertos, pines y funciones principales que puede realizar, y que posteriormente

servirán para modificar o agregar funciones al mismo.

A demás de las librerías, viene una carpeta nombrada RobotArmExamples con ejemplos de

diferentes programas que muestran los códigos y cómo se realiza la programación de la

plataforma.

5.2 Calibración de la plataforma

Si es la primera vez que se va a utilizar el robot y se requiere conocer la posición de reposo o

la posición inicial de la misma, es importante calibrar los servomotores en la posición

representada en la Figura 4 que se fijará como la posición inicial.

La calibración se realiza con el programa RobotArm_Selftest.c que viene como ejemplo en la

carpeta RobotArmExamples y que se cargará al R700 con el RobotLoader.

Con el programa cargado, se inicia la plataforma con el botón start/reset y vamos a la

pestaña “Terminal” de la interfaz RobotLoader donde se visualizarán los mensajes y la

entrada de datos con lo que se calibrará cada uno de los servomotores, figura 6.

Page 8: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Figura 6. Pestaña Terminal interfaz RobotLoader

El primer mensaje que se visualiza en la Figura 6, es una advertencia que dice, si es la

primera vez que utiliza el robot, escoja la opción “c” para realizar la calibración.

Continuamos presionando ENTER.

Figura 7. Menú de opciones programa RobotArm_Selftest.c

En el menú de la Figura 7, se visualizan las diferentes opciones que se pueden escoger en el

actual programa cargado a la plataforma. En este caso nos centraremos en la opción “c–

Calibrate Robotarm”.

Este menú despliega las opciones con las que se configura el valor inicial con los que la

plataforma adoptara la posición mostrada en la Figura 4.

Page 9: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

Figura 8. Comandos de calibración

La Figura 8 muestra los comandos con los que se modifica y se configura la posición de cada

servomotor, iniciando por el servomotor 6. Los comandos son:

p: aumenta continuamente el valor de la posición del servomotor

m: disminuye continuamente el valor de la posición del servomotor

h: para el movimiento continuo del servomotor en el valor que este en el momento.

ok: guarda el valor de la posición en la que este el servomotor.

x: sale de la opción de calibración sin modificar ningún valor.

El rango de los valores de movimiento de cada uno de los servomotores está definido por las

librerías entre 0 y 2600.

Los valores con los cuales se calibra cada uno de los servomotores en la posición inicial

establecida son los siguientes:

Page 10: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

1: 1490

2 : 1480

3 : 1464

4 : 1456

5 : 1382

6 : 1455

Servo

Servo

Servo

Servo

Servo

Servo

Una vez configurados todos los servomotores, se guardan los valores calibrados en la

memoria EEPROM del microcontrolador, para así usar esos valores en cualquier programa

con el que posteriormente se quiera utilizar la plataforma.

Adicionalmente se establecen los valores mínimos y máximos que alcanza cada servomotor

en su correcto funcionamiento.

Servomotor Valor

mínimo

Valor

máximo

1 790 2190

2 780 2180

3 429 2499

4 536 2491

5 405 2417

6 420 2490

Tabla 1. Valores de máx. y min. de movimiento

6. Desarrollo cinemático de la plataforma R700

Para hacer el desarrollo cinemático de la plataforma, lo primero que debemos hacer es

conocer las dimensiones de la estructura de la plataforma como se aprecia en la Figura 9.

Figura 9. Dimensiones de la plataforma R700

Page 11: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

Luego ubicamos los ejes articulares ( iZ ), y sistemas de referencia de cada una de las

articulaciones presentes en la plataforma, Figura 10.

Figura 10. Sistema de referencias articulares.

De tal manera los ángulos que se definieron según los sistemas de referencia para la

posición inicial de la plataforma son:

1

2

3

4

5

90º

90º

45º

=

=

=

= −

=

Para la pinza de agarre (servomotor 1) se define el ángulo igual a 70º. Este valor configura la

pinza en la posición intermedia de la abertura total.

Con estos ángulos iniciales, establecemos los ángulos máximos de movimiento de cada

servomotor.

Servomotor Ángulo

mínimo

Ángulo

máximo Rango

1 0º 140º 140º

2 25º− 115º 140º

3 180º− 0º 180º

4 90º− 80º 170º

5 5º 180º 175º

6 90º− 90º 180º Tabla 2. Rango movimiento de los servomotores

Page 12: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Con los valores de las Tablas 1 y 2, encontramos el valor que representa cada ángulo de

movimiento en los respectivos servomotores. Para eso utilizamos la siguiente ecuación:

# :Servo

valor de movimientoValor maximo Valor minimo

de cada ánguloRango

−= (1)

1:Servo 2190 790

10140

−=

2 :Servo 2180 780

10140

−=

3:Servo 2499 429

11,5180

−=

4 :Servo 2491 536

11,5170

−=

5:Servo 2417 405

11,497175

−=

6 :Servo 2490 420

11,5180

−=

Estos valores nos servirán para implementar y realizar los movimientos en el código de la

programación. Con la plataforma ya identificada en sus dimensiones, ángulos iniciales,

ángulos de movimiento y los sistemas de referencia definidos; continuamos con el desarrollo

de la cinemática directa y la cinemática inversa.

6.1 Cinemática directa

La cinemática directa nos permite determinar la posición y orientación del efector final de la

plataforma, con respecto a un sistema de referencia en la base de la misma, conociendo los

valores articulares y las dimensiones del robot [5]

Los parámetros de Denavit-Hartenberg [4] representan la posición y orientación del efector

final como una sucesión de rotaciones y traslaciones ( i , id , ia , i ), que relacionan el

Page 13: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

sistema de referencia i con el sistema de referencia 1i − . Dando como resultado la siguiente

Tabla 3.

Art i id ia i

1 1 9,5 0 90

2 2 0 8 0

3 3 0 8 0

4 4 0 0 90−

5 5 17 0 0

Tabla 3. Parámetros Denavit-Hartenberg

Cada articulación es representada en una matriz de transformación homogénea de 4 4x con

la siguiente matriz, ecuación 2.

1

cos cos sin sin sin cos

sin cos cos sin cos sin

0 sin cos

0 0 0 1

i i i i i i i

i i i i i i ii

i

i i i

a

aA

d

−= (2)

La matriz que representa la primera articulación con respecto al sistema de referencia de la

base es la siguiente.

1 1

1 10

1

cos 0 sin 0

sin 0 cos 0

0 1 0 9,5

0 0 0 1

A

−=

La segunda articulación con respecto a la primera se representa con la siguiente matriz.

2 2 2

2 2 21

2

cos sin 0 8cos

sin cos 0 8sin

0 0 1 0

0 0 0 1

A

=

La tercera articulación con respecto a la segunda se representa con la siguiente matriz.

Page 14: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

3 3 3

3 3 32

3

cos sin 0 8cos

sin cos 0 8sin

0 0 1 0

0 0 0 1

A

=

La cuarta articulación con respecto a la tercera se representa con la siguiente matriz.

4 4

4 43

4

cos 0 sin 0

sin 0 cos 0

0 1 0 0

0 0 0 1

A

=−

Por último, la quinta articulación con respecto a la cuarta se representa con la siguiente

matriz.

5 5

5 54

5

cos sin 0 0

sin cos 0 0

0 0 1 17

0 0 0 1

A

=

Con la matriz de cada articulación ya encontrada, se encuentra la matriz de transformación

homogénea (3), que indica la posición y orientación del efector final con respecto al sistema

de referencia de la base.

( )( )( )( )( )0 1 2 3 4 5 0

1 2 3 4 5 6 6 A A A A A A A= (3)

( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

0 0 0 0

6 1,1 6 1,2 6 1,3 6 1,4

0 0 0 0

6 2,1 6 2,2 6 2,3 6 2,40

6 0 0 0 0

6 3,1 6 3,2 6 3,3 6 3,4

0 0 0 0

6 4,1 6 4,2 6 4,3 6 4,4

A A A A

A A A AA

A A A A

A A A A

=

Cada posición de la matriz 0

6A se expresan a continuación:

Page 15: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

( )

( )

( )

( )

( )

4 1 2 3 1 2 30

5 5 16 1,1

4 1 2 3 1 2 3

4 1 2 3 1 2 30

56 2,1

4 1 2 3 1

cos cos cos cos cos ( sin )coscos sin ( sin )

sin cos cos ( sin ) cos ( sin )cos

cos sin cos cos cos ( sin )coscos

sin sin cos ( sin ) sin ( s

A

A

+ − + = + −

− + −

+ − +=

− + −( )

( ) ( ) ( )( )

( )

5 1

2 3

0

5 4 2 3 2 3 4 2 3 2 36 3,1

0

6 4,1

sin cosin )cos

cos cos sin cos cos sin sin sin ( sin ) cos cos

0

A

A

+

= + + − +

=

( )

( )

( )

( )

( )

4 1 2 3 1 2 30

5 5 16 1,2

4 1 2 3 1 2 3

4 1 2 3 1 2 30

56 2,2

4 1 2 3 1

cos cos cos cos cos ( sin )cossin cos ( sin )

sin cos cos ( sin ) cos ( sin )cos

cos sin cos cos cos ( sin )cossin

sin sin cos ( sin ) sin (

A

A

+ − + = − + −

− + −

+ − += −

− +( )

( ) ( ) ( )( )

( )

5 1

2 3

0

5 4 2 3 2 3 4 2 3 2 36 3,2

0

6 4,2

cos cossin )cos

sin cos sin cos cos sin sin sin ( sin ) cos cos

0

A

A

+

= − + + − +

=

( )

( )

( )

( )

( )

( )

4 1 2 3 1 2 30

6 1,3

4 1 2 3 1 2 3

4 1 2 3 1 2 30

6 2,3

4 1 2 3 1 2 3

0

6 3

sin cos cos cos cos ( sin )cos

cos cos cos ( sin ) cos ( sin )cos

sin sin cos cos cos ( sin )cos

cos sin cos ( sin ) sin ( sin )cos

A

A

A

− + − + = − + −

− + − + = − + −

( ) ( ) ( )( )

( )

4 2 3 2 3 4 2 3 2 3,3

0

6 4,3

sin sin cos cos sin cos sin ( sin ) cos cos

0A

= − + + − +

=

Page 16: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

( )

( )

( )

( )

( )

1 2 3

1 2 34

1 2 30

1 2 36 1,4

1 2 3

4 1 2

1 2 3

1

4

0

6 2,4

cos cos cos8 cos cos cossin

cos ( sin )cos17 8 cos ( sin )sin

cos cos ( sin )cos 8 cos cos

cos ( sin )cos

sin cossin

17

A

A

+ + − +

− = + − + − + −

=

( )

( )

( )

( )

2 3

1 2 3

1 2 3

1 2 3

1 2 3

4 1 2

1 2 3

2 3

4

2 30

6 3,4

cos8 sin cos cos

cos ( sin )cos8 sin ( sin )sin

sin cos ( sin )cos 8 sin cos

sin ( sin )cos

sin cossin

cos sin17

cos

A

+ + +

− + − + − + −

+ − +

=

( )

( )

( )

2 3

2 3

2 3

24

2 3

0

6 4,4

8 sin cos

8 cos sinsin ( sin )

8sin 9,5cos cos

1A

+

+ + − + +

=

La posición , ,X Y Z del efector final de la plataforma con respecto al sistema de referencia de

la base esta dado por:

( )

( )

( )

( )

1 2 3

1 2 34

1 2 30

1 2 36 1,4

1 2 3

4 1 2

1 2 3

cos cos cos8 cos cos cossin

cos ( sin )cos17 8 cos ( sin )sin

cos cos ( sin )cos 8 cos cos

cos ( sin )cos

X A

+ + − +

− = = + − + − + −

(4)

( )

( )

( )

( )

1 2 3

1 2 34

1 2 30

1 2 36 2,4

1 2 3

4 1 2

1 2 3

sin cos cos8 sin cos cossin

cos ( sin )cos17 8 sin ( sin )sin

sin cos ( sin )cos 8 sin cos

sin ( sin )cos

Y A

+ + − +

− = = + − + − + −

(5)

( )

( )

( )

2 3

2 34

2 30

2 36 3,4

2 3

24

2 3

sin cos8 sin cossin

cos sin17 8 cos sin

sin ( sin )8sin 9,5cos

cos cos

Z A

+ + − +

= = + + − + +

(6)

Page 17: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

6.2 Cinemática inversa

La cinemática inversa determina los valores articulares que debe adoptar el robot para

posicionar el efector final en un punto ( ), ,X Y Z , con respecto al sistema de referencia de la

base [6], tal como se muestra en la Figura 11.

Figura 11. Modelo Geométrico de la plataforma robótica R700

El desarrollo de la cinemática inversa se hace por desacoplamiento cinemático [7]. Este

método permite separar la posición y la orientación del efector final. La posición está

determinada por los 3 primeros ángulos ( )1 2 3, , y la orientación por los últimos 2 ángulos

( )4 5, .[9]

Esto se debe a que en el punto mP mostrado en la Figura 11, se cortan los ejes de rotación

de los ángulos ( )4 5, , denominando este punto como la muñeca de la plataforma.

Para desarrollar los cálculos geométricos que determinan los valores articulares de los

ángulos ( )1 2 3, , , se pide como datos iniciales la posición ( ), ,x y z del punto mP .

Page 18: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

El ángulo 1 representa el giro sobre el plano ( ),X Y y se encuentra con la siguiente

ecuación:

1

1 tany

x − =

(7)

El ángulo 2 como se muestra en la Figura 11, es la suma de los ángulos 1a y 2a . Para

determinar estos ángulos se desarrollan el siguiente procedimiento.

Se encuentra el valor de h que es la distancia entre el punto mP y el origen del Sistema de

referencia 1O .

2 2

1h x z= + (8)

1z es la posición en z menos la distancia entre 0O y 1O

( )1 1 2z z d d= − + (9)

Conociendo el valor de 1z , h y x se determina el valor de 1a

2 2 21 1

1 cos2

h x za

hx

− + −=

(10)

El valor de 2a se determina conociendo 1l , 2l y h

2 2 21 1 2

2

1

cos2

l h la

hl

− + −=

(11)

2 1 2a a = + (12)

El ángulo 3 se determina conociendo el valor de 3a con los valores de 1l , 2l y h

2 2 21 1 2

3

1 2

cos2

l l ha

l l

− + −=

(13)

Así, el valor del ángulo 3 es

Page 19: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

3

3

3

180 0

180 0

a si x

a si x

− =

− (14)

Los ángulos ( )4 5, que determinan la orientación del efector final son datos que serán

ingresados como datos iniciales.

Con todos los ángulos ya definidos se conoce la posición del efector final de la plataforma.

Adicional a lo anterior, se realiza un barrido aproximado de las posiciones ( ), ,x y z en las

cuales el robot R700 se puede mover sin chocar con la base o superficie sobre la cual está

ubicado. Tal como se muestra en las siguientes tablas.

x(cm) y(cm) zmin(cm) zmax(cm) 0 0 21 25 1 1 21 25 2 2 21 25 3 3 20 24 4 4 20 24 5 5 19 23 6 6 17 23 7 7 15 22 8 8 13 20 9 9 13 19

10 10 12 16 11 11 10 13

Tabla 4. x=y

x(cm) y(cm) zmin(cm) zmax(cm) 0 2 21 25 0 4 21 24 0 6 20 24 0 8 18 23 0 10 15 21 0 12 13 20 0 14 13 17 0 15 11 15

Tabla 5. x=0, y≠0

Page 20: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

x(cm) y(cm) zmin(cm) zmax(cm) 2 0 21 25 4 0 21 24 6 0 20 24 8 0 18 23

10 0 15 21 12 0 13 20 14 0 13 17 15 0 11 15

Tabla 6. y=0, x≠0

x(cm) y(cm) zmin(cm) zmax(cm) 5 8 16 22 8 5 16 22

10 5 13 20 8 13 11 14 6 10 13 20 9 16 - - 2 11 13 20

10 12 - - 6 12 13 18

13 3 13 18 2 15 11 14 4 11 14 20

Tabla 7. x≠0, y≠0

Se calculo el porcentaje de error en la posición final con respecto a la posición desea.

En la siguiente tabla y graficas se muestran los valores teóricos, valores reales, y el porcentaje de error.

Valor Teórico Valor Real % Error en z % Error en x

x y z x y z

0 0 25 0,9 0 24,8 0,800 -

2 0 24 2,5 0 23,8 0,833 25,000

4 0 22 4,4 0 21,8 0,909 10,000

6 0 21 6,5 0 20,7 1,429 8,333

8 0 20 8,4 0 19,3 3,500 5,000

10 0 18 10,3 0 17,4 3,333 3,000

12 0 16 12,2 0 15 6,250 1,667

14 0 14 14,2 0 12,7 9,286 1,429

15 0 12 14,9 0 10,9 9,167 0,667 Tabla 8. Porcentaje de Error.

Page 21: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

Grafica 1.a.) Valor Teórico. b.) Valor Real

Grafico 2. Valor teórico vs Valor real.

7. Implementación de la cinemática en el microcontrolador ATMEGA64

Al realizar el programa en código C que se implementó y se cargó en la memoria EEPROM

del ATMEGA64, se agregaron las ecuaciones vistas en el capítulo anterior, que permiten

realizar el cálculo de la cinemática directa y la cinemática inversa, y se dividieron las

acciones a ejecutar por la plataforma.

Page 22: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Cada acción a ejecutar es activada por un comando que se envía desde la aplicación móvil al

seleccionar un botón o elemento de introducción de datos.

Los comandos enviados están formados por un conjunto de caracteres de la siguiente

manera:

1. Un carácter especial que identifica la acción a ejecutar,

2. Un segundo carácter que selecciona el servomotor o la cinemática sobre la que se

realizara la acción, y

3. Los datos en código ascii necesarios para realizar las operaciones

Ejemplo:

Si enviamos el valor articular que debe adoptar un servomotor especifico, el comando a

enviar seria:

" @"SA

El carácter ' 'S , identifica que la acción a ejecutar es modificar la posición de un servomotor,

el carácter ' 'A , selecciona el servomotor que se configurará, en este caso es el número 6, y

el carácter '@' , que en código ascii corresponde al número 64, es el valor articular que

adoptara el servomotor.

7.1 Lista de comandos

• " 1"R : Activa la rutina 1 para comprobar funcionamiento de servos

• " 2"R : Activa la rutina 2 para comprobar funcionamiento de servos

• " 3"R : Activa la rutina 3 para comprobar funcionamiento de servos

• " *"SA : Modifica el valor articular del servomotor 6

• " *"SB : Modifica el valor articular del servomotor 5

• " *"SC : Modifica el valor articular del servomotor 4

Page 23: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

• " *"SD : Modifica el valor articular del servomotor 3

• " *"SE : Modifica el valor articular del servomotor 2

• " *"SF : Modifica el valor articular del servomotor 1

• " "pp : Vuelve el robot a la posición inicial

• " @******"g : Recibe y guarda los 6 valores articulares que dan la posición de la

cinemática directa.

• " *****"ge : Recibe valores ( ), ,x y z de la posición del punto mP en la cinemática

inversa

• " $***"g : Recibe los valores articulares de los servomotores 1, 2 y 3, y guarda los

6 valores articulares que dan la posición de la cinemática inversa

• " ?"c : Correr rutina de posiciones guardadas en la cinemática directa

• " !"c : Correr rutina de posiciones guardadas en la cinemática inversa

• " "bdp : Borrar posición guardada en la cinemática directa

• " "bip : Borrar posición guardada en la cinemática inversa

• " "bdr : Borrar todas las posiciones guardadas en la cinemática directa

• " "bir : Borrar todas las posiciones guardadas en la cinemática inversa

Page 24: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

8. Configuración de la comunicación Bluetooth

Para establecer la comunicación Bluetooth entre el dispositivo móvil y la plataforma, se utilizó

el módulo Bluetooth HC-06 el cual se configura por medio de los comandos AT y un Arduino,

y en el microcontrolador ATMEGA64 se habilita el puerto serial (RXD0, TXD0).

8.1. Módulo Bluetooth HC-06

Para realizar la transmisión de datos es importante configurar el módulo con los comandos

AT que serán enviados con un Arduino a través de comunicación serial[8].

Estos comandos son:

• AT+NAME

• AT+PSWD

• AT+UART

El primer comando AT+NAME permite consultar o modificar el nombre del módulo que se

verá al momento de buscarlo para realizar la conexión. El nombre dado al módulo es ARM

R700 y lo modificamos de la siguiente manera, AT+NAME:ARM R700.

El siguiente comando AT+PSWD consulta o modifica la clave con la cual se permite

establecer la vinculación con el dispositivo móvil con el que se realizara la comunicación. La

clave por defecto es “1234” que se dejara igual, y la confirmamos enviando el comando:

AT+PSWD?

Por último, con el comando AT+UART se configura la velocidad de transmisión (baudrate)

con la cual se enviarán los datos a la plataforma. La velocidad por defecto es 9600. Se

modifica está velocidad a 38400 enviando el siguiente comando: AT+UART:38400,0,0.

8.2. Puerto serial ATMEGA64 (RXD0, XD0).

En la configuración del microcontrolador ATMEGA64 revisamos y modificamos las librerías

RobotArmBase.h y RobotArmBaseLib.c con las que viene la plataforma, y se configuran

todos los puertos, pines y conexión que se pueden establecer con el microcontrolador.

Page 25: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

En la primera librería RobotArmBase.h, se puede ver la velocidad de transmisión con la cual

está configurado el microcontrolador. En la línea 383, como lo muestra la Figura 12, la

velocidad está establecida en 38400.[11]

Figura 12. Librería RobotArmBase.h

En la segunda librería RobotArmBaseLib.c, se habilita la comunicación serial por el puerto

RXD0 y TXD0 agregando las líneas de código 1079-1083 a la librería.

Figura 13. Librería RobotArmBaseLib.c

8.3 Vinculación dispositivo móvil y modulo HC-06

Lo primero que se debe hacer es encender el Bluetooth del dispositivo móvil. Una vez

encendido, se buscará el módulo HC-06 de nombre ARM R700 que identifica a la plataforma.

Al seleccionar el módulo, se pide ingresar la clave de vinculación que se definió como “1234”

y dar OK.

Page 26: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Figura 14. Vinculación dispositivo móvil y modulo ARM R700

Con la vinculación ya realizada se puede establecer la comunicación entre el dispositivo

móvil y la plataforma.

9. Desarrollo de la aplicación móvil en Android Studio

La aplicación móvil para el sistema operativo Android, se desarrolla en Android Studio que es

el entorno de desarrollo oficial creado por Google, y diseñado para dar soporte y facilitar la

creación de cualquier aplicación para Android

La aplicación se desarrolla en una sola ventana de visualización. Configurada para modificar

una parte de la ventana donde se mostrarán los diferentes controles e ingreso de datos que

se requieran para manipular la plataforma.

A continuación, se explica cómo se realizó la interfaz y el código fuente de la aplicación.

Lo primero fue crear un proyecto nuevo en blanco donde se comenzará a escribir toda la

aplicación.

a.) b.) Figura 15. Creación del nuevo proyecto

Page 27: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

Al crear el proyecto se crean dos archivos importantes automáticamente, uno de nombre

activity_main.xml y otro de nombre MainActivity.java. El primero con la extensión .xml, Figura

16, es el que permite crear la interfaz gráfica que vera el usuario al ingresar los datos, y el

segundo, Figura 17, es un archivo Java en el que se escribirá el código fuente del programa.

Figura 16. MainActivity.java

Figura 17. Activity_main.xml

Adicional a estos 2 archivos, se crearon 16 archivos que permiten modificar los elementos

utilizados para el ingreso de datos. De estos 16 archivos, 7 son archivos java que controlan

los datos y el envió de estos a la plataforma, y 9 archivos son .xml, que modifican la interfaz

gráfica que ve el usuario al ingresar los datos.

Page 28: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

a.) b.) Figura 18. a.) Archivos java. b.) Archivos XML

Es importante resaltar que estos 2 tipos de archivo trabajan de manera conjunta. La

programación que se desarrolla en el archivo java, depende de una interfaz (archivo .xml)

para que se ejecute la acción elegida. Para dejar esto más claro, a continuación, se explica

cada uno de estos archivos.

9.1. Archivos XML

9.1.1. activity_main.xml

En este archivo se crea la interfaz gráfica de la ventana principal en la que se tendrá los

siguientes elementos:

1. Muestra el nombre de la aplicación,

2. Un menú que mostrara las opciones con las cuales se puede controlar la plataforma,

3. Botones, uno para buscar el dispositivo con el que se establecerá la conexión

(CONECTAR CON), y otro con el que se terminará la conexión (DESCONECTAR),

4. Estado de conexión,

5. Visualización de datos ingresados de posición de los servomotores en cada una de las

opciones de control, y

6. Un fragmento donde se visualizará la interfaz gráfica de cada una de las opciones de

control seleccionada en el menú.

Page 29: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

Figura 19. Ventana principal

9.1.2. toolbar.xml

Este archivo solo se crea para modificar la barra donde se visualiza el nombre de la

aplicación y donde se coloca el menú de control dentro del archivo Activity_main.xml

Figura 20. Barra de nombre y menú

9.1.3. control.xml

Las opciones de control del menú se configuran en este archivo, colocando el nombre de

cada opción definidas en la Figura 21.

Figura 21. Opciones del menú de control

Page 30: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

9.1.4. activity_dispositivos_bt.xml

Los dispositivos con comunicación Bluetooth que están vinculados al dispositivo móvil, serán

visualizados con esta interfaz desde la clase principal MainActivity.java como un mensaje al

seleccionar el Boton “CONECTAR CON” de la interfaz activity_main.xml

Figura 22. Interfaz gráfica activity_dispositivos_bt.xml

Los siguientes archivos xml son fragmentos que modificaran la parte 6 mostrada en la Figura

19, donde se visualizaran los elementos con los que cada opción de control cuenta para el

ingreso de datos.[12]

9.1.5. fragment_blank.xml

Esta parte de la interfaz gráfica, es un espacio en blanco que se visualiza al iniciar la

aplicación, antes de seleccionar una opción de control y al desconectar la comunicación con

la plataforma.

9.1.6. fragment_fragment__test_servos.xml

Esta interfaz gráfica muestra una imagen de la plataforma y 3 botones que permiten activar

cada una de las rutinas asignadas para probar el estado de los servomotores.

Page 31: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

Figura 23. Interfaz gráfica fragment_fragment__test_servos.xml

9.1.7. fragment_fragment__manual.xml

En esta interfaz se visualizan los controles donde el usuario puede seleccionar el servomotor

que desea mover, e identificar en una imagen cual servomotor seleccionó sobre la estructura

de la plataforma. Adicional a esto, se muestra el valor sobre el cual se encuentra ubicado

cada servomotor y un botón para regresar la plataforma a su posición inicial.

a.) b.) c.) Figura 24. a.) Interfaz gráfica fragment_fragment__manual.xml. b.) Selección del servomotor 3. c.) Selección del servomotor 5

Page 32: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

9.1.8. fragment_fragment__programa.xml

Esta interfaz es la encargada de visualizar los elementos de ingreso de datos de la

cinemática directa y la cinemática inversa. Para eso muestra dos opciones de selección y un

espacio donde se modifica la interfaz de cada cinemática.

Figura 25. Interfaz gráfica fragment_fragment__programa.xml

9.1.9. fragment_fragment__cinematica_d.xml

En la interfaz de la cinemática directa se visualizan los controles y los valores de posición de

cada servomotor, un texto con las posiciones guardas, y los botones con los que se enviaran

los respectivos datos ingresados.[8]

Figura 26. Interfaz gráfica fragment_fragment__cinematica_d.xml

Page 33: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

9.1.10. fragment_fragment__cinematica_i.xml

En la interfaz de la cinemática inversa se visualizan los controles y los valores de posición de

los 3 primeros servomotores, los campos para ingresar la posición ( ), ,x y z , un texto con las

posiciones guardas, y los botones con los que se enviaran los respectivos datos ingresados.

Figura 27. Interfaz gráfica fragment_fragment__cinematica_i.xml

9.2. Archivos java

9.2.1. MainActivity.java

Esta es la clase principal en la se ejecuta toda la aplicación. Es decir, el resto de archivos

java son clases que se extienden de esta, y que se emplearan para el ingreso y envió de

datos.

9.2.2. BluetoothService.java

La clase BluetoothService.java es la que se encarga de configurar y establecer la

comunicación Bluetooth en la aplicación, adicionalmente envía y recibe los datos que se

transfieran entre los dispositivos conectados.[9]

Page 34: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

9.2.3. BlankFragment.java

Esta clase java permite llamar la interfaz del fragment_blank.xml cuando se requiera al

ejecutar la aplicación.

9.2.4. Fragment_TestServos.java

Esta clase permite visualizar en la ventana principal la interfaz gráfica

fragment_fragment__test_servos.xml, y así enviar los comandos " 1"R , " 2"R , " 3"R

9.2.5. Fragment_Manual.java

Con esta clase se visualiza la interfaz gráfica fragment_fragment__manual.xml para asi

controlar el envió de los comandos " *"SA , " *"SB,

" *"SC,

" *"SD,

" *"SE,

" *"SF,

" "pp en tiempo real cada vez que se modifique el valor de un servomotor seleccionado o se

regrese a la posición inicial.

9.2.6. Fragment_Programa.java

Esta clase permite intercambiar entre las 2 interfaces graficas de la cinemática directa y la

cinemática inversa.

9.2.7. Fragment_CinematicaD.java

Esta clase visualiza la interfaz gráfica fragment_fragment__cinematica_d.xml, envía los

comandos que realizan el proceso y las acciones necesarias para realizar la cinemática

directa.

" *"SA , " *"SB, " *"SC

, " *"SD

, " *"SE

, " *"SF

, " "pp

" @******"g , " ?"c , " "bdp , " "bdr

Page 35: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

9.2.8. Fragment_CinematicaI.java

Esta clase visualiza la interfaz gráfica fragment_fragment__cinematica_i.xml, envía los

comandos que realizan el proceso y las acciones necesarias para realizar la cinemática

inversa.

" *"SA , " *"SB,

" *"SC,

" *"SD,

" *"SE,

" *"SF,

" "pp

" *****"ge , " $***"g, " !"c , " "bip

, " "bir

9.3. Permiso comunicación Bluetooth

Para permitir que la aplicación pueda establecer la comunicación Bluetooth, hay que dar los

permisos necesarios. Así, en el archivo de nombre AndroidManifest.xml se agregarán las dos

líneas mostradas en la figura 28, que permiten configurar la comunicación con otros

dispositivos. [10]

Figura 28. Permisos Bluetooth

10. Diagramas de flujo

Se desarrollaron 2 algoritmos de programación, uno para la aplicación móvil mostrado en la

Figura 29 y uno para la plataforma R700 mostrado en la Figura 30.

Figura 29. Algoritmo aplicación Android

Page 36: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Figura 30. Algoritmo de la plataforma R700

11. Resultados.

Se obtuvo una aplicación en Android S.O. llamada ARM R700 en la cual se tuvieron en

cuenta los ángulos máximos y el rango de movimientos de cada servomotor, esto con el fin

de limitar el ingreso de datos a la aplicación por parte del usuario. Ahora bien, en esta

interfaz se encuentran 4 opciones de menú:

• Test: En esta sección el usuario conocerá el estado y correcto funcionamiento de los

servomotores con 3 rutinas ya programadas.

• Manual: Se tienen 6 slider para mover independientemente cada articulación en

tiempo real, así el usuario ubicara el efector final en cualquier posición sin afectar el

estado de la plataforma

• Cinemático: esta opción permite crear, guardar o modificar una rutina de máximo 10

posiciones. La rutina guardada se borrará una vez se cambie de opción de control.

Cinemática Directa.

En la interfaz de la aplicación dedicada a la cinemática directa, se le da al usuario la opción

de configurar el valor articular de cada servomotor en tiempo real, conocer la posición del

efector final y guardar la posición si así lo desea.

Page 37: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío:

Fecha de recepción: Fecha de aceptación:

Cinemática Inversa.

Esta opción le permite al usuario ingresar la posición ( ), ,x y z del punto mP de la plataforma y

los valores de los 3 servomotores finales, que permitirán calcular la posición final en la cual

se desea ubicar el efector final de la plataforma.

12. Conclusiones.

• Al ejecutar el programa realizado para la cinemática se evidencio que la plataforma

R700 presenta desgastes en las uniones mecánicas de los servomotores, generando

errores al ubicar el efector final en la posición deseada.

• Con el desarrollo de la cinemática directa y cinemática inversa se evidenciaron errores

en el movimiento de los servomotores debido a los cálculos internos de la

programación, los cuales se desarrollan con números decimales y la librería del

movimiento de los servomotores es con números enteros, despreciando los

decimales, afectando así la posición del efector final.

• A pesar de que se logró establecer comunicación entre la plataforma R700 y un

dispositivo móvil con sistema operativo Android, se tiene que no se puede lograr dicha

interacción entre un dispositivo diferente a un teléfono celular.

• Logra optimizar el uso de la plataforma por medio de la aplicación, ya que esta ofrece

la opción al usuario de mover el R700 sin programar nada y así se logra la interacción

con la misma.

• Al desarrollar la programación con el software WinAVR se encontró, que los

programas solo se ejecutan con sistema operativo Windows 7 o anteriores a este.

Page 38: DESARROLLO DE UNA APLICACIÓN ANDROID PARA EL …

13. Agradecimientos

Agradecemos a la empresa Nuevos Recursos S.A.S, entidad que patrocina el proyecto.

14. Referencias

[1] JIMÉNEZ Jiovani, OVALLE Demetrio, RAMÍREZ Fernando, Robótica educativa

Estrategias activas en ingeniería, no. May 2014. 2010.

[2] C. Angulo, “Usos y beneficios de la robótica en las aulas,” Supl. del boletín Educ., no. 341, 2016.

[3] G. Specialties, “Model : R700 Vector Robotic Arm.” p. 64, 2013.

[4] “WinAVR.” [Online]. Available: http://winavr.sourceforge.net/index.html.

[5] K. Ramírez, “CINEMÁTICA DIRECTA,” 2015.

[6] K. Ramirez, “CINEMÁTICA INVERSA,” 2015.

[7] A. Jaramillos, “Cinemática de manipuladores,” in Cinematica de manipuladores, 2010,

p. 68.

[8] A. Jaime, A. Fernandez, and J. A. Rodriguez, “DESARROLLO DE SOFTWARE DE

SIMULACION QUE PERMITA RECREAR EL MOVIMIENTO DEL MODELO

SIMPLIFICADO DEL ROBOT MITSUBISHI MOVEMASTER RVM1 A TRAVES DE

ALGORITMOS DE CINEMATICA DIRECTA Y CINEMATICA INVERSA.,” Universidad

San Buenaventura-Bogota, 2011.

[9] “Configuración modulo Bluetooth HC 06 - Nueva versión,” 2018. [Online]. Available:

http://juangiraldo0.blogspot.com/2018/07/configuracion-modulo-bluetooth-hc-06.html.

[10] “Android Socket Example | Examples Java Code Geeks.” [Online]. Available:

https://examples.javacodegeeks.com/android/android-bluetooth-connection-example/.