This fork supports only RWS 2.0, which RobotWare 7 and 8 use. It does not support RWS 1.0 and RobotWare 6.
Pull request abb_librws#69 turned this package from a Catkin package into a plain CMake package. ROS users may use any of the following build tools to build the library:
- ROS 1:
catkin_make_isolatedor catkin_tools. - ROS 2: colcon.
A C++ library for interfacing with ABB robot controllers supporting Robot Web Services (RWS) 2.0. See the online documentation for RobotWare 7 and RobotWare 8 for a detailed description of what RWS 2.0 is and how to use it.
- See abb_libegm for a companion library that interfaces with Externally Guided Motion (EGM).
Please note that this package has not been productized, it is provided "as-is" and only limited support can be expected.
The following is a conceptual sketch of how this RWS library can be viewed, in relation to an ABB robot controller as well as the EGM companion library mentioned above.
- RobotWare version
7or8, which use RWS2.0.
- POCO C++ Libraries (
>= 1.4.3due to WebSocket support)
RWS provides access to several services and resources in the robot controller, and this library currently support the following:
- Reading/writing of IO-signals.
- Reading/writing of RAPID data.
- Reading of RAPID data properties.
- Starting/stopping/resetting the RAPID program.
- Subscriptions (i.e. receiving notifications when resources are updated).
- Uploading/downloading/removing files.
- Checking controller state (e.g. motors on/off, auto/manual mode and RAPID execution running/stopped).
- Reading the joint/Cartesian values of a mechanical unit.
- Register as a local/remote user (e.g. for interaction during manual mode).
- Turning the motors on/off.
- Reading of current RobotWare version and available tasks in the robot system.
- It is a good idea to perform RobotStudio simulations before working with a real robot.
- It is prudent to familiarize oneself with general safety regulations (e.g. described in ABB manuals).
- Consider cyber security aspects, before connecting robot controllers to networks.
This is a generic library, which can be used together with any RAPID program and system configuration. The library's primary classes are:
- POCOClient: Sets up and manages HTTP and WebSocket communication and is unaware of the RWS protocol.
- RWSClient: Inherits from
POCOClientand provides interaction methods for using the RWS services and resources. - RWSInterface: Encapsulates an
RWSClientinstance and provides more user-friendly methods for using the RWS services and resources.
The core development has been supported by the European Union's Horizon 2020 project SYMBIO-TIC. The SYMBIO-TIC project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement no. 637107.
The open-source process has been supported by the European Union's Horizon 2020 project ROSIN. The ROSIN project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement no. 732287.
The opinions expressed reflects only the author's view and reflects in no way the European Commission's opinions. The European Commission is not responsible for any use that may be made of the contained information.
Special thanks to gavanderhoorn for guidance with open-source practices and ROS-Industrial conventions.


