Skip to content

snt-arg/multi_s_graphs_docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HitCount

Multi S-Graphs: an Efficient Real-time Distributed Semantic-Relational Collaborative SLAM

Miguel Fernandez Cortizas · Hriday Bavle · David Perez-Saura
Jose Luis Sanchez-Lopez · Pascual Campoy · Holger Voos


Logo

Published Papers

Logo

  1. Multi S-Graphs: an Efficient Real-time Distributed Semantic-Relational Collaborative SLAM

    • Citation
      @misc{fernandezcortizas2024multi,
       title={Multi S-Graphs: an Efficient Real-time Distributed Semantic-Relational Collaborative SLAM}, 
       author={Miguel Fernandez-Cortizas and Hriday Bavle and David Perez-Saura and Jose Luis Sanchez-Lopez and Pascual Campoy and Holger Voos},
       year={2024},
       eprint={2401.05152},
       archivePrefix={arXiv},
       primaryClass={cs.RO}}
  2. S-Graphs+: Real-time Localization and Mapping leveraging Hierarchical Representations

    • Citation
       @ARTICLE{10168233,
         author={Bavle, Hriday and Sanchez-Lopez, Jose Luis and Shaheer, Muhammad and Civera, Javier and Voos, Holger},
         journal={IEEE Robotics and Automation Letters}, 
         title={S-Graphs+: Real-Time Localization and Mapping Leveraging Hierarchical Representations}, 
         year={2023},
         volume={8},
         number={8},
         pages={4927-4934},
         doi={10.1109/LRA.2023.3290512}}
  3. Situational Graphs for Robot Navigation in Structured Indoor Environments

    • Citation
       @ARTICLE{9826367,
         author={Bavle, Hriday and Sanchez-Lopez, Jose Luis and Shaheer, Muhammad and Civera, Javier and Voos, Holger},
         journal={IEEE Robotics and Automation Letters}, 
         title={Situational Graphs for Robot Navigation in Structured Indoor Environments}, 
         year={2022},
         volume={7},
         number={4},
         pages={9107-9114},
         doi={10.1109/LRA.2022.3189785}}

Getting started

  1. Clone this repository

  2. Pull the docker image from DockerHub

docker pull sntarg/multi_s_graphs:latest
  1. Allow multicast for Zenoh and display access for visualization
sudo ifconfig lo multicast
xhost +
  1. Modify the path/to/rosbags/folder inside the docker-compose.yml file.
  2. Compose a container from image using the docker-compose.yml configuration.
cd [/path/to/repository/folder]
docker compose up -d

This command also incorporates the flags d, which makes the container run in the detached mode

  1. Open a terminal inside the container
docker exec -ti ms_graphs bash
  1. Execute an instance of Multi S-Graphs
./tmux_launch.bash [robot_namespace] [path/to/robot/rosbag]

About Multi S-Graphs

Architecture

Tf tree

Example on Datasets

Note: For each command below, please execute them in separate terminal windows!

Download Datasets

Real Dataset

Virtual Dataset

Run Multi S-Graphs

  1. Open a terminal inside the container
docker exec -ti ms_graphs bash
  1. In this terminal inside the container, execute an instance of Multi S-Graphs for Robot1
./tmux_launch.bash robot1 rosbags/?_split_robot1.bag
  1. In a different window, open another terminal inside the container
docker exec -ti ms_graphs bash
  1. In this terminal inside the container, execute an instance of Multi S-Graphs for Robot2
./tmux_launch.bash robot1 rosbags/?_split_robot2.bag

Configuration

The configuration of each robot is the same than described in S-Graphs+.

ROS 2 Related

The ROS 2 RMW that we use is CycloneDDS as we rely on the Zenoh ROS2 bridges for connecting multiple robots between them. Please check that your ROS 2 system is using this RMW if you want to inspect the execution nodes.

In our system we use a different ROS_DOMAIN_ID environment variable for each robot. The ID matches with the robot number e.g. robot1 has ROS_DOMAIN_ID=1. In order to inspect the different nodes and topic please set your terminal into a corresponding ROS_DOMAIN_ID with:

export ROS_DOMAIN_ID=<YOUR_DESIRED_ID>

Relevant topics description

Input topics for each robot are the same than described in S-Graphs+ with the appropiate namespaces.

Multi S-Graphs shared topics between agents:

  • /graph_room_keyframes_all [graph_manager_msgs/msg/RoomKeyframe]
    • Shared Room Descriptors between agents.
  • /graph_vertical_planes_all [graph_manager_msgs/msg/VerticalPlanes]
    • Shared Vertical Planes between agents.
  • /relative_map_estimation [graph_manager_msgs/msg/RelativeMapEstimation]
    • Tranformations between every agent map frame.

Visualization topics for each robot:

  • /[robot_namespace]/s_graphs/markers [visualization_msgs/msg/MarkerArray]
    • Visualization of the Situational Graph
  • /[robot_namespace]/s_graphs/map_points_ts [sensor_msgs/msg/PointCloud2]
    • Visualization of the Point Cloud
  • /[robot_namespace]/s_graphs/pose_ts [geometry_msgs/msg/PoseStamped]
    • Visualization of the Pose

License

This package is released under the BSD-2-Clause License.

Note that the cholmod solver in g2o is licensed under GPL. You may need to build g2o without cholmod dependency to avoid the GPL.

Maintainers



Logo

About

Repository of the Multi S-Graphs system, a distributed semantic-relational collaborative SLAM for building-like environments.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •