Universal Robots Forum

Understanding ServoC Command

I’m writing some TCP/IP based code and trying to understand what ServoC does. How does it work? How can I use it to create smooth movements? What are the effects of the different parameters? The API reference isn’t particularly helpful in understanding exactly what it does.

This is an old one but still… the doc lacks of a detailed explaination.

I tried out some settings using servoc with 3 waypoints and i think the behavior can be described as "moves circular in tool space depending on its move vector coming From Point A moving over Point B to Point C, while Point C is the actual move that the command is processing. So to see the outcome you’ll need at least 3 waypoints, like so

while(True):
servoc(Waypoint_1_p,a=1.2,v=0.1)
servoc(Waypoint_2_p,a=1.2,v=0.1)
servoc(Waypoint_3_p,a=1.2,v=0.1)
end

using only 2 waypoints in a loop, the command behaves like speedl as it continues its move until the robot reaches its limit. So a “terminating” move command at the end should be used.

Hi @m.birkholz,

I agree the description can be improved and that “moves circular in tool space depending on its move vector” by would end it with somthing like “towards the target pose”. Your example with the two points is challenging because you will end up in a situation were the target pose is aligned with move vector but in the opposite direction.


If you add a Waypoint in front to affect the move vector when reaching the first looping servoc. You will see the robot making nice circles with only two poses.

Since the robot is arriving with a speed, you shall always consider how to progress from the last servoc.

Hi @Ebbe,
yes, this a good example for the doc :wink::+1:t2: