domingo, 30 de septiembre de 2012

RSF o Middleware para Robots

Una vez más creo oportuno hacer un break en mis entrada de opinión para ponerme un poco técnico y tratar de ayudar a los que sean curiosos o tengan problemas en sus proyectos. Esta vez voy a hacer una pequeña introducción a la robótica.

La robótica a gran escala, me refiero a sistemas con hardware de gran envergadura y no a los robots BEAM u otro tipo de robots simples (que no por ello son menos importantes), requiere de dispositivos cuyo manejo necesita de un software complejo. Por ejemplo, cuando se quiere usar un laser como es comprensible el acceso a los datos que provee este aparato, no es lo mismo que usar un sensor de proximidad de infrarojos o un sensor de ultrasonidos que pueden ser manejados por un simple PIC. De estas necesidades software se derivan muchas otras necesidades como: un sistema de computo potente (ordenador, pc104, placas con procesadores ARM potentes...), un conocimiento mucho más en profundidad del hardware, etc.

De esta problemática surgieron programas gigantes y nada reutilizables, para el control de un robot y de todos los dispositivos que lo componían. Por lo que si se construía un nuevo robot con componentes similares al anterior, no era posible reutilizar ni tan solo el software de esos componentes (salvo un buen diseño software). Gracias a Dios, entre los miembros de esta comunidad de investigadores habían muchos licenciados en computer science engineering (aka ingenierios informáticos)  y se dio con una solución bastante potente para el problema. Esta solución es el middleware para robots o RSF de las siglas Robotics Software Framework.

¿Cual es la utilidad de un RSF? Bien, se trata de una capa de abstracción software que sirve para que el programador se despreocupe de la implementación específica de un hardware y de todos sus detalles como drivers o APIs del fabricante. De esta forma se normaliza la programación para robots, y permite por ejemplo usar un laser dando igual la marca o modelo que sea, siempre que este tenga soporte dentro del middleware para robots.

Ahora viene lo mejor, esos componentes hardware concretos tienen sus correspondientes módulos/componentes software genéricos que homogeinizan el hardware, pero tienen que estar corriendo en un servidor al cual se conecta el software desarrollado por el usuario del robot. Bien, esto quiere decir que debe existir alguna forma de comunicarse con esos módulos para poder obtener información y controlarlo. Lo habitual, contra todo pronóstico, es que esa comunicación se realice mediante la pila de protocolos de red, haciendo uso de TCP/UDP.  ¿Por qué esto? para dar más flexibilidad de la que da el propio diseño modular, distribuir los componentes de un robot, permite la construcción de un sistema robótico mas complejo aún y por tanto más potente aunque a costa de problemas derivados de la comunicación.



Para que se entienda mejor el funcionamiento, pongo una imagen de un middleware comercial.


Los middleware más extendidos son Open source y por eso mismo son los más recomendables (si se encuentra un bug, se puede modificar, son los más extendidos por lo tanto son los que tienen mayor número de componentes..). Pero también a la hora de hacer la elección del RSF que se quiere usar en el robot, debería ser un factor muy importante la existencia de un software de simulación.

El software de simulación con normalidad se integra perfectamente con el RSF, consiguiendo que el desarrollador no necesite tener el hardware real para programar la aplicación que maneja el robot. Además, no solo simula el hardware sino también un entorno, pudiendo representar casi de forma fidedigna la respuesta del aparato en un entorno real.

Una pequeña recopilación de los RSF:

-ROS
-Player/Stage
-Miro
-UPnP
-ORCA
-Urbi
-OpenRDK
-OROCOS

domingo, 23 de septiembre de 2012

Retro review SONY VAIO P11Z





Hace poco que me he hecho con este subnotebook y a petición de un compañero de foro voy a hacer esta pequeña review.

El Sony VAIO P11Z es un netbook interesante por la cantidad de hardware extra que equipa y por su tamaño, más que por otra cosa. Su rendimiento es bastante escaso si lo comparamos con un netbook actual, ya que si se tiene en cuenta que tiene un procesador Atom 520z o 540z en las versiones más potentes (1,8GHz) ya podeis imaginaros que puede tener problemas para mover incluso algunos juegos web hechos en flash (por ejemplo el settlers online del que ya hice una review). No quiere decir que sea pésimo, sino que su procesador es la primera generación de Atom y además en la gama de bajo consumo, sin contar el chip gráfico que aunque es "moderno" es una intel GMA500 (que viene siendo la GPU prima hermana que la de algunos móviles actuales, osea un derivado de PowerVR)

Como ventajas, ese procesador y GPU hacen que tenga un consumo reducido, pero se da el caso de tener una batería de muy escasa capacidad para también ahorrar en espacio, por lo que solo tiene 2 horas de autonomía. Yo tengo la batería de alta capacidad y me dura 4 horas aproximadamente con la wifi activa, pero hace que el portátil pese mucho mas (lo digo en relación al peso del portatil). 

También se trata de un netbook muy pequeño (no tanto como los viliv pero por el estilo) con una pantalla de resolución brutal 1600 x 768 y un peso de unos 600 gramos. El teclado es muy cómodo para el tamaño que tiene, algo que no se cumple en equipos como el Jornada 720 (se que no es un netbook pero tiene teclado completo que supuestamente se puede usar con las dos manos), los viliv o Kohjinsha (que son mi debilidad pero la cordura no me deja comprarlos).

El hardware adicional que lo convierten en un must have, es el GPS,el modem 3G y la pantalla de excelente resolución. Es cierto que hace que la duración de la bateria baje, pero te dan una flexibilidad brutal para alguien que este continuamente viajando. El otro punto débil es la pésima cámara, pero es suficiente para lo poco que se suelen usar (personalmente no la uso nunca así que paso)

¿Que ocurre con el software? Todos los drivers están disponibles para windows vista, pero no me extrañaría para nada que en windows 7 sean compatibles (normalmente los drivers para Vista funcionan sin problemas en 7 al igual que lo hacian en XP los del 2000). Un SO que no he probado y que a priori parece que sera compatible, es con Android X86 que actualmente ya esta en la version ICS. También existe un software de downgrade ofertado por la propia SONY que descarga todo lo necesario para que el Vaio P11Z funcione al 100% en XP.

En cuanto a Windows 8, lo he usado con bastante satisfacción (en la entrada que hago la comparativa con Windows XP podreis leer mas al respecto). Me ha asombrado ver como se mueve mejor con la nueva versión del SO de Microsoft que con las anteriores, pero he recibido quejas sobre el mal funcionamiento del GPS. Dudo mucho que sea tan malo como lo era el del Toshiba Libretto W105 (que carecía de antena conectada al modulo). Lo recomiendo totalmente, si tienes la intención de usar uno de estos para trabajo. Piensa que cuesta cerca de 300 euros (completo y perfectas condiciones) de segunda mano un equipo que es del 2009 y con hardware  que podemos asumir que esta desfasado en comparación con otros equipos del mismo precio. Osea, es un equipo muy valorado.

En resumen, comparándolo con mi último subnotebook, el Toshiba Libretto W105, tiene un rendimiento ridículo pero su grosor es menor aunque es mas largo. Dándole una puntuación en dimensiones tiene un 7/10 pero en hardware un 4/10 frente al Libretto al que le daría un 9/10. Estamos hablando de equipos de fechas  de salida muy próximas. El consumo, el calor disipado, y el teclado físico me hacen afirmar que el VAIO es más apropiado para el trabajo y me durara más tiempo que mi añorado W105 pero solo haciendo uso de la batería de capacidad extendida que se puede adquirir en ebay por 56 euros.