Skip to content

Get Joint Velocities

SUMMARY

Get Joint Velocities returns each joint's current angular velocity in deg/s, ordered base to wrist. Reads from the manipulator state - live values when connected, zero-filled offline.

UNITS

Returns joint velocities in deg/s, ordered base to wrist.

The Skill

python
joint_velocities = robot.get_joint_velocities()

The Code

python
"""
Logs the manipulator's live joint velocities.

Supports Universal Robots (UR), Epson, and virtual.

Usage:
    python get_joint_velocities.py [--ip <ROBOT_IP>]
"""

import argparse

from loguru import logger

from telekinesis.synapse.robots.manipulators import universal_robots

def main(ip: str) -> None:
    """Log the live joint velocities [deg/s]."""

    #===================== Create Robot ==========================================
    robot = universal_robots.UniversalRobotsUR10E(name='UR10e')

    try:
        #===================== Connect Robot ==========================================
        robot.connect(ip=ip)

        # ==================== Run Skill ============================================
        logger.success(f"joint_velocities [deg/s]: {robot.get_joint_velocities()}")
    except (ConnectionError, OSError) as e:
        logger.error(f"Error occurred: {e}")
    finally:
        robot.disconnect()

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Read joint velocities Synapse example")
    parser.add_argument("--ip", type=str, default="192.168.1.100", help="UR robot IP address (default: 192.168.1.100)")
    args = parser.parse_args()

    main(ip=args.ip)
python
"""
Read the manipulator's joint velocities.

Supports Universal Robots (UR), Epson, and virtual.

Usage:
    python get_joint_velocities.py
"""

from loguru import logger

from telekinesis.synapse.robots.manipulators import universal_robots

def main():
    """Log the commanded-cache joint velocities [deg/s]."""

    #===================== Create Robot ==========================================
    robot = universal_robots.UniversalRobotsUR10E(name='UR10e')

    # ==================== Run Skill ============================================
    logger.success(f"joint_velocities [deg/s]: {robot.get_joint_velocities()}")

if __name__ == "__main__":
    main()

Parameter Configuration

This skill takes no input parameters.

Returns

TypeDescription
list[float]Current joint velocities in deg/s, one value per joint, ordered base to wrist. Zero-filled offline.

Where to Use the Skill

  • Motion monitoring - Detect when the robot is decelerating or at rest.
  • Velocity-based control loops - Use current velocity as feedback input.
  • Dynamics logging - Record velocity profiles alongside position data.

When Not to Use the Skill