Skip to content

Releases: ethz-asl/wavemap

v2.1.1

28 Oct 12:11
d0d64d8
Compare
Choose a tag to compare

Summary

This patch adds a py.typed marker file to pywavemap to signal that the package includes type annotations. Additionally, it addresses warnings related to missing includes for STL header files, triggered by the latest cpplint v2.0.0 release.

Special thanks to @Divelix for contributing this release!

Detailed description

Adding the py.typed marker file enables tools like mypy and IDEs such as VSCode to recognize Python package type annotations, for improved error detection and autocompletion. For more information on py.typed files, please refer to PEP 561. We generate this file using nanobind’s CMake interface.

In addition, the cpplint version we were using previously (1.6.1) only performed "include-what-you-use" checks for STL headers up to C++11. The updated version, 2.0.0, now includes broader checks and covers new C++17 STL headers. This release wavemap addresses all new warnings.

Package changelogs

Libraries

Interfaces

Examples

Upgrade notes

Upgrade instructions for

  • C++ Library
  • Python Library
  • 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.1" -<<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/v2.1.1/tooling/docker/ros1/incremental.Dockerfile)

For more info, see our guides on installing wavemap.

v2.1.0

17 Sep 15:19
Compare
Choose a tag to compare

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
  • Python Library
  • 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.

v2.0.1

30 Aug 10:05
964e740
Compare
Choose a tag to compare

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.

v2.0.0

19 Aug 12:40
ace3985
Compare
Choose a tag to compare

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_ros1 --build-arg="VERSION=v2.0.0" -<<< $(curl -s https://raw.githubusercontent.com/ethz-asl/wavemap/main/tooling/docker/ros1/incremental.Dockerfile)
    • For more info, see the ROS1 installation page

v1.6.3

21 Dec 17:12
Compare
Choose a tag to compare

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.

v1.6.2

11 Dec 11:12
89177ee
Compare
Choose a tag to compare

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.

v1.6.1

20 Nov 10:22
5e827cd
Compare
Choose a tag to compare

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.

v1.6.0

23 Oct 12:29
172836c
Compare
Choose a tag to compare

Summary

This release improves the performance of wavemap's measurement integrators by up to 30% and the Rviz plugin by up to 5x. It also extends the documentation with code usage examples and introduces several new utility methods and visualization options.

New features

  • Wavemap library
    • Add map query acceleration utils
    • Add trilinear interpolation utils
  • ROS server
    • Make ROS logging level configurable through ROS params
    • Make the number of threads to use configurable through ROS params
    • Add option to TF handler to directly query the most up-to-date transform
    • Add service that resets the map (enabled through ROS params, disabled by default)
  • Rviz plugin
    • Add option to load and display maps directly from files
    • Add option to only draw surface voxels
    • Add button to call the wavemap_server's reset map service

Improvements

  • Wavemap library
    • Refactor wavemap utils into an extendable toolbox
    • Optimize measurement integration
  • ROS server (and ROS interface libraries)
    • Update incremental map transmission to communicate block deletions
    • Add option for multi-threaded block to ROS msg serialization
    • Simplify incremental map transmission logic
    • Consistently use ROS logging in all ROS packages
    • Do not latch map topic
    • Improve example configs
  • Rviz plugin
    • General UI improvements
    • Improve block drawing scheduling for faster and smoother rendering
    • Update visualizers to handle deleted blocks
    • Rename "grid" to "voxels" in UI and code for clarity
    • Clean up and optimize visibility query handling
    • Clean up and optimize alpha handling
    • Add Tracy annotations for profiling
  • Tools
    • Show documentation preview without using Python HTTP server

Documentation

  • Add initial usage examples
  • Add initial initial FAQs
  • Add instructions on how to load maps from files in Rviz

Bug fixes

  • Wavemap server
    • Fix bug causing delays when transmitting blocks with identical timestamps
  • Rviz plugin
    • Fix bug causing delays when drawing blocks with identical timestamps
    • Fix bug causing segfaults when destroying instances of the Rviz plugin

For more information on the performance improvements, see PR #37.

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, including its messages: catkin build wavemap_all --force-cmake
  • Docker
    • docker build --tag=wavemap --build-arg="VERSION=v1.6.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.

v1.5.3

28 Sep 12:14
6628a39
Compare
Choose a tag to compare

Summary

This patch fixes an issue with assertions that would fail when running wavemap in debug mode.

New features

  • Make the sign checks during Morton encoding optional
  • Document the new behavior
  • Always enable all assertions in CI

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.5.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.

v1.5.2

19 Sep 09:14
7fd41f7
Compare
Choose a tag to compare

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.