Deteccion y esquiva de obstáculos: RobotC

DistanciaDeteccion y navegación esquivando objetos

En artículos anteriores como el artículo sobre reconocimiento básico de objetos con OpenCV y el artículo sobre segmentación básica en OpenCV hemos visto cómo realizar una deteccion de objetos de un determinado color en una imagen, e incluso calcular sus puntos medios y distancias entre ellos. En el artículo de hoy vamos a aplicar todos estos conocimientos para realizar un ejemplo práctico en el que gracias a dos imágenes tomadas por la cámara sabremos dónde se encuentran dos bolas rojas respecto al Robot, y lograremos esquivarlas con el robot mientras se mueve en línea recta. Seguir leyendo →

Manejo de Ficheros en robotC

ficheros en robotc - electricbricksUna de las funcionalidades más pobres, peor implementadas, y con menor documentación de robotC es el manejo de ficheros. El manejo de ficheros es una herramienta muy útil que nos puede servir para guardar información y usarla con otros programas, independientemente de su lenguaje de programación. Por tanto es la universalidad de los ficheros la que nos permitiría comunicar robotC con otro programa de cualquier lenguaje. Sin embargo los creadores de robotC no vieron está utilidad cómo algo importante, y por tanto no han implementado la funcionalidad necesaria para el correcto manejo de ficheros. Seguir leyendo →

LEGO Mindstorms NXT-G Programming Guide

En breve podremos disponer de la segunda edición de LEGO MINDSTORMS NXT-G Programming Guide. Esta edición cubre tanto al NXT-G 1.0 como al 2.0 e incluye ejercicios y sugerencias en cada capítulo orientados a los educadores que quieren emplear el NXT-G como un vehículo para la enseñanza de robótica o de los principios de programación. Seguir leyendo →

Vehículos de Braitenberg en LeJOS

LateralTal y como vimos en el artículo de RobotC Vehículos de Braitenberg en RobotC los vehículos de Braitenberg fueron concebidos por el investigador Italo-Autriaco Valentino Braitenberg para ilustrar de manera evolutiva las habilidades de agentes simples. En el artículo de hoy implementaré un par de comportamientos de vehículos de Braitenberg en LeJOS. Seguir leyendo →

Control de un gráfico en el PC con LabVIEW

El objetivo de este pequeño proyecto es crear en el ordenador una gráfica en dos dimensiones en la que presentaremos un punto cuyas coordenadas estarán controladas dinámicamente por los sensores de rotación de dos servomotores del NXT. Vamos a ver que es posible realizar el control de un gráfico en el PC con LabVIEW. Para ello introduciremos varios conceptos nuevos, que serán necesarios para entender el funcionamiento del programa. Aunque este nuevo programa no tiene ninguna finalidad en sí mismo, nos abrirá las puertas para la creación de proyectos más complejos. Seguir leyendo →

Vehículos de Braitenberg en RobotC

FrontalLos vehículos de Braitenberg fueron concebidos por el investigador Italo-Autriaco Valentino Braitenberg para ilustrar de manera evolutiva las habilidades de agentes simples. Los vehículos representan la forma más simple de inteligencia artificial basada en comportamientos o conocimiento corporal, por ejemplo el comportamiento inteligente que surje de la interacción sensor-motor entre el agente y su entorno, sin necesidad de una memoria interna, representación del entorno, o inferencia. Hoy probamos los vehículos de Braitenberg en RobotC. Seguir leyendo →

Bump-Go en RobotC

Bump&Go2En el artículo de hoy voy a explicar el Bump Go en RobotC. El Bump Go es un programa en el que el robot se mueve aleatóriamente por una habitación esquivando obstáculos cuando los detecta. Puesto que el movimiento es aleatorio llegará un momento en que se haya movido por toda la habitación. Este tipo de robot ya existe, y tiene uso comercial, como la aspiradora Roomba, que es capaz de aspirarte la casa automáticamente. Seguir leyendo →

Sonar mejorado en RobotC

Sonar1En el artículo anterior vimos como implementar el sonar básico. En este artículo voy a trabajar un sonar mejorado en RobotC para que tenga una mayor funcionalidad, y se puedan observar mejor los objetos por pantalla. Para ello usaremos nuevas funciones del LCD del NXT, y seguiremos utilizando la trigonometría para mostrar de forma precisa objetos por pantalla. Seguir leyendo →