Stop Joint Motion
SUMMARY
Stop Joint Motion decelerates the robot and brings any active joint-space motion to a complete stop.
This skill is the safe and controlled way to interrupt a joint move launched with asynchronous=True.
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.stop_joint_motion(stopping_speed=0.5)The Code
Example: Stop Joint Motion Mid-Move
Launch an asynchronous joint move, wait briefly, then stop the robot before it reaches the target.
python
import time
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)
initial_joint_positions = robot.get_joint_positions()
target_joint_positions = initial_joint_positions[:]
target_joint_positions[0] += 20
robot.set_joint_positions(
joint_positions=target_joint_positions,
speed=60,
acceleration=80,
asynchronous=True,
)
time.sleep(0.3)
robot.stop_joint_motion(stopping_speed=30)
logger.info("Stopped joint motion.")
# Disconnect
robot.disconnect()The Explanation of the Code
stop_joint_motion sends a deceleration command to the robot controller, smoothly bringing any ongoing joint-space move to a halt. stopping_speed is expressed in deg/s — lower values produce gentler, longer stops; higher values produce faster, shorter stops.
How to Tune the Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
stopping_speed | float | 0.5 | Deceleration target speed in deg/s. |
Return Value
| Type | Description |
|---|---|
None | Returns after the stop command is sent. |
Where to Use the Skill
- Interrupt asynchronous joint moves — Stop a
set_joint_positionsorset_cartesian_pose_in_joint_spacecall launched withasynchronous=True - Safety-triggered halt — Stop joint motion immediately when a safety condition is detected
When Not to Use the Skill
Do not use Stop Joint Motion when:
- The active motion is Cartesian-linear — use Stop Cartesian Motion instead
- The motion is already synchronous — synchronous calls block until completion; there is no motion to interrupt

