Properly cleanup emergency pullover task #258
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Bug fix
Fixed bug
Early return in the
_resume_from_emergency
function caused the_emergency_pullover
task not to be cleared. This would happen when the_emergency_pullover_interrupt_token
was not set, which would happen when the fire alarm was triggered and a robot was not executing any task.The emergency pullover still being active created spurious requests for replanning in the fleet adapter, which are quite harmless in simulation but can be troublesome in real deployments since they would stop the robot on the spot, then send a new path.
Fix applied
Just move the clearing of the emergency pullover task to before the early return.
To test in office world:
ros2 run rmf_demos_tasks dispatch_patrol -p patrol_A1 -n 1 --use_sim_time
ros2 topic pub /fire_alarm_trigger std_msgs/msg/Bool "data: true"
ros2 topic pub /fire_alarm_trigger std_msgs/msg/Bool "data: false"
ros2 run rmf_demos_tasks dispatch_patrol -p coe lounge -n 3 --use_sim_time
Without this PR, replanning will be triggered regularly for the robot, with this PR this won't happen.