- The ABB Totalflow driver for KEPServerEX connects to ABB Totalflow devices that support the native Totalflow serial protocol. The Totalflow protocol is typically used in upstream Oil & Gas for process control and hydrocarbon measurement at the wellhead, as well as in midstream Oil & Gas facilities.
- ABB offers several software tools to ease and enhance the use of ABB drives. Especially when straightforward routines cannot be applied, these tools provide a user-friendly and easy-to-use approach for the selection, commissioning and use of ABB drives.
- The DriveConfig kit is a new drive configuration tool for ABB component drives, ACS55, offering fast and safe configuration of unpowered drives. DriveBrowser for monitoring and tuning low voltage general machinery, standard, and industrial drives over Ethernet network.
- You must enter an e-mail address. You must enter a password. Forgot your password?
Show EOL distros:
abb: abb_common | abb_driver | abb_irb2400_moveit_config | abb_irb2400_moveit_plugins | abb_irb2400_support | abb_irb5400_support | abb_irb6600_support | abb_irb6640_moveit_config | abb_moveit_plugins | irb_2400_moveit_config | irb_6640_moveit_configUsed by (4)
ABB (ABBN: SIX Swiss Ex) is a leading global technology company that energizes the transformation of society and industry to achieve a more productive, sustainable future. By connecting software to its electrification, robotics, automation and motion portfolio, ABB pushes the boundaries of technology to drive performance to new levels.
ROS-Industrial nodes for interfacing with ABB robot controllers.
This package is part of the ROS-Industrial program and contains nodes for interfacing with ABB industrial robot controllers.
- Maintainer status: developed
- Maintainer: Shaun Edwards <sedwards AT swri DOT org>
- Author: Edward Venator, Jeremy Zoss, Shaun Edwards <sedwards AT swri DOT org>
- License: BSD
- Bug / feature tracker: https://github.com/ros-industrial/abb/issues
- Source: git https://github.com/ros-industrial/abb.git (branch: hydro)
Used by (8)
ROS-Industrial nodes for interfacing with ABB robot controllers.
This package is part of the ROS-Industrial program and contains nodes for interfacing with ABB industrial robot controllers.
- Maintainer status: developed
- Maintainer: Shaun Edwards <sedwards AT swri DOT org>
- Author: Edward Venator, Jeremy Zoss, Shaun Edwards <sedwards AT swri DOT org>
- License: BSD
- Bug / feature tracker: https://github.com/ros-industrial/abb/issues
- Source: git https://github.com/ros-industrial/abb.git (branch: indigo)
Used by (15)
Jenkins jobs (7)
ROS-Industrial nodes for interfacing with ABB robot controllers.
This package is part of the ROS-Industrial program and contains nodes for interfacing with ABB industrial robot controllers.
- Maintainer status: maintained
- Maintainer: Levi Armstrong (Southwest Research Institute) <levi.armstrong AT swri DOT org>
- Author: Edward Venator, Jeremy Zoss, Shaun Edwards
- License: BSD
- Bug / feature tracker: https://github.com/ros-industrial/abb_driver/issues
- Source: git https://github.com/ros-industrial/abb_driver.git (branch: kinetic-devel)
Jenkins jobs (6)
ROS-Industrial nodes for interfacing with ABB robot controllers.
This package is part of the ROS-Industrial program and contains nodes for interfacing with ABB industrial robot controllers.
- Maintainer status: maintained
- Maintainer: Levi Armstrong (Southwest Research Institute) <levi.armstrong AT swri DOT org>
- Author: Edward Venator, Jeremy Zoss, Shaun Edwards
- License: BSD
- Bug / feature tracker: https://github.com/ros-industrial/abb_driver/issues
- Source: git https://github.com/ros-industrial/abb_driver.git (branch: kinetic-devel)
Abb Drive Run Enable Missing
Contents
- Features
- Nodes
- robot_state
- motion_download_interface
Overview
This package is part of the ROS-Industrial program.
Status
The package is usable as-is, but is not feature complete. However, no significant development is planned, as development focus has shifted to abb_robot_driver (with abb_libegm and abb_librws).
Community contributed usability enhancements and new features will however be accepted and merged.
YuMi
While it is possible to use this driver with YuMi, for now this is not recommended.
Users who have the EGM option available, consider using abb_robot_driver, as it will offer the best possible motion quality.
The driver does not include any robot models (ie: _description packages) however. Various sources for those exist, one of which could be kth-ros-pkg/yumi.
Features
This package currently supports the following:
IRC5 controllers with RobotWare 5.13 and up
- Single mechanical units (ie: a basic 6 axis robot)
Up to 4 integrated external linear axes (in a single mechanical unit)
- Joint state reporting for all axes (in a single mechanical unit)
- Trajectory downloading for all axes (in a single mechanical unit)
The driver is largely manipulator agnostic, meaning that it will work with just about any ABB robot an IRC5 controller is compatible with.
Multi-group robots
There is no special support for robot controllers configured with multiple mechanical units, but this can be worked-around by setting up multiple instances of the RAPID programs and assigning them to specific units. Paired with multiple instances of the ROS nodes (appropriately namespaced) this supports asynchronous motion execution and state reporting in multi-group robot setups.
Requirements
The ABB ROS Server code is written in RAPID, using a socket interface and multiple parallel tasks. The code was originally tested on an IRC5 controller, with an IRB-2400 robot, but other combinations should also work. The following controller options are required:
623-1: Multitasking
672-1: Socket Messaging (in recent RobotWare versions, this option is included with 616-1: PC Interface)
RobotWare OS version 5.13 or later is required due to the use of certain socket options. Earlier versions may work, but will require modifications to the RAPID code.
Tutorials
Use the links on the Tutorials page for access to the tutorials. These explain how to install and set up the RAPID programs on the controller, as well as how to use them in conjunction with the ROS nodes in this package.
Nodes
robot_state
Connects to the StateServer RAPID task on the controller and publishes joint states.Action Feedback
feedback_states (control_msgs/FollowJointTrajectory)- Provide feedback of current vs. desired joint position (and velocity/acceleration).
Published Topics
joint_states (sensor_msgs/JointState)- Joint state for all joints of the connected robot.
Parameters
robot_ip_address (str, default: none)- IP address of the controller to connect to. If this is not set the node will exit.
- TCP port the StateServer RAPID task is listening on.
- The urdf xml robot description.
Abb Driver Installer
[str, str, str, ..])- (optional) A list containing all joints the driver should assume control over. If this parameter is not found, the driver will try to extract this from the robot_description parameter, but this will result in all joints in the urdf to be included. If the driver should only publish joint states for a subset of the joints in the urdf, the controller_joint_names parameter must be set.
motion_download_interface
Connects to the MotionServer RAPID task on the controller and uploads trajectories.Subscribed Topics
joint_states (sensor_msgs/JointState)- Joint state for all joints of the connected robot.
- Execute a pre-calculated joint trajectory on the robot.
Services
joint_path_commandAbb Drive Reset
(industrial_msgs/CmdJointTrajectory)- Execute a new motion trajectory on the robot.
Abb Drive Software
- Stop execution of the current motion at the earliest time possible.
Parameters
robot_ip_address (str, default: none)- IP address of the controller to connect to. If this is not set the node will exit.
~port (Abb Drives
integer, default: 11000)- TCP port the MotionServer RAPID program is listening on.
- The urdf xml robot description.
- (optional) A list containing all joints the driver should assume control over. If this parameter is not found, the driver will try to extract this from the robot_description parameter, but this will result in all joints in the urdf to be included. If the driver should only control a subset of the joints in the urdf, the controller_joint_names parameter must be set.
Contact us/Technical support
For questions about this package or ROS-Industrial in general, please contact the developers by posting a message in the ROS-Industrial category on ROS Discourse.
| Note: This tutorial assumes basic familiarity with the ABB robot controller. Consult the manufacturer's documentation for further details on any of the steps listed in this tutorial. |
| Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
Keywords: ABB, Industrial, IRC5
Tutorial Level: INTERMEDIATE
Next Tutorial: Next, you'll learn how to run and manage the ABB ROS Server Running the server
Contents
- Configuring Controller Settings
This tutorial has two parts: installing server code and configuring the controller with the appropriate tasks.
Prerequisites
The ABB ROS Server code is written in RAPID, using a socket interface and multiple parallel tasks. The code was originally tested on an IRC-5 controller, with an IRB-2400 robot, but other combinations should also work. The following controller options are required:
623-1: Multitasking
672-1: Socket Messaging (in recent RobotWare versions, this option is included with 616-1: PC Interface)
RobotWare OS version 5.13 or later is required due to the use of certain socket options. Earlier versions may work, but will require modifications to the RAPID code.
Installing Server Code
All files in the abb_driver/rapid (Indigo and later) directory should be copied to the robot controller. This tutorial assumes the files are copied to a 'ROS' subdirectory under the system's HOME directory (e.g. /<system>/HOME/ROS/*).
See the manufacturer's documentation for file-transfer methods. RobotStudio Online and USB drives are often convenient methods to transfer files to the controller.
Configuring Controller Settings
The ROS Server code requires 3 tasks. Some modules are loaded to specific tasks, and others are shared between tasks, as described below:
File Overview
- Shared by all tasks
ROS_common.sys -- Global variables and data types shared by all files
ROS_socket.sys -- Socket handling and simple_message implementation
ROS_messages.sys -- Implementation of specific message types
- Specific task modules
ROS_stateServer.mod -- Broadcast joint position and state data
ROS_motionServer.mod -- Receive robot motion commands
ROS_motion.mod -- Issues motion commands to the robot
Create Tasks
Browse to Controller tab → Configuration Editor → Controller → Task, then right-click New Task
(In RobotStudio 5, this is found under ABB → Control Panel → Configuration → Topics → Controller → Task)
- Create 3 tasks as follows:
Name
Type
Trust Level
Entry
Motion Task
ROS_StateServer
SEMISTATIC
NoSafety
main
NO
ROS_MotionServer
SEMISTATIC
SysStop
main
NO
T_ROB1
NORMAL
main
YES
It is easiest to wait until all configuration tasks are completed before rebooting the controller.
NOTES:
The T_ROB1 motion task probably already exists on your controller.
If T_ROB1 has existing motion-control modules, you may need to rename the main() routine in ROS_Motion.mod to ROS_main(). In this case, set the Entry point for T_ROB1 task to ROS_main().
For multi-robot controllers, specify the desired robot (e.g. rob1) for each task
SEMISTATIC tasks will auto-start when controller is booted. They are visible, but cannot be easily seen for troubleshooting. For debug or development purposes, it may be desired to set both ROS_*Server tasks to Type=NORMAL.
Create Signals
Browse to Controller tab → Configuration Editor → I/O System → Signal, then right-click New Signal
(In RobotStudio 5, this is found under ABB → Control Panel → Configuration → Topics → I/O → Signal)
- Create 7 signals as follows:
Name
Type of Signal
signalExecutionError
Digital Output
signalMotionPossible
Digital Output
signalMotorOn
Digital Output
signalRobotActive
Digital Output
signalRobotEStop
Digital Output
signalRobotNotMoving
Digital Output
signalRosMotionTaskExecuting
Digital Output
It is easiest to wait until all configuration tasks are completed before rebooting the controller.
Tie Signals to the System Outputs
Browse to Controller tab → Configuration Editor → I/O System → System Output, then right-click New System Output
(In RobotStudio 5, this is found under the ABB → Control Panel → Configuration → Topics → I/O → System Output)
- Add one entry for signal as follows:
Signal Name
Status
Arg 1
Arg 2
Arg 3
Arg 4
signalExecutionError
Execution Error
N/A
T_ROB1
N/A
N/A
signalMotionPossible
Runchain OK
N/A
N/A
N/A
N/A
signalMotorOn
Motors On State
N/A
N/A
N/A
N/A
signalRobotActive
Mechanical Unit Active
ROB_1
N/A
N/A
N/A
signalRobotEStop
Emergency Stop
N/A
N/A
N/A
N/A
signalRobotNotMoving
Mechanical Unit Not Moving
ROB_1
N/A
N/A
N/A
signalRosMotionTaskExecuting
Task Executing
N/A
T_ROB1
N/A
N/A
Load Modules to Tasks
Browse to Controller tab → Configuration Editor → Controller → Automatic Loading of Modules, then right-click New Automatic Loading of Modules
(In RobotStudio 5, this is found under ABB → Control Panel → Configuration → Topics → Controller → Automatic Loading of Modules)
- Add one entry for each server file as follows:
File
Task
Installed
All Tasks
Hidden
HOME:/ROS/ROS_common.sys
NO
YES
NO
HOME:/ROS/ROS_socket.sys
NO
YES
NO
HOME:/ROS/ROS_messages.sys
NO
YES
NO
HOME:/ROS/ROS_stateServer.mod
ROS_StateServer
NO
NO
NO
HOME:/ROS/ROS_motionServer.mod
ROS_MotionServer
NO
NO
NO
HOME:/ROS/ROS_motion.mod
T_ROB1
NO
NO
NO
After the last change, select YES to restart the controller and apply the changes.
Updating Software
Abb Drive Rbcu
To update robot-server files with new code versions, use the following procedure to ensure that the changes are actually applied:
- Copy the new/updated files onto the robot controller, as before.
Restart the controller using a P-Start
ABB → Restart → Advanced → P-Start → OK
NOTE: This will erase any existing modules that have been loaded to memory. This may cause compilation issues on restart. If this is a concern, try another method: Warm Start, manually reloading modules (may require setting SEMISTATIC tasks to NORMAL tasks), etc.
- After the controller reboots, the new changes should be active.