Skip to content

Move Joint Path

SUMMARY

Move Joint Path commands the robot to move through an ordered list of joint configurations, executing each segment as a joint-space interpolated move.

This skill is the joint-space equivalent of Move Cartesian Path — it is efficient for multi-waypoint joint-space trajectories such as homing sequences, configuration resets, and teach-in playback.

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.move_joint_path(
    path=[[j1, j2, j3, j4, j5, j6], [j1, j2, j3, j4, j5, j6]],
    asynchronous=False,
)

The Code

Example: Move Through a 2-Point Joint Path

Read the current joint positions, build two waypoints offset from the starting configuration, and execute the path.

python
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)

current = robot.get_joint_positions()

waypoint_1 = current[:]
waypoint_1[0] -= 10

waypoint_2 = current[:]
waypoint_2[0] += 10

path = [waypoint_1, waypoint_2]
robot.move_joint_path(path=path, asynchronous=False)
logger.info(f"Joint path complete: {path}")

# Disconnect
robot.disconnect()

The Explanation of the Code

move_joint_path commands the robot controller to execute a sequence of joint-space moves through the given waypoints. Each element of path is a 6-element list [j1, j2, j3, j4, j5, j6] of joint angles in degrees. The controller moves through each waypoint in order using joint-space interpolation (equivalent to movej for each segment on Universal Robots). When asynchronous=False (default), the call blocks until all waypoints have been reached.

How to Tune the Parameters

ParameterTypeDefaultDescription
pathlist[list[float]]Ordered list of joint configurations. Each inner list is [j1…j6] in degrees.
asynchronousboolFalseIf True, return immediately without waiting for path completion.

Return Value

TypeDescription
NoneReturns when all waypoints are reached (synchronous) or immediately (asynchronous).

Where to Use the Skill

  • Multi-waypoint joint trajectories — Execute a recorded sequence of joint configurations in a single call
  • Homing sequences — Move through a safe retraction path before returning to home
  • Teach-in playback — Replay a series of joint configurations recorded during a teach session

When Not to Use the Skill

Do not use Move Joint Path when:

  • The path must follow a straight TCP line — joint-space interpolation does not guarantee a linear tool path; use Move Cartesian Path instead
  • Only a single target is needed — use Set Joint Positions for a single-waypoint move