programación robots

¿Qué lenguaje de programación usan los robots?

Todo dispositivo electrónico o máquina requiere de un idioma tanto para moverse como para comunicarse con otros dispositivos, con humanos o con el entorno.
Este idioma es el lenguaje de programación que un robot necesita, es decir, el código o conjunto de instrucciones -algoritmos- que hará que el robot ejecute las tareas de forma eficiente.

De entre los más de 1.500 lenguajes de programación que existen, ¿Cuál es el mejor lenguaje de programación robótica? Pues sencillamente, depende. Depende de las aplicaciones que se pretendan desarrollar o del sistema que utilizado.

Algunos de los lenguajes de programación de robots disponibles son: C#, Python, Java, MATLAB o PHP, pero este artículo se centra en el lenguaje de programación robótica que Robotnik trabaja para el desarrollo de sus robots móviles autónomos.

RB-KAIROS

LENGUAJES DE PROGRAMACIÓN EN ROBÓTICA INDUSTRIAL

Actualmente el lenguaje de programación más usado en el sector de la robótica industrial es el C++.

Probablemente le siga de cerca Python. Este lenguaje es clave en las pruebas de un robot móvil autónomo y también muy extendido en el sector de la robótica debido a su relación con los desarrolladores de ROS.

Programación robótica con PYTHON

Conocido como el lenguaje de los datos, PYTHON es un lenguaje de programación de código abierto, probablemente de los más sencillos, populares y versátiles de todos los que hay.
Es un lenguaje de Programación Orientada a Objetos (POO) totalmente vinculado al desarrollo de inteligencia artificial y la realidad virtual.

Python es sobre todo un lenguaje muy flexible y rápido para prototipos en los que el usuario final simplemente tendrá que ejecutar el código, sin necesidad de compilar. El problema de

Python es que quizás, como no tiene en cuenta los errores hasta que se ejecuta, puede fallar en medio de un programa.

Programación robótica con C++

El C++ surgió como extensión del lenguaje de programación C, conocido como un lenguaje multiparadigma porque está orientado a objetos, igual que Python, pero también a paradigmas de programación estructurada y programación genérica.

Aunque el desarrollo de aplicaciones en C++ a veces precisa de más tiempo debido a que requiere la compilación del software, se trata de un lenguaje de programación robusto que permite crear programas complejos siguiendo una estructura sólida sin dar pie a equivocaciones o errores.

¿QUÉ LENGUAJE DE PROGRAMACIÓN SE UTILIZA EN ROBOTNIK?

En Robotnik se utilizan los lenguajes de programación robótica C++ y Python de cara a crear rutinas, algoritmos o a la comunicación con los sensores, motores, drivers, etc., pero para la interacción al más alto nivel con el robot, se huye de esta opción, creando un entorno que encapsula estos lenguajes de programación en un lenguaje más inteligible y comprensible para alguien que apuesta por la robótica móvil en su negocio, pero no tiene conocimientos de programación.

Robotnik apuesta por proporcionar gran parte del código fuente del robot, así como las simulaciones de los mismos, a través de nuestro GitHub oficial. Permitiendo que desarrolladores de todo el mundo puedan probar nuestros robots de forma virtual y aportar mejoras al código que ofrecemos

Pero para el usuario final o cliente, lo extrapola a un entorno de programación más intuitivo como una interfaz de programación por bloques. De hecho, ya se puede observar que el lenguaje de programación por bloques es el que se está enseñando en los colegios desde hace un tiempo, por su sencillez y funcionalidad.

Una experiencia intuitiva para el usuario

De este modo, ya no hace falta que el usuario se introduzca en una terminal en blanco y negro o transmitirle un comando excesivamente complejo, sino que, a través del HDMI se obtiene un bloque que encapsula acciones ya preprogramadas configurables como sucede en tareas de logística: que el robot móvil vaya de un punto X a un punto Y del mapa, que transporte una carga de un punto A a un punto B o sencillamente que se vaya al cargador cuando el nivel de batería sea bajo.

Después de más de 20 años de experiencia de Robotnik, es sabido que esta es la opción más cómoda para el usuario final. Puede que en una empresa que decide incorporar robótica móvil autónoma en su negocio, haya alguna persona con los suficientes conocimientos técnicos que sepa programar a bajo nivel el Core o las bases del robot como lo hacen los ingenieros en Robotnik, pero en caso de que no sea así, tampoco es un impedimento. La ventaja es que no es imprescindible tener a alguien en plantilla con conocimientos de lenguajes de programación de robots.

Otra de las ventajas de estos dos lenguajes de programación robótica es que son los principales que ROS ofrece y cuyas librerías están más desarrolladas.

En Robotnik se ha apostado por ROS desde su creación, pero ¿Qué es ROS?

ROS

ROS no es exactamente un lenguaje de programación robótica sino que es un sistema o framework en el que programar el software de los robots.

Es decir, un conjunto de marcos de software de código abierto que permite abstraer el hardware.
Imagina que ya tienes la herramienta para programar. Ahora necesitas también el entorno donde poder hacerlo, y ahí es donde aparece ROS.

Antes de la aparición de ROS, cuando el usuario cambiaba de robot o adquiría uno distinto, tenía que aprender a utilizar un nuevo software. En cambio, ahora es posible compartir programas, códigos y funciones de uso común entre distintos robots. También facilita la integración entre sistemas, cosa que es más costosa si cambias de paradigma.

Se trata de un conjunto de paquetes, recursos y herramientas que crea un punto en común para todos los desarrolladores de forma que, si alguien ha hecho un programa que se comunica con un driver o que hace determinado algoritmo, tienen una interfaz -ROS- que te permite que otros puedan usar lo que necesiten para programar su código. ROS es un lenguaje de lenguajes que te permite comunicarte entre distintos nodos escritos en cualquier idioma.

Este estándar es el más desarrollado entre los programadores de robótica móvil.

Si está interesado en leer más en detalle sobre ROS: ¿Aprender ROS online?

¿Sabías que todos los robots de Robotnik soportan software ROS?

 

 


ROS

¿Aprender ROS online? Es posible gracias a la colaboración de Robotnik y The Construct

Al hablar de robótica móvil autónoma, es inevitable hablar de ROS. El framework 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”.

Otra de las novedades de este 2021 es el nuevo laboratorio remoto de warehouse en colaboración exclusiva entre The Construct y Robotnik. Un laboratorio que ofrece la posibilidad de aprender ROS online, con aplicaciones tanto en remoto como presencial. 

The Construct es la academia líder online para aprender desarrollo con ROS en robótica. Esta plataforma ha funcionado tradicionalmente dando formación tanto online como presencial, alrededor de todo el mundo en entornos de simulación.

Para Robotnik es importante que la formación que reciban los seguidores sea con demostraciones reales, por eso ofrece a la academia licencias anuales gratuitas para que la programación de ROS con algunos de los robots que fabrica -el SUMMIT-XL, por ejemplo- pueda hacerse no solo en un entorno simulado, sino con pruebas en entorno real.

Todos los robots de Robotnik soportan software ROS, además de llevar casi 20 años trabajando en robots para I+D. Estos dos aspectos han propiciado la estrecha relación con The Construct desde su creación  colaborando de distintas maneras. A lo largo de este tiempo, han podido contar para su oferta académica con algunos de los robots más destacados de Robotnik como el RB-1BASE o el RB-KAIROS+.

Nuevo laboratorio en colaboración con Robotnik y The Construct

Ahora estrenan un laboratorio remoto para complementar la experiencia de sus alumnos en simulación con robots reales consiguiendo así que la formación, aun siendo remota, tenga una parte de utilización real de un robot.

El laboratorio de warehouse tiene por objetivo enseñar como programar robots colaborativos autónomos para ayudar en los almacenes, utilizando tanto ROS1 como ROS2. Los estudiantes, primero practican con una simulación del entorno y luego se conectan remotamente a los robots reales y practican lo aprendido en dichos robots autónomos.

El principal robot del laboratorio es el RB-1 BASE de Robotnik, además de algunos otros que se emplean como herramientas complementarias. Un ejemplo de esto es el UR3 (de Universal Robots) con gripper de OnRobot .

Este brazo robótico es necesario para tener un laboratorio real de ayuda en almacenes, ya que las dos tareas básicas de esos robots son llevar carga de un lado a otro (tarea del RB-1 BASE) y poder coger objetos y dejarlos donde corresponda (tarea del robot manipulador).

Warehouse Robot lab

¿A qué público se dirige el laboratorio remoto?

El laboratorio remoto está disponible únicamente para clientes de Enterprise. Estos son clientes de empresas que quieren crear sus secciones de robótica o que quieren tener a su equipo al día con los últimos avances en robótica con ROS.

También suelen ser investigadores de proyectos.

Es decir, se trata de un laboratorio de alta calidad, cuya formación va dirigida a personas con cierto nivel previo de conocimientos y experiencia en el sector de la robótica. En el que también se imparten nuestros workshops especiales (online y presenciales).

rb-1 base

Pero ¿qué es ROS?

ROS son las siglas de Robot Operating System.

No se trata de un sistema operativo exactamente, sino de un conjunto de marcos de software de código abierto que permite abstraer el hardware.

Antes de que ROS existiese, cada vez que un usuario cambiaba de robot o adquiría uno distinto, tenía que aprender a utilizar un nuevo software. Actualmente con ROS, es posible compartir programas, códigos y funciones de uso común entre distintos robots. También facilita la integración entre sistemas, cosa que es más costosa si cambias de paradigma. 

Por el momento, ROS está disponible para Linux Ubuntu y Debian pero se encuentra en fase experimental todavía para Windows o macOS.

Robotnik está dedicada desde el principio al desarrollo de producto y prestación de servicios de ingeniería e I+D en robótica de servicio. Por ello empezó a trabajar con ROS ya desde  la primera distribución que salió en 2010 (Box Turtle) sabiendo que es y será el estándar en robótica durante los próximos años.

En los últimos años, ROS se ha establecido como el framework de robótica más extendido a nivel mundial. Cada día más empresas e instituciones se decantan por utilizar ROS debido a las facilidades que ofrece, destacando la posibilidad de utilizar paquetes de código abierto ya creados que permiten utilizar diferentes componentes sin necesidad de invertir una gran cantidad de tiempo en el proceso.

rb-1 base

Sin embargo, la utilidad de ROS va más allá de la reutilización de software creado por la comunidad. Al ser un middleware concebido desde el inicio para su uso en robótica, proporciona un conjunto de herramientas que facilitan enormemente la creación de una arquitectura software robusta y coherente.

Las funcionalidades software se distribuyen en forma de paquetes modulares que pueden ser añadidos o eliminados sin afectar al funcionamiento del resto de los componentes de un robot. ROS proporciona diferentes protocolos de comunicación entre estos paquetes, así como herramientas para visualizar y modificar el comportamiento del robot de manera simple e intuitiva.

Otra de las grandes ventajas de usar un framework de código abierto con una gran comunidad detrás, es que sus usuarios ya cuentan con los conocimientos necesarios para utilizar cualquier tipo de robot cuya arquitectura se base en el mismo sistema. Además, el elevado número de usuarios se traduce en la creación de un gran número de componentes de código abierto que se encuentran en un proceso de mejora continua. Pese a que la adopción inicial de ROS se produjo principalmente en centros de investigación, la madurez del producto ha propiciado que en los últimos años se haya observado un enorme crecimiento en los segmentos de robótica de servicio e industrial.

Debido a la naturaleza modular de ROS, sus paquetes se encuentran en un desarrollo constante para añadir mejoras, corregir puntos débiles, y adaptar su funcionamiento al momento actual. Para evitar que sus usuarios tengan que actualizar cada paquete de forma manual, exponiéndose a problemas e incompatibilidades, ROS cuenta con un sistema de versiones que proporcionan un conjunto de paquetes actualizado y funcional. Cada versión está diseñada para su uso en una distribución de Ubuntu diferente y cuenta con hasta 5 años de soporte desde su lanzamiento. Las versiones con soporte activo en este momento son Melodic y Noetic, siendo Melodic la distribución más extendida en la actualidad.

La gran adopción de ROS en los últimos años para su uso en robots de todo tipo, junto al avance de la tecnología desde su lanzamiento en 2007, han provocado que surjan nuevas necesidades que no se tuvieron en cuenta durante el diseño inicial del sistema. Para evitar realizar cambios drásticos que rompiesen la compatibilidad con sistemas ya establecidos, se decidió crear un nuevo sistema llamado ROS 2, cuya primera versión oficial se lanzó a finales de 2017.

robot móvil

ROS 2 cuenta con una nueva arquitectura descentralizada pensada para su uso en sistemas con diversas características, y con soporte nativo para Ubuntu, OS X y Windows. Entre sus ventajas, destaca el mayor control sobre la ejecución de cada componente, la posibilidad de integrar sistemas de tiempo real, o su enfoque multi-robot que ofrece la posibilidad de ajustar el sistema de comunicación para su uso en entornos donde las comunicaciones no son ideales. 

ROS 2 cuenta ya con unos años de adopción y mejoras constantes a sus espaldas, lo que ha conducido al lanzamiento de versiones LTS (long-term support) pensadas para un uso estable en todo tipo de sistemas robóticos. Esto ha provocado que la industria comience un proceso de migración desde ROS hacia ROS 2 que se extenderá durante los próximos años, y que impulsará de forma importante la evolución del nuevo sistema.

La tienda con robots y componentes ROS

La prueba de esta firme apuesta por parte de Robotnik es la creación de ROS Components, un portal de venta de productos de robótica con soporte para ROS.

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 o cómo adquirirlos. Uno de los principales objetivos de este store 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. Al final, se trata de facilitar al máximo al usuario la experiencia.

ROS ComponentsAdemás de apoyar a la comunidad ROS, cuyo núcleo está mantenido por la Open Source Robotics Foundation (OSRF) que es una organización sin ánimo de lucro encargada del desarrollo de nuevas versiones, así como de mantener la infraestructura necesaria para los servidores, etc., desde ROS Components se pretende fomentar el uso de ROS así como su mantenimiento y crecimiento.

¿Os gustaría un vídeo tutorial de ROS? ¿Una demo de ROS? Podéis dejar vuestra opinión en comentarios.

Suscribete a la newsletter de Robotnik para estar al día del sector.


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.

RB-KAIROS+

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 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 a nuestra newsletter!


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.


¿Te has preguntado cuál es la mejor empresa de robótica especializada en ROS?

Si es así, The Robot Report te da la respuesta, o al menos te acerca a ella, en su artículo Top 10 ROS-based robotics companies in 2019, donde da a conocer las que considera las 10 empresas de robótica que ahora mismo son referentes internacionales del sector. Y Robotnik está, como no podía ser de otra manera, en esa lista.

The Robot Report ha elaborado sus lista ganadora siguiendo una serie de criterios propios entre los que se encuentran los siguientes: que se pueda comprar el robot directamente a las empresas fabricantes sin pasar por intermediarios, que el robot se ejecute en ROS desde el minuto uno y que al adquirirlo puedas programarlo a bajo nivel. The Robot Report concluye que, entre las 10 mejores empresas de ROS, se encuentra Robotnik ya que cumple con todos los criterios mencionados y se ha consolidado con un referente mundial en robótica móvil colaborativa.

La apuesta de Robotnik por ROS se remonta a los orígenes del propio software de programación. Nuestros productos para I+D cumplen con los objetivos de todo desarrollador: open source, posibilidades de personalización, modularidad y diseños ad hoc. Esto se extiende a todos los productos de un amplio portfolio tanto de robots como de manipuladores móviles. En Robotnik no ponemos límite al I+D y por eso somos unos enamorados de ROS.

La filosofía ROS llevó a Robotnik a crear una tienda on line: ROS Components, en la que ponemos a tu alcance la posibilidad de adquirir los componentes con soporte para ROS de la manera más sencilla. A la vez que contribuimos al crecimiento de la comunidad robótica, aportando parte de los beneficios de nuestra línea e-commerce a la Open Source Robotics Foundation (OSRF), la organización sin ánimo de lucro encargada del desarrollo de nuevas versiones, así como de mantener la infraestructura necesaria para los servidores, entre otras cosas.

En ROS Components puedes encontrar desde láseres a manos robóticas y pinzas, pasando por sensores de fuerza, brazos robóticos y plataformas y manipuladores móviles. Todo ello soportado en ROS, el software de referencia en robótica hoy por hoy.


Aprende ROS con el robot móvil SUMMIT-XL de Robotnik

The Construct es ahora mismo una de las empresas de referencia en formación online en software ROS. Cada martes, imparte una clase gratuita en directo en su canal de Youtube, con la que los seguidores pueden ampliar sus conocimientos sobre dicho software, así como poner en práctica lo aprendido.

Hasta ahora, The Construct ha estado impartiendo cursos sobre la programación de ROS con nuestro SUMMIT-XL en un entorno simulado pero, recientemente, decidimos que esta clase magistral sería más útil para los seguidores con una demostración real con el robot móvil SUMMIT-XL. Gracias a ello, The Construct ha podido realizar y compartir con sus seguidores pruebas en entorno real.

Concretamente, fue en octubre de 2017 cuando The Construct empezó a impartir un curso online con todo lo necesario para operar y usar la plataforma móvil SUMMIT-XL. El curso ofrece una versión simulada del robot que tiene exactamente la misma interfaz que el real, gracias a la infraestructura ROS.

SUMMIT-XL destaca por su alta movilidad y modularidad. Tiene una tiene cinemática diferencial (skid-steering) basada en 4 motores de alto rendimiento. Además, puede montar varios sensores según la aplicación final (cámaras, láseres, etc.). Por todo esto, SUMMIT-XL es una destacada opción dentro del mercado de la robótica móvil autónoma.

Actualmente, The Construct muestra cómo controlar cualquier robot real desde la Plataforma de Robótica en la Nube de ROS Development Studio con el ejemplo del SUMMIT-XL:

Y en este vídeo se muestra lo fácil que es configurar y controlar un robot desde la plataforma de robótica en la nube ROSDS:


SUMMIT-XL conectado a ROS Development Studio (TheConstructSim)

The Construct acaba de lanza un vídeo donde puede verse el programa de mapeo ejecutándose en el ROSDS, visualizándose todo en rviz, y con los datos provinientes del SUMMIT-XL real:

Programar el SUMMIT-XL de Robotnik en ROSDS es muy sencillo, ya que te permite olvidarte de configurar tu ordenador, solo con pulsar un botón, el código ya no se ejecuta en el simulador sino en el robot real.


EL CEO de Robotnik en ROS Developers Podcast

Ricardo Tellez, el fundador de The Constuct, La academia líder online para aprender desarollo con ROS para robots, en su podcast “ROS Developers Podcast” ha entrevistado a Roberto Guzman, CEO de Robotnik.

En el podcast, Roberto Guzmán cuenta cómo acelerar el desarrollo de los robots mediante el uso de componentes ROS certificados y de la facilidad de transferir resultados desde la simulación a un robot real.

En este podcast puedes encontrar también la opinión del CEO de Robotnik sobre los eventos ROSCon y IROs, y temas como ROS-Industrial, entre otros.

Puedes escucharlo aquí.


ROS 10 Años

A montage showing the variety of robots in the ROS community.


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.