Skip to content

rparak/ABB_EGM_Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An Open-Source Python Library to Control ABB Robot Arm via EGM

Requirements

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

Project Description

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

Project Hierarchy

[/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.

Data Evaluation

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)

Contact Info

Roman.Parak@outlook.com

Citation (BibTex)

@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}}
}

License

MIT

About

An open-source Python library designed for controlling an articulated robotic arm from ABB through Externally Guided Motion (EGM).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published