githubEdit

Igus Rebel

Interface to igus iRC Robot Controllers

The igus iRC Interface connects and controls igus robots via the igus Robot Control (iRC) software. It supports all igus robot kinematics controllable through iRC, including the ReBeL 6DOF, SCARA 4DOF, delta robots, and linear robots with variable axis counts.

circle-info

This feature was updated in realvirtual 6.0.10 with support for variable axis counts, speed control, position-based motion commands, and inverse kinematics via CRI.

igus iRC Interface properties

Adding the Interface

Add the interface via the realvirtual menu: realvirtual > Add Interface > igus iRC.

Adding the igus iRC Interface from the menu

Prerequisites

The igus Robot Control Software (iRC) is freely available at https://www.igus.eu/automation/robot-control-system/robot-softwarearrow-up-right.

igus Robot Control Software enables simple and intuitive robot programming and control systems. Thanks to the modular structure, various robot kinematics including delta robots, linear robots and multi-axis robots can be controlled. The software can simulate individual movements on a 3D surface without a physical robot connected.

We deliver one example robot, the igus ReBeL, but after importing step data and defining the kinematic and drives, all other igus robots controllable by iRC can be used.

Properties

Active (enum) Determines when the interface is active. Options include:

  • Always: The interface is active at all times.

  • Connected: Only active when realvirtual.io is in "Connected Mode".

  • Disconnected: Only active in "Disconnected Mode".

  • Never: The interface is deactivated.

See more about connection states: Runtime UI - Connection Statusarrow-up-right

Is Connected (boolean, read-only) Displays the current connection status to the igus robot controller.

Address (string) IP address of the igus iRC controller. Use 127.0.0.1 for local connections.

Port (integer) Port number for the CRI connection. Default is 3921.

Drives (list) The robot axis drives. Each drive corresponds to one robot joint. The interface supports variable axis counts from 1 to 9 axes, making it compatible with all igus robot types (6DOF, 4DOF SCARA, delta, etc.).

Num Outputs (integer, read-only) Number of digital output signals from the robot to realvirtual.

Num Inputs (integer, read-only) Number of digital input signals from realvirtual to the robot.

Speed (float, slider 0–100) Controls the robot movement speed as a percentage. Changing this value sends an updated override speed to the iRC controller in real time.

Is Moving To Target (boolean, read-only) Indicates whether the robot is currently executing a position-based move command.

Target (RebelTarget, read-only) The current target the robot is moving towards during a position-based move.

Kinematic Error (boolean, read-only) Indicates whether the last inverse kinematics calculation returned an error from the iRC controller.

Active Command On Start (boolean) When enabled, sends the initial command activation sequence to the iRC controller on connection start.

Debug Mode (boolean) Enables detailed logging of all CRI protocol messages sent to and received from the robot controller. Useful for troubleshooting communication issues.

On Move Finished (UnityEvent) Event invoked when a position-based move command completes. Use this to chain movements or trigger actions after the robot reaches its target.

Robot Commands

The interface provides methods for controlling robot motion programmatically or via RebelTarget components.

MoveToPosition moves the robot to a RebelTarget with configurable offset, speed, and motion type (PTP or linear). MoveToPositionAsync provides the same functionality as an awaitable async method for use in coroutines or async workflows.

SetSpeed updates the robot speed override (0–100%) in real time.

SetRobotOutput controls digital outputs on the robot controller.

SetActive enables or disables the robot controller.

RebelTarget

The RebelTarget component defines a target position and rotation for the robot. Attach it to a GameObject whose transform represents the desired robot end-effector pose. Assign it to the interface's motion commands to move the robot to that position.

Inverse Kinematics

The interface supports inverse kinematics calculations via the CRI protocol. Use GetJointAngles to retrieve current joint positions and CalculateAngles to compute joint angles for a given Cartesian pose. The Kinematic Error property indicates if the last IK calculation failed (e.g., target out of reach).

Inputs and Outputs

The igus iRC Interface communicates with the robot controller using Global Signals and Digital Outputs.

circle-info

Note: Digital Inputs on the igus robot cannot be controlled directly from the simulation. These inputs are controlled by the robot controller. Use Global Signals instead.

Global Signals: Serve as inputs to the robot controller and must be configured within the iRC software's Project Configuration.

Digital Outputs: Robot controller outputs that send digital signals back to the simulation in realvirtual.

Connected IOs between realvirtual and iRC

To use Global Signals as inputs, set them up in the Project Configuration within the iRC software. Once configured, these inputs can be controlled from realvirtual through the assigned PLCInputBool signals.

Project configuration of iRC for defining Global Signals

Signal Assignment Logic

Signals are assigned based on hierarchy order and matched by SymbolName to the corresponding iRC signal:

  • Digital Outputs (Dout): Assigned sequentially as they appear in the hierarchy. The first PLCOutputBool maps to Dout21, the second to Dout22, and so on.

  • Global Signals (GSig): Assigned sequentially as inputs to the robot controller. The first PLCInputBool maps to GSig1, the second to GSig2, and so on.

See Also

Last updated