igus Rebel
igus iRC 接口通过 igus Robot Control (iRC) 软件连接和控制 igus 机器人。它支持所有可通过 iRC 控制的 igus 机器人运动学,包括 ReBeL 6DOF、SCARA 4DOF、delta 机器人和可变轴数的线性机器人。
此功能在 realvirtual 6.0.10 中已更新,支持可变轴数、速度控制、基于位置的运动命令以及通过 CRI 的逆运动学。

添加接口
通过 realvirtual 菜单添加接口:Tools > realvirtual > Add Interface > igus iRC。

前提条件
igus Robot Control 软件 (iRC) 可从 https://www.igus.eu/automation/robot-control-system/robot-software 免费获取。
igus Robot Control 软件提供简单直观的机器人编程和控制系统。得益于模块化结构,可以控制各种机器人运动学,包括 delta 机器人、线性机器人和多轴机器人。该软件可以在 3D 界面上模拟单个运动,无需连接物理机器人。
我们提供了一个示例机器人——igus ReBeL,但在导入 STEP 数据并定义运动学和 Drive 后,所有其他可由 iRC 控制的 igus 机器人都可以使用。
属性
Active(枚举)确定接口何时处于活动状态。选项包括:
- Always:接口始终处于活动状态。
- Connected:仅在 realvirtual.io 处于"已连接模式 (Connected Mode)"时活动。
- Disconnected:仅在"已断开模式 (Disconnected Mode)"时活动。
- Never:接口被停用。
有关连接状态的更多信息,请参见:运行时 UI - 连接状态
Is Connected(布尔值,只读)显示与 igus 机器人控制器的当前连接状态。
Address(字符串)igus iRC 控制器的 IP 地址。本地连接使用 127.0.0.1。
Port(整数)CRI 连接的端口号。默认为 3921。
Drives(列表)机器人轴驱动器。每个 Drive 对应一个机器人关节。接口支持 1 到 9 轴的可变轴数,兼容所有 igus 机器人类型(6DOF、4DOF SCARA、delta 等)。
Num Outputs(整数,只读)从机器人到 realvirtual 的数字输出信号数量。
Num Inputs(整数,只读)从 realvirtual 到机器人的数字输入信号数量。
Speed(浮点数,滑块 0–100)以百分比控制机器人运动速度。更改此值会实时向 iRC 控制器发送更新的速度覆盖值。
Is Moving To Target(布尔值,只读)指示机器人当前是否正在执行基于位置的移动命令。
Target(RebelTarget,只读)机器人在基于位置移动期间正在移向的当前目标。
Kinematic Error(布尔值,只读)指示最后一次逆运动学计算是否从 iRC 控制器返回了错误。
Active Command On Start(布尔值)启用后,在连接开始时向 iRC 控制器发送初始命令激活序列。
Debug Mode(布尔值)启用后,记录所有发送到和从机器人控制器接收的 CRI 协议消息的详细日志。用于排查通信问题。
On Move Finished(UnityEvent)当基于位置的移动命令完成时调用的事件。用于在机器人到达目标后链式运动或触发操作。
机器人命令
该接口提供了通过编程方式或 RebelTarget 组件控制机器人运动的方法。
MoveToPosition 将机器人移动到具有可配置偏移、速度和运动类型(PTP 或线性)的 RebelTarget。MoveToPositionAsync 提供相同功能作为可等待的异步方法,用于协程或异步工作流。
SetSpeed 实时更新机器人速度覆盖值(0–100%)。
SetRobotOutput 控制机器人控制器上的数字输出。
SetActive 启用或禁用机器人控制器。
RebelTarget
RebelTarget 组件定义机器人的目标位置和旋转。将其附加到一个 GameObject 上,该 GameObject 的 transform 表示所需的机器人末端执行器位姿。将其分配给接口的运动命令,以将机器人移动到该位置。
逆运动学
该接口支持通过 CRI 协议进行逆运动学计算。使用 GetJointAngles 检索当前关节位置,使用 CalculateAngles 计算给定笛卡尔位姿的关节角度。Kinematic Error 属性指示最后一次 IK 计算是否失败(例如,目标超出范围)。
输入和输出
igus iRC 接口使用 全局信号 和 数字输出 与机器人控制器通信。
注意:igus 机器人上的数字输入不能直接从仿真中控制。这些输入由机器人控制器控制。请改用全局信号。
全局信号:作为机器人控制器的输入,必须在 iRC 软件的 项目配置 中进行配置。
数字输出:机器人控制器输出,将数字信号实时发送回 realvirtual 中的仿真。

要使用 全局信号 作为输入,请在 iRC 软件的 项目配置 中进行设置。配置完成后,这些输入可以通过分配的 PLCInputBool 信号从 realvirtual 中控制。

设置数字 I/O 信号
要使用 igus iRC 接口的数字 I/O,请在接口 GameObject 下创建子 GameObject,并添加适当的信号组件:
- 数字输出 (DOut):为要从机器人控制器接收的每个数字输出在子 GameObject 上添加
PLCOutputBool组件。这些对应于 iRC 软件中的DOut21、DOut22等。 - 全局信号 (GSig):为要发送到机器人控制器的每个全局信号在子 GameObject 上添加
PLCInputBool组件。这些对应于 iRC 软件中的GSig1、GSig2等。
在接口上设置 Num Outputs 和 Num Inputs 属性以匹配您配置的数字输出和输入信号数量。
信号分配逻辑
有两种方式将信号分配给 iRC 控制器:
选项 1:顺序分配(默认)
如果信号上未设置 SymbolName,则根据其层级顺序依次分配信号:
- 数字输出 (DOut):第一个
PLCOutputBool映射到DOut21,第二个映射到DOut22,依此类推。 - 全局信号 (GSig):第一个
PLCInputBool映射到GSig1,第二个映射到GSig2,依此类推。
选项 2:通过 SymbolName 显式分配
您可以在信号上设置 SymbolName 属性,将其显式分配给特定的 DOut 或 GSig 编号。例如,在 PLCOutputBool 上将 SymbolName 设置为 25 会将其直接映射到 DOut25,而不管其在层级中的位置。
当您需要非顺序信号映射或层级顺序与 iRC 信号编号不匹配时,此功能非常有用。
使用顺序分配时,请确保层级中 PLCOutputBool 和 PLCInputBool 信号的顺序与 iRC 软件配置中相应 DOut/GSig 信号的顺序匹配。