Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería...

35
Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL

Transcript of Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería...

Page 1: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Aplicación iRobot Create y LynxMotion

UNIVERSIDAD NACIONAL DE INGENIERÍAFacultad de Ingeniería Industrial y de Sistemas

INTELIGENCIA ARTIFICIAL

Page 2: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Planteamiento del ProblemaEn nuestra vida diaria, hay tareas rutinarias que quisiéramos que puedan ser realizadas por máquinas. Una de ellas es el encendido de la luz al entrar a una habitación o apagarla cuando nos disponemos a salir. Pues en la actualidad, es posible utilizar robots para realizar estas tareas.¿Cómo hacer que dos robots realicen esta

tarea?

Page 3: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Objetivo del ProyectoLograr que el iRobot Create y el LynxMotion puedan trabajar en conjunto para lograr un

objetivo: Prender un foco y llevarlo de un punto a otro.

Page 4: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Modelo de la Solución

Acondicionar el Ambiente y a los robots para el desarrollo de la

tarea asignada.

Elaborar el programa en VPL para una trayectoria (Zig-Zag) definida para

el iRobot

Desarrollar un Controlador de propósito

general para el LynxMotion

Ejecución, por parte de los robots, de la Tarea

Asignada

Page 5: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.
Page 6: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Descripción del Medio Ambiente

Accesible, determinístico, estático y discreto

Page 7: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Descripción del AgenteSensores: Para el presente trabajo no hicimos uso de

ningún sensor.Efectores: Los motores del iRobot Create y el gripper del

Lynx Motion.Medios de Comunicación: El espacio por donde se

trasmite la señal del Bluetooth para el iRobot Create y el Cable Serial para Lynx Motion.

Page 8: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Descripción del Agente Percepciones: Por el momento, ninguno de los robots usados realiza

alguna percepción del medio en el que se encuentra. Acciones: El iRobot Create realiza un desplazamiento en zigzag

mediante sus ruedas y el LynxMotion realiza movimientos mediante sus motores y enciende el interruptor usando su gripper, para luego recoger el foco.

Protocolos de comunicación: Bluetooth para el iRobot Create y protocolo RS232 para Lynx Motion.

Page 9: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.
Page 10: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.
Page 11: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Trayectoria del iRobot Create(Zigzag)

Iniciamos el iRobot Create en modo Full, luego podemos iniciar el movimiento con el Prompt que sale del SimpleDialog.

Lo que permite habilitar el movimiento con EnableDrive.

Page 12: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Trayectoria del iRobot Create(Zigzag)

Mediante conexiones RotateDegrees y DriveDistance, iremos formando el zigzag cambiando ángulos y distancias, todo esto usando el servicio de iRobotGenericDrive.

Page 13: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Trayectoria del iRobot Create(Zigzag)

Al finalizar la primera parte del recorrido, usamos la conexión RoombaPlaySong en el servicio iRobotCreateRoomba para marcar esta etapa.

Finalmente, hacemos uso de la actividad Regreso que contiene el recorrido de vuelta.

Page 14: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotionMODELO CINEMÁTICO:

Para la programación del movimiento, se tuvo que construir una base de datos con todas las posibles combinaciones de movimientos en el espacio. Para lo cual se necesitó construir el Modelo Cinemático.

Matriz DH:Articulación α1 ai θi di

θ1 d1π/2

2 -π/2 θ23 0 θ3

a2 θ4a3

1

4

Articulación α1 ai θi di

4 0 θ43 0 θ3

a1 θ20

π/2 - π/21 θ1

2

De la Base al Efector Del Efector a la Base

Page 15: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotionMatriz de Transformación:

Función G:

T =

− St1(a3 ∗C(t2 + t3 + t4) + a2 ∗C(t2 + t3) + a1 ∗St2)Ct1(a3 ∗C(t2 + t3 + t4) + a2 ∗C(t2 + t3) + a1 ∗St2) − a3 ∗S(t2 + t3 + t4) − a2 ∗S(t2 + t3) + a1 ∗Ct2 + d1 g =

Page 16: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotionCONTROLADOR EN VB .NET:

Comunicación con el LynxMotion: Modelo de Comunicación:

Page 17: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotion Secuencia de Comandos:

En primer lugar, debemos tener en cuenta la enumeración de los motores según el protocolo utilizado. El siguiente esquema muestra esta enumeración de los motores del robot:

Page 18: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotion Secuencia de Comandos:

La forma general de los comandos (cadena de caracteres) con este protocolo es:

De donde, los números que van antes de cada letra P, hacen referencia a cada uno de los motores del LynxMotion.

Page 19: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotion Secuencia de Comandos:

Los valores <pw0>, <pw1>, <pw2>, <pw3> y <pw4> son, en un lenguaje entendible, el “posición de giro” de cada motor, que determinará los ángulos que éste recorra. Las unidades originales de esta “posición de giro” está en microsegundos y los valores van desde 500 hasta 2500 en cada uno de los motores.La proporción entre la variación de estos valores y el sistema angular sexagesimal es el siguiente (para cada motor):

Microsegundosen el Protocolo

RS232Estado

500 Abierto2500 Cerrado

Para el Motor 0 (Gripper)Nro.Motor

Microsegundosen el Protocolo RS232

GradosSexagesimales

1 100 µs 10°2 100 µs -10°3 100 µs 10°4 100 µs 11.1111°

Page 20: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotion

Secuencia de Comandos: El valor de <time> es el tiempo, en milisegundos, que tomará el robot

en ejecutar todas las órdenes (las ejecuta de manera simultánea). Y por último, <cr> es el retorno de carro (el ASCII 13 o el presionado

de la tecla ENTER).

Page 21: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotion Controlador de Propósito General en Visual Basic .NET

Tomando en cuenta los conceptos previos, sobre el Modelo de Cinemática y el Protocolo de Comunicación usado, desarrollamos un programa Controlador de Propósito General para el LynxMotion.

Page 22: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotionControlador de Propósito General en Visual Basic .NET

Zona de Conexión:En esta zona ejecutamos la conexión y desconexión del Robot

a la interfaz de comunicaciones del Puerto Serial.Aquí son requeridos dos parámetros de entrada: el Puerto al

que se haya conectado el Robot (En nuestro caso “COM1”) y el valor del parámetro Baud Rate para el funcionamiento del Robot (esto depende de la configuración física de la tarjeta del robot, usamos el valor de 115,200 por ser la configuración física que nosotros tenemos) (Para mayor información sobre este parámetro revisar el SSC-32 Manual que se encuentra en la web del fabricante http://www.lynxmotion.com).

Page 23: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotion Controlador de Propósito General en Visual Basic .NET

Cuadro de comandos enviados: Aquí se muestran todas las cadenzas de caracteres que se hayan enviado a

través del puerto serial durante la ejecución del programa.

• Zona de envío de comandos de forma manual:• En esta sección se puede digitar la secuencia de comandos que se deseen

enviar por el puerto serial de forma manual (El programa no incluye ninguna validación sobre el tipo de cadenas de texto que se envíen).

Page 24: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotion Controlador de Propósito General en Visual Basic .NET

Zona de Secuencias de comandos predeterminados: En esta sección se muestran botones que incluyen algunas

secuencias de comandos predeterminados, como son la ubicación del robot en la posición inicial que definimos anteriormente, y las secuencias Pick y Leave, que son ejemplos de secuencias de comandos que se envían en intervalos de tiempo definidos para generar un movimiento contínuo del robot (Al igual que estas secuencias de comandos, se pueden programar otras usando la misma lógica y dependiendo de la aplicación).

Page 25: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotion Controlador de Propósito General en Visual Basic .NET

Zona de Movimiento independiente de los motores: Esta sección del Controlador nos permite rotar independientemente los

motores, las entradas para cada motor están en ángulos sexagesimales (valores enteros). Esta sección se puede utilizar para hacer medidas y experimentos con el robot.

Page 26: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotion Controlador de Propósito General en Visual Basic .NET

Zona de Ubicación directa del Gripper en cualquier posición del espacio:

Ésta es la sección principal de este controlador para efectos del presente proyecto. Pues recibe como entrada las coordenadas (centímetros en números reales), y consigue la secuencia de comandos necesaria para ubicar el efector del robot en dicha posición.

• Para esto el programa hace uso de una base de datos en MS ACCESS, y el contenido de esta base de datos en el que describimos en la sección de “Construcción del Modelo de Cinemática Inversa” del presente trabajo. Cabe resaltar que la velocidad con la que se consiga el resultado dependerá de las características de la PC del usuario.

Page 27: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotionUso del Controlador en la solución del problema:Finalmente, para usar este controlador desarrollado en

la aplicación del presente proyecto, usaremos la sección de ubicación directa del Gripper en el espacio, de modo que podamos darle las coordenadas de puntos específicos en el espacio, que queremos que recorra para ejecutar una determinada tarea, y el programa nos devuelva la secuencia de comandos para alcanzar cada uno de esos puntos. De ese modo poder enviar luego un grupo de comandos es forma secuencial para que el robot ejecute el movimiento de forma continua.

Cabe resaltar que para cada experimento, la secuencia de coordenadas que se vayan a ingresar, y por consiguiente la secuencia de comandos del resultado, serán distintas.

Page 28: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotion Uso del Controlador en la solución del problema:

A modo de ejemplo, para uno de los experimentos que realizamos, se determinó la siguiente secuencia de coordenadas del actuador del robot para poder encender un foco y luego asirlo.

Para presionar el interruptor:

Para encender el foco:

.

Posición x y z Estado del Gripper1 (home) 0 25 18 Cerrado

2 1.76 0.88 -7.25 Cerrado

3 -9.06 -4.54 11.23 Cerrado

4 1.76 0.88 -7.25 Cerrado

Posición x y z Estado del Gripper5 2.48 -2.34 0.14 Abierto

6 -6.92 6.52 6.06 Abierto

7 -6.92 6.52 6.06 Cerrado

8 (home) 0 25 18 Cerrado

Page 29: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotionUso del Controlador en la solución del

problema:De ese modo la secuencia de comandos (obtenidas por

el programa) que necesitaríamos para completar la tarea con el robot es la siguiente:

Orden Secuencia de Comandos1 #0p 500 #1p 1800 #2p 1700 #3p 1400 #4p 1500 T2500

2 #0p 2500 #1p 2400 #2p 900 #3p 1050 #4p 500 T2500

3 #0p 2500 #1p 1600 #2p 1400 #3p 550 #4p 500 T20

4 #0p 2500 #1p 2400 #2p 900 #3p 1050 #4p 500 T1500

5 #0p 500 #1p 1450 #2p 1100 #3p 800 #4p 723 T2500

6 #0p 500 #1p 1450 #2p 1300 #3p 500 #4p 723 T2500

7 #0p 2500 #1p 1450 #2p 1300 #3p 500 #4p 723 T500

8 #0p 2500 #1p 1800 #2p 1700 #3p 1400 #4p 1500 T2500

Page 30: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Movimiento del LynxMotionUso del Controlador en la solución del problema:

Cabe resaltar que los valores para el tiempo lo determinamos de forma independiente, dependiendo en cada caso de la velocidad a la que queríamos que se ejecute el movimiento.

Finalmente procedemos a ingresar cada uno de estos comandos en la Zona de envío de comandos de forma manual, dándole el intervalo de tiempo necesario para cada movimiento.

Orden Secuencia de Comandos1 #0p 500 #1p 1800 #2p 1700 #3p 1400 #4p 1500 T2500

2 #0p 2500 #1p 2400 #2p 900 #3p 1050 #4p 500 T2500

3 #0p 2500 #1p 1600 #2p 1400 #3p 550 #4p 500 T20

4 #0p 2500 #1p 2400 #2p 900 #3p 1050 #4p 500 T1500

5 #0p 500 #1p 1450 #2p 1100 #3p 800 #4p 723 T2500

6 #0p 500 #1p 1450 #2p 1300 #3p 500 #4p 723 T2500

7 #0p 2500 #1p 1450 #2p 1300 #3p 500 #4p 723 T500

8 #0p 2500 #1p 1800 #2p 1700 #3p 1400 #4p 1500 T2500

Page 31: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Análisis de ResultadosiRobot Create:

RecorridoReal 296 598 597 600 298 297 599 601 599 299Teórico 300 600 600 600 300 300 600 600 600 300Error 0.0133 0.0033 0.0050 0.0000 0.0067 0.0100 0.0017 0.0017 0.0017 0.0033

Error 4.67%

GirosReal -58 119 -118 121 -117 59 178 -59 121 -119 121 -118 59Teórico -60 120 -120 120 -120 60 180 -60 120 -120 120 -120 60Error 0.0333 0.0083 0.0167 0.0083 0.0250 0.0167 0.0111 0.0167 0.0083 0.0083 0.0083 0.0167 0.0167

Error 19.44%

De lo anterior, podemos obtener que el rendimiento es de 87.94%

Page 32: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Análisis de ResultadosLynxMotion:

Para el caso de Lynxmotion en esta aplicación, podemos determinar el rendimiento en función de si consiguió encender y asir el foco, o no. Y como resultado del experimento, de un total de 20 pruebas, logró conseguir su objetivo 18 veces. De donde deducimos un rendimiento del 90%.

Page 33: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Conclusiones y RecomendacionesEs importante realizar varias pruebas, pues como

hemos calculado el error que se presenta en las acciones del agente puede mermar el rendimiento del mismo y por tanto, dificultar el cumplimiento del objetivo.

La operativa de montaje también es un punto a tomar en cuenta, dado que el LynxMotion usa un medio alámbrico para su comunicación con el computador fue un poco dificultoso realizar los movimientos junto al iRobot Create. Es por eso, que es recomendable para futuras aplicaciones usar un medio inalámbrico, como un dispositivo Bluetooth con puerto serial.

Page 34: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

Conclusiones y RecomendacionesSi bien el método para calcular la cinemática inversa

del LynxMotion es preciso, el usar una base de datos de más de trece millones de registros disminuye su eficiencia. Debido a que si se ejecuta el programa con una computadora personal promedio, a la fecha actual, tarda aproximadamente 1 minuto en conseguir cada resultado.

El hecho de desarrollar un Controlador de propósito general para el LynxMotion, facilita en gran medida cualquier proceso de investigación que se pretenda realizar con este robot. Y por otro lado, permite agregar funcionalidad a cada aplicación que se desarrolle.

Page 35: Aplicación iRobot Create y LynxMotion UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL.

BibliografíaiRobot Corporation, Create Community : Projects

using iRobot Create : RoboMaid, 2006, SSC-32 Manual, v. 2.01XE. Jim Frye, 2009Sitio web sobre Robótica:

http://www.superrobotica.comSitio web del Departamento de Ingeniería de

Sistemas Telemáticos. Universidad Politécnica de Madrid:http: //polaris.dit.upm.es

Foro iRobot Create:http://crateforums.irobot.com/irobotcreate/board/message?board.id=Create_projects&thread.id=18 [Consulta: jueves, 28 de mayo de 2009]