Add layered Wavemap support for continuous and discrete voxel attributes - #100
Closed
GuilhermeCabaco wants to merge 14 commits into
Closed
GuilhermeCabaco wants to merge 14 commits into
GuilhermeCabaco wants to merge 14 commits into
Conversation
Organize the typed layer APIs, support hashed and chunked continuous backends, and add discrete side-layer storage. Integrate layered maps with ROS inputs, persistence, incremental transport, RViz, and Ouster/RGB applications while removing obsolete prototypes and backup files.
Add a layered project overview and demo video to the repository landing page. Document Docker and native setup, the RGB and Ouster workflows, persistence, custom layer definitions, sensor bindings, visualization, and troubleshooting.
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.
Description
This PR extends Wavemap from occupancy-only mapping to compile-time-defined layered voxel maps containing continuous and discrete attributes. It adds the core layered storage and integration framework,
.lwvmppersistence, ROS1 messages and server support, RViz visualization, sensor examples, tests, and user documentation.A demonstration is available in the Layered Wavemap video.
Type of change
Detailed Summary
Provide the motivation, context, and links to any related issues, PRs, or documentation:
The implementation includes:
.lwvmppersistence with stored layer schemas..lwvmpdecoding in RViz for built-in layer codecs, without requiring the exact application schema to be registered.API Changes
List any changes to wavemap's APIs to help users update their code. Write "None" if there are no changes.
C++ API:
.lwvmpschema-aware persistence APIs.Python API:
ROS1 Interface:
LayeredMap,LayeredMapUpdate, continuous-layer, and discrete-layer messages.wavemap_msgs/Mapwith a layered hashed-wavelet representation.LayeredMapRViz display with selectable continuous and discrete layers..lwvmpfiles that use the built-in scalar, RGB, weighted-mean, integer, and Boolean codecs.wavemap_msgs/Mapchanged.Review Notes
Please focus review on:
.lwvmpschema validation and runtime decoding.Version 1 of
.lwvmpstores layer names and codec identifiers, but it does not store application-specific visualization ranges, category labels, or colors. RViz uses default visualization settings when loading a schema dynamically; registered schema factories can still provide richer metadata.Testing
Automated Tests
Automated Tests
wavemap_ros_conversionsandwavemap_rviz_pluginsuccessfully.