Monday, September 30, 2019

Is ROS ready for industry?


Recently I published my latest book “ROS Programming with Python” in Amazon. Some people asked me free promotional units of the book (just email me if you want yours), but what was really interesting was to find people very reluctant to ROS, saying it is just for education and not for the real Industry. I think ROS is starting to offer interesting options for Industry, but to evaluate that we need to know in advance that there are three different approaches of ROS: ROS 1, ROS 2 and ROS Industrial. Let me briefly explore them:


ROS 1

The Robot Operating System (ROS) is a flexible framework for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behaviour across a wide variety of robotic platforms.

ROS 1 born as a solution for single robots, the PR2 from Willow Garage, although it was designed to be used in a variety of robots with no real time requirements.

Today we see ROS used not only on the PR2 and robots that are similar to the PR2, but also on wheeled robots of all sizes, legged humanoids, industrial arms, outdoor ground vehicles (including self-driving cars), aerial vehicles, surface vehicles, and more.

ROS 1 is nowadays the approach of ROS that most people knows, with several releases, being the last LTS versions (Long Term Support) Kinetic and Melodic. In fact, when you talk nowadays about ROS, it is widely accepted that you really are talking about ROS 1.


ROS Industrial

ROS-Industrial (or ROS-I) was created in 2012 to develop collaboration between ROS and the industry. 

ROS-Industrial is an open-source project that extends the advanced capabilities of ROS software to manufacturing.

ROS capabilities, such as advanced perception and path/grasp planning, can enable manufacturing robotic applications that were previously technically infeasible or cost prohibitive.

ROS-Industrial is released under the business-friendly BSD and Apache 2.0 licenses.

With ROS-I, BMW Group Logistics was able to incorporate several different sensors into their STR to enable sensor fusion within each mobile robot. ROS-I allows the different hardware and sensors contained within the vehicle to communicate with each other, and also allows the robot to communicate with different IoT solutions. BMW uses a cloud-based operating platform for central coordination of the STRs.

BMW, Microsoft and Open Robotics on an automation solution using ROS-I


ROS 2

ROS 2 was first introduced in 2014 in ROSCON 2014 conference. ROS two is not a new version of ROS, but a new promising approach, with different releases, that is much more prepared for the Industry than ROS 1.

Robotics and business evolution asked for new use cases that were not considered when ROS 1 was designed and were the reason of creating a new approach of ROS: ROS 2. Some of these use cases are, as described by Brian Gerkey, CEO of Open Robotics and former Director of Open Source Development at Willow Garage:

  • Teams of multiple robots: while it is possible to build multi-robot systems using ROS 1, there is no standard approach, and they are all somewhat of a hack on top of the single-master structure of ROS 1. In the other hand, ROS 2 is designed as a distributed system for single or multiple robots, not depending on a Master and replacing the messaging layer to rely on DDS (Data Distribution Services).
  • Real-time systems: we want to support real-time control directly in ROS, including inter-process and inter-machine communication (assuming appropriate operating system and/or hardware support). While ROS 1 is not designed for Real time, ROS 2 could work in real time while using RTOS. 
  • Non-ideal networks: we want ROS to behave as well as is possible when network connectivity degrades due to loss and/or delay, from poor-quality WiFi to ground-to-space communication links. ROS 2 is designed for this approach while not ROS 1.
  • Production environments: while it is vital that ROS continue to be the platform of choice in the research lab, we want to ensure that ROS-based lab prototypes can evolve into ROS-based products suitable for use in real-world applications.


WHAT ROS APPROACH THEN?

The rivalry may be more between ROS 1 and ROS 2, considering ROS-I definitely more for Industrial robots and manipulators.

I like the recommendation given on July 2019 by Dan Rose and Nick Fragale from Rover Robotics with help from Open Robotics:


DemographicDescription of userAdvice
StudentsThose who are just learning to use ROSStick with ROS 1 for now. Many of the concepts in ROS 1 and ROS 2 are the same so learning ROS 1 will help you to learn ROS 2 later on.
ProfessorsThose teaching ROSKeep teaching ROS 1 for now but start thinking about curriculum for ROS 2. There are many entities interested in helping to develop curriculum for ROS 2 including Rover Robotics so you don’t have to go at it alone
ResearchersThose using ROS to publish papersUnless your paper is specifically to show off using ROS 2 our advice is to stick with ROS 1 for the time being.
Large CompaniesThose who are in R&D groups funded by a large corporate entityStrongly consider ROS 2 to reduce the amount of technical debt in the future. Put people with experience with ROS 1 on the project.
New Robotics StartupsThose who are thinking about starting a robotics companyStrongly consider ROS 2 to reduce the amount of technical debt in the future. Hire people with experience with ROS 1.
Existing Robotics StartupsThose working at a robotics startup that’s either using ROS 1 or not using ROS at all.This is the hardest group to offer advice to. It really depends on where you are at with your startup. Keep an ear to the ground on ROS 2, at some point you will want to switch but it will be like ripping off a band-aid.
Robotics OEMThose who make either robots, sensors for robots, or anything that needs a ROS driverNow is a good time to switch. ROS 2 Dashing is the first LTS release so its now safe for OEMs to start porting drivers without fear of new features that will break functionality. Additionally we have seen large companies like Amazon, Intel, and Microsoft devote significant resources towards ROS 2 development.



COMPANIES USING OR SUPPORTING ROS

Some Companies Using ROS: NASA, BMW, Clearpath Robotics, Fetch Robotics, Pal Robotics, Robotnik, Yujin Robots, Robotis, Shadow Robot, Husarion, Neobotix, Gaitech, Sony, Ubiquity Robotics, Open Robotics, Rover Robotics, DJI, Infinium Robotics, etc.

ROS-I is supported by an international Consortium of industry and research members: ROS Industrial Consortium. ROS Industrial Consortium includes companies such as ABB, Airbus, Bosch, BMW, IFM, Intel, Pepperl+Fuchs, Siemens, Universal Robots, Yaskawa and much more.

-----
Reference:

No comments:

Post a Comment