Repository navigation
Ask for a policy again when an action fails - #38
Merged
Merged
Conversation
A mission that stops at the first failed action throws away everything it learned getting there. This one asks for a policy again, up to three times, and the planner reads the epistemic state as the mission left it: a scan that already happened is not planned for twice. The drive stops consuming at_depot for the same reason. An action that asserts it has left the depot cannot be dispatched a second time, and a mission that replans after a failure dispatches it a second time. Measured over the RMF fleet with the link cut mid-drive: the action fails with the reason the bridge gave, the mission says which action died, and the next attempt plans from what was known. Recovery needs more than this --- a restarted fleet adapter believes its robots are at their chargers --- and that is recorded with the experiment.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
A mission that stops at the first failed action throws away everything it learned getting there.
survey_missionnow asks for a policy again, up to three times (--attempts), and the planner reads the epistemic state as the mission left it: a scan that already happened is not planned for twice.The executor is not the place for this. It executes the plan it was given and reports which action failed; asking for another plan belongs to whoever owns the mission, which is where it went.
The domain change that goes with it
goto_sitestopped consumingat_depot. An action whose at-start effect asserts it has left the depot cannot be dispatched a second time, and a mission that replans after a failure dispatches it a second time. The requirement stays; only its consumption goes.Worth recording why the requirement stays rather than the whole condition: an empty
:condition (and)made the executor's feedback watchdog fire and re-request an action that was already running, so a drive was dispatched twice. With the requirement in place the two-site mission runs each action once, in 16.3 s parallel against 23.8 s serial.Measured on the fleet
The link-drop experiment cuts the fleet adapter mid-drive, with the bridge's wait set to 30 s:
The loop does what it says. What it does not buy is recovery, and the reason is on the fleet's side: a restarted
fleet_adapterre-initialises its robots at their chargers, so the tasks it accepts afterwards never complete. Measuring recovery needs the link interrupted without killing the adapter.