Skip to content

ExistentialRobotics/erl_geometry

Repository files navigation

erl_geometry

Tags License: MIT Linux macOS

ROS1 ROS2 ROS2

erl_geometry is a C++ library for geometry processing.

Available Functionalities

Getting Started

Prerequisites

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

Create Workspace

mkdir -p <your_workspace>/src && \
vcs import --input https://raw.githubusercontent.com/ExistentialRobotics/erl_geometry/refs/heads/main/erl_geometry.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)

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_geometry
source devel/setup.bash
# for ROS2
colcon build --packages-up-to erl_geometry
source install/setup.bash

See also 🚪erl_geometry_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; do
    cd src/$package
    pip install . --verbose --no-build-isolation
    cd ../..
done

About

erl_geometry is a C++ library of geometry data structures and algorithms

Resources

License

Stars

Watchers

Forks

Packages

No packages published