Skip to content

ExistentialRobotics/erl_gp_sdf

Repository files navigation

erl_gp_sdf

Tags License: MIT Linux macOS

ROS1 ROS2 ROS2

A C++ library for Gaussian Process regression on Signed Distance Fields.

Features

  • Gaussian Process Regression: Implements Gaussian Process regression for SDFs.
  • Real-time Mapping: Supports real-time mapping with SDFs.
  • Accurate SDF Prediction: Provides accurate SDF predictions using Gaussian Processes.
  • C++ Implementation: Written in C++ for performance and efficiency.
  • Python Bindings: Includes Python bindings for easy integration with Python applications.
  • ROS Support: Compatible with both ROS1 (Noetic) and ROS2 (Humble). 🚪 erl_gp_sdf_ros

Getting Started

Prerequisites

  • C++17 compatible compiler
  • CMake 3.24 or higher

Create Workspace

mkdir -p <your_workspace>/src && \
vcs import --input https://raw.githubusercontent.com/ExistentialRobotics/erl_gp_sdf/refs/head/main/erl_gp_sdf.repos <your_workspace>/src

Dependencies

# Ubuntu 20.04
wget -qO - https://raw.githubusercontent.com/ExistentialRobotics/erl_common/refs/heads/main/scripts/setup_ubuntu_20.04.bash | bash
wget -qO - https://raw.githubusercontent.com/ExistentialRobotics/erl_geometry/refs/heads/main/scripts/setup_ubuntu_20.04.bash | bash
# Ubuntu 22.04, 24.04
wget -qO - https://raw.githubusercontent.com/ExistentialRobotics/erl_common/refs/heads/main/scripts/setup_ubuntu_22.04_24.04.bash | bash
wget -qO - https://raw.githubusercontent.com/ExistentialRobotics/erl_geometry/refs/heads/main/scripts/setup_ubuntu_22.04_24.04.bash | bash

Docker Option

The easiest way to get started is to use the provided Docker files, which contains all dependencies.

Use as a standard CMake package

cd <your_workspace>
touch CMakeLists.txt

Add the following lines to your CMakeLists.txt:

cmake_minimum_required(VERSION 3.24)
project(<your_project_name>)
add_subdirectory(src/erl_cmake_tools)
add_subdirectory(src/erl_common)
add_subdirectory(src/erl_covariance)
add_subdirectory(src/erl_geometry)
add_subdirectory(src/erl_gaussian_process)
add_subdirectory(src/erl_gp_sdf)

Then run the following commands:

mkdir -p build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j`nproc`

Use as a ROS Package

cd <your_workspace>
source /opt/ros/<distro>/setup.bash
# for ROS1
catkin build erl_gp_sdf
source devel/setup.bash
# for ROS2
colcon build --packages-up-to erl_gp_sdf
source install/setup.bash

See also 🚪erl_gp_sdf_ros for additional ROS tools.

Install As Python Package

  • Make sure you have installed all dependencies.
  • Make sure you have the correct Python environment activated, pipenv is recommended.
cd <your_workspace>
for package in erl_cmake_tools erl_common erl_covariance erl_geometry erl_gaussian_process erl_gp_sdf; do
    cd src/$package
    pip install . --verbose
    cd ../..
done

Usage

Without ROS

C++

Python

Acknowledgements

This work was supported by the Ministry of Trade, Industry and Energy (MOTIE), Korea, under the Strategic Technology Development Program, supervised by the Korea Institute for Advancement of Technology (KIAT) [Grant No. P0026052].

About

erl_sdf_mapping is a C++ library for SDF estimation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages