This repository provides a collection of C++ libraries with Python bindings for operations on 3D Gaussian representations, particularly focused on robotics applications. The packages are designed for high performance and are organized into a wet workspace for core robotics algorithms and a dry workspace for third-party dependencies.
ellipsoid_utils: A library for efficient distance and collision probability calculations between ellipsoids.gsm_risk_est: A package for risk estimation, including collision probability, between ellipsoidal robots and Gaussian Surface Models (GSMs).
This workspace also includes a dry directory for managing third-party dependencies, which are built from source using colcon.
eigen_colcon: A wrapper for the Eigen3 library.nanobind_colcon: A wrapper for the nanobind library, used for creating Python bindings.
- C++17 compiler (LLVM on MacOS,
brew install llvm) - CMake (>= 3.15)
- Python (>= 3.10)
- Ubuntu (>= 22.04)
- MacOS 15.5 (Apple Silicon or Intel)
Before building, install the required Python packages using pip:
pip install -r requirements.txtTo build all the packages, you can use the provided build script:
./buildThis will build both the dry and wet packages using colcon.
After building, you need to source the workon script to set up your environment, which will add the necessary packages to your PYTHONPATH and other environment variables:
source workonOnce the environment is set up, you can use the Python bindings for each package in your own scripts. See the README.md file in each package's directory for detailed API documentation and examples.
For instance, to use the ellipsoid_utils package:
import numpy as np
from ellipsoid_py import Ellipsoid3d as Ellipsoid
# ... (see ellipsoid_utils/README.md for a full example)This project is licensed under the BSD 3-Clause License. See the LICENSE file for details.
This work was supported in part by an Uber Presidential Fellowship. This material is based upon work supported by, or in part by, the Army Research Laboratory and the Army Research Office under contract/grant number W911NF-25-2-0153.