ROS Control: the key to consolidate ROS in the robotics industry

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 thanks to ROS Control.

Why ROS Control?

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.
  • 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. 

This solution is used by the differential (RB-1 Base and RB-2 Base) and skid-steering (Summit-XL) robots from Robotnik, robotics company. These platforms are very similar, but they have different number of wheels: two for a differential configuration and four in the case of skid-steering. Thanks to the transmissions interface in ROS Control, they share the same control algorithm with no additional software effort.

ROS Control

One more step

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. Or, as is the case of RB-Kairos, smooth and coordinated movements between the robotic arm and the mobile base are easy to program, leading to high complex operations and maneuvers that include logistic operations, picking items from narrow spaces and interactions with humans in a safe and confident manner.

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. 

This is the case of RB-Vulcano, a platform with 4 steerable wheels in a swerve-configuration thanks to them is able to move in an omnidirectional way. 

However, they have to be coordinated in different modes, such as parking or navigation, to effectively follow the reference of movement that is sent to the robot. Switching between modes must be a compromise between the smoothness of the movement and the precision required for each operation. Thanks to ROS Control, Robotnik was able to replicate the full platform in a simulated environment to find the best strategies for motor control.

ROS Control

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.

If you are interested in collaborative mobile robotics, don’t forget to subscribe to our blog!


Robotnik, premium sponsor of 3rd ROS Developers Day

Robotnik is going to sponsor the 3rd ROS Developers Day (*formerly named “ROS Developers Conference“), which is a hands-on online event for robot operating system developers. The event aims to connect ROS developers around the world without geographical restrictions and to share and learn the latest ROS applications through real-time practice.

At this conference, the world’s top ROS developers will bring their latest results through a webcast. They will demonstrate their ROS projects in real-time, and the public will practice at the same time.

It's the case of our colleague Alejandro Arnal, software developer from Robotnik. He will make a speech about 'Working with mobile manipulators'. Mobile manipulators are robots composed of a mobile base and a robotic arm. By combining these two, robots are able to interact in human environments, being collaborative robots. Our colleague will teach the audience how to program a mobile manipulator and they will practice using Robotnik’s mobile manipulator RB-KAIROS.


Have you ever wondered what’s the best robotics company specializing in ROS?

If so, The Robot Report gives you the answer, or at least it brings you closer to it, in his article Top 10 ROS-based robotics companies in 2019, which introduces the 10 robotics companies that are right now considered international benchmarks in the sector. And, as it couldn’t be otherwise, Robotnik is on that list.

The Robot Report has developed its winning list following a series of own criteria among which are the following : you can buy the robot directly to manufacturers without going through intermediaries, the robot runs on ROS from minute one and the moment you acquire it you can program it at low level layering. The Robot Report concludes that Robotnik belongs to the top 10 ROS companies, because it meets all the above criteria and has become a collaborative world leader in mobile robotics.

Robotnik bet ROS dates back to the origins of software programming itself. Our R & D products meet the objectives of any developer : open source, customization options, modularity and ad hoc designs. This extends to all products of a large portfolio of both robots and mobile manipulators. In Robotnik not put limit to R & D and so we are in love with ROS.

The ROS philosophy led to Robotnik to create an online shop: ROS Components, which offers you the opportunity to purchase the components with support for ROS in the simplest way. While we contribute to the growth of the robotics community, providing some of the benefits of our online e-commerce to the Open Source Robotics Foundation (OSRF), the nonprofit organization responsible for the development of new versions and maintenance of the necessary infrastructure for servers, among other things.

At ROS Components you can find : from lasers to robotic hands and grippers, and also force sensors, robotic arms as well as mobile platforms and mobile manipulators. All of it supported by ROS, the reference software in robotics nowadays.


Learn ROS with a SUMMIT-XL from Robotnik

The Construct is the company world leader in teaching ROS online. Every Tuesday it spreads a free ROS Live Class on its Youtube channel, where attendants can learn and practice a ROS subject.

The Construct has been teaching courses on ROS programming of our SUMMIT-XL in a simulated environment, but recently we understood that these master class will be more useful for the followers with a real demo with SUMMIT-XL mobile robot. Through it, The Construct have been able to do tests in real environment.

Since October 2017, The Construct teaches an online course about all you need to operate and use the SUMMIT-XL robot platform in the real world. You will learn it through hands on experience with a simulated version of the real robot which will have the exact same interface as the real one, thanks to ROS infrastructure..

SUMMIT-XL stands out for its high mobility and modularity. It has skid-steering kinematics based on 4 high power motorwheels. Furthermore, it can mount several sensors according to the final application (cameras, lasers, etc.). Therefore, SUMMIT-XL is a complete and strong option inside the autonomous mobile robotics market.

Now, The Construct shows how to control any real robot from the ROS Development Studio Cloud Robotics Platform with the example of the Robotnik SUMMIT-XL:

And at this video shows how easy is to setup and control a robot from ROSDS cloud robotics platform:


SUMMIT-XL connected to ROS Development Studio (TheConstructSim)

The Construct  has just launched a video with the mapping program is running in the ROSDS, the environment is shown in rviz, with the data comming from the real SUMMIT-XL:

Programming the SUMMIT-XL from Robotnik in ROSDS is very easy, it allows to forget setting nor configuring your computer, just by pressing a button, the code does not run in simulation but in the real robot.


The Robotnik’s CEO at ROS Developers Podcast

Ricardo Tellez, the founder of The Constuct, the leader online academy to learn development with ROS for robots, in his podcast "ROS Developers Podcast" has interviewed Roberto Guzman, CEO of Robotnik.

In the podcast, Roberto Guzman told about how to speed up a robot building by using certified ROS components and how easy he feels that is to transfer results from simulation to real robot.

In this podcast also you can find the opinion from the Robotnik's CEO about ROSCON and IROS events and ROS-Industrial, among others.

You can listen it here.


ROS 10 Year Montage

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.


ROS Components, because robotics means ROS

ROS Components is a division of Robotnik Automation Group, leading company in the European service robotics market.

The rise and potential of all the robots and devices using ROS has led us to create this new and exciting project, where we intend to offer a huge range of products in a simple and useful way for the customer. The client will be able to find all the technical information and support of any product at the same place: ROS Components.

buy-one-contribute-osrf

In recent years, ROS has become the standard in Service and Research Robotics, and it’s making great advances in the Industry sector.

Most of the robots and components in the market support ROS, though sometimes finding which are really supported, what ROS version they make use, and how to get them is a difficult task. One of our main purposes is to make it easier and simpler for the customer, linking the products with their ROS controllers, explaining how to install and configure them and showing where to find useful information about them. All the products in the site are supported by ROS, either available directly in the ROS distribution or through their source code.

From ROS-Components we strongly believe that ROS is and will be the standard in Robotics for many more years. Therefore we want to encourage roboticists to use it (whether you are not already doing so) as well as manufacturers to give support to From ROS Components we try to encourage the use of ROS as well as its maintenance and growth. Therefore we are going to donate part of the benefits of every sale to the OSRF. So, every time you buy in ROS Components, you’ll be contributing to the ROS maintenance and development. Apart from this, you also can directly contribute with the OSRF through the following link.

On the other hand, we want to encourage the ROS community to participate in the development, improvement and documentation of ROS packages (ros.wiki.org) as well as in helping with ROS related problems (answers.ros.org).

The ROS community has a new meeting point in ROS Components!

WELCOME to

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