Aplicación iRobot Create y LynxMotion

Slides:



Advertisements
Presentaciones similares
ALGORITMO Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea y resolver un problema. De un modo más formal,
Advertisements

Org. y Arquitectura del Computador
INTELIGENCIA ARTIFICIAL
Fundamentos de Diseño de Software INFT.1
También conocido como Diseño Lógico Rodrigo Salvatierra Alberú.
LÓGICA DE PROGRAMACIÓN
La maquina de Turing La máquina de Turing es una caja negra (tan simple como una máquina de escribir y tan compleja como un ser humano) capaz no sólo de.
Instalación, Manipulación y uso.
Aprendizaje de Microsoft® Access® 2010
Capítulo II DISEÑO DEL PROGRAMA DE MONITOREO EN LOOKOUT”.
ESCUELA POLITÉCNICA DEL EJÉRCITO DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA PLAN DE DISERTACIÓN PREVIA A LA OBTENCIÓN DEL TÍTULO DE INGENIERO ELECTRÓNICO.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
SISTEMA DE ROBOTICA DE LEGO. ¿Cómo funciona la computación básica? Entrada Salida El procesador ejecuta los comandos. La memoria guarda los programas.
Windows XP sp3.
Programas Son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que.
Física Básica.
Brazo Robótico Controlado por DISPOSITIVOS DE realidad virtual
DE LAS CUENTAS DE USUARIO Y OPCIONES DE CARPETA
Manual de Instalación y Programación
Acceso a datos con ADO.NET
Matemáticas Discretas y Algoritmos
TRADUCTOR DE UN PROGRAMA
ALGORITMOS.
Ing. Karen Torrealba de Oblitas
LENGUAJES DE PROGRAMACIÓN
Introducción al Equipo del Laboratorio de Sistemas Inteligentes
InfoPath Ventajas y Uso.
Respaldando la información
Raúl Heiras Andazola Edgar A. Robles Reyes Luis Alonso Ramos Fdez Diseño de Robots Dr. Carlos F. Pfeiffer Octubre 22, 2003.
Transformación de los Datos en Información leCCI Ó N 7.
Tema 6. Conceptos básicos de programación (Repaso) Prof. María Alejandra Quintero Informática Año 2013.
Hanna y Dima. Definición Funciones Básicas -La unidad CENTRAL (CPU. Central Proceising Unit) -La memoria principal -Dispositivos de Entrada y Salida Tratamiento.
Sistemas Inteligentes Distribuidos Sistemas Inteligentes Distribuidos Sesión 13 L. Enrique Sucar / Marco López Sesión 13 L. Enrique Sucar / Marco López.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
LENGUAJES DE PROGRAMACIÓN
Simular: Representar una cosa, fingiendo o imitando lo que no es.
GUI para Control Inalámbrico de Movimiento de un Robot ELO-329 Diseño y Programación Orientados a Objetos Integrantes: Patricio Alegre Pablo Escalante.
La Computadora.
Microsoft Office Project 2010 Curso Básico
 En computación es un conjunto de líneas de señal que el microprocesador o CPU utilizan para intercambiar datos con otros componentes como teclados,
Mensajería cliente-servidor en Flex y Java
ROBÓTICA Jennifer Olarte H. Mateo Restrepo S. 11ºC.
DISPOSITIVOS INTERNOS Y EXTERNOS DE UN COMPUTADOR
Automatización Es la tecnología utilizada para realizar procesos o procedimientos sin la ayuda de las personas.
Maximino.  Historia de la robótica La historia de la robótica va unida a la construcción de "artefactos", que trataban de materializar el deseo humano.
Mateo zapata Granada 11°c Tecnología 2012
Metodología de la programación
HARDWARE ANALISIS Y DESARROLLO DE SISTEMAS DE LA INFORMACION EQUIPO 1: Diana Lorena Sánchez Garcés Karen Ximena Carvajal Pinzón Carol Yinary Rivera Tovar.
Diseño de Sistemas.
COMPLETA LOS ESPACIOS CON LA PALABRA ADECUADA 1.LOS _______________________ SE DEFINEN COMO LA _________________LÓGICA DE _________PARA SOLUCIONAR UN.
INTRODUCCIÓN Para comenzar les hablaremos de lo que significa Windows server 2003, el cual es un sistema operativo de la familia Windows de la marca Microsoft.
File Transfer Protocol.
Juan camilo obando gaviria 11c
Elaboración de algoritmos usando lógica de programación
Unidad 2: Tareas básicas de InfoPath 2010
DISEÑAR Y ELABORAR ALGORITMOS NOMBRE: LAURA PAEZ GARCIA GRADO Y GRUPO: 1 “3” MATERIA: INFORMÁTICA Y COMPUTACIÓN MAESTRO: ÁNGEL BUENDÍA TURNO: VESPERTINO.
PROGRAMACIÓN ESTRUCTURADA LOS DIAGRAMAS DE ESTADO
CINEMÁTICA La cinemática estudia el movimiento sin interesarse en qué es lo que lo causa. Se describe de qué manera se mueve una partícula. Para describir.
Computadora Es una máquina electrónica que recibe y procesa datos para convertirlos en información útil. Una computadora es una colección de circuitos.
Utilizar Costo Promedio Ponderado en el Software Administrativo SAW
GlobalQuoter.COM Fácil, Seguro y Asequible GlobalQuoter.COM Fácil, Seguro y Asequible.
Pablo Arturo Pérez Giraldo Melissa torres 11-C Tecnología e informática.
ACCESORIOS DE WINDOWS.
TRABAJO ESPECIAL DE GRADO TRABAJO ESPECIAL DE GRADO CAPITULO IV Y V.
Tipos y ámbitos de grupo (Windows server)
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
Métodos de recolección
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
Sistema de Telemetría Automatización Monitoreo y Control por Radios Temporizadores Entradas Analógicas Entradas Digitales Salidas Digitales Control por.
Ing. José David Ortiz Salas
Transcripción de la presentación:

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

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?

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.

Modelo de la Solución

Arquitectura de la Solución

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

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.

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.

Implementación de la Solución

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.

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.

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.

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

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

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

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:

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.

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

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

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.

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 http://www.lynxmotion.com).

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

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

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.

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.

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.

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

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:

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.

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

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

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.

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.

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: http://www.superrobotica.com Sitio 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]