Robot Raconteur standard robot driver for ABB robots using the IRC5 controller.
This driver communicates with the robot using the Externally Guided Motion (EGM). EGM provides real-time
streaming control of the robot position. This driver uses the real-time control to directly control the robot
motion. There is another driver abb_motion_program_exec
that uses motion program commands instead of direct position control. The abb_motion_program_exec
driver uses
the built-in motion program interpreter in the IRC5 controller to execute motion programs instead of directly
controlling the robot position. Use whichever driver is most appropriate for your application.
Example driver clients are in the examples/
directory. This driver supports jog, position, and trajectory
command modes for the standard com.robotraconteur.robotics.robot.Robot
service type.
The Robot Raconteur Training Simulator contains a simulated ABB IRB 1200 robot in the multi-robot scene.
The default connection information is as follows. These details may be changed using --robotraconteur-*
command
line options when starting the service. Also see the
Robot Raconteur Service Browser to detect
services on the network.
- URL:
rr+tcp://localhost:58651?service=robot
- Device Name:
abb_robot
- Node Name:
abb_robot
- Service Name:
robot
- Root Object Type:
com.robotraconteur.robotics.robot.Robot
The following command line arguments are available:
--robot-info-file=
- The robot info file. Info files are available in theconfig/
directory. See robot info file documentation--robot-name=
- Overrides the robot device name. Defaults toabb_robot
.
The common Robot Raconteur node options are also available.
Zip files containing the driver are available on the Releases page. Download the zip file and extract it to a directory. The .NET 6.0 runtime is required to run the driver. This driver will run on Windows and Linux.
The driver can be run using the following command:
ABBRobotRaconteurDriver.exe --robot-info-file=config/abb_1200_5_90_robot_default_config.yml
Use the dotnet
command to run the driver on Linux:
dotnet ABBRobotRaconteurDriver.dll --robot-info-file=config/abb_1200_5_90_robot_default_config.yml
Use the appropriate robot info file for your robot.
On Linux it is possible to run the driver using docker. The following command will run the driver using the
abb_1200_5_90_robot_default_config.yml
robot info file:
sudo docker run --rm --net=host --privileged -v /var/run/robotraconteur:/var/run/robotraconteur -v /var/lib/robotraconteur:/var/lib/robotraconteur wasontech/abb-robotraconteur-driver /opt/abb_robotraconteur_driver/ABBRobotRaconteurDriver --robot-info-file=/config/abb_1200_5_90_robot_default_config.yml
It may be necessary to mount a docker "volume" to access configuration yml files that are not included in the docker image. See the docker documentation for instructions on mounting a local directory as a volume so it can be accessed inside the docker.
This driver requires the IRC5 EGM control option.
These instructions assume that the robot is fully operational, and has the EGM option installed. Before starting, make sure that standard RAPID programs are running normally. Consult the ABB documentation and examples for instructions on how to test the robot.
Note: If you have Robot Studio installed and connected to the robot, it is easier to follow instructions 4 - 6 below instead of the teach pendant based instructions in this section.
- Configure robot settings. Complete the following:
- Configure the control computer IP address
- Select (menu) -> Control Panel
- Select "Configuration"
- Select "Topics" -> "Communication"
- Select "IP Setting"
- Select "Add"
- Set "Interface" to WAN
- Set IP address of IRC5 Controller
- Tap "OK"
- Configure the control computer IP address
- Select (menu) -> Control Panel
- Select "Configuration"
- Select "Topics" -> "Communication"
- Select "Transmission Protocol"
- Select "UCdevice"
- Set "Remote Device" to the IP address of the computer running the ABB Robot Raconteur Driver
- Tap "OK"
- Configure the EGM settings
- Select (menu) -> Control Panel
- Select "Configuration"
- Select "Topics" -> "Motion"
- Select "External Motion Interface"
- Tap "Add"
- Set "Name" to "conf1"
- Set "Level" to "Raw"
- Set "Do Not Restart after Motors Off" to "Yes"
- Set "Default Ramp Time" to 0.1
- Tap "Ok"
- Configure the control computer IP address
- Load the RAPID program. Complete the following:
- Select (menu) -> Production Window
- Select "Load Module"
- Load (.pgf) program
- (Note: If you have Robot Studio it is much easier to transfer the program using the RAPID editor on a PC. See Step 5 in the Robot Studio Setup Instructions)
- (Note: .pgf could be created from RobotStudio, save to .pgf on controller)
- Run the RAPID program
- Select (menu) -> Production Window
- Tap "PP to Main"
- If the robot is in manual mode, grasp the enabling switch
- Push the "Motors On" button on the controller
- Press "Play" on the teach pendant (physical button)
- Start the ABB Robot Raconteur Driver program
To start the program in the future or recover from an error, repeat Step 3. The ABB Robot Raconteur Driver program may be started before or after the robot, and should reconnect after an error.
These instructions use the ABB IRB 1200-7/0.7 robot as an example. Other robots can be substituted for this model when configuring the simulator.
- Select File ribbon tab -> New -> Solution With Sation and Virtual Controller
- Set "Solution Name" and "Location" to desired save path
- Select "Create New" with the desired Robot Model. For this example, select "IRB 1200 7kg 0.7m"
- Check "Customize Options"
- Click "Create"
- "Change Options" will now display. Complete the following:
- Type "EGM" into the filter
- Select "Engineering Tools" under "System Options"
- Check "689-1 Externally Guided Motion (EGM)"
- Click "Ok"
- Select "IRB1200_7_70_STD_02" when prompted to "Select library ..."
- Configure robot settings. Complete the following:
- Select Controller ribbon tab -> Configuration -> Communication
- Select "Transmission Protocol"
- Double click on "UCdevice"
- Set the "Remote Address" to the IP address of the control computer running the Robot Raconteur ABB Driver
- Click "Ok"
- Select Controller ribbon tab -> Configuration -> Motion
- Select "External Motion Interface Data"
- Right click in the window and select "New External Motion Interface Data..."
- Set "Name" to "conf1"
- Set "Do Not Restart after Motors Off" to "Yes"
- Set "Level" to "Raw"
- Set "Default Ramp Time" to 0.1
- Select Controller ribbon tab -> Configuration -> Communication
- Configure the RAPID program. Complete the following
- Select the "RAPID" ribbon tab
- On the Controller tab on the left, expand "RAPID" -> "T_ROB1", and double click "Module 1"
- Cut and paste the contents rapid/egm.mod into T_ROB1/Module1, completely replacing the contents of Module1
- Click "Apply" on the ribbon
- Run the program
- Select Controller ribbon tab -> Operating Mode
- Select "Auto" in the "Operating Mode" window
- Select the "RAPID" ribbon tab
- Click "Program Pointer" -> "Set Program Pointer to Main in all tasks"
- Select "Run Mode" -> "Continuous"
- Click "Start"
- Start the ABB Robot Raconteur Driver
At this point, the robot and driver should be running. Save the workspace. In starting the simulation in the future, or when recovering from an error, repeat Step 6.
This work was supported in part by the Advanced Robotics for Manufacturing ("ARM") Institute under Agreement Number W911NF-17-3-0004 sponsored by the Office of the Secretary of Defense. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of either ARM or the Office of the Secretary of Defense of the U.S. Government. The U.S. Government is authorized to reproduce and distribute reprints for Government purposes, notwithstanding any copyright notation herein.
This work was supported in part by the New York State Empire State Development Division of Science, Technology and Innovation (NYSTAR) under contract C160142.