Problema de la deriva en NXT y LeJOS

lateralEstudiamos hoy el problema de la deriva en NXT y LeJOS. Se trata de uno de los problemas que tienen cualquier sistema que tenga que desplazarse, y en particular un robot NXT móvil: la deriva en la navegación. La deriva es el desvío de la trayectoria real respecto de la trayectoria prevista, y se debe a diversos factores. Cuanto menos deriva tenga un robot más preciso será su desplazamiento y menos se desviará de su destino objetivo al finalizar el movimiento. Este problema es muy común con los LEGO Mindstorms NXT debido a que no son robots con una forma única, sino que hay muchos montajes diferentes de robots móviles. La forma en que estén implementados los programas también influye en esta deriva. Seguir leyendo →

Manejo de imagenes y shift register en LabVIEW

Shift Register 5En el artículo del Lunes vimos como recorrer imágenes con LabVIEW. Para ello necesitábamos un bucle anidado que podíamos recorrer gracias a que teníamos la información de la altura, la anchura y el color de la imagen. A la hora de manejar bucles muchas veces nos interesa saber los resultados de operaciones en iteraciones anteriores para poder manejarlos y operar con ellos, aquí es donde entran los Shift Register, que guardan la información que queramos de una iteración anterior para que podamos usarla cuando queramos. En el artículo de hoy vamos a crear una nueva imagen a partir de la información que saquemos de una que ya tengamos. En resumen, manejo de imagenes y shift register en LabVIEW- Seguir leyendo →

Microsoft Robotics Developer Studio, ¡ahora Gratis!

Se acaba de anunciar que Microsoft Robotics Developer Studio será gratuito a partir de ahora. Esta herramienta permite programar y controlar (incluso remotamente) Mindstorms NXT haciendo uso de Visual Basic y C#. Anteriormente existían 3 versiones de este software, dos de las cuales requerían licencias de pago, ahora las 3 versiones se han unido en una sola, que puede descargarse y usarse sin coste alguno desde la página de Robotics Developer Studio. Seguir leyendo →

Manejo de imágenes con LabVIEW

Cono_HSVEn artículos anteriores de Visión Artificial hemos visto cómo manejar y procesar imágenes con OpenCV. También hemos visto la dificultad de pasar de los cálculos en OpenCV a acciones del robot, ya que teníamos que guardar los datos en un fichero, descargarlos al NXT, y procesarlos con RobotC u otro entorno. Sin embargo es posible procesar imágenes con LabVIEW, lo que es de gran utilidad ya que desde LabVIEW podemos además manejar al NXT directamente. Esto nos puede servir para procesar las imágenes que tome una cámara en tiempo real, lo que tiene muchas aplicaciones prácticas. Seguir leyendo →

Las posibilidades del DataLog, by Erling

ExcelAl hablar de robótica inmediatamente nos imaginamos máquinas capaces de andar, de moverse o de actuar de forma inteligente. Muchas de ellas solo están, aún, en nuestra imaginación, otras las vamos realizando a pequeña escala con nuestro NXT. En este artículo trabajamos algo menos conocido, pero necesario, las posibilidades del DataLog. Seguir leyendo →

Reconocimiento de piezas de distintos colores (I)

2010 LEGO color paletteEn el artículo anterior vimos como, teniendo un conjunto de colores, hallar la distancia mínima entre ellos, lo que nos sirve para calcular posteriormente un umbral aceptable que nos sirve para distinguir distintos colores por su RGB. En este artículo vamos a aplicar estos conocimientos a un programa que sea capaz de detectar varias piezas de diferentes colores, algunos de ellos muy parecidos. Si fueramos capaces de distinguir una pieza de determinado color entre piezas de más de diez colores distintos sería una gran hazaña, pues significaría que el programa tendría muchas aplicaciones. Seguir leyendo →

Distancias entre colores de LEGO

RGBEn artículos anteriores hemos visto cómo diferenciar colores en una imagen. Por ejemplo, cuando en una imagen teníamos una pelota azul y una roja las podíamos distinguir por sus valores RGB sin mucho problema; en este caso nos valía con que tuviera un valor de rojo o azul alto y bajos los demás para saber si era roja o azul. Sin embargo, cuando tenemos muchos más colores el problema se complica. Por ejemplo, si hay dos tonos de rojo, ¿cómo sabemos si el píxel que acabamos de detectar pertenece a uno o a otro?. El problema se agrava teniendo en cuenta que tenemos que dejar un margen en los valores RGB del color que buscamos, ya que las condiciones de iluminación o la calidad de la foto pueden variar bastante estos valores. Seguir leyendo →

Programación de robots por comportamientos

MultiNXTA la hora de ponerse a programar un robot hay muchos métodos distintos de programación, más o menos efectivos dependiendo del robot que queramos implementar. El método de programación mediante comportamientos es un método modular en el cuál vamos creando y añadiendo distintos comportamientos (seguir una línea, esquivar un obstáculo…). Estos comportamientos son independientes unos de otros, y en un principio podríamos utilizar todos los que queramos, incluso comportamientos creados por otra gente. La programación por comportamientos se basa en que hay un árbitro que decide qué comportamiento ejecutar en cada momento, dependiendo de las mediciones que tomen los sensores, o de si ya ha terminado la ejecución de otro comportamiento. Seguir leyendo →