Skip to content

Latest commit

 

History

History
225 lines (183 loc) · 7.86 KB

README.md

File metadata and controls

225 lines (183 loc) · 7.86 KB

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