Get Joint Mode
SUMMARY
Get Joint Mode returns the current control mode code for each of the six robot joints. These mode codes indicate the active control regime of each joint drive (e.g., position control, velocity control, idle, fault).
Use this skill to verify that all joints are in the expected operating mode before issuing motion commands.
SUPPORTED ROBOTS
This skill is currently supported on Universal Robots only. Calling this method on other robot brands will raise a NotImplementedError.
The Skill
modes = robot.get_joint_mode()The Code
Example: Read the Joint Control Modes
Connect to the robot, read the joint modes, and log them.
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)
modes = robot.get_joint_mode()
logger.info(f"Joint modes: {modes}")
# Disconnect
robot.disconnect()The Explanation of the Code
get_joint_mode returns a 6-element list [m1…m6] of integer mode codes, one per joint. The mode codes are defined by the UR RTDE specification. Typical values: 236 indicates normal position/velocity control mode; other values indicate idle, power-off, or fault states. Refer to the UR RTDE documentation for the full list of mode codes.
How to Tune the Parameters
This skill takes no parameters.
Return Value
| Type | Description |
|---|---|
list[int] | 6-element list [m1…m6] of joint control mode codes (UR RTDE mode integer values). |
Where to Use the Skill
- Pre-motion checks — Confirm all joints are in the expected control mode before starting a task
- Fault diagnosis — Identify which joint has entered an unexpected mode after an error
When Not to Use the Skill
Do not use Get Joint Mode when:
- You need the safety system state — use Get Safety Status Bits or Get Safety Mode instead

