by Leslie Langnau, Managing Editor
As robot applications continue to shift into high-mix, low volume situations, the time available to program them shrinks. One solution is open-source programming. This “crowd-sourcing” approach is helping manufacturers deliver robots to the market quickly.
Can open-source software help you develop application-specific robots faster? For a number of robot developers, yes it can, especially if you use the Robot Operating System (ROS). Most manufacturers of robots targeted for industrial markets, however, are hesitant (some would say resistant) to using this open-source platform for logical reasons—who claims responsibility should a piece of code fail? The solution to this concern is the industrial version of ROS that addresses developers’ issues of safety and real-time operation. This version is governed by a consortium of industrial companies and researchers and is known as ROS Industrial, or ROS-I.
This consortium takes the best-in-class functions of ROS algorithms, vets them, improves them if necessary, and hardens them for industrial application.
“ROS Industrial is a way to formalize and harden certain parts of ROS,” said Erik Nieves, technology director, Yaskawa America Inc., Motoman Robotics Div.
The consortium has set standards for drivers and interfaces, so you are assured of code that will meet minimum criteria. It provides a one-stop location for industry-related robot operating software and developer tools.
But why use an open-source platform in the first place? Primarily because both ROS and ROS-I help accelerate the development of robot features.
“Think of ROS as a rapid prototyping tool for functions,” said Nieves. “It’s an efficient way to create code because you have more developers worldwide then exist within any specific corporation. You are tapping into a ‘worldwide brain network’ of possible solutions, rapidly prototyping your ideas.”
ROS-I provides a structure for the development of different applications that can be applied industry wide, not just for one specific user. ROS-I packages exist for such capabilities as advanced perception and path/grasp planning, which can enable industrial robotic applications that were technically infeasible or cost prohibitive.
In practice, users work with the ROS protocol to develop an interface or a driver. Then, users make the interface or driver available to the ROS Industrial community, indicating it is a first or early attempt. Others in the community may contribute code or streamline it, or solve a problem that has come up within the code development. One of the major benefits to ROS-I packages is that the consortium does a good job of documenting the whole process, so you can trace backwards if necessary.
The question of real time
Neither ROS nor ROS-I suit the real-time requirements of industrial robots.
“ROS-I packages are targeted at the application level of most communication protocols,” noted Nick Hunt, Manager, Automotive Technology and Support, ABB Robotics. “Most industrial vendors will not open up their real-time operating systems for safety reasons.”
“We use ROS for its non-real-time value,” agreed Nieves, “for higher level commands. ROS would bring no value to our real-time side. We already know how to do all of our kinematics, our dynamic modeling, and all the other functions dependent on hard real time. We do that in our own controller in the VXworks RTOS anyway. We don’t want ROS to replace that.”
Added Hunt, “Like other robot vendors, we’ve developed robust software that eliminates robot runaways, so there’s no reason to replace that.”
ROS-I nominally runs on Linux, over Ethernet, and is fast enough to run closed-loop with perception systems, but it should be paired with a high-level controller and a low-level real-time controller that closes servo feedback loops and handles safety needs, such as E-stop. ROS-I builds on ROS by adding Unified Robot Description Formats (URDFs), interface libraries (drivers), and capabilities (packages) useful to industrial automation.
The consortium provides oversight and structure to both the open-source development of industrial automation software and to ROS code. Code is reviewed and automatically assessed for quality metrics.
ROS-I also provides a conduit for academic research to be vetted and quickly implemented within industry. This consortium does not force companies to use the protocol, but it does encourage companies to follow the best practice standards suggestions.
In practice, ROS-I is often used to pass parameters back and forth among other programs or components of a robot, giving each node the information it needs. At its core, it is a communications approach—a messaging architecture where various pieces can talk to each other in a known way.
What does ROS-I deliver?
One of the benefits of using ROS-I drivers and interfaces is that it can tackle automation problems that may have been out of reach for users, especially in some non-traditional uses of robots.
“These applications include situations where a robot is “feeling” its way, rather than being specifically directed to move,” said Hunt. “For example, in the assembly of something, a robot won’t necessarily know precisely where the mating parts are supposed to go but it feels its way around using various technologies. Or we want the robot to tell us it has done something by using Haptic feedback when doing things from a remote location; applications where we are doing things through the robot, manipulating through the robot, but where we don’t actually see the robot. Another avenue is using robots in entertainment applications. In one example, a robot controls the camera enabling filmmakers to use angles or repeated motions in innovative ways for the special effects.”
Film applications take advantage of key robot capabilities, such as repeatability, accuracy and speed, handling a camera faster than a person can.
Many path generation and optimization packages are available in ROS-I, so customers do not need to develop those functions. Users can find packages for inverse kinematics for manipulators, including solutions for manipulators with more than six degrees-of-freedom; advanced 2-D (image) and 3-D (point cloud) perception; and completely dynamic path planning based on advanced perception and models as opposed to simply replaying taught paths.
Programs exist that eliminate path planning and teaching. Code exists for dynamic path planning based on advanced perception and models. Collision-free, optimal paths are automatically calculated given path end points.
ROS-I even offers packages that apply abstract programming principles to similar tasks, which are useful in low-volume applications or applications where there are slight variations in work pieces.
In many situations, you don’t need to develop an algorithm for robotic movement—it has already been done. You simply go to ROS-I and download a “stack” of code that already performs the task you need.
Another benefit is that this software makes automation interoperable. Various robot components, including manipulators, end-effectors, perception systems and sensors, mobility platforms, and peripherals can all speak one language—ROS messages—and interoperate regardless of OEM brands or communication bus.
ROS-I makes it easy for OEMs to adapt functions into their products and commoditize the features and functions, minimizing barriers to interoperability. In many cases, you can reuse the code or stacks in different robot systems. All of these capabilities help speed the development of new robot designs.