Skip to main content

Dynotree - Dynamic Kd tree

Project description

dyn_kdtree

Dynamic Kd-Tree: Euclidean, SO(2), SO(3) and more! C++ with Python Bindings

Dynamic KD-Tree: Euclidean, SO(2), SO(3), and more! C++ with Python Bindings

The underlying KD-tree implementation is based on bucket-pr-kdtree, but dynotree supports non Euclidean spaces and custom componed spaces. State spaces can be defined at both compile (effiency) and runtime( flexibility).

Try it out!

PYTHON

pip3 install dynotree

A first example: rrt_free.py

A second example: rrt.py

C++

Test and examples are in main.cpp

git clone --recurse-submodules https://github.com/quimortiz/dyn_kdtree
cd dyn_kdtree
mkdir build
cd build
cmake ..
make
./main

use

./main --run_test=NAME_OF_TEST

to run only one example or test

DEV

Testing

Create wheels

for publishing in pypy

docker pull quay.io/pypa/manylinux2014_x86_64
docker run -it -v $(pwd):/io quay.io/pypa/manylinux2014_x86_64 /io/build-wheels.sh
python3 -m twine upload wheelhouse/*

using testpypi

python3 -m twine upload --repository testpypi wheelhouse/*

for creating local package:

TODO

Why dyn_kdtree?

  • Faster than OMPL and simpler than NIGH
  • Dynamic: Add points one by one -- Ideal for Motion Planning
  • Support Euclidean, SO(2), SO(3) and any combination
  • Performant and flexible C++ code based on Eigen.
  • Single Header File
  • Python Bindings for easy integration
  • Extendable with custom spaces!

Python Bindings

Option 1

Option 2

Option 3

Dependencies

Python: No dependencies

C++ Code: Eigen

Develop: Eigen and Boost Testing

Interface

See this for examples.

Benchmark

Check this repo for benchmark against

Roadmap

Code is Stable, currently used in ...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

dynotree-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (164.7 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

dynotree-0.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (163.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

dynotree-0.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (163.9 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

dynotree-0.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (163.6 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page