ROS Control: la clave para consolidar ROS en la industria robótica

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!


Robotnik, patrocinador premium del 3er ROS Developers Day

Robotnik patrocina el 3er ROS Developers Day  (* anteriormente llamado "Conferencia de Desarrolladores ROS"), un evento práctico online para desarrolladores de sistemas operativos de robots. El evento tiene como objetivo conectar a los desarrolladores de ROS de todo el mundo, evitando las restricciones geográficas, y posibilitando compartir las últimas aplicaciones de ROS a través prácticas en tiempo real.

En esta conferencia, los principales desarrolladores de ROS podrán dar a conocer sus últimos avances a través de diferentes webcasts. Es el caso de nuestro colega Alejandro Arnal, desarrollador de software de Robotnik, cuyo webinar se titula "Trabajar con manipuladores móviles". Los manipuladores móviles son robots formados por una base móvil y un brazo robótico y que pueden interactuar en entornos donde hay personas. Nuestro colega le enseñará a la audiencia cómo programar un manipulador móvil y practicarán con el manipulador móvil RB-KAIROS de Robotnik.


El CEEI otorga un galardón a Robotnik

Roberto Guzmán, CEO de Robotnik, recogió el galardón durante la gala de celebración del 25 aniversario del CEEI

El Centro Europeo de Empresas Innovadoras de Valencia acaba de reconocer la trayectoria y progresivo crecimiento de Robotnik otorgándole el galardón de empresa CEEI. Con él, se destaca a Robotnik como una empresa de referencia dentro del sector de la Robótica de Servicio.

El premio se hizo entrega durante la celebración de la gala conmemorativa del 25 aniversario del CEEI y fue recogido por nuestro CEO, Roberto Guzmán. En ella, se puso de manifiesto la labor del CEEI en favor de los emprendedores y las empresas innovadoras valencianas, gracias a las cuales, según se manifestó durante el evento, se han generado 25.000 empleos directos e indirectos.

Desde Robotnik, queremos trasladar nuestro sincero agradecimiento al CEEI por su apoyo durante todos estos años y que ahora se materializa en el presente reconocimiento.

Más información:

Valencia Plaza

CEEI Valencia


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 participará en la Gobal Robot Expo 2017

La feria Global Robot Expo se consolida como un referente del sector en Europa.

Robotnik asiste como expositor, junto su partner Schunk, a la segunda edición del certamen Global Robot Expo, que se celebrará los días 2, 3 y 4 de febrero en el Pabellón de Cristal de la Casa de Campo de Madrid.

Global Robot Expo se consolida así como una cita destacada en la agenda del sector robótico en Europa, y en ella se darán cita las empresas más representativas del mismo, así como otros agentes sociales (Administración, universidades, etc.).

En nuestro stand, los visitantes podrán ver en acción la plataforma móvil SUMMIT XL, el manipulador móvil RB-1 y el brazo robótico LWA 4P.

Estaremos encantados de recibiros en nuestro stand (81-82). ¡Os esperamos!

https://www.youtube.com/watch?v=iZV7gfXUM08&t=3s


ROS Components, porque robótica significa ROS

ROS Components es una división del grupo Robotnik Automation, empresa líder en Robótica de Servicio en Europa.

El crecimiento y potencial de los productos que hacen uso del software ROS, nos ha llevado a concebir este nuevo concepto de portal de venta online, en el que se ofrece toda la gama de productos de una forma clara y sencilla para el cliente. El usuario podrá encontrar toda la información técnica y el soporte necesario que precisa de un producto de forma unificada, en un sólo espacio: Ros Components.

buy-one-contribute-osrf

 

En los últimos años, ROS se ha convertido en un estándar en la Robótica de Servicio, y está haciendo grandes avances en el sector industrial.

La mayor parte de robots y componentes en el mercado están soportados en ROS, pero a veces no es fácil averiguar cuáles lo están, qué versión soportan y cómo adquirirlos. Una de nuestros principales objetivos es enlazar los productos con sus controladores y/o software para ROS, detallar cómo se instalan y configuran y dónde se puede encontrar tutoriales o información de utilidad, entre otros aspectos. Todos los componentes que se ofrecen en la tienda están soportados por ROS o lo estarán en breve.

Desde ROS-Components pretendemos fomentar el uso de ROS así como su mantenimiento y crecimiento. Para ello, pretendemos donar parte de los beneficios obtenidos por la venta de nuestros productos a la OSRF. Así pues, cada vez que compres un producto en ROS Components, estarás aportando tu grano de arena al desarrollo y mantenimiento de ROS. Si estás interesado en colaborar con la organización, encontrarás más información aquí.

Por otro lado, desde ROS-Componentes pretendemos incentivar a la comunidad en el desarrollo, mejora y documentación de paquetes (ros.wiki.org) así como la colaboración en la solución de problemas relacionados con ROS (answers.ros.org).

La Comunidad ROS tiene un nuevo punto de encuentro en ROS Components!

BIENVENIDOS a

ROS Components!

osrf_logo


Robotic web applications

ROS is a great tool to develop new robotic applications. Its ease of use and its large amount of tools and wide community makes ROS a great way to start learning robotics, or to develop a state of the art industrial applications. In spite of all these advantages, one of ROS main limitations is that it must work on Linux systems, mainly Ubuntu. Linux and Ubuntu are increasing the number of desktop users, but nowadays the most used Operating Systems are Windows for desktop users, and Android for mobile. This makes hard to integrate applications when the end user has never used a Linux Ubuntu system, or its infrastructure is based on Windows or Android. This problem can be solved by developing robotic applications taking advantage of the ROS web framework. ROS web framework is a collection of open-source tools and modules, built around the Robot Web Tools project, with the goal of converge ROS with modern web and network technologies. This will create a broadly accessible environment for robot development and human-interaction research used over wide area networks.

Robot Web Tools uses WebSockets to communicate with ROS middleware, and offers several tools to help develop applications using rosbridge. The main front-end tools is the roslibjs package, that is a library to build ROS nodes using Javascript, and allows usage of ROS topics, services, goals, parameters and TF. ros2djs and ros3djs are used to create 2D and 3D visualization of the ROS environment, allowing to visualize maps, costmaps, grids, URDF models, InteractiveMarkers, PointClouds and other basic geometric shapes. This can be very useful to create your own navigation packages that can be controlled from any device.  Other useful tools are keyboardteleopjs, to move a robot using a simple keyboard interface, mjpegcanvasjs to visualize image topics, and speech_commands to control a robot using speech. Robot Web Tools also includes all necessary server nodes to interface the client-based modules with ROS. This nodes are  rosbridge_server, web_video_server, and tf2_web_republisher.

All these tools can help to solve the problem of the isolation of ROS in Linux systems, and allows the deployment of ROS applications on any device that can use a web browser (Mozilla Firefox, Google Chrome, Safari, etc … ) In the future we can expect more development of the Robot Web Tools project, for example with the addition of new communication standards, like WebRTC, that will help with applications demanding intensive and high-bandwidth streaming.

Robotnik Summit XL

Illustration 1: SUMMIT XL Web 3D visualization

Robotnik Turtlebot2

Illustration 2: Turtlebot web visualization

Robotnik Turtlebot2

Illustration 3: Turtlebot web map navigation


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.