Software libre para robótica (I)


Como bien sabéis los que leéis este blog de software libre, normalmente las entradas aparecen los lunes, miércoles y viernes. Pues he pensado que, a partir de ahora y durante algunas semanas (tengo previstas al menos tres), todos los viernes hable un poco de software libre utilizado en robótica. Seguramente esto me lleve a investigar un poco sobre el tema, pero como conozco varios casos podré explicarlos más o menos detalladamente, siendo estos que conozco los que sacaré en estas primeras cuatro entradas. Pues bien, ¡empecemos con el primer viernes! Hablaré un poco de la motivación de usar software libre en robótica y de ROS (Robot Operating System) que, aunque no lo conozco mucho, intentaré explicarlo lo mejor posible.

¿Qué nos lleva a utilizar software libre en robótica?

Entre otros posibles motivos, yo creo que la principal motivación para utilizar software libre en este área en concreto es clara: poder tener unos estándares y avanzar en una dirección común. A diferencia del software convencional o los sistemas operativos que podemos encontrar para ordenadores, y aunque un robot tenga inteligencia gracias a su procesador, todavía no existe una plataforma común con la que poder programar cualquier tipo de robot. Y su explicación es muy sencilla: cada robot es de su padre y de su madre. Lo que quiero decir con esto es que no es lo mismo un drone que un robot humanoide o un robot que se mueva gracias a unas ruedas. Aunque en esencia ellos tres puedan realizar tareas similares (como por ejemplo avanzar, retroceder, ir de un lado a otro, interactuar con el entorno…), no se comportan igual ante los mismos estímulos debido a cómo están hechos; por ejemplo, un drone para avanzar se tendrá que inclinar un poco, mientras que esa misma acción para un robot con ruedas será simplemente activar sus motores para que las ruedas giren o, en el caso del humanoide, ejecutar los movimientos necesarios para que sus piernas le hagan avanzar.

Así, teniendo este plantel, uno se puede imaginar que avanzar en este aspecto es muy complicado y por eso todavía no existe un sistema operativo para robots. Pero lo que śí que puede existir es una plataforma que empiece a avanzar en ello, como ROS (hablaré de ello más adelante). Para que esta plataforma pueda avanzar realmente se necesita el apoyo de toda la gente que quiera aportar su grano de arena, haciendo que en un futuro se pueda tener una plataforma para poder decir “avanza” y que el robot, sea como fuere, avanzase (al igual que pasa cuando hacemos clic con el ratón en cualquier ordenador, que se comporta de la misma manera en todos). Y por esta razón es, creo yo, por lo que en robótica se hace un uso bastante amplio de software libre: para que todos podamos contribuir y avanzar en la misma dirección, cosa que con software privativo se haría mucho más difícil.

ROS, el camino hacia un sistema operativo para robots

Como ya he dicho anteriormente, se está intentando ir en esta dirección, la de tener un sistema operativo para robots. Dejando de lado lo fácil o difícil que pueda llegar a ser esto o si de verdad en el futuro podríamos usar sin problemas esta herramienta, voy a explicar brevemente qué es ROS.

ROS, Robot Operating System, está desarrollado por WillowGarage y bajo licencia BSD; provee librerías y herramientas para ayudar a los desarrolladores de software a crear aplicaciones robóticas. ROS ofrece una capa de abstracción del hardware (HAL, Hardware Abstraction Layer), drivers, librerías, visualizadores y muchas otras características. Además, funciona solamente sobre sistemas UNIX. Lo que se pretende hacer con ROS es lo que he explicado un poco más arriba: hacer un sistema operativo para robots que haga que puedas utilizar cualquier tipo de robot.

Sinceramente, espero que ROS salga adelante como proyecto sólido y se desmarque de los demás, siempre y cuando siga siendo software libre, ya que este hecho hará que se pueda seguir desarrollando y avanzando entre toda la comunidad de usuarios que tiene detrás, que no es precisamente pequeña a día de hoy. Además, hay que pensar que la robótica es uno de los campos donde se van a desarrollar muchas aplicaciones en el futuro (aunque ya han empezado a aparecer algunas, como Roomba).

Espero que os haya gustado la entrada de hoy 🙂

Un libresaludo,

Borja.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s