Miguel Fernandez Cortizas
·
Hriday Bavle
·
David Perez-Saura
Jose Luis Sanchez-Lopez
·
Pascual Campoy
·
Holger Voos
- Published Papers
- Getting started
- About Multi S-Graphs
- Example on Datasets
- Configuration
- ROS 2 Related
- License
- Maintainers
-
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}}
- Citation
-
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}}
- Citation
-
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}}
- Citation
-
Clone this repository
-
Pull the docker image from DockerHub
docker pull sntarg/multi_s_graphs:latest
- Allow multicast for Zenoh and display access for visualization
sudo ifconfig lo multicast
xhost +
- Modify the
path/to/rosbags/folder
inside the docker-compose.yml file. - 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
- Open a terminal inside the container
docker exec -ti ms_graphs bash
- Execute an instance of Multi S-Graphs
./tmux_launch.bash [robot_namespace] [path/to/robot/rosbag]
Note: For each command below, please execute them in separate terminal windows!
- Open a terminal inside the container
docker exec -ti ms_graphs bash
- In this terminal inside the container, execute an instance of Multi S-Graphs for Robot1
./tmux_launch.bash robot1 rosbags/?_split_robot1.bag
- In a different window, open another terminal inside the container
docker exec -ti ms_graphs bash
- In this terminal inside the container, execute an instance of Multi S-Graphs for Robot2
./tmux_launch.bash robot1 rosbags/?_split_robot2.bag
The configuration of each robot is the same than described in S-Graphs+.
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>
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
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.
- Miguel Fernandez-Cortizas
- Hriday Bavle
- Email: hriday.bavle@uni.lu
- Website: https://www.hriday.bavle.com/
- David Perez-Saura
- Email: david.perez.saura@upm.es