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 →

Manejo simultaneo de varios NXT en LabVIEW

MiniNXTEn 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 →

Crear bloques para NXT-G con LabVIEW

En alguna ocasión nos hemos preguntado por la posibilidad de crear un nuevo icono gráfico para aquella funcionalidad que nos gustaría ver implementada. En su momento explicamos cómo implementar funciones trigonométricas en NXT-G en dos artículos, dado que estas funciones no han sido implementadas. Existen una forma distinta de resolver el problema, y consiste en crear un icono nuevo de NXT-G que ejecute dicha función. Esto es posible mediante el uso de LabVIEW. Vemos, pues, hoy, cómo crear bloques para NXT-G con LabVIEW. Seguir leyendo →

Construcción de puentes de asalto

Existen varias alternativas para la construcción de puentes de asalto. El objetivo de los mismos es el de poder sortear brechas de cierta longitud en las que no existe un puente construido previamente. Dado que la misión principal suele ser apoyar un ataque, el puente debe ser construido a gran velocidad y, a ser posible, con el menos uso posible de recursos humanos. Su uso los limita normalmente a aplicaciones militares en tiempos de guerra. Seguir leyendo →

Sigue líneas en LabVIEW: Máquinas de estado

maquina_de_estado_finitoContinuamos 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 →

NXT Blade Runner

bladerunnerYo he visto robots que vosotros no creeríais.
Atacar Mindstorms en llamas más allá de electricBricks.
He visto sensores de luz brillar en la oscuridad cerca de la puerta de la tienda.
Todos esos momentos se perderán en el tiempo, como un datalog mal guardado.
Es hora de apagarse.

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 →