Main concepts
The API of COMPAS RRC
is minimal and very easy to understand.
Communication methods
The primary way to interact with robots is using the client classes. They allow four different ways of communication:
Send: The method
send()
allows streaming commands without blocking or waiting for feedback.Send & Wait: The method
send_and_wait()
sends an instruction and wait for feedback from the robot.Send & Wait in the future: Using the return value of the method
send()
allows to defer the waiting to a future point in time.Send & Subscribe: The method
send_and_subscribe()
can activate a streaming service on the robot that will stream feedback at a regular inverval.
Interface to use ROS as backend via the rosbridge. |
|
Client used to communicate with ABB robots via ROS. |
|
Defines the execution level of an instruction. |
|
Represents default valid feedback levels. |
|
Represents a future result value. |
Robot joints and External axes
The following example shows how to retrieve, update and send the robot joints and external axes:
# Get joints
robot_joints, external_axes = abb.send_and_wait(rrc.GetJoints())
# Print received values
print(robot_joints, external_axes)
# Change any value and move to new position
robot_joints.rax_1 += 15
done = abb.send_and_wait(rrc.MoveToJoints(robot_joints, external_axes, 100, rrc.Zone.FINE))
Represents a configuration for robot joints |
|
Represents a configuration for external axes. |
Debugging instructions
Wrapping any instruction in a Debug
allows to get raw access to the
output values:
# Get joints
raw_debug_output = abb.send_and_wait(rrc.Debug(rrc.GetJoints()))
# Print received values
print(raw_debug_output)
Activate debug mode on any instruction by wrapping it. |