AbbClient

class compas_rrc.AbbClient[source]

Bases: object

Client used to communicate with ABB robots via ROS.

This client handles all communication over ROS topics, and implements blocking behaviors as an application-level construct.

Examples

Connection example to a single robot:

# Create Ros Client
ros = rrc.RosClient()
ros.run()

# Create ABB Client
abb = rrc.AbbClient(ros, '/rob1')
print('Connected.')

# Close client
ros.close()
ros.terminate()

Advance connection example to multiple robots:

# Create Ros Client
ros = rrc.RosClient()
ros.run()

# Create ABB Clients
abb_rob1 = rrc.AbbClient(ros, '/rob1')
abb_rob2 = rrc.AbbClient(ros, '/rob2')

# Clients are connected
print('Connected.')

# Print Text
abb_rob1.send(rrc.PrintText('Hello Robot 1'))
abb_rob2.send(rrc.PrintText('Hello Robot 2'))

# Close client
ros.close()
ros.terminate()

Methods

ensure_protocol_version

Ensure protocol version on the server matches the protocol version on the client.

feedback_callback

Internal method.

send

Sends an instruction to the robot without waiting.

send_and_subscribe

Send instruction and activate a service on the robot to stream feedback at a regular inverval.

send_and_wait

Send instruction and wait for feedback.

version_check

Check if the protocol version on the server matches the protocol version on the client.