-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimize integrators, Rviz plugin and add usage examples #37
Merged
Merged
Changes from 71 commits
Commits
Show all changes
73 commits
Select commit
Hold shift + click to select a range
80ccdca
Add option to work in devcontainer (incl. CLion support)
victorreijgwart dbe2b8f
Separate vscode and CLion devcontainer definitions
victorreijgwart d2a9c43
Replace stack with recursion (faster and easier to read)
victorreijgwart cf2c979
Add tests for map to ROS msg conversions
victorreijgwart 5e7c5b7
Use a single thread pool for all integrators
victorreijgwart a3fcee2
Multi-thread block to ROS msg serialization
victorreijgwart 135107f
Reintroduce that blocks are only thresholded when needed
victorreijgwart 9d7eed2
Rename selective pruning method
victorreijgwart b478b60
Update incremental transmission and Rviz to remove deleted blocks
victorreijgwart b554112
Fix bug causing blocks with identical timestamps to not be published
victorreijgwart 90ed5ed
Simplify control flow
victorreijgwart b9182a1
Make specifying a thread pool when constructing integrators optional
victorreijgwart 4e0a172
Avoid unnecessary copies
victorreijgwart 464fd9c
Various minor optimizations
victorreijgwart 8496ee7
Name thread worker pool threads
victorreijgwart 75acddc
Merge branch 'main' into feature/optimize_chunked_integrator
victorreijgwart e21d096
Make ROS logging level configurable through ROS params
victorreijgwart 9a4aa61
Consistently use ROS logging in ROS packages
victorreijgwart 98b25fe
Switch to dedicated struct for sensor coordinates
victorreijgwart 70cd901
Postpone image offset error norm root computation
victorreijgwart f538711
Handle predictable branch with prediction not cmov
victorreijgwart 2223752
Vectorize batched leaf updater
victorreijgwart 9b56dfd
Various small improvements
victorreijgwart b110f0a
Reduce memory move overhead
victorreijgwart b69645c
Simplify measurement model math
victorreijgwart 72010a7
Add tests for nearest index and offset methods
victorreijgwart 71bae42
Restore method privacy
victorreijgwart a91a6e1
Attempt to fix issue loading ROS libraries in CI
victorreijgwart 0fbc41c
Revert "Handle predictable branch with prediction not cmov"
victorreijgwart 437a004
Also make sure ROS is sourced when running valgrind
victorreijgwart 506f35a
Improve example configs
victorreijgwart 93ae040
Minor approximate atan2 code cleanup
victorreijgwart 4838229
Merge remote-tracking branch 'origin/main' into feature/optimize_chun…
victorreijgwart 76281ac
Hide hidden cells in Rviz
victorreijgwart 0915b7a
Improve surface cell selector and reorganize menu
victorreijgwart 58b17af
Major cleanup of utils
victorreijgwart 81b51d1
Make macros available to to packages outside wavemap
victorreijgwart f39afe7
Add option to directly query the most up-to-date transform
victorreijgwart c247fe8
Move iterators into utils
victorreijgwart a30709f
Add trilinear interpolator and tests
victorreijgwart a18b531
Simplify incremental map transmission
victorreijgwart 591fee1
Implement query accelerator
victorreijgwart 3a0ebb3
Fix CI error for bit shift exceeding type width in test
victorreijgwart 28a3d2b
Draft usage examples
victorreijgwart edd104f
Add copy buttons to documentation code blocks
victorreijgwart 36327a7
Remove links to source code as blocks are self-contained
victorreijgwart b661a74
Address clang-tidy unused variable warnings
victorreijgwart 5d1af4d
Address UBSAN warnings
victorreijgwart 77b5a01
Fix issue delaying drawing of blocks with duplicate time stamps
victorreijgwart 6c498af
Improve Rviz plugin UI and add option to load maps directly from disk
victorreijgwart a8170a9
Do not latch map topic
victorreijgwart dca609c
Add service and button to reset the wavemap_server's map
victorreijgwart 94fac52
Add new param to config schema and update example configs
victorreijgwart 061847e
Improve Rviz plugin block drawing scheduling
victorreijgwart 2a319cc
Rename Rviz menu based on @patripfr's feedback
victorreijgwart 206d59e
Add Tracy annotations for Rviz plugin
victorreijgwart d7cd70e
Clean up visibility query handling
victorreijgwart 73b836a
Fix bug causing segfaults upon Rviz plugin instance destruction
victorreijgwart 01cb5cc
Also rename "grid" to "voxels" in code and improve consistency
victorreijgwart 1e40b62
Clean up alpha handling
victorreijgwart 8a06cb6
Distinguish 'request full update' and 'reset map' buttons more clearly
victorreijgwart 5967f12
Don't mark commits that are not yet ready to merge as failed in CI
victorreijgwart d17f0b4
Merge branch 'feature/devcontainer' into feature/optimize_chunked_int…
victorreijgwart 1aa6b6d
Cleanup for PR#37
victorreijgwart 0f63452
Update changelogs
victorreijgwart 9ac206d
Prepare release 1.6.0
github-actions[bot] 5b024ab
Add a link from the documentation to the repository for convenience
victorreijgwart c69798e
Clarify that wavemap returns estimates in log odds; add conversion utils
victorreijgwart 147e54a
Rename the Rviz plugin to from WavemapOctree to WavemapMap
victorreijgwart c275010
Add instructions on how to view the maps from the RSS paper
victorreijgwart c0b6a6e
Fix bug causing Rviz plugin to not connect to the initial camera
victorreijgwart 7ec8454
Address @LionelOtt's comments on PR#37
victorreijgwart a03cf18
Address CI UBSAN errors
victorreijgwart File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
ARG VERSION=latest | ||
|
||
FROM ghcr.io/ethz-asl/wavemap:${VERSION} | ||
|
||
# Install dependencies | ||
# hadolint ignore=DL3008 | ||
RUN apt-get update && apt-get install -yq --no-install-recommends curl sudo && rm -rf /var/lib/apt/lists/* | ||
|
||
# Install CLion in the container | ||
ARG CLION_VERSION=2023.2 | ||
SHELL ["/bin/bash", "-o", "pipefail", "-c"] | ||
# hadolint ignore=DL3003 | ||
RUN mkdir -p /opt/clion && \ | ||
curl -L "https://download.jetbrains.com/cpp/CLion-${CLION_VERSION}.tar.gz" \ | ||
| tar -C /opt/clion --strip-components 1 -xzvf - && \ | ||
cd /opt/clion/bin && ./remote-dev-server.sh registerBackendLocationForGateway | ||
|
||
# Create a non-root user | ||
ARG USERNAME=ci | ||
ARG USER_UID=1000 | ||
ARG USER_GID=$USER_UID | ||
RUN groupadd --gid $USER_GID $USERNAME && \ | ||
useradd --uid $USER_UID --gid $USER_GID $USERNAME && \ | ||
chown -R $USERNAME:$USERNAME /home/$USERNAME && \ | ||
echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME && \ | ||
chmod 0440 /etc/sudoers.d/$USERNAME | ||
|
||
# Make CLion available to the current user | ||
USER $USERNAME | ||
# hadolint ignore=DL3003 | ||
RUN cd /opt/clion/bin && ./remote-dev-server.sh registerBackendLocationForGateway | ||
|
||
# Prebuild the package | ||
RUN catkin build wavemap_all | ||
|
||
# Make root the default user | ||
# NOTE: This is currently required for CLion's local deployment procedure to work. | ||
# hadolint ignore=DL3002 | ||
USER root |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"build": { | ||
"dockerfile": "Dockerfile" | ||
}, | ||
"forwardPorts": [], | ||
"workspaceFolder": "/home/ci/catkin_ws/src", | ||
"workspaceMount": "source=${localWorkspaceFolder},target=/home/ci/catkin_ws/src,type=bind,consistency=cached", | ||
"runArgs": ["--env-file", "${localWorkspaceFolder}/.devcontainer/clion/ros_env.list"], | ||
"remoteUser": "ci" | ||
} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# This is a workaround for CLion not allowing files to be sourced | ||
# (~/catkin_ws/devel/setup.bash) before launching the remote IDE handler. | ||
ROS_VERSION=1 | ||
ROS_DISTRO=noetic | ||
ROS_PYTHON_VERSION=3 | ||
ROS_ROOT=/opt/ros/noetic/share/ros | ||
ROS_MASTER_URI=http://localhost:11311 | ||
ROS_PACKAGE_PATH=/home/ci/catkin_ws/src/dependencies/catkin_simple:/home/ci/catkin_ws/src/dependencies/eigen_catkin:/home/ci/catkin_ws/src/dependencies/gflags_catkin:/home/ci/catkin_ws/src/dependencies/glog_catkin:/home/ci/catkin_ws/src/dependencies/eigen_checks:/home/ci/catkin_ws/src/dependencies/minkindr/minkindr:/home/ci/catkin_ws/src/wavemap/libraries/wavemap:/home/ci/catkin_ws/src/wavemap/tooling/packages/wavemap_all:/home/ci/catkin_ws/src/wavemap/libraries/wavemap_io:/home/ci/catkin_ws/src/wavemap/ros/wavemap_msgs:/home/ci/catkin_ws/src/wavemap/ros/wavemap_ros_conversions:/home/ci/catkin_ws/src/wavemap/ros/wavemap_ros:/home/ci/catkin_ws/src/wavemap/ros/wavemap_rviz_plugin:/home/ci/catkin_ws/src/wavemap/tooling/packages/wavemap_utils:/opt/ros/noetic/share | ||
CMAKE_PREFIX_PATH=/home/ci/catkin_ws/devel:/opt/ros/noetic | ||
PKG_CONFIG_PATH=/home/ci/catkin_ws/devel/lib/pkgconfig:/opt/ros/noetic/lib/pkgconfig | ||
PYTHONPATH=/home/ci/catkin_ws/devel/lib/python3/dist-packages:/opt/ros/noetic/lib/python3/dist-packages | ||
LD_LIBRARY_PATH=/home/ci/catkin_ws/devel/lib:/opt/ros/noetic/lib | ||
PATH=/home/ci/catkin_ws/devel/bin:/opt/ros/noetic/bin:/usr/lib/ccache:/usr/lib/ccache:/home/ci/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ci/repos/linter/bin |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
ARG VERSION=latest | ||
|
||
FROM ghcr.io/ethz-asl/wavemap:${VERSION} | ||
|
||
# Create a non-root user and make it the default user | ||
ARG USERNAME=ci | ||
ARG USER_UID=1000 | ||
ARG USER_GID=$USER_UID | ||
RUN groupadd --gid $USER_GID $USERNAME && \ | ||
useradd --uid $USER_UID --gid $USER_GID $USERNAME && \ | ||
chown -R $USERNAME:$USERNAME /home/$USERNAME && \ | ||
echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME && \ | ||
chmod 0440 /etc/sudoers.d/$USERNAME | ||
USER $USERNAME | ||
|
||
# Build the package | ||
RUN catkin build wavemap_all |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"build": { | ||
"dockerfile": "Dockerfile" | ||
}, | ||
"forwardPorts": [], | ||
"workspaceFolder": "/home/ci/catkin_ws/src/wavemap", | ||
"workspaceMount": "source=${localWorkspaceFolder},target=/home/ci/catkin_ws/src/wavemap,type=bind,consistency=cached", | ||
"containerUser": "ci", | ||
"remoteUser": "ci" | ||
} |
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,12 @@ | ||
FAQ | ||
### | ||
|
||
We do not yet have FAQs. | ||
If you have a question that is not yet answered below, feel free to open a `GitHub Issue <https://github.com/ethz-asl/wavemap/issues>`_ or contact us over email. | ||
|
||
If you have a question, please do not hesitate to open a `GitHub Issue <https://github.com/ethz-asl/wavemap/issues>`_. | ||
How do I query if a point in the map is occupied? | ||
================================================= | ||
Please see the :doc:`usage examples <usage_examples>` on :ref:`interpolation <examples-interpolation>` and :ref:`classification <examples-classification>`. | ||
|
||
Does wavemap support (Euclidean) Signed Distance Fields? | ||
======================================================== | ||
Not yet, but we will add this feature in the near future. |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,68 @@ | ||
Code examples | ||
############# | ||
Usage examples | ||
############## | ||
|
||
Examples of how to use wavemap's API to save, load and query maps are coming soon. We also intend to add examples of how to use wavemap for common tasks including collision checking and path planning. | ||
Serialization | ||
************* | ||
|
||
Files | ||
===== | ||
Saving maps to files: | ||
|
||
.. literalinclude:: ../../examples/src/io/save_map_to_file.cc | ||
:language: c++ | ||
|
||
Loading maps from files: | ||
|
||
.. literalinclude:: ../../examples/src/io/load_map_from_file.cc | ||
:language: c++ | ||
|
||
ROS msgs | ||
======== | ||
Receiving maps over ROS topics: | ||
|
||
.. literalinclude:: ../../examples/src/io/receive_map_over_ros.cc | ||
:language: c++ | ||
|
||
Sending maps over ROS topics: | ||
|
||
.. literalinclude:: ../../examples/src/io/send_map_over_ros.cc | ||
:language: c++ | ||
|
||
Queries | ||
******* | ||
|
||
Fixed resolution | ||
================ | ||
.. literalinclude:: ../../examples/src/queries/fixed_resolution.cc | ||
:language: c++ | ||
|
||
Multi-res averages | ||
================== | ||
.. literalinclude:: ../../examples/src/queries/multi_resolution.cc | ||
:language: c++ | ||
|
||
Accelerators | ||
============ | ||
.. literalinclude:: ../../examples/src/queries/accelerated_queries.cc | ||
:language: c++ | ||
|
||
Interpolation | ||
============= | ||
.. _examples-interpolation: | ||
|
||
Nearest neighbor interpolation: | ||
|
||
.. literalinclude:: ../../examples/src/queries/nearest_neighbor_interpolation.cc | ||
:language: c++ | ||
|
||
Trilinear interpolation: | ||
|
||
.. literalinclude:: ../../examples/src/queries/trilinear_interpolation.cc | ||
:language: c++ | ||
|
||
Classification | ||
============== | ||
.. _examples-classification: | ||
|
||
.. literalinclude:: ../../examples/src/queries/classification.cc | ||
:language: c++ |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
Changelog for package wavemap_examples | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
1.6.0 (2023-10-17) | ||
------------------ | ||
* Add initial usage examples | ||
* Address clang-tidy unused variable warnings | ||
* Contributors: Victor Reijgwart |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
cmake_minimum_required(VERSION 3.0.2) | ||
project(wavemap_examples) | ||
|
||
find_package(catkin_simple REQUIRED) | ||
catkin_simple(ALL_DEPS_REQUIRED) | ||
|
||
# Compiler definitions and options | ||
add_wavemap_compile_definitions_and_options() | ||
|
||
# For all targets | ||
include_directories(include) | ||
|
||
# Binaries | ||
cs_add_executable(save_map_to_file | ||
src/io/save_map_to_file.cc) | ||
cs_add_executable(load_map_from_file | ||
src/io/load_map_from_file.cc) | ||
cs_add_executable(receive_map_over_ros | ||
src/io/receive_map_over_ros.cc) | ||
cs_add_executable(send_map_over_ros | ||
src/io/send_map_over_ros.cc) | ||
|
||
cs_add_executable(fixed_resolution | ||
src/queries/fixed_resolution.cc) | ||
cs_add_executable(multi_resolution | ||
src/queries/multi_resolution.cc) | ||
cs_add_executable(accelerated_queries | ||
src/queries/accelerated_queries.cc) | ||
|
||
cs_add_executable(nearest_neighbor_interpolation | ||
src/queries/nearest_neighbor_interpolation.cc) | ||
cs_add_executable(trilinear_interpolation | ||
src/queries/trilinear_interpolation.cc) | ||
|
||
cs_add_executable(classification | ||
src/queries/classification.cc) |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Examples | ||
|
||
Welcome! We're glad you're interested in using wavemap. | ||
|
||
To get started, we recommend taking a look at the [Usage examples](https://ethz-asl.github.io/wavemap/pages/usage_examples.html) documentation page. |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
root=. |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#ifndef WAVEMAP_EXAMPLES_COMMON_H_ | ||
#define WAVEMAP_EXAMPLES_COMMON_H_ | ||
|
||
namespace wavemap::examples { | ||
/** | ||
* A placeholder method used to illustrate where the user would use a value. | ||
* Concretely, this method is also used to suppress 'unused variable' warnings | ||
* issued by GCC when compiling the usage examples. | ||
*/ | ||
template <typename... T> | ||
void doSomething([[maybe_unused]] T... t) {} | ||
} // namespace wavemap::examples | ||
|
||
#endif // WAVEMAP_EXAMPLES_COMMON_H_ |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
<?xml version="1.0"?> | ||
<package format="2"> | ||
<name>wavemap_examples</name> | ||
<version>1.6.0</version> | ||
<description>Usages examples for wavemap.</description> | ||
|
||
<maintainer email="[email protected]">Victor Reijgwart</maintainer> | ||
<license>BSD</license> | ||
<url>https://github.com/ethz-asl/wavemap</url> | ||
|
||
<author email="[email protected]">Victor Reijgwart</author> | ||
|
||
<buildtool_depend>catkin</buildtool_depend> | ||
<buildtool_depend>catkin_simple</buildtool_depend> | ||
|
||
<depend>wavemap</depend> | ||
<depend>wavemap_io</depend> | ||
<depend>wavemap_msgs</depend> | ||
<depend>wavemap_ros_conversions</depend> | ||
</package> |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
filter=-build/namespaces |
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For a future revision it might be good to have some explanations of what the code does in addition to the code itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes you're right. I ran out of steam when writing this 🙃 Do you think the explanations would help a lot? If so I can add them now. Otherwise in the next release.