Skip to content

Comments

Instantaneously clear of Octomap voxels overlapping with new CollisionObjects#3683

Open
kuralme wants to merge 1 commit intomoveit:mainfrom
kuralme:ghost-voxel-fix
Open

Instantaneously clear of Octomap voxels overlapping with new CollisionObjects#3683
kuralme wants to merge 1 commit intomoveit:mainfrom
kuralme:ghost-voxel-fix

Conversation

@kuralme
Copy link

@kuralme kuralme commented Feb 14, 2026

Description

Addresses the issue where stale Octomap voxels persist inside newly added collision objects until the sensor update clears eventually. Currently, MoveIt uses excludeShape to mask incoming sensor data but it only prevents new voxels from being added within an object's volume. It does not remove existing voxels already stored in the Octomap. This PR introduces an active clearing mechanism to wipe these voxels the moment an object is added or moved.

Key additions:

  • OccMapTree::clearRegion to reset log-odds of voxels within a specific bounding box
  • OccupancyMapMonitor::clearShape to calculate accurate object shape
  • clearing is triggered at planning scene monitor new collision obj processing
  • testing fixtures to validate clearing of the ghost voxels

Checklist

  • Required by CI: Code is auto formatted using clang-format
  • Extend the tutorials / documentation reference
  • Document API changes relevant to the user in the MIGRATION.md notes
  • Create tests, which fail without this PR reference
  • Include a screenshot if changing a GUI
  • While waiting for someone to review your request, please help review another open pull request to support the maintainers

- triggered at planning scene monitor new collision obj processing
- calculates and clears coincided voxels from octree
- testing with different shapes
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.

1 participant