Skip to content

Servo Circular

SUMMARY

Servo Circular commands a circular arc motion by providing a via-point (or target) TCP pose. The robot traces a circular arc defined by the current pose, the via-point, and the target pose.

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.servo_circular(
    pose=via_point_pose,
    speed=0.25,
    acceleration=1.2,
    blend=0.0,
)

The Code

Example: Execute a Circular Arc Move

Move the robot along a circular arc by providing a via-point offset from the current pose.

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)

current = robot.get_cartesian_pose()

via_point = current[:]
via_point[0] += 0.05
via_point[2] += 0.05

robot.servo_circular(
    pose=via_point,
    speed=0.25,
    acceleration=1.2,
    blend=0.0,
)
logger.info("Circular arc move executed.")

# Disconnect
robot.disconnect()

The Explanation of the Code

servo_circular executes a circular arc motion. pose is the via-point (intermediate pose on the arc) [x, y, z, rx, ry, rz] in meters and degrees. speed is the TCP speed in m/s; acceleration is in m/s². blend is the blend radius in meters — a non-zero value blends the arc end smoothly into the next motion segment.

How to Tune the Parameters

ParameterTypeDefaultDescription
poselist[float]Via-point TCP pose [x, y, z, rx, ry, rz].
speedfloat0.25TCP speed in m/s.
accelerationfloat1.2TCP acceleration in m/s².
blendfloat0.0Blend radius in meters.

Return Value

ValueDescription
NoneThis skill returns nothing.

Where to Use the Skill

  • Arc weld paths.
  • Circular polishing trajectories.
  • Any application requiring a curved TCP path.

When Not to Use the Skill

Use a different skill instead in these cases: