voxblox_pybind

Python bindings for the Voxblox library

https://github.com/prbonn/voxblox_pybind

Science Score: 75.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 1 DOI reference(s) in README
  • Academic publication links
    Links to: mdpi.com
  • Academic email domains
  • Institutional organization owner
    Organization prbonn has institutional domain (www.ipb.uni-bonn.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Python bindings for the Voxblox library

Basic Info
  • Host: GitHub
  • Owner: PRBonn
  • License: mit
  • Language: C++
  • Default Branch: main
  • Size: 2.57 MB
Statistics
  • Stars: 21
  • Watchers: 3
  • Forks: 6
  • Open Issues: 0
  • Releases: 0
Created over 4 years ago · Last pushed over 4 years ago
Metadata Files
Readme License Citation

README.md

Voxblox Python Bindings

This small library provides python Bindings for the Voxblox library[^fn]. The original code has not been modified at all(even more, it's just a hard dependency of this project) and it's only exposing some itegration methods(for TSDF reconstruction) in Python, this make experimentation much easier than relying on the full ROS ecosystem and bagfiles.

[^fn]: All voxblox documentation can be found on the original readthedocs page

Example results

results

In case you wonder why that weird wall is on the output mesh, that's an already known bug of the original voxblox library... I'm sorry, it's not because of the python bindings.

Installation

Dependencies

The only dependencies for this library it's a propper C++ compiler, if you are using ubuntu-based distribution this command will give you all the necessary dependencies:

C++ dependencies

sh sudo apt-get update && apt-get install build-essential cmake libprotobuf-dev protobuf-compiler

Python dependencies

sh sudo apt-get update && apt-get install python3 python3-dev python3-pip

Installing the python bindings

Just clone this repo:

sh git clone --recurse-submodules https://https://github.com/PRBonn/voxblox_pybind

And install the python bindings:

sh cd voxblox_pybind make install

Usage

The only classes that are exposed through the Python API are:

Considering that you have already a dataset that provide you with pointclouds, the usage of the python bindings are quite straight forward:

```python

It's your responsability to provide this dataset implementation

dataset = SimpleDataset()

Pick some parameters

voxelsize = 0.1 sdftrunc = 3 * voxel_size

Run fusion pipeline

tsdfvolume = SimpleTsdfIntegrator(voxelsize, sdftrunc) for idx in range(len(dataset)): scan, pose = dataset[idx] tsdfvolume.integrate(scan, pose)

Get the output mesh

vertices, triangles = tsdfvolume.extracttrianglemesh() mesh = o3d.geometry.TriangleMesh( o3d.utility.Vector3dVector(vertices), o3d.utility.Vector3iVector(triangles), ) mesh.computevertexnormals() o3d.visualization.drawgeometries([mesh])

```

A full self-conctained example can be found at test_voxblox.py and a more complete pipeline at kitti_pipeline.py

Credits

This code has been created to support the development of VDBFusion. If you use our code in your academic work, please cite the corresponding paper and the original voxblox paper:

latex @article{vizzo2022sensors, author = {Vizzo, Ignacio and Guadagnino, Tiziano and Behley, Jens and Stachniss, Cyrill}, title = {VDBFusion: Flexible and Efficient TSDF Integration of Range Sensor Data}, journal = {Sensors}, volume = {22}, year = {2022}, number = {3}, article-number = {1296}, url = {https://www.mdpi.com/1424-8220/22/3/1296}, issn = {1424-8220}, doi = {10.3390/s22031296} }

Original voxblox paper:

latex @inproceedings{oleynikova2017voxblox, author={Oleynikova, Helen and Taylor, Zachary and Fehr, Marius and Siegwart, Roland and Nieto, Juan}, booktitle={IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}, title={Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MAV Planning}, year={2017} }

Owner

  • Name: Photogrammetry & Robotics Bonn
  • Login: PRBonn
  • Kind: organization
  • Email: cyrill.stachniss@igg.uni-bonn.de
  • Location: Bonn

Photogrammetry & Robotics Lab at the University of Bonn

Citation (CITATION.cff)

cff-version: 1.2.0
preferred-citation:
  title: "VDBFusion: Flexible and Efficient TSDF Integration of Range Sensor Data"
  doi: "10.3390/s22031296"
  year: "2022"
  type: article
  journal: "Sensors"
  url: https://www.mdpi.com/1424-8220/22/3/1296
  authors:
    - family-names: Vizzo
      given-names: Ignacio
    - family-names: Guadagnino
      given-names: Tiziano
    - family-names: Behley
      given-names: Jens
    - family-names: Stachniss
      given-names: Cyrill

GitHub Events

Total
  • Watch event: 4
Last Year
  • Watch event: 4

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 2
  • Total pull requests: 0
  • Average time to close issues: 2 days
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 1.5
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • joerowelll (2)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

Dockerfile docker
  • ubuntu 20.04 build
docker-compose.yml docker
  • gitlab.ipb.uni-bonn.de 4567/ipb-team/ipb-tools/voxblox_pybind
examples/python/requirements.txt pypi
  • numpy *
  • open3d *
  • tqdm *
requirements.txt pypi
  • dataclasses *
  • numpy *