RosClient

class compas_fab.backends.RosClient(host='localhost', port=9090, is_secure=False, planner_backend='moveit')[source]

Bases: roslibpy.ros.Ros, compas_fab.backends.interfaces.client.ClientInterface

Interface to use ROS as backend via the rosbridge.

The connection is managed by roslibpy.

RosClient is a context manager type, so it’s best used in combination with the with statement to ensure resource deallocation.

Parameters
  • host (str) – ROS bridge host. Defaults to localhost.

  • port (int) – Port of the ROS Bridge. Defaults to 9090.

  • is_secure (bool) – True to indicate it should use a secure web socket, otherwise False.

  • planner_backend (str) – Name of the planner backend plugin to use. The plugin must be a sub-class of compas_fab.backends.PlannerInterface. Defaults to "moveit", making use of compas_fab.backends.MoveItPlanner.

Examples

>>> from compas_fab.backends import RosClient
>>> with RosClient() as client:
...     print('Connected: %s' % client.is_connected)
Connected: True

Note

For more examples, check out the ROS examples page.

Methods

__init__([host, port, is_secure, …])

Initialize self.

add_attached_collision_mesh(*args, **kwargs)

Forwards call to appropriate method in the planner.

add_collision_mesh(*args, **kwargs)

Forwards call to appropriate method in the planner.

append_collision_mesh(*args, **kwargs)

Forwards call to appropriate method in the planner.

blocking_call_from_thread(callback, timeout)

Call the given function from a thread, and wait for the result synchronously for as long as the timeout will allow.

call_async_service(message, callback, errback)

Send a service request to ROS once the connection is established.

call_in_thread(callback)

Call the given function in a thread.

call_later(delay, callback)

Call the given function after a certain period of time has passed.

call_sync_service(message, timeout)

Send a blocking service request to ROS once the connection is established, waiting for the result to be return.

close()

Disconnect from ROS.

connect()

Connect to ROS.

delete_param(name[, callback, errback])

Delete parameter from the ROS Parameter Server.

emit(event_name, *args)

Trigger a named event.

execute_joint_trajectory(joint_trajectory[, …])

Execute a joint trajectory via the MoveIt infrastructure.

follow_configurations(callback, joint_names, …)

follow_joint_trajectory(joint_trajectory[, …])

Follow the joint trajectory as computed by MoveIt planner.

forward_kinematics(*args, **kwargs)

Forwards call to appropriate method in the planner.

get_action_servers(callback[, errback])

Retrieve list of action servers in ROS.

get_configuration()

get_message_details(message_type[, …])

Retrieve details of a message type in ROS.

get_node_details(node[, callback, errback])

Retrieve list subscribed topics, publishing topics and services of a specific node name.

get_nodes([callback, errback])

Retrieve list of active node names in ROS.

get_param(name[, callback, errback])

Get the value of a parameter from the ROS Parameter Server.

get_params([callback, errback])

Retrieve list of param names from the ROS Parameter Server.

get_planning_scene(*args, **kwargs)

Forwards call to appropriate method in the planner.

get_service_request_callback(message)

Get the callback which, when called, sends the service request.

get_service_request_details(type[, …])

Retrieve details of a ROS Service Request.

get_service_response_details(type[, …])

Retrieve details of a ROS Service Response.

get_service_type(service_name[, callback, …])

Retrieve the type of a service in ROS.

get_services([callback, errback])

Retrieve list of active service names in ROS.

get_services_for_type(service_type[, …])

Retrieve list of services in ROS matching the specified type.

get_time([callback, errback])

Retrieve the current ROS time.

get_topic_type(topic[, callback, errback])

Retrieve the type of a topic in ROS.

get_topics([callback, errback])

Retrieve list of topics in ROS.

get_topics_for_type(topic_type[, callback, …])

Retrieve list of topics in ROS matching the specified type.

inverse_kinematics(*args, **kwargs)

Forwards call to appropriate method in the planner.

load_robot([load_geometry, urdf_param_name, …])

Load an entire robot instance -including model and semantics- directly from ROS.

off(event_name[, callback])

Remove a callback from an arbitrary named event.

on(event_name, callback)

Add a callback to an arbitrary named event.

on_ready(callback[, run_in_thread])

Add a callback to be executed when the connection is established.

plan_cartesian_motion(*args, **kwargs)

Forwards call to appropriate method in the planner.

plan_motion(*args, **kwargs)

Forwards call to appropriate method in the planner.

remove_attached_collision_mesh(*args, **kwargs)

Forwards call to appropriate method in the planner.

remove_collision_mesh(*args, **kwargs)

Forwards call to appropriate method in the planner.

reset_planning_scene(*args, **kwargs)

Forwards call to appropriate method in the planner.

run([timeout])

Kick-starts a non-blocking event loop.

run_event_loop()

run_forever()

Kick-starts a blocking loop to wait for events.

send_on_ready(message)

Send message to ROS once the connection is established.

set_param(name, value[, callback, errback])

Set the value of a parameter from the ROS Parameter Server.

set_status_level(level, identifier)

terminate()

Signals the termination of the main event loop.

Attributes

id_counter

Generate an auto-incremental ID starting from 1.

is_connected

Indicate if the ROS connection is open or not.