El software ROS ha sido uno de los mayores avances de la industria de la robótica en los últimos años. Se trataba de buscar una forma de ayudar al desarrollo de aplicaciones robóticas, facilitando la comunicación entre sensores y algoritmos, siguiendo el paradigma de “programar una vez, probar en todas partes”.

Este ha sido de hecho el patrón en los últimos años y en él ROS se ha desenvuelto a la perfección. Por ejemplo, se puede codificar un algoritmo para tomar una imagen como entrada, sin importar el modelo, resolución o tipo de conexión, siempre que sea compatible con ROS y adopte su API.

Pero este enfoque en la capa de alto nivel de desarrollo de aplicaciones llevó a un olvido impensable: ¿cómo gestionaba el acceso a los actuadores? ¿cómo se calculaban las referencias de los actuadores? Al igual que en las aplicaciones de alto nivel, donde el usuario final no debía preocuparse por la fuente y el destino de los datos utilizados y producidos por él, en el caso del control de robot, el usuario no debería preocuparse por qué tipo de actuadores utiliza dicho robot.

¿Por qué ROS Control?

Por suerte, esta situación ha cambiado. ROS Control ha sido la solución. Se trata de la API desarrollada por la comunidad ROS que permite un acceso simple a los diferentes actuadores. Con esta API estándar, el código del controlador se separa del código del actuador. Por ejemplo, uno podría escribir un nuevo controlador implementando una determinada estrategia de control y probarlo en hardware diferente sin cambiar una sola línea de código. O se podría probar diferentes algoritmos de control con el mismo hardware hasta encontrar el que sea afín a sus necesidades.

La realidad es que ROS Control tiene múltiples características que lo convierten en realmente atractivo:

  • Capacidades en tiempo real, que permite ejecutar lazos de control a cientos de hercios.
  • Una interfaz de administrador simple, que da acceso a los actuadores y maneja conflictos entre recursos.
  • Una interfaz de seguridad, que conoce la limitación de hardware de las articulaciones y asegura que los comandos enviados a los actuadores están dentro de sus límites
  • Un conjunto de controladores listos para usar.

¿Has pensado alguna vez en el mapeo entre la articulación y el espacio del actuador?

ROS Control sí lo ha hecho. Normalmente, este mapeo es uno a uno, es decir, un actuador controla una articulación y su movimiento está relacionado con la caja de cambios, por lo que no necesita hacer cálculos muy complicados. Sin embargo, en el caso de escenarios más complejos, como, por ejemplo, cuando se utiliza una transmisión diferencial, ROS Control nos brinda una elegante solución a través de su interfaz de transmisión.

Esta solución es utilizada por los robots diferenciales (como es el caso de nuestro RB-1 Base y nuestro RB-2 Base) y de dirección deslizante (la de nuestro Summit-XL). Estas plataformas son muy similares, pero tienen diferente número de ruedas: dos para una configuración diferencial y cuatro en el caso de dirección deslizante. Gracias a la interfaz de transmisiones en ROS Control, comparten el mismo algoritmo de control sin necesidad de un software adicional.

ROS Control

Un paso más

¿Qué ocurre cuando se trata de mezclar los diferentes componentes del robot en uno?
Esta es, sin duda, una tendencia de las tendencias actuales, donde los componentes del robot son autónomos y se pueden usar por sí mismos, pero también se pueden ensamblar en un solo sistema funcional. En esos casos, ROS proporciona una coordinación de alto nivel entre los componentes, pero con ROS Control esta coordinación también se logra en el nivel bajo, extendiendo las posibilidades de control más allá, por ejemplo, con un control más acoplado entre un brazo robótico y la herramienta final que lleve integrado.

O, como es el caso de nuestro manipulador móvil RB-Kairos, es mucho más fácil de programar movimientos suaves y coordinados entre el brazo robótico y la base móvil, lo permite llevar a cabo operaciones muy complejas como las que se realizan en logística, la recogida de materiales en espacios estrechos o con interacciones con personas de una manera segura y confiada.

Finalmente, la separación entre controladores y actuadores da pie a una opción interesante: la simulación. Gazebo, el simulador estándar de robótica utilizado por ROS, implementa actuadores de control ROS simulados, y uno puede escribir y probar un controlador incluso antes de que tenga el robot real a su disposición.

Esta característica de ROS Control la utilizamos en Robotnik, por ejemplo, para probar nuevas configuraciones cinemáticas para nuestros robots más innovadores, lo que permite acortar los plazos de entrega de los prototipos. Este es el caso de RB-Vulcano, una plataforma con 4 ruedas orientables en configuración de viraje, las cuales le permiten moverse de forma omnidireccional. Sin embargo, dichas ruedas tienen que coordinarse en diferentes modos, como estacionamiento o navegación, para poder seguir de manera efectiva la referencia de movimiento que se envía al robot. El cambio entre modos debe cumplir con dos premisas: suavidad en el movimiento y precisión.

Gracias a ROS Control, Robotnik ha podido utilizar la plataforma en un entorno simulado para buscar la mejor opción para el control de motores.

ROS Control

ROS Control es una de las claves para que ROS domine el sector robótico industrial. Como empresa líder en él, Robotnik utiliza ROS Control para brindar a sus clientes los productos más punteros del mercado.

Si te interesa la robótica móvil colaborativa, ¡no olvides suscribirte nuestro blog!