Skip to content

AmclRelocalizeMitigation: pose resets instead of rotation; AMCL refines after a reset - #174

Merged
fmrico merged 1 commit into
rollingfrom
amcl_relocalize_reset
Nov 3, 2026
Merged

fmrico merged 1 commit into
rollingfrom
amcl_relocalize_reset

Conversation

@fmrico

@fmrico fmrico commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Closes #173.

  • AmclRelocalizeMitigation makes up to attempts pose resets (default 5) at the pose from before the recovery, using RViz's covariance. Each attempt waits attempt_timeout (default 5 s) for convergence. The first attempt uses the exact pose; the others add an offset of up to max_offset (default 1 m), uniform over the disc. The robot is stopped every cycle.
  • It does not reset if AMCL has already converged, and it checks quality_ratio like the evaluator. Without a robot pose it fails without publishing anything.
  • rotation_speed and timeout are no longer used; setting them logs a warning.
  • AMCLLocalizer: after an initial pose, reseeds use noise from the reset covariance × reset_refine_noise (0.25), decaying over reset_refine_time (3 s), so a stopped robot converges. Both parameters can be set to 0, which turns the refinement off; negative values are rejected.
  • Tests: about 20 for the mitigation and 3 for the refinement. READMEs updated.

Kidnap test on the Kobuki playground (0.4, 0.6 and 0.9 m): all three recovered on the first attempt in 2–3 s, final error 0.03–0.09 m, and no re-trigger in the 15 s watched afterwards.

…es after a reset

Closes #173.

Signed-off-by: Francisco Martín Rico <fmrico@gmail.com>
@fmrico
fmrico merged commit 8e2934f into rolling Nov 3, 2026
1 check passed
@fmrico
fmrico deleted the amcl_relocalize_reset branch November 3, 2026 11:30
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.

Costmap AMCL relocalization: reset the pose instead of rotating, and stop re-triggering after convergence

1 participant