Skip to content

Speed Cartesian

SUMMARY

Speed Cartesian sets TCP velocity directly — the robot moves at the commanded Cartesian velocity until speed_stop() is called or the optional time duration elapses. This is the Cartesian 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_cartesian(
    xd=[0.02, 0.0, 0.0, 0.0, 0.0, 0.0],
    acceleration=0.25,
    time=0.0,
)

The Code

Example: Drive the TCP at 20 mm/s Along the Base X Axis 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)

xd = [0.02, 0.0, 0.0, 0.0, 0.0, 0.0]
robot.speed_cartesian(xd=xd, acceleration=0.25)
time.sleep(2)
robot.speed_stop()
logger.success("Speed Cartesian stopped.")

# Disconnect
robot.disconnect()

The Explanation of the Code

speed_cartesian commands the robot to move its TCP at the given Cartesian velocity. xd is [vx, vy, vz, vrx, vry, vrz] — linear components in m/s, angular components in deg/s, both in the robot base frame. acceleration is in m/s². A time of 0.0 means run until speed_stop().

How to Tune the Parameters

ParameterTypeDefaultDescription
xdlist[float]TCP velocity [vx, vy, vz, vrx, vry, vrz]. Linear in m/s, angular in deg/s.
accelerationfloat0.25TCP acceleration in m/s².
timefloat0.0Duration in seconds. 0.0 = run until speed_stop().

Return Value

ValueDescription
NoneThis skill returns nothing.

Where to Use the Skill

  • Continuous Cartesian velocity control.
  • Haptic teleoperation.
  • Rate control from joystick input.

When Not to Use the Skill

Use a different skill instead in these cases:

  • Use Servo Cartesian for high-frequency position-servo control in a tight loop.