Skip to content

gira3d/gira3d-map-ops

Repository files navigation

GIRA3D Map Operations

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.

Packages

Wet Packages

  • 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).

Dry Packages

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.

Getting Started

Prerequisites

  • 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)

Python Dependencies

Before building, install the required Python packages using pip:

pip install -r requirements.txt

Building the Workspace

To build all the packages, you can use the provided build script:

./build

This will build both the dry and wet packages using colcon.

Setting up the Environment

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 workon

Usage

Once 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)

License

This project is licensed under the BSD 3-Clause License. See the LICENSE file for details.

Acknowledgements

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.

About

Operations on Gaussian Surface Models

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages