Skip to content
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

Add openvdb to humble #475

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

pvela2017
Copy link
Contributor

Proposed changes

Fix to issue #474 .

  • Add OpenVDB installation instructions.
  • Install OpenVDB on Humble image.
  • Add note on Developping file.

Type of change

  • 🐛 Bugfix (change which fixes an issue)
  • 🚀 Feature (change which adds functionality)
  • 📚 Documentation (change which fixes or extends documentation)

Checklist

Put an x in the boxes that apply. This is simply a reminder of what we will require before merging your code.

  • Lint and unit tests (if any) pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)
  • All commits have been signed for DCO

Copy link
Collaborator

@hidmic hidmic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass. CC @glpuga too.

mkdir build && cd build && \
cmake .. && \
make -j$(nproc) && sudo make install && \
rm -rf /tmp/openvdb
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pvela2017 meta: how long does this take to build? Can we do something similar to what we do for timemory?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It takes around 6 min to build openvdb.
Updated as timemory on d9f6673

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we remove lines 105 thru 112 then?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whops! Yes! Sorry, I use 2 different dockerfiles because of the proxy and vpn configuration.
Fixed on cc71f4a

DEVELOPING.md Outdated
@@ -66,6 +66,8 @@ Within a development environment:
rosdep install --from-path src
```

🔸`beluga_vdb` requires OpenVDB to be installed in order to be used. For Ubuntu distributions previous to `Noble` OpenVDB needs to be installed from sources before building, installation instructions can be found [here](beluga_vdb/README.md). If you don't need to use `beluga_vdb` you can skip this package using `colcon build --symlink-install --packages-ignore beluga_vdb`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pvela2017 meta nit: instead of 🔸, consider using GitHub Markdown alerts.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, consider:

Suggested change
🔸`beluga_vdb` requires OpenVDB to be installed in order to be used. For Ubuntu distributions previous to `Noble` OpenVDB needs to be installed from sources before building, installation instructions can be found [here](beluga_vdb/README.md). If you don't need to use `beluga_vdb` you can skip this package using `colcon build --symlink-install --packages-ignore beluga_vdb`
🔸`beluga_vdb` requires OpenVDB to be installed in order to be used. For Ubuntu distributions previous to `Noble` OpenVDB needs to be installed from sources before building. Installation instructions can be found [here](beluga_vdb/README.md). If you don't need `beluga_vdb`, you can skip it using `colcon build --symlink-install --packages-ignore beluga_vdb`

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed on 5cdc016


## 🌐 Overview

BelugaVDB is a library extension for `beluga` that integrates [OpenVDB](https://www.openvdb.org/), enabling advanced 3D localization capabilities. Currently, this extension uses the powerful volumetric data structure of OpenVDB to efficiently process maps and 3D pointcloud data, providing the localization of the autonomous system.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pvela2017 meta nit: consider using less bells and whistles

Suggested change
BelugaVDB is a library extension for `beluga` that integrates [OpenVDB](https://www.openvdb.org/), enabling advanced 3D localization capabilities. Currently, this extension uses the powerful volumetric data structure of OpenVDB to efficiently process maps and 3D pointcloud data, providing the localization of the autonomous system.
BelugaVDB is a library extension for `beluga` that integrates [OpenVDB](https://www.openvdb.org/), enabling advanced 3D localization capabilities. Currently, this extension uses OpenVDB to efficiently process 3D maps and pointcloud data.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps we can point to the VDB mapping repository too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added VDB mapping on 5cdc016


### OpenVDB

For Ubuntu 24.04 and newer versions OpenVDB can be installed using `apt`:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pvela2017 nit:

Suggested change
For Ubuntu 24.04 and newer versions OpenVDB can be installed using `apt`:
For Ubuntu 24.04 and newer distributions, OpenVDB can be installed using `apt`:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed on 5cdc016

sudo apt install libopenvdb-dev
```

Older version must be isnstalled from sources as follow:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pvela2017 nit:

Suggested change
Older version must be isnstalled from sources as follow:
For older distributions, it must be installed from sources as follows:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed on 5cdc016

@pvela2017 pvela2017 requested a review from hidmic February 27, 2025 04:52
Copy link
Collaborator

@hidmic hidmic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall LGTM

DEVELOPING.md Outdated
@@ -66,6 +66,10 @@ Within a development environment:
rosdep install --from-path src
```


> [!IMPORTANT]
> `beluga_vdb` requires OpenVDB to be installed in order to be used. For Ubuntu distributions previous to `Noble` OpenVDB needs to be installed from sources before building. Installation instructions can be found [here](beluga_vdb/README.md). If you don't need `beluga_vdb`, you can skip it using `colcon build --symlink-install --packages-ignore beluga_vdb`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pvela2017 nit:

Suggested change
> `beluga_vdb` requires OpenVDB to be installed in order to be used. For Ubuntu distributions previous to `Noble` OpenVDB needs to be installed from sources before building. Installation instructions can be found [here](beluga_vdb/README.md). If you don't need `beluga_vdb`, you can skip it using `colcon build --symlink-install --packages-ignore beluga_vdb`
> `beluga_vdb` requires OpenVDB to be installed in order to be used. For Ubuntu distributions previous to `Noble` OpenVDB needs to be installed from sources before building. Installation instructions can be found [here](beluga_vdb/README.md). If you don't need `beluga_vdb`, you can skip it using `colcon build --symlink-install --packages-ignore beluga_vdb`.


## 🌐 Overview

BelugaVDB is a library extension for `beluga` that integrates [OpenVDB](https://www.openvdb.org/), enabling advanced 3D localization capabilities. Currently, this extension uses OpenVDB to efficiently process 3D maps and pointcloud data. Maps in `vdb` format can be generated using any third party library such as [VDB Mapping](https://github.com/fzi-forschungszentrum-informatik/vdb_mapping).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pvela2017 nit:

Suggested change
BelugaVDB is a library extension for `beluga` that integrates [OpenVDB](https://www.openvdb.org/), enabling advanced 3D localization capabilities. Currently, this extension uses OpenVDB to efficiently process 3D maps and pointcloud data. Maps in `vdb` format can be generated using any third party library such as [VDB Mapping](https://github.com/fzi-forschungszentrum-informatik/vdb_mapping).
BelugaVDB is a library extension for `beluga` that integrates [OpenVDB](https://www.openvdb.org/), enabling advanced 3D localization capabilities. Currently, this extension uses OpenVDB to efficiently process 3D maps and pointcloud data. Maps in `vdb` format can be generated using any suitable third party package such as [VDB Mapping](https://github.com/fzi-forschungszentrum-informatik/vdb_mapping).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, any? What do we need of the map? Just active vs inactive voxels, right? We should leave a note about that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch! I forgot we need to do some post-processing to the map generated by VDB Mapping. We need a level-set. I added some code on how to achieve this and how to visualize the map.

mkdir build && cd build && \
cmake .. && \
make -j$(nproc) && sudo make install && \
rm -rf /tmp/openvdb
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we remove lines 105 thru 112 then?

Signed-off-by: Pablo Vela <[email protected]>
Signed-off-by: Pablo Vela <[email protected]>
Signed-off-by: Pablo Vela <[email protected]>
Signed-off-by: Pablo Vela <[email protected]>
Signed-off-by: Pablo Vela <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants