Lo nuevo de la robotica
Abril 17, 2010 por geus 4 comentarios
ROS corre el riesgo de convertirse en el estándar de facto en el desarrollo de sistemas robóticos. Los chicos de Willow Garage no paran de sorprender a todo el mundo y convierten en oro todo lo que tocan. Lo genial de la historia es que la SpinOff de Stanford publica como software libre todo el código quedesarrolla, están mas que abiertos a la colaboración y documenta todo de manera excelente realizando grandes esfuerzos de divulgación. Todo un ejemplo.
Sigo a este grupo desde hace un año (casi desde su nacimiento) y sinceramente, los admiro profundamente. Para el que no sepa que es esto de ROS, intentaré hacer una breve introducción (aunque es muy complicado porque tiene muchísimas cosas):
¿Qué esROS?
El nombre de ROS viene de “Robot Operative System” ROS puede clasificarse como un Framework de Desarrollo en Robótica (RSF) y ofrece herramientas y librerías para el desarrollo de sistemas robóticos. A pesar de su nombre, ROS no es un sistema operativo propiamente dicho (de hecho funciona sobre linux), sino de una infraestructura de desarrollo, despliegue y ejecución de sistemas robóticosasí como una gran federación de repositorios que ofrecen paquetes con software de todo tipo para robots. A diferencia de la mayoría de los RSFs existentes, ROS pretende dar una solución integral al problema de desarrollo de robots aportando soluciones a las áreas de:
* Abstracción de Hardware (HAL) y reutilización e integración de robots y dispositivos encapsulando estos tras interfacesestables y manteniendo las diferencias en archivos de configuración.
* Algoritmos de robótica con bajo acoplamiento: desde algoritmos de bajo nivel de control, cinemática, SLAM, etc. Hasta algoritmos de alto nivel como planificación o aprendizaje. También otros muchos mas específicos como: como lograr que el robot X coja un objeto o el robot Y se autoenchufe a la red eléctrica.
* ROS provee deun mecanismo comunicaciones (middleware) distribuido entre nodos del sistema robótico. Un nodo es cualquier pieza de software del sistema (desde un algoritmo SLAM hasta un driver para el manejo de un motor). El objetivo de este sistema es doble: 1- encapsulado/abstracción/reutilización de software e 2- ubicuidad, es decir, independencia de donde este nodo está localizado (un sistema robótico puedetener muchos procesadores). Estos nodos se comunican entre ellos mediante mecanismos de paso de mensajes RPC o Publish/Subscribe, Service lookup, etc. Permite crear arquitecturas P2P de componentes robóticos distribuidos.
* Simulación de sistemas robóticos en mundos virtuales con dinámicas de sólidos rígidos.
* Herramientas de desarrollo, despliegue y monitorización de sistemasrobóticos.
Para darle algo de alegría al post, adjunto un vídeo con un poco de acción. Este es uno de las decenas de vídeos en youtube sobre ROS, trata sobre la herramienta de monitorización rviz, puede servir para que veáis un poco la esencia de ROS:
¿Qué ofrece respecto a otros RSFs?
Pocas cosas en ROS son auténticamente nuevas a nivel técnico, ROS parece estar inspirado en muchos otros RSFs existososcomo Player/Stage/Gazebo, Yarp, Orocos, Carmen, Orca, OpenRave, Open-RTM (todos ellos OpenSource) e incluso en muchos aspectos se asemeja a tecnologías mas lejanas como JADE (Sistemas Multi-Agentes). Sin embargo, ROS ha logrado agrupar las muchas de las mejores características de todos estos proyectos dando una solución integral y muy uniforme al problema de desarrollo de sistemas robóticos. En secaracteriza por ser una plataforma multi-lenguaje (c++,python,octave,java), peer2peer, orientado a herramientas, ligero y OpenSource. En cualquier caso, en este post no me quiero centrar en los aspectos técnicos (a pesar de que se trata de una plataforma técnicamente genial). Para conocer mas sobre ella mejor echarle un vistazo a su wiki http://www.ros.org/wiki o a este paper del ICRA 2009...
Regístrate para leer el documento completo.