https://github.com/um-arm-lab/sdf_tools
Builds 2D signed distance fields from images, 3D signed distance fields from pointclouds, 3D signed distance fields from Octomap, provides a lightweight signed distance field library, message types for signed distance fields, and tools to compress signed distance fields for transport.
https://github.com/um-arm-lab/sdf_tools
Last synced: 3 months ago
JSON representation
Builds 2D signed distance fields from images, 3D signed distance fields from pointclouds, 3D signed distance fields from Octomap, provides a lightweight signed distance field library, message types for signed distance fields, and tools to compress signed distance fields for transport.
- Host: GitHub
- URL: https://github.com/um-arm-lab/sdf_tools
- Owner: UM-ARM-Lab
- License: bsd-2-clause
- Created: 2014-04-06T19:25:25.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2023-09-04T13:48:44.000Z (almost 2 years ago)
- Last Synced: 2025-03-31T13:16:46.491Z (3 months ago)
- Language: C++
- Size: 480 KB
- Stars: 231
- Watchers: 15
- Forks: 37
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Builds 2D signed distance fields from images, 3D signed distance fields from pointclouds, 3D signed distance fields from Octomap, provides a lightweight signed distance field library, message types for signed distance fields, and tools to compress signed distance fields for transport.
A simple example/tutorial is provided, see the [Wiki](https://github.com/UM-ARM-Lab/sdf_tools/wiki).
# Python Bindings
These will build by default, and require `ros-{distro}-pybind11-catkin` to be installed. You can disabled them with `catkin config --append --cmake-args -DSDF_TOOLS_PYTHON_BINDINGS=OFF`.
To test that the python bindings are working, you can run `./test/test_bindings.py`# Implementation details
The low level distance field calculation can be found in sdf_generation.hpp, `BuildDistanceField`. The SDF is created by first creating two distance fields, one to free voxel and one to filled voxels, then combining them.