Skip to content

JRL-CARI-CNR-UNIBS/graph_core

Repository files navigation

Graph Core Logo

Introduction

graph_core is an open-source C++ library for sampling-based robot path planning. It provides essential tools for solving path planning problems, includes state-of-the-art algorithms, and streamlines the development of new algorithms.

Status

build check Codacy Badge

Status Status

🚧 Update in Progress! 🚧
We're currently working on documentation. Expect new changes in the next weeks. Stay tuned!

Tutorials

See this page for tutorials.

Dependencies

graph_core depends on Eigen3, which can be installed with

sudo apt update
sudo apt -y install libeigen3-dev

Furthermore, it relies on the following packages:

For detailed instructions on downloading and installing these dependencies, refer to the cnr_common page.

Installation

Follow these steps to compile and install graph_coreusing CMake:

  1. Set the workspace directory path:

    export PATH_TO_WS=path_to_your_ws
  2. Compile and install graph_core:

    cd $PATH_TO_WS
    mkdir -p build/graph_core
    cmake -S src/graph_core/graph_core -B build/graph_core -DCMAKE_INSTALL_PREFIX=$PATH_TO_WS/install
    make -C build/graph_core install

Environment Configuration

According to the cnr_common instructions, add the following lines to your ~.bashrc file:

if [[ ":$PATH:" != *":path_to_your_ws/install/bin:"* ]]; then
    export PATH="path_to_your_ws/install/bin:$PATH"
fi
if [[ ":$LD_LIBRARY_PATH:" != *":path_to_your_ws/install/lib:"* ]]; then
    export LD_LIBRARY_PATH="path_to_your_ws/install/lib:$LD_LIBRARY_PATH"
fi
if [[ ":$CMAKE_PREFIX_PATH:" != *":path_to_your_ws/install:"* ]]; then
    export CMAKE_PREFIX_PATH="path_to_your_ws/install:$CMAKE_PREFIX_PATH"
fi

Replace path_to_your_ws/install with the actual path to your install folder. These settings are necessary to make the installed libraries visible. However, graph_core can also be compiled in both ROS1 and ROS2 workspaces. For a ROS1 workspace, ensure you have set catkin config --install. In this case, you do not need to export the paths as shown above.