Skip to content

Recovery: RotateRecovery turns in place when there is no path - #128

Merged
fmrico merged 1 commit into
rollingfrom
rotate_recovery
Oct 16, 2026
Merged

fmrico merged 1 commit into
rollingfrom
rotate_recovery

Conversation

@fmrico

@fmrico fmrico commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Closes #127

RotateRecovery is a new movement mitigation for ERROR diagnostics from the planner (NoPathEvaluator).

  • What it does. It turns in place, a full turn by default, so the sensors look all around. Then it stands still for settle_time seconds so the planner can replan, and succeeds.
  • Once per episode. If the diagnostic returns within episode_gap seconds, the turn did not help, and the mitigation fails at once so the manager escalates to the next one, e.g. HumanAssistanceRecovery. It also fails if the turn times out, for instance when the collision reflex blocks it.
  • Parameters: angle (2π; negative turns clockwise), angular_speed (0.5), settle_time (2.0), timeout (0: twice the expected time plus 5 s), episode_gap (30.0), hardware_ids ([planner]).
  • Usage. It is not added to any configuration. To use it, give it a lower priority number than human_assistance.

Seven new tests cover:

  • selection and control;
  • turning in both directions;
  • accumulating the angle across ±π;
  • settling;
  • once per episode;
  • a new episode after a gap;
  • the timeout;
  • invalid parameters.

In simulation, with the warehouse and an unreachable goal, it turned a full turn, waited, escalated when there was still no path, and HumanAssistanceRecovery then asked for help.

A movement mitigation for ERROR diagnostics of the planner (no path):
it turns a full turn in place, so the sensors look all around (with a
map that remembers obstacles, the gone ones are cleared), and stands
still for the planner to replan. Once per episode: if there is still no
path, it fails so the next mitigation, e.g. HumanAssistanceRecovery,
takes over; also if the turn times out. Not added to any
configuration.

Signed-off-by: Francisco Martín Rico <fmrico@gmail.com>
@fmrico
fmrico merged commit c050147 into rolling Oct 16, 2026
1 check passed
@fmrico
fmrico deleted the rotate_recovery branch October 16, 2026 05:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

No recovery that looks around before asking for help when there is no path

1 participant