ROS Actions
The ROS Action really is a mechanism that keeps track of the exeuction state of a task. ROS Actions are built on top of ROS topics.
Lifetime of ROS Actions
- Pending : The goal has been received by the action server, not yet processed
- Active : The goal is currently being processed
- Preempted : The goal has been preempted for a new goal
- Succeeded : Goal has been successfully achieved
- Aborted : Action Server encountered an internal error and has to abort the issue (similar to HTTP error code 503)
- Rejected : Goal has been rejected without processing
- Preempting : Goal is being cancelled after it’s been active
- Recalling : cancelling the goal before it got accepted
- Recalled : Goal has been recalled
There is a topic <ACTION_NAME>/status
. Its status reflects the status of the task:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
status_list:
- goal_id:
id: "unique_goal_id_1"
status: 0 # PENDING
text: ""
status_list:
- goal_id:
id: "unique_goal_id_1"
status: 1 # ACTIVE
text: ""
status_list:
- goal_id:
id: "unique_goal_id_1"
status: 3 # SUCCEEDED
text: "Goal reached successfully."
status_list:
- goal_id:
id: "unique_goal_id_1"
status: 4 # ABORTED
text: "Goal was aborted."
status_list:
- goal_id:
id: "unique_goal_id_1"
status: 2 # PREEMPTED
text: "Goal was preempted by a new goal."