situational_graphs_reasoning

Graph reasoning for extracting semantic concepts using GNNs

README

Situational Graphs - Reasoning

Situational Graphs - Reasoning is a ROS2 package for generating in real-time semantic concepts like Rooms and Walls from Wall Surfaces S-Graphs. For that purpose, Graph Neural Networks (GNNs) are used to estimate the existing relations between the wall surfaces.

πŸ“œ Table of contents

πŸ“– Published Papers 

Learning High-level Semantic-Relational Concepts for SLAM

βš™οΈ Installation 

[!NOTE] Situational Graphs - Reasoning was only tested on Ubuntu 20.04, ROS2 Foxy, Humble Distros. We strongly recommend using cyclone_dds instead of the default fastdds.

πŸ“¦ Installation with S-Graphs 

Follow the S-Graphs installation instructions

πŸ“¦ Installation From Source 

[!IMPORTANT] Before proceeding, make sure you have rosdep installed. You can install it using sudo apt-get install python3-rosdep In addition, ssh keys are needed to be configured on you GitHub account. If you haven’t yet configured ssh keys, follow this tutorial

  1. Update Rosdep:

rosdep init && rosdep update --include-eol-distros
  1. Create a ROS2 workspace for S-Graphs

mkdir -p $HOME/workspaces && cd $HOME/workspaces
  1. Clone the S-Graphs repository into the created workspace

git clone git@github.com:snt-arg/situational_graphs_reasoning.git -b develop

[!IMPORTANT] If you have Nvidia GPU please install CUDA from this link. This code has only been tested with CUDA 11.8. If you dont have CUDA S-Graphs will use CPU only.

  1. Install required dependencies. Change $ROS_DISTRO to your ros2 version.

cd situational_graphs_reasoning && source /opt/ros/$ROS_DISTRO/setup.sh && pip3 install -r requirements.txt

[!NOTE] If you want to compile with debug traces (from backward_cpp) run:

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo

πŸš€ Usage 

Follow the S-Graphs instructions to use this package along with all other functionalities.

Or launch situational_graphs_reasoning.py.

βš™οΈ Configuration files 

File name

Description

config/same_room_training.json

Describes the data preprocessing and the GNN hyperparameters for room generation.

config/same_wall_training.json

Describes the data preprocessing and the GNN hyperparameters for wall generation.