{"id":29268981,"url":"https://github.com/robustfieldautonomylab/draco-slam2","last_synced_at":"2025-07-04T20:06:07.465Z","repository":{"id":301770335,"uuid":"1009238196","full_name":"RobustFieldAutonomyLab/DRACO-SLAM2","owner":"RobustFieldAutonomyLab","description":"A repo for DRACO-SLAM2","archived":false,"fork":false,"pushed_at":"2025-06-28T17:51:16.000Z","size":11726,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"object","last_synced_at":"2025-06-28T18:39:56.576Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RobustFieldAutonomyLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-26T19:57:57.000Z","updated_at":"2025-06-28T17:51:19.000Z","dependencies_parsed_at":"2025-06-28T18:51:17.995Z","dependency_job_id":null,"html_url":"https://github.com/RobustFieldAutonomyLab/DRACO-SLAM2","commit_stats":null,"previous_names":["robustfieldautonomylab/draco-slam2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RobustFieldAutonomyLab/DRACO-SLAM2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobustFieldAutonomyLab%2FDRACO-SLAM2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobustFieldAutonomyLab%2FDRACO-SLAM2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobustFieldAutonomyLab%2FDRACO-SLAM2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobustFieldAutonomyLab%2FDRACO-SLAM2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobustFieldAutonomyLab","download_url":"https://codeload.github.com/RobustFieldAutonomyLab/DRACO-SLAM2/tar.gz/refs/heads/object","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobustFieldAutonomyLab%2FDRACO-SLAM2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263611901,"owners_count":23488428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-04T20:06:06.386Z","updated_at":"2025-07-04T20:06:07.458Z","avatar_url":"https://github.com/RobustFieldAutonomyLab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DRACO-SLAM2\n**This repository accompanies the paper *[DRACo-SLAM2: Distributed Robust Acoustic Communication-efficient SLAM for Imaging Sonar Equipped Underwater Robot Teams with Object Graph Matching]()* (IROS 2025).**\n\n**DRACo-SLAM2** is a distributed SLAM framework for underwater robot teams equipped with imaging sonar. \nThis framework improves upon the original [DRACo-SLAM](https://github.com/jake3991/DRACo-SLAM) by introducing a novel representation of sonar maps as object graphs and utilizing object graph matching to achieve time-efficient inter-robot loop closure detection without relying on prior geometric information. \nTo better-accommodate the needs and characteristics of underwater scan matching, we propose incremental Group-wise Consistent Measurement Set Maximization (GCM), a modification of Pairwise Consistent Measurement Set Maximization (PCM), which effectively handles scenarios where nearby inter-robot loop closures share similar registration errors.\n\u003cp align=\"center\"\u003e\u003cimg src=\"fig/pipeline_new.jpg\" width=700\u003e\u003c/p\u003e\n\n- **Overview of DRACo-SLAM2 Architecture:**\n  - The local robot:\n    - Groups nearby feature points into an object map using **DBSCAN**.\n    - Receives a neighboring robot’s object map. \n    - Aligns the received map with its own via graph matching. \n    - Requests raw scans from the neighbor for ICP registration, using the graph matching transformation as an initial guess. \n    - Adds inter-robot loop closures to the pose graph. \n    - A two-step pose graph optimization (PGO) is performed to refine the global estimate.\n  - The multi-robot component is currently **decoupled** from the single-robot SLAM system. We encourage you to integrate the multi-robot code with your own single-robot SLAM front-end — any implementation is welcome and appreciated.\n```\n  ├──DRACO2\n     ├── config                     # Parameters fpr DRACO1 \u0026 DRACO2\n     ├── SLAM                       # Both DRACO1 \u0026 DRACO2 SLAM code\n     ├── scripts\n     │   └── run_mission.py         # Multi-robot SLAM example\n     ├── data                       # Folder for the dataset\n     └── ...\n  ```\n\u003cp align=\"center\"\u003e\u003cimg src=\"fig/usmma_real.gif\" width=700\u003e\u003c/p\u003e\n\n - **Example DRACo-SLAM2 result with real sonar data** collected at the U.S. Merchant Marine Academy, King’s Point, NY, aligned with a satellite image.\n\n## Dependencies\n- [BRUCE-SLAM](https://github.com/jake3991/sonar-SLAM)\n- We provide there example [datasets](https://huggingface.co/datasets/yeweihuang/DRACO2_Datasets).\n## How to use\n\n```\ncd FOLDER_BRUCE_SLAM\nsource /opt/ros/noetic/setup.sh\nsource devel/setup.sh\npython FOLDER_DRACO2/scripts/run_mission.py -b PATH_TO_BAG -p PATH_TO_PICKLE -y config/param.yaml -o PATH_TO_OUTPUT\n# bag file not needed for real-world example in our case\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobustfieldautonomylab%2Fdraco-slam2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobustfieldautonomylab%2Fdraco-slam2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobustfieldautonomylab%2Fdraco-slam2/lists"}