The respository contains setup instructions and a simple C++ and RAPID program for testing EGM communication between a PC and ABB industrial robot.
egm_hello_world: simple console program that connects and reads information off an ABB robot.egm_template: RAPID program that connects and runsEGMJointmoves.egm_server: console program for multi-robot EGM.
- Windows 10/11
- RobotStudio 2024
- RobotWare 7
These setup instructions explain how to build and prepare a C++ application that uses ABB's real-time control interface Externally Guided Motion [3124-1].
Skip this and double-click
egm_hello_world\egm_hello_world.slnif you have Microsoft Visual Studio already installed.
- Download Microsoft Visual Studio (Community)
- When prompted, choose the C++ desktop development workload, which includes essential features like the MSVC compiler and C++ tools.
- Download and install Git from Git SCM.
- Add Git to your PATH during installation.
Install Microsoft's package manager vcpkg:
- Clone
vcpkgin yourC:drive:cd C:\ git clone https://github.com/microsoft/vcpkg - Run the bootstrap script:
cd vcpkg .\bootstrap-vcpkg.bat
- Integrate vcpkg system wide:
.\vcpkg integrate install - Use
vcpkgto install Google Protobuf:.\vcpkg install protobuf:x64-windows
- Create a new C++ Desktop Application.
- Configure the project's Include and Library Directories:
- Right-click on the project in the Solution Explorer and select Properties.
- Navigate to VC++ Directories.
- Set Include Directories and Library Directories to include paths from your vcpkg installation, typically:
[vcpkg root]\installed\x64-windows\include [vcpkg root]\installed\x64-windows\lib - In the Linker settings, under Input, add the necessary lib files (e.g.,
libprotobuf.lib).
The correct egm.proto for your RobotWare OS file can be found through ABB RobotStudio.
- Download & Install RobotStudio.
- When prompted, download the correct controller and RobotWare for your robot (e.g., Omnicore & RobotWare 7.12.0).
- Find the
egm.protothrough the RobotStudio Add-Ins tab: - Copy
egm.prototo an easier location for protobuf:- Right-click File Explore and select Open in Terminal.
cp egm.proto C:\vcpkg\packages\protobuf_x64-windows\tools\protobuf
- Use protobuf's
protoctool to build the C++ source and header files:cd C:\vcpkg\packages\protobuf_x64-windows\tools\protobuf protoc --cpp_out=. egm.proto
- This creates a
.pb.hand.pb.ccfiles in that same location that you can copy & paste into your application folder.
The included RAPID program is configured to work with the default EGM settings on a virtual controller. You will need to update these settings if you want to fine-tune your EGM parameters or work on a real robot.

| Motion | Communication |
|---|---|
![]() |
![]() |



