PKG - actionlib

actionlib

Service can: send a request to a node to perform some task, and also receive a reply to the request.

actionlib = Service + long executing time (ability to cancel the request or get periodic feedback)

Example:

  • moving the base to a target location

  • performing a laser scan and returning the resulting point cloud

  • detecting the handle of a door

Client-Server Interaction

The ActionClient and ActionServer communicate via a "ROS Action Protocol", built on top of ROS messages.

The client and server provide a simple API for users to request goals (on the client side) or to execute goals (on the server side) via function calls and callbacks.

Goal

ActionServer -> goal (msg) -> ActionClient

Feedback

ActionServer -> goal (msg: progress) -> ActionClient

Result

When completion of the goal, ActionServer -> goal (msg: once) -> ActionClient

.action file

# Define the goal
uint32 dishwasher_id  # Specify which dishwasher we want to use
---
# Define the result
uint32 total_dishes_cleaned
---
# Define a feedback message
float32 percent_complete

Last updated

Was this helpful?