Skip to content

Start Freedrive Mode

SUMMARY

Start Freedrive Mode makes the robot compliant and back-drivable by hand along the specified axes. The robot remains powered but offers no active resistance to manual motion. Call stop_freedrive_mode() to exit.

SUPPORTED ROBOTS

This skill is currently supported on Universal Robots only. Calling this method on other robot brands will raise a NotImplementedError.

The Skill

python
robot.start_freedrive_mode(free_axes=[1, 1, 1, 1, 1, 1])

The Code

Example: Start Freedrive Mode on All Axes

Enable freedrive on all axes, allow 10 seconds of manual interaction, then exit.

python
import time
from loguru import logger
from telekinesis.synapse.robots.manipulators import universal_robots

robot_ip = "192.168.1.2"  # replace with your robot's IP

robot = universal_robots.UniversalRobotsUR10E()
# Connect
robot.connect(ip=robot_ip)

free_axes = [1, 1, 1, 1, 1, 1]
logger.info(f"Starting freedrive — free axes: {free_axes}")
robot.start_freedrive_mode(free_axes=free_axes)

time.sleep(10)

robot.stop_freedrive_mode()
logger.success("Freedrive mode stopped.")

# Disconnect
robot.disconnect()

The Explanation of the Code

start_freedrive_mode puts the robot into gravity-compensated freedrive. free_axes is a 6-element mask [x, y, z, rx, ry, rz] where 1 means the axis is free (compliant) and 0 means it is locked. feature specifies the compliance frame pose [x, y, z, rx, ry, rz]; the default [0, 0, 0, 0, 0, 0] means the base frame. During freedrive, monitor Get Freedrive Status to detect proximity to singularities.

How to Tune the Parameters

ParameterTypeDefaultDescription
free_axeslist[int][1, 1, 1, 1, 1, 1]Six-element mask — 1 = free, 0 = locked, for [x, y, z, rx, ry, rz].
featurelist[float][0, 0, 0, 0, 0, 0]Compliance frame pose [x, y, z, rx, ry, rz] in meters and degrees.

Return Value

Return TypeDescription
NoneReturns after freedrive mode is activated.

Where to Use the Skill

  • Teach-by-demonstration workflows.
  • Operator-guided pose capture.
  • Constrained manual positioning along specific axes.

When Not to Use the Skill

Use teach mode for unconstrained back-drive:

  • Use Start Teach Mode for unconstrained back-drive without configuring a compliance frame or axis mask.