TNO fork of https://github.com/iirob/ros_opcua_communication.git
This fork adds the following:
- Support for ros-melodic
- Various bugfixes, tested on the Franka Panda robot
- Some refactoring to make code easier to read an debug
- Implement more complex filtering of topics to subscribe to.
The docker image hosts the server using Python 2.
- To configure, set the
ROS_MASTER_URI
ENV variable inside the container to the appropriateroscore
instance. - By default, the OPC-UA server will be listening on the
opc.tcp://0.0.0.0:21554/
endpoint.
- PORT, the port to listen for OPC-UA connections (defaults to
21554
). - HOST, the hostname/interface to bind to (defaults to all interfaces or
0.0.0.0
). - NS, the ROS namespace to subscribe to (defaults to
/
).
Subscribed and thereby published ROS topics can be filtered by populating the FILTERS
environment variable.
If no filters are specified, all topics are subscribed and published. If filters are specified, then the filters specify the list of topics to include, with the topics to remove excluded.
Filters are defined as a semicolon-separated list of ROS topic tree segments. Topic segments can be prepended by '+' (default) or '-' to specify inclusion or exclusion respectively. Additions are processed first, then removals will happen on that set.
filters := (filter ';' )* ;
filter := ( '+' | '-' )? topic ;
topic := '/' | ('/' IDENTIFIER )+ ;
IDENTIFIER := [A-Za-z0-9]+ ;
+/;-/foo
Include everything, except everything under /foo+/foo
Include everything in /foo (and nothing more)/foo
Include everything in /foo (and nothing more)