Skip to content

Fix oscilation following the path - #79

Merged
fmrico merged 2 commits into
rollingfrom
fix_oscilation_rpp
Aug 15, 2026
Merged

Fix oscilation following the path#79
fmrico merged 2 commits into
rollingfrom
fix_oscilation_rpp

Conversation

@fmrico

@fmrico fmrico commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Hi,

I have detected that is some cases, the controller is oscillating in these two positions:

Captura desde 2026-08-13 11-58-24 Captura desde 2026-08-13 11-58-16

This PR adds a hysteresys for follwing the path in these conditions.

I hope you find it cool!!

Signed-off-by: Francisco Martín Rico <fmrico@gmail.com>
Copilot AI lite review requested due to automatic review settings August 13, 2026 10:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses oscillation (“chattering”) between rotate-in-place and curve-following in the regulated pure pursuit controller by adding hysteresis to the rotate-to-path decision threshold, and adds regression test coverage plus documentation updates.

Changes:

  • Add hysteresis to shouldRotateToPath() by using a lower exit threshold when already rotating.
  • Update controller loop to pass the current rotate-in-place state into shouldRotateToPath().
  • Add a regression test and update README to document the hysteretic behavior.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
controllers/easynav_regulated_pp_controller/src/easynav_regulated_pp_controller/RegulatedPurePursuitController.cpp Implements hysteresis in shouldRotateToPath() and threads current rotation state through update_rt().
controllers/easynav_regulated_pp_controller/include/easynav_regulated_pp_controller/RegulatedPurePursuitController.hpp Updates shouldRotateToPath() signature to include currently_rotating.
controllers/easynav_regulated_pp_controller/tests/regulated_pp_controller_tests.cpp Adds a regression test covering hysteresis behavior and toggling rotate-to-heading on/off.
controllers/easynav_regulated_pp_controller/README.md Documents the new hysteresis semantics for rotate_to_heading_min_angle.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines 168 to +169
/// \brief Whether the robot should rotate in place towards \p angle_to_path.
bool shouldRotateToPath(double angle_to_path) const;
bool shouldRotateToPath(double angle_to_path, bool currently_rotating) const;
Signed-off-by: Francisco Martín Rico <fmrico@gmail.com>
@fmrico
fmrico merged commit 0a0f7a2 into rolling Aug 15, 2026
0 of 2 checks passed
@fmrico
fmrico deleted the fix_oscilation_rpp branch August 15, 2026 08:32
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.

2 participants