ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A

New metapackage ros_opcua_communication

In recent years ROS grow over research institutions and started entering the industry. One of the problems becoming evident is integration of ROS-runned systems into existing industrial infrastructure. One of common standardized communication stacks used in industry is OPC UA providing the interface between different levels and components in a productions system. In 2015 the OPC UA Fundation opened all the documents of the standard for everyone interested and through that gained new independent open-source implementations. For that reasons in European project SkillPro (“Skill-based Propagation of “Plug&Produce”-Devices in Reconfigurable Production Systems by AML”) OPC UA as communication protocol was chosen. It enabled communication between heterogeneous devices running on different systems. The research group Intelligent Industrial Robotics at KIT-IAR-IPR uses ROS in its robots therefore there was a need to develop interface between ROS and OPC UA. Result of this work is ros_opcua_communication metapackage. The metapackage currently uses two different open-source implementations of OPC UA stack: “freeopcua” written in C++ and “python-opcua” written in Python. The package based on “freeopcua” implements an OPC UA client with basic capabilities for reading and writing variables and calling methods helping user by automatic remapping of ROS built-in types into OPC UA basic types. The “python-opcua” based implementation is more advanced and implements OPC UA server which creates structures for ROS messages and services enabling communication from OPC UA Clients to ROS. This enables easier integration of ROS components into existing industrial infrastructure, but also creates possibility to secure communication between two or more ROS-Masters over the internet since OPC UA communication is build with secure communication in mind. In the future support for parameter is planned and modeling of ROS-Type as OPC UA-Types.

1 Like