ABB Driver¶
The Jacobi ABB Driver uses both the Robot Web Services (RWS) as well as the External Guided Motion (EGM) interface of ABB. EGM is a standalone package for ABB robots - make sure that it is installed on your robot.
Driver Installation¶
To install the Jacobi driver, either download the Debian package from account.jacobirobotics.com or install the Python package via
pip install jacobi-abb-driver
Robot Setup¶
Make sure that you have at least RobotWare version 6.10 - we currently don’t support robots below that. To setup EGM on the robot side, we need to
Under Configuration / Motion / External Motion Interface Data of the robot’s controller, add the following new interface data:
Name |
Level |
Do Not Restart after Motors Off |
Return to Program Position when Stopped |
Default Ramp Time |
Default Proportional Position Gain |
Default Low Pass Filter Bandwith |
---|---|---|---|---|---|---|
raw |
Raw |
No |
No |
0.5 |
20 |
100 |
To setup the network configuration, add the following new protocol under Configuration / Communication / UDP Unicast Device or Transmission Protocol for RobotWare 6,
Name |
Type |
Serial Port |
Remote Address |
Remote Port Number |
Local Port Number |
---|---|---|---|---|---|
ROB_1 |
UDPUC |
N/A |
IP of the control PC |
6511 by default |
0 |
and replace the remote address and port with the values determined by your network setup. The remote address is the IP address of the control PC running the driver, as EGM needs to know how to connect back to the driver. If you’re working in simulation, e.g. by using ABB RobotStudio locally, you can set the remote address to 127.0.0.1
and keep the default port of 6511
.
Our driver requires a single Signal to be added the robot’s I/O configuration. Under Configuration / I/O System / Signal add a digital input named
JacobiEgmStop
with Access Level All and otherwise default values.
Name |
Type of Signal |
… |
Device Mapping |
Category |
Access Level |
Default Value |
---|---|---|---|---|---|---|
JacobiEgmStop |
Digital Input |
N/A |
All |
0 |
Lastly, our driver requires to be informed about specific system events. For this, we add events under Configuration / Controller / Event Routine for the Start, Stop, and Restart event. The routine to call in our driver is named onStart, onStop, and onRestart respectively. They should belong to the
T_ROB_1
task.
Event |
Routine |
Task |
All Tasks |
All Motion Tasks |
Sequence Number |
---|---|---|---|---|---|
Start |
onStart |
T_ROB_1 |
|||
Stop |
onStop |
T_ROB_1 |
|||
Restart |
onRestart |
T_ROB_1 |
The Jacobi Driver uses the
Default User
. Make sure that it has all necessary UAS rights, e.g. for starting/stopping execution, loading modules, and uploading files.
Connecting¶
For the physical connection, we recommend to use the WAN port for production environment. For development, you can also use the service port. For the latter, the robot’s default IP address is 192.168.125.1
. Then, construct an ABBDriver
and specify the IP address of the robot as well as the EGM port defined above.
from jacobi.drivers import ABBDriver
driver = ABBDriver(planner, host='192.168.125.1', port=6511)
#include <jacobi/drivers/abb.hpp>
using namespace jacobi::drivers;
ABBDriver driver {planner, "192.168.125.1", 6511}; // host, port
In case of connection issues, please double check that the network configuration on both the robot and the control PC is correct, as well as no firewall is blocking the UDP packages.
Our driver works for both the RobotWare 7 and older RobotWare 6 version. For older robots, please specify the RobotWare6
parameter in the constructor.
Examples¶
Here, you can find several examples of using the Driver alongside the Jacobi Motion library.