错误处理

无法连接到机器人

当创建 flexiv::rdk::Robot 类的实例时,RDK后台服务将在同一本地网络下搜索指定的机器人并尝试建立连接。如果无法与指定机器人建立连接,则 flexiv::rdk::Robot 的实例化将失败。连接失败的可能原因有:

  1. 远程模式未启用或未从 Flexiv Elements 设置为 Ethernet 模式,请参阅 启用 RDK 服务器

  2. Ethernet 未与机器人建立连接,请参见 连接用户计算机

  3. 提供的机器人序列号与目标机器人不匹配或格式不正确。

  4. 您的计算机有一个活动防火墙,它阻止 RDK 程序访问网络。您可能需要关闭防火墙或将 RDK 程序添加到防火墙的白名单中。

  5. RDK 版本与目标机器人的软件版本不兼容,请参阅 机器人软件兼容性

机器人故障和错误信息

建议在启用机器人之前始终使用 Robot::fault() 检查机器人是否处于故障状态。在运行过程中,如果机器人出现故障,Robot::fault() 将返回true,并且RDK将打印来自机器人的错误消息。来自机器人的重要日志消息将由 RDK 缓存,并可以通过 Robot::event_log() 访问,该函数返回一个 RobotEvent 结构体向量,包含事件级别、ID、描述、后果、可能原因、推荐操作和时间戳。

机器人运行

释放急停并向机器人发送启用命令后,需要几秒钟的时间才能释放制动器并开始运行。在发送任何用户命令之前,使用 Robot::operational() 检查机器人是否准备就绪。

严重故障

机器人启用后,其经过认证的安全系统将持续监控机器人,以确保其始终在预定义的安全限制下运行,例如关节扭矩/位置/速度限制、TCP力/位置/速度限制、机器人功率和动量限制等。任何违反安全限制的行为都将触发严重故障,也称为 0类停止CAT0停止。一旦触发,机器人的主驱动电源将立即切断,所有关节制动器将接合。为了重新运行机器人,您需要先尝试使用 Robot::ClearFault() 在不重启的情况下清除严重故障,这可以热重置安全系统,大约需要30秒。但是,对于不支持热重置的旧型号,必须重新启动电源。此外,根据发生的严重故障的类型,可能需要恢复操作。有关更多详细信息,请参阅 从关节位置超限中恢复

小故障

除了安全系统触发的严重故障外,还有机器人软件触发的轻微故障。它们往往与不合理的用户命令或无效的程序工作流程有关。此类小故障不会导致停电和系统锁定,并且可以通过 Robot::ClearFault() 快速清除,耗时不到3秒。

从关节位置超限中恢复

上面的“严重故障”部分提到,违反任何安全系统限制都将导致严重故障,需要热复位或断电重启,这在大多数情况下都能清除故障。不过,有一种特殊情况:关节位置超限。发生这种情况时,重置系统并不会改变一个或多个关节仍位于允许安全区域之外这一事实。因此,重置后,安全系统将进入 恢复状态,此时需要用户将超限关节移回允许的安全区域。这可以使用 Flexiv Elements(示教器软件)完成。RDK 提供了 Robot::recovery() 函数来查询机器人当前是否处于恢复状态。