Please note that the included packages have not been productized, and that academia is the intended audience.
The packages are provided "as-is", and as such no more than limited support can be expected.
ROS packages intended to ease interaction between ABB robot controllers and ROS-based systems, by providing ready-to-run ROS nodes.
Connecting ABB robots, people and ROS systems together.
The included (principal) packages are briefly described in the following table:
Package | Description |
---|---|
abb_rws_state_publisher | Provides a ROS node that continuously polls an ABB robot controller for system states, which then are parsed into ROS messages and published to the ROS system. |
abb_rws_service_provider | Provides a ROS node that exposes ROS services, for discrete interaction with an ABB robot controller, like starting/stopping the RAPID program and reading/writing of IO-signals. |
abb_egm_hardware_interface | Provides ROS nodes for:
|
Please see each package for more details (e.g. additional requirements, limitations and troubleshooting).
It is recommended to utilize the RobotWare
StateMachine Add-In to ease the setup of the ABB robot controller system. The StateMachine Add-In
is optional, however, without it, the driver nodes will only be able to provide basic interaction with ABB robots.
It is assumed that ROS has been installed on the system in question.
Note that the included packages have mainly been tested with ROS Melodic (on both Ubuntu and Windows).
As some of the dependencies of this driver are plain CMake packages (instead of Catkin packages), they cannot be built using vanilla catkin, but require the use of either catkin_make_isolated
or catkin_tools.
The instructions in the rest of this section will assume catkin_tools
will be used.
In case of using catkin_make_isolated
, be sure to update commands where necessary.
As workspaces cannot be built with both vanilla catkin
and catkin_tools
, if you already have a workspace and would like to add the packages of this driver to that workspace, be sure to clean the workspace prior to building it, as you will encounter errors otherwise.
The instructions below assume vcstool is installed.
Refer to How to install vcstool? in the vcstool
readme for more information on how to install it on various OS.
The following instructions assume that a Catkin workspace has been created at $HOME/catkin_ws
and that the source space is at $HOME/catkin_ws/src
. Update paths appropriately if they are different on the build machine.
The following instructions should build the main branches of all required repositories on a ROS Melodic system:
# Change to the root of the Catkin workspace.
cd $HOME/catkin_ws
mkdir -p src
# Use vcstool to clone all required repositories into the 'src' space.
vcs import src --input https://github.com/ros-industrial/abb_robot_driver/raw/master/pkgs.repos
# Check build dependencies.
# First update the local rosdep database.
rosdep update
# And then ask rosdep to install any missing dependencies for us.
# NOTE: This may install additional packages, depending on the software installed
# on the machine. Be sure to check each command rosdep wants to run.
rosdep install --from-paths src --ignore-src --rosdistro melodic
# Finally build the workspace (using catkin_tools).
catkin build
If no errors were reported as part of the catkin build
command, the build has succeeded and the driver should now be usable.
Finally, activate the workspace to get access to the packages just built:
$ source $HOME/catkin_ws/devel/setup.bash
At this point all packages should be usable (ie: roslaunch
should be able to auto-complete package names starting with abb_..
). In case the workspace contains additional packages (i.e.: not from this repository), those should also still be available.
See abb_robot_bringup_examples for some basic examples of how to configure, launch and use the included ROS nodes.
The core development has been made within the European Union's Horizon 2020 project: ROSIN - ROS-Industrial Quality-Assured Robot Software Components (see http://rosin-project.eu for more info).
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 here 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 conventions.