viernes, enero 20, 2012

Una serpiente de Rubik viva

Como ocurre con el 99.9% de las ideas que se me pasan por la cabeza, o no tengo tiempo o no tengo dinero (ni se a quién recurrir) para hacerlas realidad. Así que, una vez más, me conformaré con lanzar el guante y esperar que alguien lo recoja y lo plasme en algo material.
Esta vez se me había ocurrido construir una serpiente de Rubik que se "retorciera" por sí sola, enviándole los movimientos que ha de realizar por ordenador. Supongo que la mayoría conocéis las quasi-infinitas figuras que se pueden conseguir con el invento y, pensé que verlo realizar los movimientos por si sólo sería muy "espectacular". No creo que tenga otra utilidad que la de asombrar al personal, aunque la posibilidad de movientos es tanta que quizá se podría utilizar como "brazo robótico" para alcanzar posiciones sólo accesibles a mecanismos con muchos grados de libertad.


La idea ha estado madurandose toda esta semana y más o menos ya tengo perfilado el proceso de creación de la criatura:
1 - Por un lado, comenzaría por realizar un programa para simular desde el ordenador los movimientos de la serpiente, verlos en la pantalla y, una vez que esté construida, usar el programa para transmitir las acciones. Este tema por si solo me parece muy interesante por los siguientes motivos:
a) requiere de un sistema de coordenadas para identificar cada una de las 24 piezas de las que consta la serpiente y luego de cada una de las 4 posiciones que cada ficha puede tener con respecto a la anterior. En la web ya hay una manera de codificar esos movimientos aunque no sé si es el más adecuado. Yo creo que indicar número de pieza y giro en una sola dirección sería mejor. Darle una vuelta a la cuestión delas coordenadas ya me parece muy interesante.
b) el mero hecho de poder manipular la serpiente con simulaciones, puede decirnos mucho de este sistema. Se podrían estudiar cosas como todas aquellas figuras que se pueden construir con instrucciones simétricas (ej: pieza 1 -90º, pieza 2 - 90º, pieza 3-90º....) o viceversa, ver qué tipo de instrucciones son aquellas que podrucen figuras simétricas. También se puede investigar qué tipo de instrucciones generan figuras cerradas, es decir, aquellas en las que los dos extremos se unen y, como estos ejemplos muchos otros. Desde el punto de vista de robótica, sería interesante identificar qué instrucciones tienes que dar a la serpiente para que si uno de sus extremos está en el 0,0,0 de coordenadas su otro extremo termine en unas coordenadas definidas (ejemplo: (1,1,1); (1,2,1)....) Además podrías averiguar qué puntos del espacio son los accesibles por la cabeza de la serpiente de todos los posibles a los que puede llegar, ie, aquellos dentro de la esfera de radio igual a la longitud de la serpiente.

Como véis un sin fin de posibilidades, de por sí, muy interesantes.
Para programar esto, yo utilizaría algún programa matemático con posibilidades gráficas como MATLAB (algo ya hay hecho por la web) pero seguro que hay cientos de ellos. El resultado podría ser como el del vídeo que aparece en el siguiente enlace.



2 - Por otro lado, está la construcción de la serpiente, esto es, mecánica y electrónica necesaria.
Seguramente haya muchas mejores maneras de llevarlo a cabo que la que he estado sopensado (puede ser que incluso no funcione) pero es la que me ha parecido más directa. Cada pieza de la serpiente constaría de una unidad compuesta de:
- un motor paso a paso que permira girar la pieza vecina en pasos de 90º.
- un sistema de radio frecuencia que permita recibir las señales enviadas por el ordenador.
- batería correspondiente para alimentar los componentes.

Para que las dimensiones de cada pieza sean razonables, he estado buscando motores paso a paso lo más pequeño posible (los hay de un par de cm) que tengan el controlador de movimientos integrados (los que ha visto hacen que la unidad sea de unos 5cm en total) y que puedan alimentarse con baterías de botón (para reducir tamaño; las que más voltaje dan son de 3V). Como os podréis imaginar, esta unidad no debe existir en el mercado y habría que pedir a un fabricante hacerla a medida.

Después iría la parte del sistema de radio frecuencia que a penas he pensado pero que posiblemnet fuera muy similar a la que utilizan los kilobots. De hecho mi idea es que todo el sistema de movimiento tuviera un tamaño no mayor al de los kilobots (de donde saqué la idea de usar la batería de botón) pero no sé si será posible.



Notas finales: Sobre este diseño, hay muchas cosas que hacer, entre ellas evaluar el peso de la serpiente con todas las unidades montadas y ver si los motores tienen un par que soporte dicho torque.
Sea como sea, me parece un proyecto intesante y bonito que con una pensada, igual hasta tenía alguna utilidad. Si alguien se anima... que m eponga en los agradecimientos. ;-)

3 comentarios:

  1. quiero k pongais k salga un video de la bola k me parece k hace 1m

    ResponderEliminar
  2. Pues inventazo chaval, vaya si lo veo. Que falta de viernes me cago en la p… de todas formas ándate con ojo con el “japo”.

    ResponderEliminar
  3. Wow, pues me ha costado un montón de días hacerme hueco para leer feeds, pero este post tuyo es muy guapo. Con algo de tiempo para programarlo, las simulaciones pueden molar porque no hace falta gastar pasta en cacharros, pero ver la serpiente robótica en marcha debe ser la hostia :P

    (El OpenID me da error hoy con Blogspot)

    ResponderEliminar