Get TCP Speed
SUMMARY
Get TCP Speed returns the TCP twist [vx, vy, vz, ωx, ωy, ωz] - linear in m/s, angular in deg/s, expressed in the robot base frame.
Reads from the manipulator state - live values when connected, zero-filled offline.
UNITS
Returns TCP twist [vx, vy, vz, ωx, ωy, ωz] - linear in m/s, angular in deg/s.
The Skill
python
tcp_speed = robot.get_tcp_speed()The Code
python
"""
Logs the live TCP velocity.
Supports Universal Robots (UR), Epson, virtual, and Isaac Sim.
Usage:
python get_tcp_speed.py [--ip <ROBOT_IP>] [--prim_path <PRIM_PATH>]
"""
import argparse
from loguru import logger
from telekinesis.synapse.robots.manipulators import universal_robots
def main(ip: str | None, prim_path: str | None) -> None:
"""Log the live TCP speed [m/s, deg/s]."""
#===================== Create Robot ==========================================
robot = universal_robots.UniversalRobotsUR10E(name='UR10e')
try:
#===================== Connect Robot ==========================================
if ip:
robot.connect(ip=ip)
elif prim_path:
robot.connect(simulation_prim_path=prim_path)
robot.set_joint_positions(robot.default_joint_configuration)
# ==================== Run Skill ============================================
logger.success(f"tcp_speed [m/s, deg/s]: {robot.get_tcp_speed()}")
except (ConnectionError, OSError) as e:
logger.error(f"Error occurred: {e}")
finally:
robot.disconnect()
robot.shutdown()
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Read TCP speed Synapse example")
parser.add_argument("--ip", type=str, default=None,
help="UR robot IP address for real hardware, e.g. 192.168.1.100")
parser.add_argument("--prim_path", type=str, default=None,
help='Isaac Sim articulation prim path, e.g. "/World/ur10e"')
args = parser.parse_args()
main(ip=args.ip, prim_path=args.prim_path)Running the Example
bash
python get_tcp_speed.pybash
python get_tcp_speed.py --prim_path /World/ur10ebash
python get_tcp_speed.py --ip 192.168.1.100For all options:
bash
python get_tcp_speed.py --helpParameter Configuration
This skill takes no input parameters.
Returns
| Type | Description |
|---|---|
list[float] | TCP twist [vx, vy, vz, ωx, ωy, ωz]. Linear in m/s, angular in deg/s, expressed in the robot base frame. Zero-filled offline. |
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 TCP speed as feedback in a Cartesian impedance controller.
When Not to Use the Skill
- You need joint velocities - use Get Joint Velocities instead.
- You need TCP force - use Get TCP Force instead.