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 →
Tag Archives: programación
Manejo de imágenes con LabVIEW
En 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 →
Control remoto del NXT desde servidor Web
Seguimos explorando las posibilidades de control remoto para el Mindstorms NXT, ya hemos visto varios ejemplos de control remoto vía bluetooth, ahora vamos a ver NXToIP, una aplicación que permite el control remoto del NXT desde servidor Web en tiempo real. Seguir leyendo →
Reconocimiento de piezas de distintos colores (I)
En 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
En 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
A 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 →
Vehículos de Braitenberg en NXT-G
Siguiendo con la serie de artículos sobre los vehículos de Braitenberg en NXT-G, que ya vimos en los artículos Braitenberg en LeJOS y Braitenberg en RobotC, hemos querido ir un poco más allá haciendo un sistema de robots que, a modo de tren autónomo, buscan la luz de su compañero de delante para seguir el recorrido. Seguir leyendo →
Manejo simultaneo de varios NXT en LabVIEW
En el artículo de hoy vamos a ver cómo conectarnos y realizar el manejo simultaneo de varios NXT en LabVIEW. Es un proceso algo complicado, y debido a las limitaciones propias del Bluetooth, poco fiable. Por tanto la mejor manera de que todo funcione bien es que el PC sea quién realice las conexiones y los cálculos, por lo que trabajaremos en LabVIEW orientado a PC y no a NXT (revisad el artículo LabVIEW orientado a PC o NXT. SubVIs). También explicaré al final cómo renombrar los NXT y descargar el firmware con LabVIEW. Seguir leyendo →
LabVIEW orientado a PC o NXT. SubVIs
En el artículo de hoy vamos a ver qué diferencias hay a la hora de ejecutar un programa para NXT mediante el modo LabVIEW orientado a PC o NXT. SubVIs: Trataremos además el tema de cómo crear SubVIs, que son la forma que se emplea en LabVIEW para crear funciones o métodos que después podamos usar fácilmente en otros programas. Seguir leyendo →
Sigue líneas en LabVIEW: Máquinas de estado
Continuamos con la serie de artículos de LabView, esta vez con un programa un poco más complicado: Sigue líneas en LabVIEW: Máquinas de estado. Como sabréis, una máquina de estados finita o autómata finito es un sistema que dependiendo de unas entrada de datos, opera con ella y devuelve una salida. Hay muchas máquinas de estados que nos podemos encontrar en el día a día; por ejemplo las máquinas expendedoras son máquinas de estados, los semáforos son máquinas de estados, hasta los interruptores de luz de nuestra casa son una máquina de estados. Seguir leyendo →