Actions¶
Action Client¶
-
class
rclpy.action.client.
ActionClient
(node, action_type, action_name, *, callback_group=None, goal_service_qos_profile=<rclpy.qos.QoSProfile object>, result_service_qos_profile=<rclpy.qos.QoSProfile object>, cancel_service_qos_profile=<rclpy.qos.QoSProfile object>, feedback_sub_qos_profile=<rclpy.qos.QoSProfile object>, status_sub_qos_profile=<rclpy.qos.QoSProfile object>)¶ ROS Action client.
Constructor.
Parameters: - node – The ROS node to add the action client to.
- action_type – Type of the action.
- action_name – Name of the action. Used as part of the underlying topic and service names.
- callback_group – Callback group to add the action client to. If None, then the node’s default callback group is used.
- goal_service_qos_profile – QoS profile for the goal service.
- result_service_qos_profile – QoS profile for the result service.
- cancel_service_qos_profile – QoS profile for the cancel service.
- feedback_sub_qos_profile – QoS profile for the feedback subscriber.
- status_sub_qos_profile – QoS profile for the status subscriber.
-
add_to_wait_set
(wait_set)¶ Add entities to wait set.
-
destroy
()¶ Destroy the underlying action client handle.
-
execute
(taken_data)¶ Execute work after data has been taken from a ready wait set.
This will set results for Future objects for any received service responses and call any user-defined callbacks (e.g. feedback).
-
get_num_entities
()¶ Return number of each type of entity used in the wait set.
-
is_ready
(wait_set)¶ Return True if one or more entities are ready in the wait set.
-
send_goal
(goal, **kwargs)¶ Send a goal and wait for the result.
Do not call this method in a callback or a deadlock may occur.
See
send_goal_async()
for more info about keyword arguments.Unlike
send_goal_async()
, this method returns the final result of the action (not a goal handle).Parameters: goal (action_type.Goal) – The goal request. Returns: The result response. Return type: action_type.Result Raises: TypeError if the type of the passed goal isn’t an instance of the Goal type of the provided action when the service was constructed.
-
send_goal_async
(goal, feedback_callback=None, goal_uuid=None)¶ Send a goal and asynchronously get the result.
The result of the returned Future is set to a ClientGoalHandle when receipt of the goal is acknowledged by an action server.
Parameters: - goal (action_type.Goal) – The goal request.
- feedback_callback (function) – Callback function for feedback associated with the goal.
- goal_uuid – Universally unique identifier for the goal. If None, then a random UUID is generated.
Type: unique_identifier_msgs.UUID
Returns: a Future instance to a goal handle that completes when the goal request has been accepted or rejected.
Return type: rclpy.task.Future
instanceRaises: TypeError if the type of the passed goal isn’t an instance of the Goal type of the provided action when the service was constructed.
-
server_is_ready
()¶ Check if there is an action server ready to process requests from this client.
Returns: True if an action server is ready, False otherwise.
-
take_data
()¶ Take stuff from lower level so the wait set doesn’t immediately wake again.
-
wait_for_server
(timeout_sec=None)¶ Wait for an action sever to be ready.
Returns as soon as an action server is ready for this client. :param timeout_sec: Number of seconds to wait until an action server is available.
If None, then wait indefinitely.Returns: True if an action server is available, False if the timeout is exceeded.
-
class
rclpy.action.client.
ClientGoalHandle
(action_client, goal_id, goal_response)¶ Goal handle for working with Action Clients.
-
accepted
¶
-
cancel_goal
()¶ Send a cancel request for the goal and wait for the response.
Do not call this method in a callback or a deadlock may occur.
Returns: The cancel response.
-
cancel_goal_async
()¶ Asynchronous request for the goal be canceled.
Returns: a Future instance that completes when the server responds. Return type: rclpy.task.Future
instance
-
get_result
()¶ Request the result for the goal and wait for the response.
Do not call this method in a callback or a deadlock may occur.
Returns: The result response.
-
get_result_async
()¶ Asynchronously request the goal result.
Returns: a Future instance that completes when the result is ready. Return type: rclpy.task.Future
instance
-
goal_id
¶
-
stamp
¶
-
status
¶
-
Action Server¶
-
class
rclpy.action.server.
ActionServer
(node, action_type, action_name, execute_callback, *, callback_group=None, goal_callback=<function default_goal_callback>, handle_accepted_callback=<function default_handle_accepted_callback>, cancel_callback=<function default_cancel_callback>, goal_service_qos_profile=<rclpy.qos.QoSProfile object>, result_service_qos_profile=<rclpy.qos.QoSProfile object>, cancel_service_qos_profile=<rclpy.qos.QoSProfile object>, feedback_pub_qos_profile=<rclpy.qos.QoSProfile object>, status_pub_qos_profile=<rclpy.qos.QoSProfile object>, result_timeout=900)¶ ROS Action server.
Constructor.
Parameters: - node – The ROS node to add the action server to.
- action_type – Type of the action.
- action_name – Name of the action. Used as part of the underlying topic and service names.
- execute_callback – Callback function for processing accepted goals.
This is called if when
ServerGoalHandle.execute()
is called for a goal handle that is being tracked by this action server. - callback_group – Callback group to add the action server to. If None, then the node’s default callback group is used.
- goal_callback – Callback function for handling new goal requests.
- handle_accepted_callback – Callback function for handling newly accepted goals. Passes an instance of ServerGoalHandle as an argument.
- cancel_callback – Callback function for handling cancel requests.
- goal_service_qos_profile – QoS profile for the goal service.
- result_service_qos_profile – QoS profile for the result service.
- cancel_service_qos_profile – QoS profile for the cancel service.
- feedback_pub_qos_profile – QoS profile for the feedback publisher.
- status_pub_qos_profile – QoS profile for the status publisher.
- result_timeout – How long in seconds a result is kept by the server after a goal reaches a terminal state.
-
action_type
¶
-
add_to_wait_set
(wait_set)¶ Add entities to wait set.
-
destroy
()¶ Destroy the underlying action server handle.
-
execute
(taken_data)¶ Execute work after data has been taken from a ready wait set.
This will set results for Future objects for any received service responses and call any user-defined callbacks (e.g. feedback).
-
get_num_entities
()¶ Return number of each type of entity used in the wait set.
-
is_ready
(wait_set)¶ Return True if one or more entities are ready in the wait set.
-
notify_execute
(goal_handle, execute_callback)¶
-
notify_goal_done
()¶
-
register_cancel_callback
(cancel_callback)¶ Register a callback for handling cancel requests.
The purpose of the cancel callback is to decide if a request to cancel an on-going (or queued) goal should be accepted or rejected. The callback should take one parameter containing the cancel request and must return a
CancelResponse
value.There can only be one cancel callback per
ActionServer
, therefore calling this function will replace any previously registered callback.Parameters: cancel_callback – Callback function, if None, then unregisters any previously registered callback.
-
register_execute_callback
(execute_callback)¶ Register a callback for executing action goals.
The purpose of the execute callback is to execute the action goal and return a result when finished.
The callback should take one parameter containing goal request and must return a result instance (i.e. action_type.Result).
There can only be one execute callback per
ActionServer
, therefore calling this function will replace any previously registered callback.Parameters: execute_callback – Callback function. Must not be None.
-
register_goal_callback
(goal_callback)¶ Register a callback for handling new goal requests.
The purpose of the goal callback is to decide if a new goal should be accepted or rejected. The callback should take the goal request message as a parameter and must return a
GoalResponse
value.There can only be one goal callback per
ActionServer
, therefore calling this function will replace any previously registered callback.Parameters: goal_callback – Callback function, if None, then unregisters any previously registered callback.
-
register_handle_accepted_callback
(handle_accepted_callback)¶ Register a callback for handling newly accepted goals.
The provided function is called whenever a new goal has been accepted by this action server. The function should expect an instance of
ServerGoalHandle
as an argument, which represents a handle to the goal that was accepted. The goal handle can be used to interact with the goal, e.g. publish feedback, update the status, or execute a deferred goal.There can only be one handle accepted callback per
ActionServer
, therefore calling this function will replace any previously registered callback.Parameters: goal_callback – Callback function, if None, then unregisters any previously registered callback.
-
take_data
()¶ Take stuff from lower level so the wait set doesn’t immediately wake again.
-
class
rclpy.action.server.
GoalEvent
¶ Goal events that cause state transitions.
-
ABORT
= 4¶
-
CANCELED
= 5¶
-
CANCEL_GOAL
= 2¶
-
EXECUTE
= 1¶
-
SUCCEED
= 3¶
-
-
class
rclpy.action.server.
ServerGoalHandle
(action_server, goal_info, goal_request)¶ Goal handle for working with Action Servers.
Accept a new goal with the given action server.
Instances of this class should only be constructed in the ActionServer class. Instances for accepted goals will be passed to the user-defined goal execution functions.
If the goal fails to be accepted, then a RuntimeError is raised.
Parameters: - action_server – The ActionServer to accept the goal.
- goal_info – GoalInfo message.
- goal_request – The user defined goal request message from an ActionClient.
-
abort
()¶
-
canceled
()¶
-
destroy
()¶
-
execute
(execute_callback=None)¶
-
goal_id
¶
-
is_active
¶
-
is_cancel_requested
¶
-
publish_feedback
(feedback)¶
-
request
¶
-
status
¶
-
succeed
()¶
-
rclpy.action.server.
default_cancel_callback
(cancel_request)¶ No cancellations.
-
rclpy.action.server.
default_goal_callback
(goal_request)¶ Accept all goals.
-
rclpy.action.server.
default_handle_accepted_callback
(goal_handle)¶ Execute the goal.