Skip to content

Reasoning on S-Graph for the automatic generation of high-level entities

License

Notifications You must be signed in to change notification settings

snt-arg/situational_graphs_reasoning

Repository files navigation

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 [email protected]: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.

🤖 ROS Related

📥 Subscribed Topics

situational_graphs_reasoning_node node

Topic name Message Type Description
/s_graphs/all_map_planes s_graphs/PlanesData Al the plains contained in the map.
/s_graphs/map_planes s_graphs/PlanesData Only the plains incorporated with the last keypoint.

📤 Published Topics

situational_graphs_reasoning_node node

Topic name Message Type Description
/room_segmentation/room_data s_graphs/RoomsData Contains all the necessary information about the rooms on a given floor.
/room_segmentation/wall_data s_graphs/WallsData Contains all the necessary information about the walls on a given floor.

About

Reasoning on S-Graph for the automatic generation of high-level entities

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages