Move Cartesian Path
SUMMARY
Move Cartesian Path commands the robot to move its Tool Center Point through an ordered list of Cartesian poses, executing each segment as a Cartesian-linear move.
SUPPORTED ROBOTS
This skill is currently supported on Universal Robots only. Calling this method on other robot brands will raise a NotImplementedError.
The Skill
robot.move_cartesian_path(
path=[[x1, y1, z1, rx1, ry1, rz1], [x2, y2, z2, rx2, ry2, rz2]],
asynchronous=False,
)The Code
Example: Move Through a 2-Point Cartesian Path
Move the TCP through two waypoints offset from the current pose.
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_cartesian_pose()
waypoint_1 = current[:]
waypoint_1[2] -= 0.05
waypoint_2 = current[:]
waypoint_2[0] += 0.05
path = [waypoint_1, waypoint_2]
robot.move_cartesian_path(path=path, asynchronous=False)
logger.info(f"Cartesian path complete: {path}")
# Disconnect
robot.disconnect()The Explanation of the Code
move_cartesian_path commands the robot controller to execute a sequence of Cartesian-linear moves through the given waypoints. Each element of path is a 6-element pose [x, y, z, rx, ry, rz] with position in meters and orientation as Euler angles in degrees. When asynchronous=False (default), the call blocks until all waypoints have been reached.
How to Tune the Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
path | list[list[float]] | — | Ordered list of Cartesian waypoints. Each is [x, y, z, rx, ry, rz]. |
asynchronous | bool | False | If True, return immediately without waiting for the path to complete. |
Return Value
| Value | Description |
|---|---|
None | This skill returns nothing. |
Where to Use the Skill
- Multi-point TCP trajectories (e.g., scanning, polishing, or assembly sequences) where each segment must follow a straight-line path.
When Not to Use the Skill
Use a different skill instead in these cases:
- Use Move Path when you have a pre-built controller-native path object.
- Use Set Cartesian Pose for single-pose moves.

