Free Drive

Invoke directly from RDK

  1. Switch the robot into Primitive execution mode (Mode::NRT_PRIMITIVE_EXECUTION).

  2. Call Robot::ExecutePrimitive() to execute FloatingCartesian primitive for free drive in Cartesian space, or FloatingJoint for free drive in joint space. For example:

    # Python
    ...
    
    robot.ExecutePrimitive("FloatingCartesian()")
    while robot.busy():
        time.sleep(1)
    
    ...
    

Caution

Free drive will be activated immediately regardless of whether the enabling button on the motion bar is pressed down or not. You can implement your own code to only activate free drive while enabling button is pressed down with the help of a condition check on Robot::enabling_button_pressed().

Note

Both FloatingCartesian and FloatingJoint primitives require a license.

Invoke from Flexiv Elements

With the teach pendant connected, free drive can be invoked under either Manual or Auto mode.

Free drive under Manual mode

The robot’s movement speed is restricted under Manual mode, thus free drive feels heavy. To invoke:

  1. Toggle the Auto/Manual Slide Switch on the motion bar to the lower position to exit Auto (Remote) mode and enter Manual mode.

  2. Click the Freedrive On & Off button on the motion bar. LED on the motion bar will turn deep blue, and a window for controlling free drive will pop up in Flexiv Elements.

  3. Follow instructions in Flexiv Elements to unlock Cartesian or joint axes to free drive.

  4. Press and hold Enabling Button on the motion bar to activate free drive.

Free drive under Auto mode

The robot’s movement speed is not restricted under Auto mode, thus free drive feels light. To invoke:

  1. Same as step 1 above to put the robot into Manual mode first.

  2. Push the Auto/Manual Slide Switch back to upper position, a window will pop-up asking you to choose which type of Auto mode to enter, choose AUTO.

  3. Same as steps 2 to 4 as above.