Repository Summary
Description | Communication between ROS 2 ecosystem and open source OPC UA PubSub implementation open62541 |
Checkout URI | https://github.com/mariunil/ros2-opcua.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2019-08-19 |
Dev Status | UNKNOWN |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
hyb | 0.7.6 |
README
ros2-opcua
Description
The goal of this repository is to provide open62541 based OPC UA pubsub standalone nodes and ROS 2 hybrid nodes. The hyrbdid nodes contain a ROS 2 subscriber or publisher with a integrated OPC UA publisher or subscriber. THe hyrbid nodes can act as a gateway or API between the OPC UA ecosystem and the ROS 2 ecosystem
Contents
This repository contains two OPC UA Pubsub implementations based on open62541.
-
OPC UA Standalone: Easy to deploy standalone OPC UA Publisher Subsriber nodes that should be deployable on any Linux system. This section includes a set of demo nodes that will serve as a minimalistic example of use and a extended version of both nodes with more data fields, features etc. Client/server demo nodes are also included.
-
ROS 2 Hybdrid Nodes: “hybrid” OPCUAPublisher/ROS2Subscriber and OPCUA/Subscriber/ROS2Publisher nodes that can be included easily into your ROS 2 workspace as a new package to accommodate for communication with your ROS2 controlled robot.
Development status / roadmap:
Stage 1 - OPC UA Client/Server local communication. DONE
Stage 1.5 - OPC UA Client/Server TCP based over ethernet (desktop<->Rpi3) DONE
Stage 2 - OPC UA Pub/Sub local DONE
Stage 2.5 - OPC UA Pub/Sub UDP based over ethernet (desktop<->Rpi3) DONE
Stage 3 - open62541 integration in ROS2 system DONE
Stage 4 - OPC UA Publisher/ROS2 Subscriber hybrid node DONE
Stage 5 - OPC UA Subscriber/ROS2 Publisher hybrid node DONE
Stage 5.5 - Hybrid node communication from desktop ROS2 system DONE
to Raspberry Pie deployed OPC UA Publisher and Subscriber
(UDP transportlayer protocol over ethernet)
Development stopped. Roadmap is mapped below.
Stage 6 - Implement the semantic information model of OPC UA
properly by modelling devices with a proper component
hierarchy with self-descriptive information.
Stage 7 - Find a way to install a common vocabulary in conformance to
I4.0 standardization. Rename and all names and IDs to
conform to the vocabulary, both inside OPC UA's
information model and ROS 2 topic names.
Stage 8 - By leveraging the vocabulary and the semantic information
model of OPC UA , set up automatic translation of the
"sensors" data modelled in ROS 2 and OPC UA.
Stage 9 - Introduce a web interface for the sensor. Web interface
should be launched from a separate .c/.cpp file with web service
callable callbacks providing information from the OPC UA
information model.
Stage 10 - Introduce encryption capabilities from open62541.
Demand login info to set up a pubsub-connection.
Stage 11 - Introduce open62541 TSN-extension and develop real-time
pub/sub code. Test real-time performance on a real-time
capable connection and OS.
Development notes:
The open62541 pub/sub documentation is not finished, but there are several tutorials and some example code to be found at their github https://github.com/open62541/open62541/tree/master/examples/pubsub.
There is high level APIs available for clients, servers and publishers but the subscriber API is currently not finished (07-08-2019). The standalone and ROS2 nodes utilize the highest abstraction API available at the time.
Installation
A complete installation guide is provided in installation_guide.txt
Inspecting
For inspection purposes UAExpert and Wireshark are recommended. UAExpert provides a client-side GUI for inspecting the nodes and values of the server or publisher providng data.
Wireshark is a useful tool for monitoring packet transfer.