Skip to content

Get Joint Positions

SUMMARY

Get Joint Positions reads the current angular position of every joint, returning them as a list of values in degrees.

This skill is the primary way to sample robot state for feedback control, logging, and computing relative motion targets.

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
joint_positions = robot.get_joint_positions()

The Code

Example: Read and Log Current Joint Positions

Connect to the robot, read its joint positions, and print them.

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)

joint_positions = robot.get_joint_positions()
logger.success(f"Joint positions: {joint_positions}")

# Disconnect
robot.disconnect()

The Explanation of the Code

get_joint_positions queries the robot controller for the current encoder-resolved joint angles and returns them in degrees. The list has one entry per joint, ordered from the base to the wrist.

Use the returned list as the starting point for computing relative motion targets — for example, shifting one joint by a fixed offset before calling set_joint_positions.

How to Tune the Parameters

This skill takes no input parameters.

Return Value

TypeDescription
list[float]Current joint angles in degrees, one value per joint, ordered from base to wrist.

Where to Use the Skill

  • Feedback control — Sample joint state at each control step to close a position loop
  • Relative motion — Read current positions and apply an offset before commanding motion
  • State logging — Record the joint configuration at key points in a task sequence

When Not to Use the Skill

Do not use Get Joint Positions when: