ROS CONTROL, an API to control them all

ROS has been one of the greatest advances of the robotics industry in the past years. Its development began as a way to help the development of robot applications, easing the communication between sensors and algorithms, following the paradigm of “program once, test everywhere”.

This has been the pattern of the last years, and ROS has performed extremely good in that way. For example, you could code an algorithm to take an image as its input, without caring about which model, resolution or connection type, as long as it was supported by ROS and adopted its API.

But this focusing on the high level layer of application development led to an unthinkable oblivion: How was the access to actuators managed? How were the references of the actuators calculated? As in the case of high level applications, where the end user shouldn’t care about the source and destination of the data used and produced by him, in the case of robot control the user shouldn’t care about which type of actuators are used by a robot.

But today, this is not the situation anymore. ROS Control is the API that has been developed by the ROS community to allow simple access to different actuators. Using this standard API, the controller code is separated from the actuator code. For example, one could write a new controller implementing a fancy control strategy, and test it on different hardware without changing a single line of code. Or one could test different control algorithm with same hardware to find the most suitable for its needs.

ROS Control has different features that make it really appealing: real time capabilities, that allows to run control loops at hundreds of hertz; a simple manager interface, that gives access to the actuators and handles resource conflicts; a safety interface, that knows the hardware limitation of the joints and ensures that the commands sent to the actuators are between their limits; and a set off-the-shelf controllers that are ready to be used.

Have you ever thought about the mapping between joint and actuator space? ROS Control already did it. Normally this mapping is one-to-one, i.e. one actuator controls one joint, and their movement is related by a gearbox, so you don’t need to do messy calculations. However, in case of more complex scenarios, e.g. when a differential transmission is used, ROS Control gives us an elegant solution through its transmission interface to cope with this problem.

What about mixing different robot components into one? This is a trend nowadays, where robot components are autonomous and usable on their own, but can also be assembled into a single functional system. In those cases, ROS provides high level coordination between the components, but with ROS Control this coordination is also achieved at the low level, extending the control possibilities to far and beyond, for example, with a more coupled control between a robotic arm and the tool attached to it.

Finally, the separation between controllers and actuators allows an interesting option: simulation. Gazebo, the standard robot simulator used by ROS, implements simulated ROS Control actuators, and one can write and test a controller even before it has the real robot available. This feature of ROS Control is used at Robotnik to test new kinematic configurations for its most edgy robots, allowing for quick prototype delivery.

ROS Control is one of the key parts for the domination of the robotic world by ROS. As a world leading company in the ROS community, Robotnik makes an extensive use of ROS Control to give its customers the best products available on the market.

Robotnik, distribuidor en Europa de Fetch Robotics

Robotnik Automation es el distribuidor oficial y exclusivo de los productos de Fetch Robotics en Europa.

Fetch Robotics es una empresa con una amplia experiencia en el mercado de la robótica y proporciona soluciones para la logística y la industria ligera. Sus plataformas se basan en el sistema operativo de código abierto, ROS. Fetch tiene una visión clara, crear robots que puedan trabajar en proximidad con la gente.

El equipo de Fetch ha desarrollado dos nuevos productos, un robot móvil llamado Freight y un manipulador robótico llamado Fetch. Estas dos plataformas están integrados y pueden realizar tareas en conjunto.

Fetch es un brazo manipulador de 7 GDL capaz de llevar al menos 6 kg. Gracias a sus sensores en ambas plataformas y los brazos, detectan obstáculos y evitan colisiones. Logra un mayor rango de la seguridad para las personas y el medio ambiente. El brazo integra una pinza modular y gracias a sus sensores, recoge y mantiene objetos de forma segura.

Por otra parte, tenemos a Freight, una base móvil que puede trabajar de forma independiente o junto con Fetch. Freight, como sistema de carga ofrece una entrega eficiente y segura. Además, los sensores pueden detectar la ubicación y evitar colisiones.
En general, gracias a una base de carga, las plataformas se pueden recargar de forma autónoma.



IEEE International Conference on Mechatronics

Robotnik estuvo presente en la IEEE International Conference on Mechatronics 2009 para dar a conocer algunos de sus productos.

El objetivo de esta conferencia bienal es proporcionar un foro para discutir el estado de la mecatrónica actual, presentar los últimos resultados en investigación así como las perspectivas para su desarrollo.