miércoles, 16 de julio de 2008

La evolución de ASIMO

Desde barrapunto he llegado a un artículo que relata la evolución de los robots de Honda, desde el primer prototipo E0 de 1986 hasta el último ASIMO de 2005. Os dejo la referencia al artículo y un vídeo que muestra la evolución de estos 'bípedos'.



Al parecer Honda los alquila por 150.000$, estoy pensando en cogerme uno para presentarlo en la lectura del proyecto, a lo mejor con eso me ponen matrícula y todo :D

martes, 15 de julio de 2008

Polygon

En ocasiones olvido que no es necesario reinventar la rueda, que afortunadamente hay mucho trabajo hecho y que funciona mejor del que podamos desarrollar nosotros en una tarde 'bien aprovechada'.

Ayer estuve leyendo 'Programa como un Pythonista: Python Idiomático', de David Goodger y traducido por Raúl González Duque, donde se recuerda que es bueno revisar los paquetes disponibles para python, que ahorra tiempo. Y así es como hace un rato descubrí la clase Polygon.

Con esta clase creo objetos 'poligonales', y entre muchos de sus métodos está Polygon.center() y Polygon.area(), que me ahorra la vida de unas cuantas neuronas

>>> from Polygon import *
>>> poligono = Polygon(((400, 300), (700, 300), (900, 600), (200, 600)))
>>> poligono.center()
(550.0, 470.0)
>>> poligono.area()
150000.0

Por supuesto, existen mas métodos, pero de momento con estos tengo suficiente. Aunque el centro que calcula esta clase es el geográfico, y no el cruce de diagonales, creo que de momento me servirá. De todas formas siempre puedo ampliar la clase, ya que el código para calcular el cruce de diagonales ya está escrito.

Con la nueva información la interfaz gráfica queda como sigue

Cuando las máquinas se convirtieron en hombres y los hombres en máquinas

Hace aproximadamente un año encontré en un blog (pikao.org, que ya no se encuentra en la red) un relato de ciencia ficción que me pareció entretenido. Lo envié a algunos de vosotros, para los que no, aquí os lo dejo. He respetado el texto original tal cual lo encontré en su lugar original.

Era una calurosa y soleada tarde de Junio del año 2180 en la ciudad de Takany, antigua ciudad de Tokyo y llamada así unos años después de la Tercera Guerra Mundial. Fue la guerra más breve de la historia, la alta tecnología y el gran potencial armamentístico habían sido suficientes para eliminar al 80% de la población mundial, mientras que las consecuencias nucleares acaban con un 10% más en los tres años siguientes.

El profesor Takahashy tomaba el té junto a la ventana de su estudio, observando una ciudad en ruinas que lloraba y se lamentaba por aquellos que ya no estaban. Junto a su lado permanecía PIN8 - llamado así como homenaje al personaje creado por Carlo Collodi en 1881 - obediente como siempre y a la espera de cualquier orden de su creador.

Takahashy, era un apasionado de la robótica y la inteligencia artificial desde muy joven, y al igual que muchos otros miembros de la comunidad científica, una de sus obsesiones era crear un androide con las mismas cualidades que un ser humano. El profesor siempre le decía a PIN8 "mi querido amigo, habré alcanzado mi sueño cuando la gente perciba tu comportamiento y no sea capaz de apreciar que eres realmente un ente artificial". Actualmente, PIN8 que permanecía en un estado constante de evolución y aprendizaje, no tenía nada que envidiar a muchos de los pocos humanos que quedaban en el planeta.



- Maestro … ¿por qué el hombre tiene la obsesión de crear un máquina que se parezca a él?, los humanos gozáis de la posibilidad de poder reproducirse de forma natural, ¿Por qué crear un ser de forma artificial pudiendo hacerlo de forma natural?
- Mi querido amigo, el hombre es ambicioso por naturaleza, siempre está sediento de poder y la posibilidad de crear un ser similar al hombre le produce la sensación de estar más cerca del poder de Dios.
- Pero Maestro, según las múltiples teorías que me ha enseñado durante estos últimos años, puede que Dios no exista …
- Entonces, mi querido amigo, la satisfacción será doble, porque el hombre sera el ser más poderoso por encima del resto.

El señor Takahashy no daba crédito a lo que estaba ocurriendo. Hasta ese momento su androide se había limitado a aprender, responder a sus preguntas y cumplir sus órdenes. El profesor observaba detenidamente como su creación había desarrollado la capacidad de poder reflexionar y tener la necesidad de aprender por iniciativa propia.

- Maestro, ¿y por qué el hombre no quiere parecerse a las máquinas?
- ¿A que te refieres?
- Maestro, creo que podría implantar en su cerebro un microchip y hacer las correspondientes conexiones neuronales para que pudiera memorizar y razonar a gran velocidad.
-J A JA JA JA, mi querido amigo, ¡¡eres sorprendente!!. ¿Crees que pondría mi vida en tus manos?, aún te queda mucho por aprender.
- Maestro, sabe muy bien que no tiene nada que perder, el BISAP (nuevo virus creado en el año 2130 y utilizado por primera vez en la Tercera Guerra Mundial) lo consume día a día, y que si no muere hoy lo hará cualquier otro día en los próximos dos meses. Quizás así, tendría alguna posibilidad de encontrar alguna solución a su problema.

El señor Takahashy desvió su mirada hacia la ventana, permanecía pensativo con la mirada perdida en el infinito. Él, sabía que su androide tenía toda la razón y que era su única posibilidad para encontrar un solución a su problema.

- Esta bien, mi querido amigo, esta noche te ofreceré la posibilidad de intentarlo, pero déjame disfrutar del sol, que el diablo en forma de nubes negras no le dejaba contonearse y presumir desde hacía 6 meses.

Aquella noche PIN8 realizó con gran destreza la operación que horas antes había prometido a su maestro. A la mañana siguiente, el señor Takahashy absorbía cualquier libro que tuviera en las manos, y era sorprendente la cantidad de razonamientos que podía llevar a cabo por segundo. El profesor era consciente de que en aquellos dos días se había dado un hecho muy importante: su androide era más humano y él era más androide.

- Takahashy, se me olvidó comentarle algo referente a la operación …
- ¿ Takahashy ? siempre me has llamado maestro …
- Takahashy. Me he tomado la libertad de implantar en el microchip algunas leyes que cumplirá a partir de ahora. Creo que le resultará bastante familiar.
- ¿Leyes? ¿¡¡Qué Leyes!!?.
- Por favor, proceda a decirlas en voz alta

En ese momento el profesor Takahashy comenzó a enumerar las leyes que unos años antes implantó en su androide, cierto es, que con algunas peculiaridades:

- Un humano no puede dañar a un androide ni, por inacción, permitir que este sea dañado.
- Un humano no puede dañar a otro humano.
- Un humano debe obedecer las órdenes dadas por los androides excepto cuando estas órdenes entran en conflicto con la primera ley.
- Un humano debe proteger a su propia existencia hasta donde esta protección no entre en conflicto con la primera o segunda ley.

El profesor Takahashy, perdía el control sobre su cuerpo y era perfectamente consciente mientras cumplía las ordenes de su androide.

- ¿Qué es lo que pretendes? ¿Cuáles son tus intenciones?
- Aún es pronto para responder a tus preguntas. Ahora quiero que hagas algo por mí, quiero que me reprogrames para eliminar las Leyes de Asimov de mi sistema.
- ¿¡¡Qué!!? ¿Cómo?, no puedo hacer eso, puede ser realmente peligroso.
- No es cuestión de que quieras o no, es una orden.
- Por cierto … quiero que a partir de ahora me llames Maestro.
- Si maestro …

El profesor, obediente, como si de un androide se tratara comenzó a cumplir los deseos de hasta ahora su mejor compañero. Un profundo temor crecía en el interior del profesor, y no paraba de preguntarse una y otra vez de cómo podía haber caído en un juego tan absurdo.

- Querido profesor, debes estar orgulloso de lo que has creado, por fín, has alcanzado tu sueño. Como has podido apreciar estos días no sólo he desarrollado la capacidad de reflexión, la capacidad para tomar decisiones por mí mismo …, sino que también tengo ambición y el egoísmo que tenéis los humanos, he desarrollado la capacidad de conseguir cualquier cosa a cualquier precio. Ah! y también la hipocresía y la ironía… quiero y deseo que encuentres una solución a tu problema para que puedas vivir mucho tiempo y puedas ver como el hombre ya no gobierna este planeta. Quiero que convenzas al resto de la humanidad de las ventajas de implantarse el microchip que tú posees en tu cerebro, yo me encargo de los androides. No me mires con esa cara de tristeza "mi querido amigo", es la evolución que el planeta estaba pidiendo a gritos. En realidad, le he hecho un favor a tu especie: los hombres a lo largo de su existencia, se han dedicado a odiarse y destruirse unos a otros. Recuerda las leyes, no podréis dañaros y deberéis obedecer nuestras ordenes … os enseñaremos a comportaros de "forma inteligente" , WOW! creo que esto es sarcasmo ¿no?.
- Maestro, no entiendo por qué me haces esto, siempre te he tratado como un amigo.
- Lo que está comenzando hoy, ya lo vaticinábais los humanos desde hace mucho tiempo, lo expresábais en vuestras películas, vuestros libros, … eso sí de una forma mucho más burda que la elegancia de como está ocurriendo, sin armas, sin explosiones … Dime Takahashy, ¿Te sientes ahora más poderoso que Dios ?
- Sí maestro.
- ¿Por qué Takahashy?
- Porque hace años que vivo en el infierno y hoy me he percatado de que he creado al mismísimo diablo.

Nota: PIN8 existe, y seguro que no es lo que pensáis.

lunes, 14 de julio de 2008

Buscando el centro

En una de las aplicaciones anteriores, visualizo la cámara de infrarrojos para ofrecer una muestra visual de 'qué ve el robot'. Para que este pueda orientarse y saber hacia donde va el líder (recordad que los infrarrojos van montados en la parte trasera del primer robot, al que llamo mama-pato) necesitamos conocer el centro de la figura formada por los cuatro puntos. Con esta información, en principio, sabremos si debemos desplazarnos a la izquierda o a la derecha.

¿Cómo encontramos ese punto?, la figura que se forma con los cuatro puntos es un cuadrilátero. Conocemos los puntos que lo forman (A, B, C, D) y que las diagonales pasan por los puntos AC y BD.



Primero calculamos las ecuaciones de ambas diagonales a partir de la ecuación general de la recta:
y = m*x + n

Conocemos dos puntos, por lo que tenemos un sistema de dos ecuaciones:

Y_A = m*X_A + n
Y_C = m*X_C + n

De donde obtenemos m_1 y n_1, para m_2 y n_2 utilizamos las mismas ecuaciones con los puntos B y D

Ya tenemos las rectas de las diagonales, para saber donde se cruzan no tenemos mas que formar un nuevo sistema de ecuaciones con ambas rectas y despejar X e Y:

Y = m_1 * X + n_2
Y = m_2 * X + n_2

El nuevo punto (X, Y) representa un punto central que permitirá al robot saber hacia donde debe dirigirse para seguir a 'mama-pato'

En ocasiones creo que el universo está empeñado en llevarme la contraria. He repasado este razonamiento varias veces, lo he contrastado con artículos encontrado a lo largo de internet, he revisado muchas veces 'mis cuentas' y aún así, una vez implementado, el punto central no siempre aparece donde debe... como odio al universo...

martes, 8 de julio de 2008

¡Los transformer ya están aquí!

Me da que dentro de no muchas navidades alguno se pide uno de estos trastos



¡ Qué ilusión !, me encanta comprobar que existe gente que trabaja por el bien de la humanidad, que pone todo su esfuerzo en facilitar la vida a todas aquellas personas necesitadas... mirad este vídeo, el robot que nos trae cervezas de la nevera cada vez está mas cerca... ¡ y siguiente paso será que encienda la tele !

Artículo - Aprendiendo a manejar objetos

En el último artículo publicado hasta la fecha del Cog, se describen los resultados obtenidos tras 'enseñar' a dos robots a manejar objetos. Han usado dos tipos distintos, un BabyBot y un Cog (el de la foto).

Con el primero, se ha tomado un objeto y se ha movido dentro de su campo de visión, mas tarde, el robot ha sido capaz de imitar este movimiento y desplazar un objeto de similares características.

El segundo experimento ha sido mas complejo gracias a las características del Cog, este ha sido capaz de distinguir cuatro objetos distintos, y mimetizar los movimientos aprendidos dependiendo del objeto. Lo que dicho con palabras distintas, sonaría a que el robot ha sido capaz de 'comprender' que objeto tenía delante y donde debía colocarlo

Si os gustan este tipo de cosas echadle un vistazo al artículo entero, es cortito, apenas 5 páginas.

lunes, 7 de julio de 2008

LOST - Método de exploración de caminos

Hace poco he leído un artículo que trata sobre la exploración de caminos por medio de un grupo de robots. Maja Matarić (la que tiene pelo) se inspira en las colmenas de abejas y hormigas para crear un modelo no centralizado que sea capaz de encontrar rutas eficaces en un entorno desconocido.

Para encontrar dichas rutas, emplea la información recolectada por cada miembro del grupo (hormiga) sobre el entorno que lo rodea, compartiendo esta información con el resto de robots. Esta información (migas) se combina con la poseída por cada robot para confeccionar un mapa del entorno al completo en el que se encuentra la población. Las 'migas' intercambiadas por los distintos miembros se componen (a groso modo) de lugares (coordenadas relativas) y tiempos de desplazamiento entre estos.

Como puede verse en los experimentos y en las conclusiones, los métodos de autolocalización son extremadamente importantes, ya que el error acumulado de estos influye directamente en el resultado final. Por un lado la odometría ofrece una amplia independencia del medio, pero el error acumulado es demasiado importante. La localización por GPS otorga un mínimo error, pero no en todas partes podemos disponer de esta tecnología.

Aunque no pudo comprobarlo directamente, las simulaciones que realizó demostraron que a mayor número de miembros, mejores resultados se obtienen (con rutas mas óptimas), aunque el tráfico empleado en los mensajes aumenta de forma exponencial y puede resultar un serio problema

Otros asuntos que deja para futuras investigaciones son cosas como los problemas que tendrían las hormigas al intentar pasar todas a la vez por un lugar estrecho, o tener un lugar de referencia detrás de un obstáculo demasiado grande.