AbbClient.send_and_wait(instruction, timeout=None)[source]

Send instruction and wait for feedback.

This is a blocking call, it will only return once the robot sends the requested feedback. If feedback_level of the instruction parameter is 0, it will be automatically set to 1.

  • instruction (compas_fab.backends.ros.messages.ROSmsg) – ROS Message representing the instruction to send.

  • timeout (int) – Timeout in seconds to wait before raising an exception. Optional.


object – Returns the feedback value that resulted from the execution of the instruction.


Send an instruction and wait for feedback from the robot. In the following example, the code will not continue until the robot has started to execute this instruction. On move instructions, a Zone.FINE can be used to make sure the motion planner has executed the instruction fully:

# Move robot to start position
done = abb.send_and_wait(rrc.MoveToJoints(robot_joints_start_position, external_axis_dummy, 1000, rrc.Zone.FINE))