Recent Releases of wavemap

wavemap - v2.2.1

Summary

This patch enhances the VSCode development container for wavemap, adding features like tab completions and colors in the terminal.

Special thanks to @marcojob for contributing these improvements!

Detailed description

The changes set the container's default shell to bash and add a .bashrc file, which was missing.

Package changelogs

The changes only affect the Docker file for the devcontainer.

Upgrade notes

Upgrade instructions for * C++ Library * To use wavemap as a standalone CMake project, please see these instructions * Python Library * To install wavemap's Python API, please see these instructions * ROS1 * Catkin * Go to your catkin workspace src directory: cd ~/catkin_ws/src * Pull the newest wavemap code:cd wavemap && git checkout main && git pull * Rebuild wavemap: catkin build wavemap_all * Docker * docker build --tag=wavemap_ros1 --build-arg='VERSION=v2.2.1' -<<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/v2.2.1/tooling/docker/ros1/incremental.Dockerfile)

For more info, see our guides on installing wavemap.

- C++
Published by github-actions[bot] about 1 year ago

wavemap - v2.2.0

Summary

This release simplifies interacting with chunked octrees, improves performance, and extends the QueryAccelerator to support HashedChunkedWaveletOctree maps.

Detailed description

Release 2.0.0 introduced experimental NodePtr and NodeRef classes, enabling traversal of chunked octrees as if they were regular octrees. This PR finalizes their implementation and uses them to simplify map operations and measurement integrators, and extend the QueryAccelerator to support chunked octrees.

For a detailed summary, list of API changes, and benchmarking results, please see PR #84.

Package changelogs

Libraries

Interfaces

Upgrade notes

Upgrade instructions for * C++ Library * To use wavemap as a standalone CMake project, please see these instructions * Python Library * To install wavemap's Python API, please see these instructions * ROS1 * Catkin * Go to your catkin workspace src directory: cd ~/catkin_ws/src * Pull the newest wavemap code:cd wavemap && git checkout main && git pull * Rebuild wavemap: catkin build wavemap_all * Docker * docker build --tag=wavemap_ros1 --build-arg='VERSION=v2.2.0' -<<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/v2.2.0/tooling/docker/ros1/incremental.Dockerfile)

For more info, see our guides on installing wavemap.

- C++
Published by github-actions[bot] over 1 year ago

wavemap - v2.1.2

Summary

This patch introduces additional tools to track resource usage and updates the PR template to include benchmarking results, to monitor how the framework evolves.

Detailed description

For a detailed summary, list of API changes, and benchmarking results, please see PR #83.

Package changelogs

Libraries

Interfaces

Upgrade notes

Upgrade instructions for * C++ Library * To use wavemap as a standalone CMake project, please see these instructions * Python Library * To install wavemap's Python API, please see these instructions * ROS1 * Catkin * Go to your catkin workspace src directory: cd ~/catkin_ws/src * Pull the newest wavemap code:cd wavemap && git checkout main && git pull * Rebuild wavemap: catkin build wavemap_all * Docker * docker build --tag=wavemap_ros1 --build-arg='VERSION=v2.1.2' -<<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/v2.1.2/tooling/docker/ros1/incremental.Dockerfile)

For more info, see our guides on installing wavemap.

- C++
Published by github-actions[bot] over 1 year ago

wavemap - v2.1.1

- C++
Published by github-actions[bot] over 1 year ago

wavemap - v2.1.0

Summary

This release introduces pywavemap, a Python API for the wavemap library.

Detailed description

This PR extends wavemap 2.0 with a full-fledged Python API, enabling the creation, reading, and writing of map files. Users can configure and run modular mapping pipelines directly in Python. The API includes fast, batched map accessors to simplify using wavemap as an input to PyTorch and other machine-learning frameworks. Additionally, the documentation has been extended and the CI pipeline has been rewritten for improved testing and easier future extensions.

Please see #69 for a full description of all the changes.

Package changelogs

Libraries

Examples

Upgrade notes

Upgrade instructions for * C++ Library * To use wavemap as a standalone CMake project, please see these instructions * Python Library * To install wavemap's Python API, please see these instructions * ROS1 * Catkin * Go to your catkin workspace src directory: cd ~/catkin_ws/src * Pull the newest wavemap code:cd wavemap && git checkout main && git pull * Rebuild wavemap: catkin build wavemap_all * Docker * docker build --tag=wavemap_ros1 --build-arg="VERSION=v2.1.0" -<<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/v2.1.0/tooling/docker/ros1/incremental.Dockerfile)

For more info, see our guides on installing wavemap.

- C++
Published by github-actions[bot] over 1 year ago

wavemap - v2.0.1

Summary

This patch fixes a compilation error when wavemap's ROS server is compiled with optional support for Livox pointclouds.

Detailed description

The error was caused by two type names in the Livox pointcloud callback code not being updated after the refactoring for wavemap 2.0. It didn't show up during testing because the code path only gets compiled if catkin detects that the livox_ros_driver2 package is available.

Fixes #67

Package changelogs

Interfaces

Upgrade notes

Upgrade instructions for * C++ Library * For instructions on setting up wavemap as a standalone CMake project, please refer to our docs * ROS1 * Catkin * Go to your catkin workspace src directory: cd ~/catkin_ws/src * Pull the newest wavemap code:cd wavemap && git checkout main && git pull * Rebuild wavemap: catkin build wavemap_all * Docker * docker build --tag=wavemap_ros1 --build-arg="VERSION=v2.0.1" -<<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/v2.0.1/tooling/docker/ros1/incremental.Dockerfile)

For more info, see our guides on installing wavemap.

- C++
Published by github-actions[bot] over 1 year ago

wavemap - v2.0.0

Summary

This release significantly enhances wavemap's generality and functionality. The core library is now a standalone CMake C++ package, enabling its use on non-ROS platforms and paving the way for future integrations, such as a Python API. Other major updates include generic spatial data structures, new path-planning utilities, a plugin system for map operations, and extensions to the documentation.

Detailed description

In terms of functionality, wavemap's spatial data structures can now be used to store arbitrary data types. A wide range of new utilities has been added, with a special focus on path-planning applications. In terms of code, wavemap can now be used as a pure CMake C++ library. In addition to making the framework usable without ROS, this change lays the groundwork for Python bindings and simplifies the development of future interfaces (e.g., ROS2, Zenoh). Other major improvements include a modular system for adding and configuring map operations, similar to plugins. We already include new operations to publish the map in alternative formats (e.g. obstacle pointcloud) and perform local mapping, and expect to add many more in the future.

Please see #66 for a full description of all the changes.

This PR addresses GH issues #25 and #59.

Breaking changes

This release changes the high-level structure of wavemap's configuration files to accommodate new functionalities and improve user-friendliness. Users who created custom configs for a previous wavemap version will have to update these manually. However, no functionalities have been removed.

Package changelogs

Libraries

Interfaces

Examples

Upgrade notes

Upgrade instructions for * C++ Library * For instructions on setting up wavemap as a standalone CMake project, see our new docs * ROS1 * Catkin * Go to your catkin workspace src directory: cd ~/catkin_ws/src * Pull the newest wavemap code:cd wavemap && git checkout main && git pull * Remove the old built packages with catkin clean wavemap_all, or if that doesn't run catkin clean -bdi * Build the new packages: catkin build wavemap_all * Docker * docker build --tag=wavemap --build-arg="VERSION=v2.0.0" -<<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/main/tooling/docker/incremental.Dockerfile) * For more info, see the ROS1 installation page

- C++
Published by github-actions[bot] over 1 year ago

wavemap - v1.6.3

Summary

This patch fixes a rendering bug in wavemap's Rviz plugin that appears when using the TopDownOrtho ViewController.

Detailed description

Wavemap's Rviz plugin uses Level of Detail (LoD) rendering to improve Rviz's frame rate when displaying large maps. The LoD level for each rendered block is selected based on its distance to the camera, but this does not work when using orthographic projection (TopDownOrtho mode). This patch ensures that the highest LoD level is used in this mode. We plan further optimizations in future development cycles.

Package changelogs

Upgrade notes

Upgrade instructions for * Catkin * Go to your catkin workspace src directory: cd ~/catkin_ws/src * Pull the newest wavemap code: cd wavemap && git checkout main && git pull * Rebuild wavemap: catkin build wavemap_all * Docker * docker build --tag=wavemap --build-arg="VERSION=v1.6.3" - <<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/main/tooling/docker/incremental.Dockerfile)

For more info, see the installation page in the docs.

- C++
Published by github-actions[bot] about 2 years ago

wavemap - v1.6.2

Summary

This patch adds and updates included header files for compatibility with newer Ubuntu versions.

Backward compatibility is maintained, at least down to Ubuntu 20.04.

Main changes

  • Include <optional> for std::optional
  • Update includes for Ogre and Rviz headers deprecated in Ubuntu 23

Thank you lucasw for these contributions.

Package changelogs

Upgrade notes

Since there are no functional changes, upgrading existing installations is not required. If you still wish to test the newest code: * Catkin * Go to your catkin workspace src directory: cd ~/catkin_ws/src * Pull the newest wavemap code: cd wavemap && git checkout main && git pull * Rebuild wavemap: catkin build wavemap_all * Docker * docker build --tag=wavemap --build-arg="VERSION=v1.6.2" - <<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/main/tooling/docker/incremental.Dockerfile)

For more info or to install wavemap on a new system, see the installation page in the docs.

- C++
Published by github-actions[bot] about 2 years ago

wavemap - v1.6.1

Summary

This release adds a Dockerfile, scripts, and documentation to make it easy to reproduce the interactive multi-sensor, multi-resolution mapping demo we performed at RSS and the Swiss Robotics Day.

See the new documentation section here.

Main changes

  • A Dockerfile that includes all the required software (sensor drivers, FastLIO2, and wavemap)
  • A script to easily launch the demo in Docker
  • Documentation on how to setup and run the demo

Package changelogs

Upgrade notes

Upgrade instructions for * Catkin * Go to your catkin workspace src directory: cd ~/catkin_ws/src * Pull the newest wavemap code: cd wavemap && git checkout main && git pull * Rebuilding is not required, as the changes only affect launch and config files * Docker * docker build --tag=wavemap --build-arg="VERSION=v1.6.1" - <<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/main/tooling/docker/incremental.Dockerfile)

For more info, see the installation page in the docs.

- C++
Published by github-actions[bot] over 2 years ago

wavemap - v1.6.0

- C++
Published by github-actions[bot] over 2 years ago

wavemap - v1.5.3

- C++
Published by github-actions[bot] over 2 years ago

wavemap - v1.5.2

Summary

This patch makes it possible to build wavemap with catkin in --install mode.

New features

  • Add install rules for wavemap and wavemap_ros' libraries, headers, and configs

Package changelogs

Upgrade notes

Upgrade instructions for * Catkin * Go to your catkin workspace src directory: cd ~/catkin_ws/src * Pull the newest version of tracy_catkin package: * cd tracy_catkin && git pull && cd .. * Pull the newest wavemap code: cd wavemap && git checkout main && git pull * Rebuild wavemap: catkin build wavemap_all * Docker * docker build --tag=wavemap --build-arg="VERSION=v1.5.2" - <<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/main/tooling/docker/incremental.Dockerfile)

For more info, see the installation page in the docs.

- C++
Published by github-actions[bot] over 2 years ago

wavemap - v1.5.1

This patch improves the documentation for contributors :wrench:

- C++
Published by github-actions[bot] over 2 years ago

wavemap - v1.5.0

Summary

This release makes wavemap 20% faster for LiDAR inputs and adds support for Tracy Profiler.

New features

  • Annotate code for profiling with Tracy Profiler
  • Switch to custom atan2 in LiDAR projection models
    • Speeds up wavemap by 20% overall for LiDAR inputs
    • No compromise in accuracy (slightly improves AUC, accuracy and recall)
  • Minor general optimizations
  • Add option to enable DCHECKs even when not compiling in debug mode
  • Improve error messages when reading/writing a file fails

Notes on Tracy

By default, Tracy is disabled and introduces zero overhead. To enable profiling with Tracy, see the instructions in PR#19.

Package changelogs

Upgrade notes

This release adds a dependency on Tracy Profiler, which we wrapped into a catkin package for easy usage and installation.

Upgrade instructions for * Catkin * Go to your catkin workspace src directory: cd ~/catkin_ws/src * Add the tracy_catkin package: * git clone git@github.com:ethz-asl/tracy_catkin.git # If you're using git with SSH [recommended] * git clone https://github.com/ethz-asl/tracy_catkin.git # For git with HTTPS * Pull the newest wavemap code: cd wavemap && git checkout main && git pull * Rebuild wavemap: catkin build wavemap_all * Docker * docker build --tag=wavemap --build-arg="VERSION=v1.5.0" - <<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/main/tooling/docker/incremental.Dockerfile)

For more info, see the installation page in the docs.

- C++
Published by github-actions[bot] over 2 years ago

wavemap - v1.4.0

Summary

This release makes wavemap much easier to configure by extending the documentation and adding informative, actionable messages for config loading errors.

New features

  • Write documentation page on how to configure wavemap
  • Make warnings/errors that can occur when loading configs more descriptive
    • When loading a param fails, print an explanation, including
    • the offending param's name (to make it easy to find) and type,
    • the action that will be taken (e.g. it will be ignored, and default value X will be used instead), and
    • for enum types list all supported options (e.g. for an inputhandler type: ["pointcloud", "depthimage"])
  • Annotate the unit of config members (e.g. mincellwidth in meters) using types
    • Replaces the previous solution that used enums, which were stored and handled separately
    • With this new solution, the units directly and clearly show up in the documentation
  • Update all example configs
    • Make sure syntax matches newest wavemap version, addressing Issue #24
    • Apply recommended settings
  • Define a schema for wavemap configs using jsonschema, which also supports YAML, to enable
    • Text completion, inline documentation, and real-time validation when editing wavemap configs in IDEs like CLion
    • Automatic linting of wavemap configs through .pre-commit hooks
  • Do not emit CMake warnings when the optional livox_ros_driver2 dependency is not found (contributed by astumpf).
    • If users try to initialize a pointcloud input of type livox but the driver is not installed, they will be prompted to install it.
  • Add templates for GitHub issues and pull requests
    • Makes it easier for users to submit bug reports, feature requests, and open pull requests

Package changelogs

Upgrade notes

Upgrading should only be a matter of rebuilding. If you're using * Catkin: Pull the newest code and run cd ~/catkin_ws/ && catkin build wavemap_all * Docker: docker build --tag=wavemap --build-arg="VERSION=v1.4.0" - <<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/main/tooling/docker/incremental.Dockerfile)

For more info, see the installation page in the docs.

- C++
Published by github-actions[bot] over 2 years ago

wavemap - v1.3.2

Summary

This release fixes a minor bug where the header of wavemap ROS messages was not set for certain data structures, as reported and fixed by astumpf.

Detailed bug description

The bug resulted in the header.stamp and header.frame_id fields not being set when the wavemap ROS server transmitted maps stored with data structures other than "hashed_wavelet_octree" and "hashed_chunked_wavelet_octree".

Package changelogs

Upgrade notes

Upgrading should only be a matter of rebuilding. If you're using * Catkin: Pull the newest code and run cd ~/catkin_ws/ && catkin build wavemap_all * Docker: docker build --tag=wavemap --build-arg="VERSION=v1.3.2" - <<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/main/tooling/docker/incremental.Dockerfile)

For more info, see the installation page in the docs.

- C++
Published by github-actions[bot] over 2 years ago

wavemap - v1.3.1

This release makes wavemap available under the BSD-3 license.

- C++
Published by github-actions[bot] over 2 years ago

wavemap - v1.3.0

Summary

This release introduces a fully redesigned wavemap Rviz plugin, which is easier to use and much faster.

New features

  • Communication
    • Incremental transmission of the map (avoids exceeding ROS message size limits for very large maps)
    • Rewritten map<->ROS msg conversions, matching the new map<->byte stream implementation
  • Rviz plugin UI
    • Support different render modes (slice; grid) in a single WavemapDisplay instance
    • Each render mode can be configured through its own foldout menu
    • The map is only stored once per plugin instance and shared among the render mode handlers
    • Grid render mode
    • Expose grid color options in the UI
    • Add option to set maximum grid drawing resolution
      • E.g. to improve frame rate when displaying large maps on computers with no GPU
    • Improve default settings s.t. it can be used with minimal tuning in most scenarios
  • Rviz plugin performance improvements
    • Only redraw map blocks that changed
    • Render grid blocks with Level of Detail based on their distance to the camera
    • Use a work queue and limit the update time per frame, to avoid stalling Rviz when large map changes occur
    • Interface directly with Ogre, instead of using rviz::Pointcloud as an intermediary for rendering

Removed features:

  • Remove the option to render map meshes
    • This render mode does not yet produce good iso-surfaces and is currently very slow. It will be reintroduced once its more mature.

Detailed package changelogs

Upgrade notes

Upgrading should only be a matter of rebuilding. If you're using * Catkin: cd ~/catkin_ws/ && catkin build wavemap_all * Docker: docker build --tag=wavemap --build-arg="VERSION=v1.3.0" - <<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/main/tooling/docker/incremental.Dockerfile)

For more info, see the installation page in the docs.

- C++
Published by github-actions[bot] over 2 years ago

wavemap - v1.2.0

This release improves the documentation and the ease of installing wavemap, by including Docker as an alternative install method.

Individual package changelogs

wavemap_utils

  • Add instructions on how to use Docker containers
  • Add Dockerfile for incremental builds
  • Move package to improve repo structure

catkinsetup & wavemapall helper packages

  • Move package to improve repo structure

Upgrade notes

If you're using ROS and previously built wavemap with catkin, you might get errors like this when building this new release: shell CMake Error: The source directory "/home/victor/catkin_ws/src/wavemap/tooling/wavemap_utils" does not exist.

because we moved the wavemap_all, wavemap_utils and catkin_setup helper packages to a new directory. To resolve it, run: shell catkin clean wavemap_all rm -r ~/catkin_ws/build/wavemap_all catkin build wavemap_all

- C++
Published by github-actions[bot] over 2 years ago

wavemap - v1.1.0

This release implements (de)serialization of wavemap maps to/from byte streams and files. When running the ROS server, the new functionality can be accessed by calling the save_map and load_map services.

Individual package changelogs

wavemap_io

  • Create this new library (can be used without ROS)
  • Implement a small serializer to convert maps to/from byte streams and files

wavemap_ros

  • Enable file saving in ROS server

- C++
Published by github-actions[bot] over 2 years ago

wavemap - v1.0.0

This is the first official release of the wavemap package. After extensive testing on a wide range of datasets, sensor configurations, and real robots, it is ready for general use. The wavemap library is also extensively tested in CI to ensure correctness, well-defined behavior, and memory safety.

Since there are no previous versions to compare to, this release does not include a changelog. However, for developers or researchers that read the wavemap paper [preprint|RSS proceedings], it is relevant to note that the performance of wavemap has significantly improved since the paper was submitted. The main changes are multi-threaded measurement integrators and faster, more memory-efficient data structures inspired by OpenVDB. These changes reduce RAM usage by up to 50% and reduce runtime by an order of magnitude on fast desktop CPUs. The ROS interfaces improved in terms of flexibility, ease of use, and reliability.

- C++
Published by github-actions[bot] over 2 years ago