自由驱动

直接从RDK调用

  1. 将机器人切换为 元操作执行模式( Mode::NRT_PRIMITIVE_EXECUTION )

  2. 调用 Robot::ExecutePrimitive() 执行 FloatingCartesian 元操作以在笛卡尔空间中自由驱动,或调用 FloatingJoint 以在关节空间中自由驱动。例如:

    # Python
    ...
    
    # Fetch all single-arm joint groups
    single_arm_groups = robot.info().single_arm_groups
    
    # Execute free drive primitive on all single-arm joint groups
    robot.ExecutePrimitive(
        {
            group: flexivrdk.PrimitiveArgs("FloatingCartesian", {})
            for group in single_arm_groups
        }
    )
    while robot.busy():
        time.sleep(1)
    
    ...
    

小心

无论是否按下控制手柄上的启用按钮,都会立即激活自由驱动。您可以实现自己的代码,以便在 Robot::enabling_device_on() 上的条件检查的帮助下,仅在启用设备打开时激活自由驱动。

备注

FloatingCartesianFloatingJoint 元操作都需要许可证。

从 Flexiv Elements 调用

连接示教器后,可以在手动或自动模式下调用自由驱动。

手动模式下的自由驱动

手动模式下机器人的移动速度受到限制,因此自由驱动感觉 沉重。调用:

  1. 将控制手柄上的 自动/手动滑动开关 切换到 下方 位置可退出自动(远程)模式并进入手动模式。

  2. 单击控制手柄上的 Freedrive On & Off 按钮。控制手柄上的 LED 会变成深蓝色,并且 Flexiv Elements 中会弹出一个用于控制自由驱动的窗口。

  3. 按照 Flexiv Elements 中的说明解锁笛卡尔轴或关节轴以进行自由驱动。

  4. 按住控制手柄上的 启用按钮 可激活自由驱动。

自动模式下的自由驱动

自动模式下机器人的移动速度不受限制,因此自由驱动感觉 轻盈。调用:

  1. 与上述步骤 1 相同,首先将机器人置于手动模式。

  2. 自动/手动滑动开关 推回到 位置,会弹出一个窗口,要求您选择进入哪种类型的自动模式,选择 自动

  3. 与上述步骤 2 至 4 相同。