Aplicación de Técnicas de Robótica e Inteligencia Artificial sobre un robot móvil utilizando el entorno de programación Visual Studio.Net

Con el auspicio de Microsoft Research University Relations

 

 

Objetivo:

 

Crear una plataforma de desarrollo que le permita probar al estudiante de Ingeniería la implementación de algoritmos de inteligencia artificial aplicados a robótica móvil, utilizando el entorno de programación Visual Studio.NET. Se realiza una serie de prácticas y ejemplos, pueden utilizarse en asignaturas relacionadas con temas de inteligencia artificial y/o robótica

 

Introducción.

 

La plataforma de desarrollo esta compuesta por el robot comercial “ER1 de Evolution Robotics”, y el software necesario para el manejo del mismo.
El robot tiene dos ruedas accionadas con sendos motores de paso en configuración diferencial, un hardware de comando de los mismos que se maneja por el puerto USB y una webcam. Todo esto se conecta a una PC portátil (notebook), montada sobre el robot, con un módulo de comunicación inalámbrico (Wi-Fi). En esta PC se ejecuta el software de control local del robot. En otra PC se ejecuta el software de manejo remoto.

 

 

Desarrollo

 

Utilizando esta plataforma de desarrollo se realizó una primera práctica [1] de Inteligencia Artificial que introduce el tema de Búsqueda Heurística aplicado al Problema del Viajante de Comercio (TSP). Este problema trata de un agente de comercio que debe visitar “n” puntos retornando al origen. El costo de ir de un punto a otro se define mediante cij y el camino es reversible (cij = cji). El problema supone todas los puntos conectadas con todos, el agente deberá visitar todos los puntos comenzando por uno cualquiera, pasar por todos los demás, solo
una vez y volver al primero, de manera que se minimice el costo del recorrido total.

 

Existen diversos algoritmos que utilizan distintas técnicas para abordar este problema. La práctica se realizó implementando el algoritmo A* (léase A estrella) [N.Nilsson].

 

El algoritmo A* utiliza una función heurística de evaluación “fn” para seleccionar los puntos del camino a recorrer. La función de evaluación es la suma de dos términos como se muestra a continuación:

f(n) = g(n) + h(n)

Donde:
g(n) es el costo desde el punto de inicio hasta el punto “n”.
h(n) es el costo estimado desde el punto “n” hasta llegar a la meta.
f(n) es el costo total estimado del camino pasando por el punto “n”.
La elección de la estimación de costos h(n) no debe sobreestimar el costo real heurística admisible), es decir, sí el mínimo costo desde un punto “n” hasta la meta es h*(n) entonces se debe elegir una h(n) tal que h(n) d h*(n).

 

La elección de h(n) juega un papel importante en la velocidad de convergencia del algoritmo. h(n) debe ser lo más grande posible cumpliendo la restricción de no sobreestimar el mínimo costo real, a pesar de que el mismo no es conocido.

 

Para el algoritmo se implementó el siguiente mecanismo para la elección de h(n): Primero se comparó el costo entre el primer punto y los demás y se eligió el más bajo, luego se comparó el costo entre el segundo punto y los restantes y se eligió el más bajo, y así para todos los demás puntos. Este mecanismo garantiza que el costo estimado será menor o igual al menor camino real.
Esta evaluación es dinámica y se recalcula a medida que se van explorando los caminos.

 

 

Conclusiones

 

En esta primera etapa se pudo realizar con éxito la implementación de un algoritmo de inteligencia artificial (búsqueda heurística) y probarlo con la plataforma de desarrollo.

 

 

Publicación

 

 

Aplicación de Técnicas de Robótica e Inteligencia Artificial sobre un robot móvil utilizando el entorno de programación Visual Studio.Net: Módulo 1 (PDF)

Fernando Carmona ; Daniel Lopez Amado ; Damian De Biase ; Sebastián Verrastro, Cesar Foti , Ing. Roberto Barneda , Ing. Claudio Verrastro

 

 

Aplicación de Técnicas de Robótica e Inteligencia Artificial sobre un robot móvil utilizando el entorno de programación Visual Studio.Net: Módulo 2 (PDF)

Fernando Carmona ; Daniel Lopez Amado ; Damian De Biase ; Sebastián Verrastro, Cesar Foti , Ing. Roberto Barneda , Ing. Claudio Verrastro

 

 

Aplicación de Técnicas de Robótica e Inteligencia Artificial sobre un robot móvil utilizando el entorno de programación Visual Studio.Net: Módulo 3 (PDF)

Fernando Carmona ; Daniel Lopez Amado ; Damian De Biase ; Sebastián Verrastro, Cesar Foti , Ing. Roberto Barneda , Ing. Claudio Verrastro