Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The regions which static layer clears for footprint always remain as FREE_SPACE #4825

Closed
CihatAltiparmak opened this issue Jan 4, 2025 · 1 comment · Fixed by #4824
Closed

Comments

@CihatAltiparmak
Copy link
Contributor

Bug report

When footprint_clearing_enabled is enabled, the areas that the static layer clears for footprint are not restored after footprint is changed.

Required Info:

  • Operating System:
    • Ubuntu 22.04 jammy
  • ROS2 Version:
    • rolling docker from nav2_docker
  • Version or commit hash:
  • DDS implementation:
    • rmw_fastrtps_cpp

Steps to reproduce issue

Just run with this bringup config and then play with it.

ros2 launch nav2_bringup tb3_simulation_launch.py

Expected behavior

After the robot gets out of the cleared region, the cleared region must be restored from map_buffer as my PR does it.

Screencast.from.01-05-2025.01.29.15.AM.webm

Actual behavior

After the robot gets out of the cleared region, the cleared region must remain as FREE_SPACE.

Screencast.from.01-05-2025.01.40.56.AM.webm

Implementation considerations

I have needed to add some methods into Costmap2D class in order to fix this bug.

Additional information

Thanks @BCKSELFDRIVEWORLD for finding out this bug.

@SteveMacenski
Copy link
Member

There is some value in my experience in having the static layer that is navigable stay unmarked, but I agree that's not an intuitive result and could cause problems if you don't have good localization. Usually, if you end up navigating over a static map cell, its because that belonged to something that is no longer present in the scene to care about. But, if you have bad localization with alot of jumps, you could accidentally unmark alot of map cells that you may or may not have current sensor visibility to resolve.

I think this should be a parameter whether we should repopulate the static layer cells once cleared under footprint, but I agree with the premise of your issue. If you see the comment I left on your PR, the way I recommend approaching it would make it easy to parameterize the repopulation by simply checking a parameter in the last SET step!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants