-
Notifications
You must be signed in to change notification settings - Fork 81
Open
Description
Before proceeding, is there an existing issue or discussion for this?
- I have done a search for similar issues and discussions.
Description
This question concerns the behavior of task_id in the fleet_state topic and update_handle.current_task_id, specifically during emergency pullover scenarios and when the interrupted task is killed or canceled. There seems to be inconsistencies
ROS2: humble
OS: Ubuntu 22.04
rmf_ros2 commit hash: [f41fae50cab9c008853632f6f0a229b60c7c6994](https://github.com/open-rmf/rmf_ros2/commit/f41fae50cab9c008853632f6f0a229b60c7c6994)
Observations:
Scenario 1: Set Emergency signal when robot is idle ( finishing request: park)
| Robot State | Event / Action | fleet_state.task_id |
update_handle.current_task_id |
|---|---|---|---|
| Idle | Idle task set (e.g., ParkRobot) | (empty) | ParkRobotXXX |
| Idle | Set Emergency signal | (empty) | emergency_pullover-0 |
| Performing emergency pullover | Clear Emergency signal | (empty) | emergency_pullover-0 |
| Idle | Set Emergency signal | (empty) | emergency_pullover-1 |
| Performing emergency pullover | Clear Emergency signal | (empty) | emergency_pullover-1 |
Scenario 2: Set Emergency signal when robot is idle (finishing request: nothing)
| Robot State | Event / Action | fleet_state.task_id |
update_handle.current_task_id |
|---|---|---|---|
| Idle | Idle task set to nothing | (empty) | (empty) |
| Idle | Set Emergency signal | (empty) | emergency_pullover-0 |
| Performing emergency pullover | Clear Emergency signal | (empty) | emergency_pullover-0 |
| Idle | Set Emergency signal | (empty) | emergency_pullover-1 |
| Performing emergency pullover | Clear Emergency signal | (empty) | emergency_pullover-1 |
Scenario 3: Let robot finish task after emergency signal is cleared
| Robot State | Event / Action | fleet_state.task_id |
update_handle.current_task_id |
|---|---|---|---|
| Performing task (e.g., patrol) | Task in progress | patrol-0 | patrol-0 |
| Performing task | Set Emergency signal | patrol-0 | emergency_pullover-0 |
| Performing emergency pullover | Clear Emergency signal | patrol-0 | emergency_pullover-0 |
| Performing task | Task in progress | patrol-0 | emergency_pullover-0 |
| Performing task | Task completed | (empty) | (empty) |
Note:
- task
patrol-0ros2 run rmf_demos_tasks dispatch_patrol -F tinyRobot -R tinyRobot1 -p coe lounge supplies --use_sim_time - Set emergency signal while robot is moving to
lounge. - Clear emergency signal while tinyRobot1 is moving to emergency pullover stop
Scenario 4: Cancel robot task during emergency pullover:
| Robot State | Event / Action | fleet_state.task_id |
update_handle.current_task_id |
|---|---|---|---|
| Performing task (e.g., patrol) | Task in progress | patrol-0 | patrol-0 |
| Performing task | Set Emergency signal | patrol-0 | emergency_pullover-0 |
| Performing emergency pullover | Cancel task (cancel_task_request) during emergency |
patrol-0 | emergency_pullover-1 |
| Performing emergency pullover | Clear Emergency signal | patrol-0 | emergency_pullover-1 |
| Performing task | Task in progress | patrol-0 | emergency_pullover-1 |
| Performing task | Reached lounge |
(empty) | (empty) |
Note:
- task
patrol-0ros2 run rmf_demos_tasks dispatch_patrol -F tinyRobot -R tinyRobot1 -p coe lounge supplies --use_sim_time - Set emergency signal while robot is moving to
lounge. - Cancel the task
- Clear emergency signal while tinyRobot1 is moving to emergency pullover stop
- After emergency signal is cleared,
patrol-0task still continue until the robot reachedloungeand stop there (finishing_request=nothing)..
Metadata
Metadata
Assignees
Labels
No labels