Read position complete / motion has completed

I am sending move command through port say 30002, I need to wait for the ur to finished the move before I proceed with the next move or other commands. how can do it?

Jason Toh

UR script
is_steady()
Checks if robot is fully at rest.
True when the robot is fully at rest, and ready to accept higher external
forces and torques, such as from industrial screwdrivers. It is useful in
combination with the GUIā€™s wait node, before starting the screwdriver
or other actuators influencing the position of the robot.
Note: This function will always return false in modes other than the
standard position mode, e.g. false in force and teach mode.
Return Value
True when the robot is fully at rest. Returns False otherwise
(bool)

Hi,
Thanks for the reply. I know about Is_Steady(). The question is how to I read the return in my python program. For example in my python program from my pc I send the following commands. How do I read the return?
s.send(ā€œmovel(pose_trans(get_actual_tcp_pose(),p[0.01,0,0,0,0,0]),1,0.25,0,0)ā€ + ā€œ\nā€)
s.send(ā€œIs_steady()ā€ + ā€œ\nā€)

Jason Toh

There is no ā€˜correct positionā€™ or ā€˜in-motionā€™ bit to monitor for determining when the robot has finished a move. However there are some ways around this:

  • Send an end of movement character to your python script to signal movement has been completed.
  • Monitor current position and compare to target position to determine if movement was successfully completed.

Iā€™d recommend using the RTDE interface to monitor your variables in conjunction to using port 30002 to send your move commands. The advantage here is the real-time synchronization that RTDE offers. You can read more on it here.

2 Likes

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.