Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Bien, estoy acabando por fin.
La breve descripción de siempre: El proyecto consiste en capturar video en movimiento de una persona. CUando dicha persona mueva un brazo, un robot (robonova o lego nxt) conectados al PC debe imitar dicho movimiento.
Está programado en C con OpenCV, de momento es una versión beta y no sé si puede jorobar algo de vuestros PC's por tanto muestro unas imágenes y descripción del funcionamiento. Si interesa, haré un tutorial de programación cuando lo acabe del todo y lo presente.
-----------------------------------------------------------------------------------------
Primero se nos muestra un menu de usuario. Hay unos checkbox para mostrar los distintos resultados del programa, un textbox y varios botones.
El usuario pulsa el botón "Ver referencia" y se le muestra una ventana donde con un slider
Ajustando el slider debe obtener una imagen aproximada de su torso. Fijaos que el rectangulo ajusta al torso dinámicamente (se muestra tal cual en el programa). Con una flecha roja he indicado que el slider se ha movido (esa flecha es paint, no del programa)
Cuando el usuario decide que la imagen de referencia es más o menos adecuada, pulsa el botón "Capturar referencia". Se muestra el resultado obtenido:
Ahora el usuario pulsa "Capturar video", con lo que dinamicamente el programa calcula el ángulo que forma el brazo del usuario con el torso del mismo. Muestro las ventanas de Video Real (información que se muestra al usuario, con una linea verde se le señala su brazo, y un rectangulo rojo marca su torso. Esta linea y rectangulo son reales del programa, no añadidos posteriores).
Por otro lado una ventana muestra solo el brazo, como procesamiento interno, con la línea blanca a partir de la cual obtengo el ángulo.
Finalmente fijarse en el textbox, que muestra el ángulo de forma numérica
-----------------------------------------------------------------------
El siguiente paso es comunicar ese ángulo al Robonova para que mueva el servo adecuado. Estas librerías de comunicación ya las tengo hechas.
Otro paso sería comunicar la misma información a un LegoNXT. Esto todavía no lo tengo pero creo que es bastante sencillo mediante NXC (programación en C para Lego) y enviar el ángulo mediante un bluetooth.
Muy interesante trabajo, felicitaciones jorcoval 😀 😀