ROS-Industrial: open-source software in industrial robotics
A couple years ago Southwest Research Institute (SwRI) released an open-source software package which brings industrial robotics into ROS (Robot Operating System). The stack, as is called a ROS collection of packages, is named ROS-Industrial and is distributed under the BSD license, which basically means that it can be used freely in proprietary (commercial) softwares.
What is ROS and ROS-Industrial?
ROS is a software framework which provides a set of functionalities needed in the development of robot controllers. It allows an easier programming of systems including multiple components (computing nodes, sensors, actuators, ...), as it takes care of various low-level functions such as message-passing between the different sub-systems. On top of that, users can contribute by producing stacks which implement functions needed by many applications. Stacks are currently available for computer vision, mapping, path planning, etc. This allows robot engineers to realize cutting-edge applications by building on the work of others. At the moment, ROS in mainly used for research applications in fields such as autonomous robots, but ROS-Industrial might just change that.
ROS-Industrial is a stack which is intended to ease the integration of ROS into industrial applications. With ROS-Industrial, new nodes that apply to industrial components not necessarily interesting for the research ROS users will be added. SwRI partners with Motoman Robotics and Willow Garage for the development of ROS-Industrial, which tends to illustrate the seriousness of this project. They've so far been able to use ROS to control a SIA10D robot arm for collision-free path planning, as it is shown in this video:
The advantages of open-source software in industrial robotics
The development of ROS-Industrial is very good news for industrial robotics. It is often difficult for robot integrators to build innovative applications from scratch and this is quite easy to understand. Robots are by themselves very complex machines. Imagine now that you have to combine them with other complex, expensive devices to realize novel applications using techniques that noone on your team has experience with. That can be quite scary for small companies that cannot risk failure on any of their projects.
Open-source software, however, has the potential to alleviate the burden of programming complex applications from scratch. Engineers and scientists from research institutes (such as SwRI) and robotics component manufacturers could provide stacks performing simple tasks. The integrators would then combine them together, just like LEGO blocks.
As an example, lets consider the integration of stereo cameras to achieve object recognition and automatic grasping using ROS-Industrial. We're not there yet, but camera suppliers could provide ROS compliant packages for their devices. These packages would be compatible with a standard computer vision library, such as OpenCV from Willow Garage. Another ROS stack, built by others, would be responsible for comparing the data with a catalog of CAD models which are anticipated to be observed by the robot. Finally, another stack would be used to determine the best way to grasp the object. At the end, the integrator would be merely responsible of linking these packages together and customizing the libraries for the specific needs of the application.
How to make this happen?
What I described in the previous section is not happening yet. The question needs to be asked: how can we help foster this open-source software in industrial robotics? Two answers come to my mind:
by promoting the production of open-source software in academic research: instead of focusing on publications, professors should also evaluate positively if students spend their time producing reusable open-source software;
by making sure that engineering graduates have learned to program using other people's code: too often, they are taught how to reinvent the wheel, whereas it is often more useful to know how to assemble wheels with other components to build cars.
There must be many other ways to promote open-source software, like ROS in the industrial world. I would really enjoy hearing your ideas on the subject! In the mean time, take a look at our ROS package to use our grippers.