Software:
ABB RobotStudio
Programming Language
Python
Import Libraries
More information can be found in the individual scripts (*.py).
Supported on the following operating systems:
Windows
Software/Package | Link |
---|---|
ABB RobotStudio | https://new.abb.com/products/robotics/robotstudio/downloads |
An open-source Python library designed for controlling an articulated robotic arm from ABB through Externally Guided Motion (EGM). Two types of robots from ABB were chosen for testing, namely the industrial robotic arm IRB 120 and the collaborative robotic arm IRB 14000 (YuMi). The goal was to analyze the difference between the actual and desired positions of the robot's joints generated using polynomial multi-axis position trajectories.
The project also includes the collection of data using the EGM, as well as the analysis of the data.
The project was realized at the Institute of Automation and Computer Science, Brno University of Technology, Faculty of Mechanical Engineering (NETME Centre - Cybernetics and Robotics Division).
IP Address Settings:
ABB RobotStudio | PC | |
---|---|---|
Simulation Control | 127.0.0.1 | 127.0.0.1 |
PORT | |
---|---|
UDPUC | 6511 |
UDPUC | 6512 |
Both ports are only used when the YuMi robot is selected, as each arm can be controlled separately.
WARNING: To control the robot in the real world, it is necessary to disable the firewall.
Notes:
EGM (Externally Guided Motion) is an interface for ABB robots that allows smoothless control of the robotic arm from an external application. The EGM can be used to transfer positions to the robot controller in either Joint/ Cartesian space. In our case it is the control of the robot using Joint coordinates.
The file "egm.proto" can be found in the installation folder of RobotWare. For example on Windows with RobotWare 7.6.1:
C:\Users\<user_name>\AppData\Local\ABB Industrial IT\Robotics IT\RobotWare\RobotControl_7.6.1\utility\Template\EGM
The Protobuf code generator can be used to generate code from a *.proto file into individual programming languages.
Link: Protobuf Code Generator and Parser
[/ABB_RobotStudio/{ABB_IRB_120, ABB_IRB_14000}/../]
Description:
The main ABB RobotStudio project for robot control via EGM.
[/src/Lib/EGM/egm_pb2.py]
Description:
Autogenerated code from the egm.proto -file.
[/src/Lib/EGM/Core.py]
Description:
A class to control an articulated robotic arm through the use of Externally Guided Motion (EGM) within ABB RobotStudio.
[/Data/../]
Description:
The folder contains the collected data from each tested robotic arm.
[/Evaluation/{Control, Collection, Analysis}/]
Description:
The evaluation (analysis) of the designed class.
[/PROTO/]
Description:
The egm.proto -file.
The results of the analysis show the difference between the actual and desired positions of the robot's joints for each tested robotic arm.
ABB IRB 120
ABB IRB 14000 (L)
ABB IRB 14000 (R)
@misc{RomanParak_PyEGM,
author = {Roman Parak},
title = {An open-source python library to control abb robot arm via egm},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://https://github.com/rparak/Transformation}}
}