Get Actual TCP Speed
SUMMARY
Get Actual TCP Speed reads the current velocity of the Tool Center Point (TCP) in Cartesian space, returned as a 6-element vector [vx, vy, vz, ωx, ωy, ωz].
Linear components are in m/s; angular components are in degrees/s.
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
tcp_speed = robot.get_actual_tcp_speed()The Code
Example: Read and Log Current TCP Speed
Connect to the robot and read the current TCP velocity vector.
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)
tcp_speed = robot.get_actual_tcp_speed()
logger.success(f"Actual TCP speed: {tcp_speed}")
# Disconnect
robot.disconnect()The Explanation of the Code
get_actual_tcp_speed reads the actual_TCP_speed field from the RTDE data stream. The returned 6-element vector contains linear velocities [vx, vy, vz] in m/s and angular velocities [ωx, ωy, ωz] in degrees/s in the robot base frame.
How to Tune the Parameters
This skill takes no input parameters.
Return Value
| Type | Description |
|---|---|
list[float] | TCP velocity [vx, vy, vz, ωx, ωy, ωz]. Linear in m/s, angular in deg/s. |
Where to Use the Skill
- Speed monitoring — Verify the TCP is moving at the commanded speed during a Cartesian move
- Stop detection — Confirm the TCP has come to rest before initiating the next step
- Velocity-based control — Use the current TCP speed as feedback in a Cartesian impedance controller
When Not to Use the Skill
Do not use Get Actual TCP Speed when:
- You need joint velocities — use Get Actual Joint Velocities instead
- You need TCP force — use Get Actual TCP Force instead

