All Projects → ros-industrial → abb_librws

ros-industrial / abb_librws

Licence: BSD-3-Clause license
A C++ library for interfacing with ABB robot controllers supporting Robot Web Services

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
shell
77523 projects

Projects that are alternatives of or similar to abb librws

abb robot driver
The new ROS driver for ABB robots
Stars: ✭ 55 (+1.85%)
Mutual labels:  ros-industrial, abb, rws
abb libegm
A C++ library for interfacing with ABB robot controllers supporting Externally Guided Motion (689-1)
Stars: ✭ 71 (+31.48%)
Mutual labels:  ros-industrial, abb
yak
yak (yet another kinfu) is a library and ROS wrapper for Truncated Signed Distance Fields (TSDFs).
Stars: ✭ 25 (-53.7%)
Mutual labels:  ros-industrial
staubli
ROS-Industrial Staubli support (http://wiki.ros.org/staubli)
Stars: ✭ 15 (-72.22%)
Mutual labels:  ros-industrial
goroslib
ROS client library for the Go programming language
Stars: ✭ 226 (+318.52%)
Mutual labels:  ros-industrial
motoman project
Repository for Motoman ROS applications
Stars: ✭ 50 (-7.41%)
Mutual labels:  ros-industrial
RobotComponents
A Grasshopper plugin for intuitive robot programming
Stars: ✭ 30 (-44.44%)
Mutual labels:  abb
vscode-tree-view
VSCode extension that probvides mail symbol overview of the currently opened file
Stars: ✭ 26 (-51.85%)
Mutual labels:  abb
Universal Robots ExternalControl URCap
Example implementation of how to use ROS driver on-demand in a URCap.
Stars: ✭ 32 (-40.74%)
Mutual labels:  ros-industrial
docker
ROS-Industrial docker and cloud tools
Stars: ✭ 23 (-57.41%)
Mutual labels:  ros-industrial
abb-yumi
This project aims to control abb yumi(irb14400) robot using ros control interface so that you can send joint trajectory command to robot. Also we implemented a cartesian velocity controller using KDL library.
Stars: ✭ 21 (-61.11%)
Mutual labels:  abb
flexgui industrial
Moved to: https://github.com/PPM-Robotics-AS/flexgui4.0
Stars: ✭ 30 (-44.44%)
Mutual labels:  ros-industrial
ABB Aurora Solar Inverter Library
Arduino, esp32 and esp8266 library for ABB (ex PowerOne) Aurora Inverter, implement a full methods to retrieve data from the Inverter via RS-485
Stars: ✭ 22 (-59.26%)
Mutual labels:  abb
kuka
ROS-Industrial KUKA support (http://wiki.ros.org/kuka)
Stars: ✭ 23 (-57.41%)
Mutual labels:  ros-industrial
hybrid planning experiments
Sampler + Optimizing Motion Planning Demonstrations
Stars: ✭ 23 (-57.41%)
Mutual labels:  ros-industrial
godel
ROS-Industrial Focused Technical Project: Robotic Blending
Stars: ✭ 64 (+18.52%)
Mutual labels:  ros-industrial
industrial calibration
Contains libraries/algorithms for calibration industrial systems
Stars: ✭ 91 (+68.52%)
Mutual labels:  ros-industrial

abb_librws

Build Status: Ubuntu Bionic (Actions) Build Status: Ubuntu Focal (Actions) Github Issues

license - bsd 3 clause

support level: vendor

Important Notes

RobotWare versions 7.0 and higher are currently incompatible with abb_librws (due to RWS 1.0 being replaced by RWS 2.0). See this for more information about the different RWS versions.

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:

Overview

A C++ library for interfacing with ABB robot controllers supporting Robot Web Services (RWS) 1.0. See the online documentation for a detailed description of what RWS 1.0 is and how to use it.

  • See abb_libegm for a companion library that interfaces with Externally Guided Motion (EGM).
  • See StateMachine Add-In (1.0 or 1.1) for an optional RobotWare Add-In that can be useful when configuring an ABB robot controller for use with this library.

Please note that this package has not been productized, it is provided "as-is" and only limited support can be expected.

Sketch

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. The optional StateMachine Add-In is related to the robot controller's RAPID program and system configuration.

RWS sketch

Requirements

  • RobotWare version 6.0 or higher (less than 7.0, which uses RWS 2.0).

Dependencies

Limitations

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.

Recommendations

  • This library has been verified to work with RobotWare 6.08.00.01. Other versions are expected to work, but this cannot be guaranteed at the moment.
  • 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.

Usage Hints

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 POCOClient and provides interaction methods for using the RWS services and resources.
  • RWSInterface: Encapsulates an RWSClient instance and provides more user-friendly methods for using the RWS services and resources.
  • RWSStateMachineInterface: Inherits from RWSInterface and has been designed to interact with the aforementioned StateMachine Add-In. The interface knows about the custom RAPID variables and routines, as well as system configurations, loaded by the RobotWare Add-In.

The optional StateMachine Add-In for RobotWare can be used in combination with any of the classes above, but it works especially well with the RWSStateMachineInterface class.

StateMachine Add-In [Optional]

The purpose of the RobotWare Add-In is to ease the setup of ABB robot controllers. It is made for both real controllers and virtual controllers (simulated in RobotStudio). If the Add-In is selected during a RobotWare system installation, then the Add-In will load several RAPID modules and system configurations based on the system specifications (e.g. number of robots and present options).

The RAPID modules and configurations constitute a customizable, but ready to run, RAPID program which contains a state machine implementation. Each motion task in the robot system receives its own state machine instance, and the intention is to use this in combination with external systems that require interaction with the robot(s). The following is a conceptual sketch of the RAPID program's execution flow.

To install the Add-In:

  1. Go to the Add-Ins tab in RobotStudio.
  2. Search for StateMachine Add-In in the RobotApps window.
  3. Select the desired Add-In version and retrieve it by pressing the Add button.
  4. Verify that the Add-In was added to the list Installed Packages.
  5. The Add-In should appear as an option during the installation of a RobotWare system.

See the Add-In's user manual (1.0 or 1.1) for more details, as well as for install instructions for RobotWare systems. The manual can also be accessed by right-clicking on the Add-In in the Installed Packages list and selecting Documentation.

Acknowledgements

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

Special thanks to gavanderhoorn for guidance with open-source practices and ROS-Industrial conventions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].