Speed Joint
SUMMARY
Speed Joint sets joint velocities directly — the robot moves at the commanded angular speeds until speed_stop() is called or the optional time duration elapses. This is the joint-space speed controller.
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.speed_joint(
qd=[5.0, 0.0, 0.0, 0.0, 0.0, 0.0],
acceleration=0.5,
time=0.0,
)The Code
Example: Drive Joint 1 at 5 deg/s for 2 Seconds
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)
qd = [5.0, 0.0, 0.0, 0.0, 0.0, 0.0]
robot.speed_joint(qd=qd, acceleration=0.5)
time.sleep(2)
robot.speed_stop()
logger.success("Speed joint stopped.")
# Disconnect
robot.disconnect()The Explanation of the Code
speed_joint commands the robot to move at the given joint angular velocities (qd in deg/s) until speed_stop() is called or time seconds elapse. acceleration sets how quickly the robot ramps up to the commanded velocity (deg/s²). A time of 0.0 means run indefinitely until speed_stop is called.
How to Tune the Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
qd | list[float] | — | Target joint velocities in deg/s, one per joint. |
acceleration | float | 0.5 | Joint acceleration in deg/s². |
time | float | 0.0 | Duration in seconds. 0.0 = run until speed_stop(). |
Return Value
| Value | Description |
|---|---|
None | This skill returns nothing. |
Where to Use the Skill
- Continuous joint-space velocity control loops.
- Joystick-driven manual control.
When Not to Use the Skill
Use a different skill instead in these cases:
- Use Servo Joint for high-frequency position-servo control; servo commands require a continuous high-frequency loop to function correctly.
- Use Start Jog for teach-pendant-style jogging.

