situational_graphs_reasoning repository

Repository Summary

Checkout URI https://github.com/snt-arg/situational_graphs_reasoning.git
VCS Type git
VCS Version develop
Last Updated 2024-06-17
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
situational_graphs_reasoning 0.0.1

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.

📥 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.

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/snt-arg/situational_graphs_reasoning.git
VCS Type git
VCS Version develop
Last Updated 2024-06-17
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
situational_graphs_reasoning 0.0.1

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.

📥 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.

CONTRIBUTING

No CONTRIBUTING.md found.