Get Cartesian Pose
SUMMARY
Get Cartesian Pose reads the current Tool Center Point (TCP) pose of the robot, returning it as a 6-element vector [x, y, z, rx, ry, rz].
Position is in meters; orientation is expressed as Euler angles in degrees.
SUPPORTED ROBOTS
This skill is currently supported on Universal Robots only. Calling this method on other robot brands will raise a NotImplementedError.
The Skill
pose = robot.get_cartesian_pose()The Code
Example: Read and Log Current TCP Pose
Connect to the robot, read its Cartesian pose, and print it.
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)
pose = robot.get_cartesian_pose()
logger.success(f"Cartesian pose: {pose}")
# Disconnect
robot.disconnect()The Explanation of the Code
get_cartesian_pose queries the robot controller for the current TCP position and orientation. The first three elements are [x, y, z] in meters relative to the robot base frame. The last three elements are the Euler angle representation of the TCP orientation in degrees.
Use the returned vector as the starting point for computing relative Cartesian targets — for example, shifting the Z component before calling set_cartesian_pose.
How to Tune the Parameters
This skill takes no input parameters.
Return Value
| Type | Description |
|---|---|
list[float] | Current TCP pose [x, y, z, rx, ry, rz]. Position in meters, orientation in degrees. |
Where to Use the Skill
- Relative Cartesian moves — Read the current pose and apply an offset before commanding motion
- Pose logging — Record TCP pose at key checkpoints in an automation sequence
- Grasp verification — Confirm the TCP is at the expected approach pose before closing the gripper
When Not to Use the Skill
Do not use Get Cartesian Pose when:
- You need joint angles — use Get Joint Positions instead
- You need the active TCP speed — use Get Actual TCP Speed instead

