La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Aplicación iRobot Create y LynxMotion

Presentaciones similares


Presentación del tema: "Aplicación iRobot Create y LynxMotion"— Transcripción de la presentación:

1 Aplicación iRobot Create y LynxMotion
UNIVERSIDAD NACIONAL DE INGENIERÍA Facultad de Ingeniería Industrial y de Sistemas INTELIGENCIA ARTIFICIAL PROYECTO FINAL Aplicación iRobot Create y LynxMotion Profesor: Ing. Samuel Oporto Diaz GRUPO Nº 3 Integrantes: Choque Dextre, Gustavo Gálvez Valverde, Daniel Rojas Palomino, Robert Vargas Mercado, Verónica

2 Planteamiento del Problema
En 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?

3 Objetivo del Proyecto Lograr 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.

4 Modelo de la Solución

5 Arquitectura de la Solución

6 Descripción del Medio Ambiente
Accesible, determinístico, estático y discreto

7 Descripción del Agente
Sensores: 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.

8 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.

9

10 Implementación de la Solución

11 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.

12 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.

13 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.

14 Movimiento del LynxMotion
MODELO 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: De la Base al Efector Del Efector a la Base

15 Movimiento del LynxMotion
Matriz de Transformación: Función G:

16 Movimiento del LynxMotion
CONTROLADOR EN VB .NET: Comunicación con el LynxMotion: Modelo de Comunicación:

17 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:

18 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.

19 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):

20 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).

21 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.

22 Movimiento del LynxMotion
Controlador 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

23 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).

24 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).

25 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.

26 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.

27 Movimiento del LynxMotion
Uso 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.

28 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: .

29 Movimiento del LynxMotion
Uso 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:

30 Movimiento del LynxMotion
Uso 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.

31 Análisis de Resultados
iRobot Create: De lo anterior, podemos obtener que el rendimiento es de 87.94%

32 Análisis de Resultados
LynxMotion: 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%.

33 Conclusiones y Recomendaciones
Es 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.

34 Conclusiones y Recomendaciones
Si 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.

35 Bibliografía iRobot Corporation, Create Community : Projects using iRobot Create : RoboMaid, 2006, SSC-32 Manual, v. 2.01XE. Jim Frye, 2009 Sitio web sobre Robótica: Sitio web del Departamento de Ingeniería de Sistemas Telemáticos. Universidad Politécnica de Madrid: http: //polaris.dit.upm.es Foro iRobot Create: [Consulta: jueves, 28 de mayo de 2009]


Descargar ppt "Aplicación iRobot Create y LynxMotion"

Presentaciones similares


Anuncios Google