wavemap

Fast, efficient and accurate multi-resolution, multi-sensor 3D occupancy mapping

https://github.com/ethz-asl/wavemap

Science Score: 65.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
    Organization ethz-asl has institutional domain (www.asl.ethz.ch)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.9%) to scientific vocabulary

Keywords

3d compression cpp grid-map hierarchical mapping multi-resolution occupancy occupancy-grid-map perception robotics ros volumetric wavelet

Keywords from Contributors

standardization data-profilers hack
Last synced: 6 months ago · JSON representation ·

Repository

Fast, efficient and accurate multi-resolution, multi-sensor 3D occupancy mapping

Basic Info
Statistics
  • Stars: 501
  • Watchers: 19
  • Forks: 48
  • Open Issues: 10
  • Releases: 22
Topics
3d compression cpp grid-map hierarchical mapping multi-resolution occupancy occupancy-grid-map perception robotics ros volumetric wavelet
Created over 4 years ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License Code of conduct Citation Security

README.md

Wavemap

C++ Python ROS1 Docs Version License 3D reconstruction of Newer College's Cloister

Hierarchical, multi-resolution volumetric mapping

Wavemap achieves state-of-the-art memory and computational efficiency by combining Haar wavelet compression and a coarse-to-fine measurement integration scheme. Advanced measurement models allow it to attain exceptionally high recall rates on challenging obstacles like thin objects.

The framework is very flexible and supports several data structures, measurement integration methods, and sensor models out of the box. The ROS interface can, for example, easily be configured to fuse multiple sensor inputs, such as a LiDAR configured with a range of 20m and several depth cameras up to a resolution of 1cm, into a single multi-resolution occupancy grid map.

Wavemap provides C++ and Python APIs and an interface to ROS1. The code is extensively tested on Intel, AMD and ARM CPUs on Ubuntu 20.04, 22.04 and 24.04. Example Docker files are available and documented in the installation instructions. We welcome contributions.

⭐ If you find wavemap useful, star it on GitHub to get notified of new releases!

Documentation

The framework's documentation is available on GitHub Pages for easy online access. A PDF version of each release’s documentation can also be found in the respective release notes.

Table of contents

Paper

A technical introduction to the theory behind wavemap is provided in our open-access RSS paper, available here. For a quick overview, watch the accompanying 5-minute presentation here.

Abstract
Volumetric maps are widely used in robotics due to their desirable properties in applications such as path planning, exploration, and manipulation. Constant advances in mapping technologies are needed to keep up with the improvements in sensor technology, generating increasingly vast amounts of precise measurements. Handling this data in a computationally and memory-efficient manner is paramount to representing the environment at the desired scales and resolutions. In this work, we express the desirable properties of a volumetric mapping framework through the lens of multi-resolution analysis. This shows that wavelets are a natural foundation for hierarchical and multi-resolution volumetric mapping. Based on this insight we design an efficient mapping system that uses wavelet decomposition. The efficiency of the system enables the use of uncertainty-aware sensor models, improving the quality of the maps. Experiments on both synthetic and real-world data provide mapping accuracy and runtime performance comparisons with state-of-the-art methods on both RGB-D and 3D LiDAR data. The framework is open-sourced to allow the robotics community at large to explore this approach.

Please cite this paper when using wavemap for research.

APA-style: Reijgwart, V., Cadena, C., Siegwart, R., & Ott, L. (2023). Efficient volumetric mapping of multi-scale environments using wavelet-based compression. Proceedings of Robotics: Science and Systems XIX. https://doi.org/10.15607/RSS.2023.XIX.065

BibTeX: @INPROCEEDINGS{reijgwart2023wavemap, author = {Reijgwart, Victor and Cadena, Cesar and Siegwart, Roland and Ott, Lionel}, journal = {Robotics: Science and Systems. Online Proceedings}, title = {Efficient volumetric mapping of multi-scale environments using wavelet-based compression}, year = {2023-07}, }

Note that the code has significantly improved since the paper was written. Wavemap is now up to 10x faster, thanks to new multi-threaded measurement integrators, and uses up to 50% less RAM, by virtue of new memory efficient data structures inspired by OpenVDB.

Owner

  • Name: ETHZ ASL
  • Login: ethz-asl
  • Kind: organization
  • Location: Zurich, Switzerland

Citation (CITATION.cff)

cff-version: 1.2.0
preferred-citation:
  title: "Efficient volumetric mapping of multi-scale environments using wavelet-based compression"
  authors:
    - family-names: Reijgwart
      given-names: Victor
    - family-names: Cadena
      given-names: Cesar
    - family-names: Siegwart
      given-names: Roland
    - family-names: Ott
      given-names: Lionel
  journal: "Robotics: Science and Systems"
  year: "2023"
  type: conference-paper
  doi: "10.15607/RSS.2023.XIX.065"
  url: https://www.roboticsproceedings.org/rss19/p065.pdf
  codeurl: https://github.com/ethz-asl/wavemap

GitHub Events

Total
  • Create event: 14
  • Issues event: 5
  • Release event: 2
  • Watch event: 75
  • Delete event: 14
  • Issue comment event: 17
  • Push event: 61
  • Pull request review comment event: 15
  • Pull request event: 17
  • Pull request review event: 21
  • Fork event: 15
Last Year
  • Create event: 14
  • Issues event: 5
  • Release event: 2
  • Watch event: 75
  • Delete event: 14
  • Issue comment event: 17
  • Push event: 61
  • Pull request review comment event: 15
  • Pull request event: 17
  • Pull request review event: 21
  • Fork event: 15

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,224
  • Total Committers: 8
  • Avg Commits per committer: 153.0
  • Development Distribution Score (DDS): 0.02
Past Year
  • Commits: 198
  • Committers: 3
  • Avg Commits per committer: 66.0
  • Development Distribution Score (DDS): 0.01
Top Committers
Name Email Commits
Victor Reijgwart v****t@h****m 1,200
github-actions[bot] 4****] 13
Lucas Walter w****l@g****m 3
Alexander Stumpf a****f@e****m 3
GitHub Actions g****s@g****m 2
marcojob 4****b 1
Sergei Sergienko d****1@g****m 1
Helen Oleynikova h****a@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 27
  • Total pull requests: 51
  • Average time to close issues: 27 days
  • Average time to close pull requests: 27 days
  • Total issue authors: 15
  • Total pull request authors: 6
  • Average comments per issue: 4.19
  • Average comments per pull request: 0.96
  • Merged pull requests: 45
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 7
  • Pull requests: 10
  • Average time to close issues: about 10 hours
  • Average time to close pull requests: 6 days
  • Issue authors: 6
  • Pull request authors: 3
  • Average comments per issue: 0.43
  • Average comments per pull request: 0.6
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • astumpf (8)
  • YoungCapta1n (4)
  • victorreijgwart (2)
  • lucascdlima (1)
  • miguelcastillon (1)
  • sverrevr (1)
  • MihirDharmadhikari (1)
  • Tfly6 (1)
  • Aldhra (1)
  • Nimaro76 (1)
  • gyeongmin6099 (1)
  • MrBoriska (1)
  • Tacha-S (1)
  • zy-cuhk (1)
  • tarquai (1)
Pull Request Authors
  • victorreijgwart (49)
  • Divelix (4)
  • astumpf (3)
  • marcojob (2)
  • helenol (1)
  • lucasw (1)
Top Labels
Issue Labels
enhancement (9) bug (5) question (4) documentation (1)
Pull Request Labels
enhancement (20) bug (7) documentation (2)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 22
proxy.golang.org: github.com/ethz-asl/wavemap
  • Versions: 22
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 7 months ago