Fix: Switch lidar angular filter to LaserScanAngularBoundsFilterInPlace#658
Draft
bkanator wants to merge 1 commit into
Draft
Fix: Switch lidar angular filter to LaserScanAngularBoundsFilterInPlace#658bkanator wants to merge 1 commit into
bkanator wants to merge 1 commit into
Conversation
…nPlace Filtered beams are now marked range_max instead of being removed, so the scan's angle_min/angle_max and beam count stay constant across messages. Nav2's inf_is_valid: false discards those beams correctly — same functional result as before, but with a stable scan structure that nav2 costmap expects. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.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.
Closes PickNikRobotics/moveit_pro#18497
Summary
Switches both lidar filter chain instances in
hangar_simfromLaserScanAngularBoundsFiltertoLaserScanAngularBoundsFilterInPlace.The regular filter removes out-of-range beams and rewrites
angle_min/angle_maxin the published message, so the scan dimensions change message-to-message.InPlaceinstead marks filtered beams asrange_max(the ROS "no return" sentinel), leaving the scan structure — array length,angle_min,angle_max,angle_increment— constant. Nav2's costmap plugins expect consistent scan dimensions; theinf_is_valid: falsesetting already innav2_params.yamldiscards therange_maxbeams, giving the same functional result.Filtering extent
The issue asked whether we're cutting too many beams. We verified with a 1.5m test ring (36 markers every 10°) in simulation:
Claude agent checks
inf_is_valid: falseinteraction and slam_toolbox header concern reviewed; both are correct/benign in this configuration. Comment added to YAML explaining therange_max/inf_is_validinteraction.