Repository navigation
Let a run interrupt the link without killing the fleet - #4
Merged
Merged
Conversation
Publishing false on /eplansys/rmf_link drops what arrives over the websocket from then on. The socket stays up, the frames are still counted, the requests still go out, and what is lost is the road back, which is what an outage is: the adapter is alive and the robots are where they were. Killing the adapter measures something else. It comes back believing its robots are at their chargers, so the tasks it accepts afterwards never finish, and a mission that replans into that is not recovering from an interruption but failing against a different fleet. With the outage reversible, the replanning the mission does carries it through: the drive times out while the link is down, the mission replans from the state it reached, and the second attempt finishes on a fleet that never went away. mission_check gains heard_any, and the one-site launch asks with it. Which team member goes to the site and which is told is the planner's choice, and a replan from a different state can pick the other one; what the mission claims is that the finding reached the team over a channel the observer was not on.
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 fleet that stops answering is not the same thing as a fleet that has stopped, and until now the experiment could only produce the second.
run.shkills the adapter; it comes back believing its robots are at their chargers, so every task it accepts afterwards never finishes, and a mission that replans into that is not recovering from an interruption — it is failing against a different fleet.Publishing
falseon/eplansys/rmf_linkdrops what arrives over the websocket from then on. The socket stays up, the frames are still counted, the requests still go out, and what is lost is the road back.truereads it again. Both transitions are logged by the bridge.What it shows
experiments/oe4-desconexion/run-corte-reversible.sh, cut at 10 s into the drive, 20 s of outage, bridge waiting 30 s:The first attempt dies because what the fleet said was dropped on arrival. The second plans from the state the mission reached, submits a fresh task to a fleet that never went away, and finishes. Five of five.
The check that had to change with it
mission_checkgainsheard_any, and the one-site launch asks with it instead of namingscout. Which team member goes to the site and which is told is the planner's choice —relay-dirty_relay_scoutandrelay-dirty_scout_relayboth answer the goal — and a replan from a different state picked the other one, failing a mission that had succeeded. What the mission claims is that the finding reached the team over a channel the observer was not on, and that is now what is checked.heard_somethingkeeps working and its default is now empty, since which agent is spoken to belongs to a launch rather than to the node.Checked