Skip to main content

ABBRobotEGM

License

ABBRobotEGM is a Python library for interfacing with ABB robots using Externally Guided Motion (EGM). This library provides real-time streaming communication with ABB robots at rates up to 250Hz using UDP. It's based on the official ABB EGM documentation and examples, and it's designed to be easy to use and to integrate with other systems.

Prerequisites

  • Python 3.x
  • ABB RobotWare 7.X (should work with 6.X with few modifications)
  • ABB Robot with EGM option (3124-1 Externally Guided Motion)

Installation 🚀

Using pip 🐍

To install the library using pip, run the following command:

pip install ABBRobotEGM

Manual Installation 📦

To use this library in your project, first download the repository and place the ABBRobotEGM folder in your project's directory. You can then import the EGM class from this library to use it in your project.

Simple Examples

The repository includes several examples demonstrating different EGM functionalities. Inside each python example file, you can find the relative RAPID code that should be running on the robot controller.

Guidance Mode

1. Joint

example_joint_guidance.py - Makes the first joint oscillate between -45° and +45°:

2. Cartesian

example_pose_guidance.py - Makes the robot move in a circular pattern

Streaming Mode

1. Joint Streaming

example_joint_stream.py - Streams robot joint positions :

from ABBRobotEGM import EGM

def main() -> None:
    """
    Example showing how to stream the robot's position.
    Be sure the robot is running before running this script.
    """
    with EGM() as egm:
        while True:
            success, state = egm.receive_from_robot()
            if not success:
                print("Failed to receive from robot")
                break
            print(f"{state.clock[1]}, {state.joint_angles[0]}, {state.joint_angles[1]}, {state.joint_angles[2]}, {state.joint_angles[3]}, {state.joint_angles[4]}, {state.joint_angles[5]}")


if __name__ == "__main__":
    main()

2. Cartesian Streaming

example_pos_stream.py - Streams robot cartesian position

from ABBRobotEGM import EGM

def main() -> None:
    """
    Example showing how to stream the robot's position.
    Be sure the robot is running before running this script.
    """
    with EGM() as egm:
        while True:
            success, state = egm.receive_from_robot()
            if not success:
                print("Failed to receive from robot")
                break
            print(f"{state.clock[1]}, {state.cartesian.pos.x}, {state.cartesian.pos.y}, {state.cartesian.pos.z}")


if __name__ == "__main__":
    main()

3. Data Exchange

example_table.py - Demonstrates exchanging data arrays with the robot

Complex Scenario

Example of a more complex scenario where the robot is scanning a surface giving in real time its tool center point position and correlating with a sensor reading. Rspag and python code available in "scenario scan" folder.

https://github.com/user-attachments/assets/03f151de-e098-4255-ac46-7dff42231071

Features 🚀

  • Real-time communication at up to 250Hz
  • Joint position control
  • Cartesian position control
  • Position streaming
  • Path corrections
  • RAPID data exchange
  • External axis support
  • Force measurement reading
  • Comprehensive robot state feedback

Contributing 🤝

Contributions are welcome! Please feel free to submit pull requests.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abbrobotegm-1.0.1.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ABBRobotEGM-1.0.1-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file abbrobotegm-1.0.1.tar.gz.

File metadata

  • Download URL: abbrobotegm-1.0.1.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for abbrobotegm-1.0.1.tar.gz
Algorithm Hash digest
SHA256 60972cf454bb8c26b9775aecee51e5faff771d2dc9329d25822860d2e998eb8d
MD5 9115e274767b09a1d98b50b08618416a
BLAKE2b-256 44baaa003c929042059d4040e0f8f613eb685e83686863a6e097b766b3ec9869

See more details on using hashes here.

File details

Details for the file ABBRobotEGM-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: ABBRobotEGM-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 15.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for ABBRobotEGM-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ec6bd119093a42f791f3738fcda21d56ee8b66999103e68d8e5d6443af949f63
MD5 790cc7c077b211ded87aa3e0011f905d
BLAKE2b-256 16f182909035fad00546dbe1b46195fdb8e6218076a2d79303fb338affd204dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page