Fix sensors→control skipped when local planner is empty - #36
Draft
cursor[bot] wants to merge 1 commit into
Draft
Conversation
FollowTheGapController declares no LOCAL_PLAN requirement and docs advertise end-to-end sensors→control, but sync/async executers and Control Step gated on local_planner and never recomputed commands. Allow control with plan=None. Co-authored-by: Majid Khonji <majid-khonji@users.noreply.github.com>
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.
Bug and impact
Selecting
FollowTheGapControllerwith an empty local planner (documented sensors→control composition) built a valid stack but never actuated:_last_cmdstayedNoneand the plant did not move. Manual Control Step also no-oped.Root cause
Sync/async executers and
_control_stephard-requiredlocal_planner is not Nonebefore recomputing control, even thoughFollowTheGapController.stack_requirementsonly needsLOCALIZATIONandcontrol(..., plan=None)already supports plan-free cruise/gap steering.Fix
plan=Noneif there is no local plannerworker_controland visualizer Control StepValidation
pytest test/c40_execution/test_c44_control_without_planner.py test/c40_execution/test_c42_sensor_snapshot.py test/c40_execution/test_c44_executer_fps.py— all passedlast_cmd=None(0 m motion); after fix FTG applies accel and advances ~19 m over 40 ticks