An Introduction to Commercial Robotic Control with ROS IndustrialJuly 18, 2020 by Akshay Kumar
Learn about Robot Operating System Industrial (ROS-I) an open-source middleware framework for robotics used in industrial manufacturing.
Robot Operating System (ROS) is a leading open-source middleware framework for robotics used for over a decade now. While ROS initially started out as an academic project to accelerate research and development (eradicating the need to reinvent the wheel), the industrial automation sector soon acknowledged its novelty and the need for its adoption.
ROS Industrial is an open-source initiative by stalwarts from the robotics and research industries to extend the ROS features and develop more generic solutions for industrial robotics and automation solutions. This article is a walkthrough of ROS-I’s technical aspects, common packages, and its use in various industrial applications.
What is ROS Industrial?
ROS Industrial is a project dedicated to developing ROS-based robotics and automation solutions for industry-relevant hardware and software tools. It began as a collaboration between Southwest Research Institute, Yaskawa Motoman Robotics, and Willow Garage (the organization that founded ROS) in 2012. It aims to accelerate the adoption of robots with enhanced behaviors like human collaboration, mobile manipulation, and perception-driven motion by broadening the horizon of industrial robotic solutions apart from welding, dispensing, and material handling.
ROS Industrial is an effort to make the transition of research efforts to the industry quick and smooth. The project aims to develop software using the high-level features of ROS while also following industry standards for robust code quality and testing strategies (unit, functional, and regression testing), reliability, and safety.
Figure 1. ROS Industrial is an effort to ensure other novel applications also have higher robot adoption rates. Image Source: ROS Industrial website.
ROS Industrial Development
The ROS Industrial Consortium branches out to the Americas, Europe, and Asia-Pacific groups with companies that coordinate the development, support, training, and management of the ROS Industrial and the source code on the GitHub repository. These groups comprise of robot manufacturing companies along with companies using ROS-Industrial-based robots: AWS, Ubuntu, Bastian Solutions, BMW, Boeing, Intel, Mathworks, 3M, Siemens, and Panasonic.
Technical Overview of ROS Industrial
As mentioned earlier, ROS Industrial extends the abilities of ROS and conforms the tools to industry standards. The project defines industry-standard packages for graphical user interfaces (GUIs), end-of-arm-tools (EOATs), sensors, manipulators, and network devices used in factories. It allows industries to develop task level solutions, integration with industry tools like PLC and switches, and communication protocols like CAN and Ethercat.
The ROS layer is capable of interfacing any existing hardware with ROS. ROS has three basic paradigms of communication:
Each hardware device’s native software can be wrapped around the ROS layer to create ROS nodes using ROS Industrial standards. Several ROS Industrial packages usually use the native software API for the hardware and integrate it with the ROS environment thus creating a channel to interact with them across the ROS ecosystem.
Figure 2. ROS Industrial Architecture. Image Source: ROS Industrial Wiki.
ROS-I has multiple packages meant for individual tools but the industrial_core is its core meta package. It contains the most important packages, providing libraries and nodes that facilitate communication of the software with industrial controllers. This has useful utilities and tools for the collaboration between the robots and the industrial components. The core package has several tools like custom ROS message definitions and trajectory filters. It also has multiple client nodes defined for joint trajectory interfaces and streamers and nodes for ROS actions.
Apart from the different vendor packages in the ROS-I program, the most important core packages are SimpleMessage, ROS Industrial Client, and Industrial Calibration. The simple_message package defines a messaging connection and communication protocol for the ROS driver layer to talk to the robot controller. The protocol format supports data streaming and data reply meant for ROS topics and ROS services for robot joint position data and joint trajectory point message.
The industrial_robot_client library is a client library used to communicate with an industrial robot controller with Ethernet socket support. The industrial_calibration_extrinsic is an experimental package providing a generic interface for calibrating robots, sensor arrays, and sensors to a known reference frame.
The Industrial_Robot_Driver_Spec provides the set of rules towards developing ROS nodes meant for ROS-I interface with robot controllers. This defines the rules for the initialization, topics, services, and parameters needed for the API to define and broad guidelines for it.
The general steps toward creating a ROS-I solution for an industrial robot include creating an XML-based universal robot description format (URDF) description of the robot’s 3D model and geometry, creating a package to visualize the robot in ROS-I MoveIt, joint position information streaming from an industrial controller using ROS-I TCP socket libraries, integrating other ROS-I support packages and using already available tools for IK, like IKFast.
Common Vendor ROS Industrial Packages
The ROS packages for off-the-shelf robotic products can be extended using ROS industrial solutions, including:
- Developer tools like ros_qtc_plugin for the Qt Creator IDE
- Industrial-calibration for automatic 2D/3D calibration
- Scan-n-plan for path planning and task execution from perception data
Figure 3. ROS-I Scan-N-Plan Approach. Image Source: ROS Industrial Website.
Robotics companies like ABB, Fanuc, Universal Robots, Robotiq, Omron, Staubli, and Fanuc have ROS Industrial controllers, software packages, and drivers for their robots on the Github repository. They provide ROS-I support and solutions that allow integration of their tools with other platforms in the industry, leveraging the ROS ecosystem.
The ABB ROS-I and Fanuc ROS-I packages provide steps for setting up the ABB ROS Server on their industrial controllers, installing the ROS Server on the ROS client (usually a PC), and using the ROS ecosystem with their custom simulation software RobotStudio. Motoman provides path planning simulation solutions and Motoman ROS Server installation on its FS, DX, and FRC controllers.
Advantages Of ROS Industrial
While streamlining the transition process for research projects to an industrial production-ready application, ROS Industrial has been able to remove multiple bottlenecks in the adoption of robotics and automation in the industry. Some of the major advantages of ROS Industrial are:
- Debugging and patching bugs is easier due to user testing and better software management.
- ROS-I software is independent of the providers/OEMs, thus changes and enhancements can be made by users.
- Commercialization of the products is easier due to the BSD license that allows developers to embed the open-source ROS-I code into their proprietary content.
- Software refers to standard interfaces thus allowing flexibility in the hardware being used and the interoperability between robots supplied from different vendors is possible.
- Interfacing multiple work cells and their collaboration is easier.
- All previously available solutions for kinematics, dynamics, collision-checking, simulation, and planning are available for industrial applications.
Review of ROS Industrial
ROS Industrial is nothing dramatically new, but it is an effort more focused on making open-source tools industry compliant. ROS Industrial has a high robot adoption rate and a lot of robot companies encourage consumers to use the ROS Industrial packages as the primary tool.
ROS Industrial has matured over the years with more packages developed for intelligent robotic solutions in perception and sensing solutions primarily. Using ROS Industrial, the industries get the best of academic flexibility and industrial safety and robustness standards.