{"id":14463436,"url":"https://github.com/MaverickPeter/MR_SLAM","last_synced_at":"2025-08-28T21:30:50.273Z","repository":{"id":50733407,"uuid":"519719213","full_name":"MaverickPeter/MR_SLAM","owner":"MaverickPeter","description":"[IEEE T-RO 2023] A modularized multi-robot SLAM system with elevation mapping and a costmap converter for easy navigation. Different odometry and loop closure algorithms can be easily integrated into the system.","archived":false,"fork":false,"pushed_at":"2024-06-16T12:15:41.000Z","size":28587,"stargazers_count":263,"open_issues_count":3,"forks_count":20,"subscribers_count":13,"default_branch":"main","last_synced_at":"2024-09-01T23:05:08.526Z","etag":null,"topics":["exploration","localization","mapping","multi-robot-systems","slam"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaverickPeter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2022-07-31T08:27:10.000Z","updated_at":"2024-08-27T11:47:24.000Z","dependencies_parsed_at":"2023-11-13T15:34:43.390Z","dependency_job_id":null,"html_url":"https://github.com/MaverickPeter/MR_SLAM","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaverickPeter%2FMR_SLAM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaverickPeter%2FMR_SLAM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaverickPeter%2FMR_SLAM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaverickPeter%2FMR_SLAM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaverickPeter","download_url":"https://codeload.github.com/MaverickPeter/MR_SLAM/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231299729,"owners_count":18354982,"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":["exploration","localization","mapping","multi-robot-systems","slam"],"created_at":"2024-09-01T23:01:21.894Z","updated_at":"2024-12-26T01:30:45.924Z","avatar_url":"https://github.com/MaverickPeter.png","language":"C++","funding_links":[],"categories":["WhyLongTerm"],"sub_categories":["Australia"],"readme":"\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/MaverickPeter/MR_SLAM\"\u003e\n    \u003cimg src=\"imgs/dog-slam-cloud-full.png\" alt=\"Logo\" width=\"800\" height=\"510\"\u003e\n  \u003c/a\u003e\n\u003ch2 align=\"center\"\u003eMR_SLAM\u003c/h2\u003e\n\n  \u003cp align=\"center\"\u003e\n    A modularized multi-robot SLAM system with elevation mapping and a costmap converter for easy navigation. Different odometry and loop closure algorithms can be easily integrated into the system.\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://youtu.be/HY3bIPKINwk\"\u003eView Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/MaverickPeter/MR_SLAM/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/MaverickPeter/MR_SLAM/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://youtu.be/HY3bIPKINwk\" target=\"_blank\"\u003e\u003cimg src=\"imgs/legged_robots_demo.jpg\" alt=\"video\" width=\"48%\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://youtu.be/MbjN_9PfxK0\" target=\"_blank\"\u003e\u003cimg src=\"imgs/NCLT_demo.jpg\" alt=\"video\" width=\"48%\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#quick-demo\"\u003eQuick Demo\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#full-usage\"\u003eFull Usage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#docker\"\u003eDocker\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#citation\"\u003eCitation\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## **About The Project**\n\nThis is a C++ library with ROS interfaces to manage multi-robot maps. It contains a pluggable front-end [FAST-LIO2](https://github.com/hku-mars/FAST_LIO) / [A-LOAM](https://github.com/HKUST-Aerial-Robotics/A-LOAM), pluggable loop closure methods [DiSCO](https://ieeexplore.ieee.org/document/9359460) / [RING](https://ieeexplore.ieee.org/abstract/document/9981308) / [RING++](https://ieeexplore.ieee.org/abstract/document/10224330) / [ScanContext](https://ieeexplore.ieee.org/document/8593953). and a global manager that handles submaps, loop candidates and optimization results. The optimizer is mainly based on [GTSAM](https://github.com/borglab/gtsam) and [dist-mapper](https://github.com/CogRob/distributed-mapper). The system provides a 3D pointcloud map and an optional 2.5D elevation map output. The output elevation map can be easily converted to a costmap for navigation.\n\n**Author: Peter XU (Xuecheng XU)\u003cbr /\u003e\nAffiliation: [ZJU-Robotics Lab](https://github.com/ZJU-Robotics-Lab)\u003cbr /\u003e\nMaintainer: Peter XU, xuechengxu@zju.edu.cn\u003cbr /\u003e**\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## **NEWS (Sept, 2023): Support front-end odometry - A-LOAM.**\n(Sept, 2023): Support front-end odometry - A-LOAM.\n\n(Aug, 2023): RING++ is accepted for T-RO! For detailed evaluation, please refer to [RING/RING++](https://github.com/lus6-Jenny/RING).\n\n(July, 2023) Support RING++ in LoopDetection.\n\n(April, 2023) Support single robot application.\n\n(Jan, 2023) Support PCM (Pairwise Consistent Measurement) for robustness.\n\nA Chinese version of [Tutorial](https://maverickpeter.github.io/2022/11/03/MR_SLAM-tutorial/) is posted on my blog. \n\n\u003c!-- GETTING STARTED --\u003e\n## **Getting Started**\n\nHere, we provide an example to demonstrate the system. Some parameters can be changed to fit your needs.\n\n### **Prerequisites**\n\nThis software is built on the Robotic Operating System ([ROS](http://wiki.ros.org) tested on kinetic, melodic and noetic), which needs to be [installed](http://wiki.ros.org/ROS/Installation) first. Additionally, the MR_SLAM depends on the following software:\n\n* [Eigen](http://eigen.tuxfamily.org) (linear algebra library, tested on 3.2.9 \u0026 3.3.4; elevation_mapping failed on 3.3.9)\n  \n* [CUDA](https://developer.nvidia.com/cuda-toolkit) (gpu process, failed to infer normally with CUDA\u003e11.1 on 30-series GPU)\n  \n* [Cython](https://github.com/cython/cython) (C extensions for Python)\n  ```sh\n  pip install cython\n  ```\n* [GTSAM](https://github.com/borglab/gtsam) (pose optimization, tested on 4.0.0-alpha2)\n  ```sh\n  git clone https://github.com/borglab/gtsam.git -b 4.0.0-alpha2\n  Follow the README in https://github.com/borglab/gtsam.git\n  ```\n* [Grid Map](https://github.com/anybotics/grid_map) (grid map library for mobile robots)\n  ```sh\n  sudo apt install ros-$ROS_DISTRO-grid-map*\n  ```\n* [DiSCO](https://github.com/MaverickPeter/DiSCO-pytorch) (pluggable loop detector)\n  ```sh\n  Follow https://github.com/MaverickPeter/DiSCO-pytorch\n  You can also use c++ version in LoopDetection/src/disco_ros/tools/multi-layer-polar-cpu/\n  ```\n* [RING \u0026 RING++](https://github.com/MaverickPeter/MR_SLAM/tree/main/LoopDetection/src/RING_ros) (pluggable loop detector)\n  ```sh\n  Follow the README in LoopDetection/src/RING_ros or https://github.com/lus6-Jenny/RING\n  ```\n* [torch-radon v2](https://github.com/matteo-ronchetti/torch-radon/tree/v2) (radon transform)\n  ```sh\n  # Failed to infer normally with CUDA\u003e11.1 on 30-series GPU\n  cd LoopDetection/torch-radon\n  python setup.py install\n  ```\n* [livox_ros_driver](https://github.com/Livox-SDK/livox_ros_driver) (for FAST_LIO2)\n  ```sh\n  Follow https://github.com/Livox-SDK/livox_ros_driver\n  ```\n* [Fast GICP](https://github.com/SMRT-AIST/fast_gicp) (for ICP refine)\n  ```sh\n  # Fast GICP is already included in the repo with .gitmodules. \n  # You can use --recursive when cloning this repo or \n  git submodule sync\n  git submodule update --init --recursive\n\n  # or you can clone the repo and put them in the same place\n  Follow https://github.com/SMRT-AIST/fast_gicp\n  ```\n* (optional - for elevation_mapping) [OctoMap](https://github.com/OctoMap/octomap) (octomap library for multi-resolution)\n  ```sh\n  sudo apt install ros-$ROS_DISTRO-octomap*\n  ```\n* (optional - for elevation_mapping) [Kindr](https://github.com/anybotics/kindr)\n  ```sh\n  Follow https://github.com/anybotics/kindr\n  ```\n* (optional - for docker use) [nvidia-docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker)\n\n\n### **Installation**\n\n1. Clone the repo\n   ```sh\n   git clone --recursive https://github.com/MaverickPeter/MR_SLAM.git\n   ```\n2. Make Mapping \n   ```sh\n   cd Mapping \u0026\u0026 catkin_make -DBUILD_PYTHON_BINDINGS=ON\n   ```\n3. Make Localization \n   ```sh\n   # In Noetic with Ubuntu 20.04, you need to make some modifications to the original codes in A-LOAM.\n   # 1. modify the \"/camera_init in all cpp files to \"camera_init\".\n   # 2. modify the #include \u003copencv/cv.h\u003e in scanRegistration.cpp to #include \u003copencv2/imgproc.hpp\u003e.\n   # 3. modify the CV_LOAD_IMAGE_GRAYSCALE to cv::IMREAD_GRAYSCALE\n   # 4. modify the set(CMAKE_CXX_FLAGS \"-std=c++11\") to set(CMAKE_CXX_STANDARD 14) in Cmakelists.txt \n\n   cd Localization \u0026\u0026 catkin_make\n   ```\n4. Make Costmap \n   ```sh\n   cd Costmap \u0026\u0026 catkin_make\n   ```\n5. Make LoopDetection \n   ```sh\n   cd LoopDetection \u0026\u0026 catkin_make -DBUILD_PYTHON_BINDINGS=ON\n\n   # If you encounter the PyInit__tf2 issue, use catkin_make with your python3 environment\n   catkin_make --cmake-args \\\n   -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/home/client/miniconda3/envs/py38/bin/python3.8 \\\n   -DPYTHON_INCLUDE_DIR=/home/client/miniconda3/envs/py38/include/python3.8 \\\n   -DPYTHON_LIBRARY=/home/client/miniconda3/envs/py38/lib/libpython3.8.so \\\n   -DBUILD_PYTHON_BINDINGS=ON\n   ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- QUICKDEMO --\u003e\n## **Quick Demo**\n1. Get rosbag from [Google Drive](https://drive.google.com/file/d/1KNrzvpfeuiQ8i-zUvlKbsn-iTIPJOQh8/view?usp=sharing) or [Baidu Pan](https://pan.baidu.com/s/1dcDRyn-G7TilFpc8shLQNA?pwd=gupx) with **extract code: gupx**\n\n2. Run roscore\n   \n3. Run bag\n   ```sh\n   rosbag play 3_dog.bag --clock --pause\n   ```\n4. Run DiSCO / RING / RING++ / Scan Context (If you encountered the error 'ImportError: dynamic module does not define module export function' you can refer to https://github.com/MaverickPeter/MR_SLAM/issues/4)\n   ```sh\n   # !!!!! You need to change the Python interpreter to your environment The default is mine: #!/home/client/miniconda3/envs/disco/bin/python3\n\n   cd LoopDetection \u0026\u0026 source devel/setup.bash\n   \n   # DiSCO\n   rosrun disco_ros main.py\n   \n   # Scan Context\n   cd src/RING_ros\n   python main_SC.py\n\n   # RING: If you encounter the PyInit__tf2 issue, use catkin_make with your python3 environment. Check installation section. \n   cd src/RING_ros\n   python main_RING.py\n  \n   # or RING++\n   python main_RINGplusplus.py\n\n   # Note that if you add #!/xxx/python3 in the first line of RING_ros/main.py you can also use rosrun RING_ros main.py to start the node.\n   ```\n5. Run global_manager \n   ```sh\n   cd Mapping \u0026\u0026 source devel/setup.bash\n   roslaunch global_manager global_manager.launch\n   ```\n6. Visualization\n   ```sh\n   rviz -d Visualization/vis.rviz\n   ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- FULLUSAGE --\u003e\n## **Full Usage**\n1. Get rosbag from [Google Drive](https://drive.google.com/drive/folders/1YTdVwVDLlgObInfSGmzvZctelvJ7O8E4?usp=sharing) and decompress the bags using \n    ```sh\n    rosbag decompress xxx.bag\n   ```\n   \n2. Run roscore\n\n3. Run bags (in 3 terminals)\n   ```sh\n   rosbag play loop_22.bag --clock --pause\n   rosbag play loop_30.bag \n   rosbag play loop_31.bag \n   ```\n4. Run Odometry Fast-LIO/A-LOAM (in 3 terminals)\n   ```sh\n   # Set parameters in Localization/src/FAST_LIO/launch/ and Localization/src/FAST_LIO/config/ !!You need to set the scan_publish_en to true to send submaps\n\n   cd Localization \u0026\u0026 source devel/setup.bash\n   roslaunch fast_lio robot_1.launch\n   roslaunch fast_lio robot_2.launch\n   roslaunch fast_lio robot_3.launch\n\n   # Set parameters in Localization/src/A-LOAM/launch/ !!You need to set the scan_publish_en to true to send submaps\n\n   cd Localization \u0026\u0026 source devel/setup.bash\n   roslaunch aloam robot_1.launch\n   roslaunch aloam robot_2.launch\n   roslaunch aloam robot_3.launch\n   ```\n5. Run elevation_mapping (in 3 terminals)\n   ```sh\n   # Set parameters in Mapping/src/elevation_mapping_periodical/elevation_mapping_demos/launch/ and Mapping/src/elevation_mapping_periodical/elevation_mapping_demos/config/\n\n   cd Mapping \u0026\u0026 source devel/setup.bash\n   roslaunch elevation_mapping_demos robot_1.launch\n   roslaunch elevation_mapping_demos robot_2.launch\n   roslaunch elevation_mapping_demos robot_3.launch   \n   ```\n6. Run preprocess tools (in 3 terminals)\n   ```sh\n   # If robots don't have cameras, you have to create fake images for elevation_mapping\n\n   cd Tool/Fake_img\n   python robot_1.py\n   python robot_2.py\n   python robot_3.py\n\n   # If robots' point cloud are too large for real-time processing, you have to launch filters to accelerate.\n\n   cd Tool/Filters\n   roslaunch filter_robot_1.launch   \n   roslaunch filter_robot_2.launch   \n   roslaunch filter_robot_3.launch   \n   ```\n7. Run loop detection module\n   ```sh\n   # You may need to change the Python interpreter to your environment The default is: #!/usr/bin/python3\n\n   cd LoopDetection \u0026\u0026 source devel/setup.bash\n   \n   # DiSCO\n   rosrun disco_ros main.py\n   \n   # Scan Context\n   cd src/RING_ros\n   python main_SC.py\n\n   # RING\n   cd src/RING_ros\n   python main_RING.py\n\n   # or RING++\n   python main_RINGplusplus.py\n   ```\n8. Run global_manager \n   ```sh\n   # Set parameters in Mapping/src/global_manager/launch/\n\n   cd Mapping \u0026\u0026 source devel/setup.bash\n   roslaunch global_manager global_manager.launch\n   ```\n9. Run costmap converter \n   ```sh\n   # Set parameters in Costmap/src/costmap/params/\n\n   cd Costmap \u0026\u0026 source devel/setup.bash\n   roslaunch costmap_converter create_costmap.launch\n   ```\n10. Visualization\n    ```sh\n    rviz -d Visualization/vis.rviz\n    ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- DOCKER --\u003e\n## **Docker**\n\n- Build docker from Dockerfile.\n  1. sudo bash build.sh\n  2. sudo bash run.sh (Set your own directory in run.sh to allow container to access part of your filesystem)\n  3. sudo bash login.sh\n  4. In docker, the codes are deployed in /home directory. You can follow the usage above to start nodes.\n\n- or you can just pull our docker from dockerhub.\n  ```sh\n  docker pull maverickp/mrslam:noetic\n  # The codes are deployed in /home directory. You can follow the usage above to start nodes. \n  # The code of A-LOAM, Costmap is modified to fit in Ubuntu 20.04 with ros noetic.\n  ```\n\n\u003c!-- ROADMAP --\u003e\n## **Roadmap**\n\n- [x] Add PCM.\n- [ ] Optimize code.\n- [ ] Add more pluggable loop closure methods.\n  - [x] Scan Context\n  - [ ] Learning-based methods\n- [ ] Support more front-end odometry.\n  - [x] A-LOAM\n  - [ ] PV-LIO\n- [ ] Support more PGO methods.\n  - [ ] GNC\n\nSee the [open issues](https://github.com/MaverickPeter/MR_SLAM/issues) for a full list of proposed features (and known issues).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- CITATION --\u003e\n## **Citation**\nIf you find this repo useful to your project, please consider to cite it with the following bib:\n\n```bibtex\n@article{xu2023ring++,\n  title={RING++: Roto-Translation-Invariant Gram for Global Localization on a Sparse Scan Map}, \n  author={Xu, Xuecheng and Lu, Sha and Wu, Jun and Lu, Haojian and Zhu, Qiuguo and Liao, Yiyi and Xiong, Rong and Wang, Yue},\n  journal={IEEE Transactions on Robotics}, \n  year={2023},\n  publisher={IEEE}\n}\n```\n```bibtex\n@inproceedings{lu2022one,\n  title={One RING to Rule Them All: Radon Sinogram for Place Recognition, Orientation and Translation Estimation}, \n  author={Lu, Sha and Xu, Xuecheng and Yin, Huan and Chen, Zexi and Xiong, Rong and Wang, Yue},\n  booktitle={2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}, \n  pages={2778-2785},\n  year={2022},\n  organization={IEEE}\n}\n```\n```bibtex\n@article{xu2021disco,\n  title={Disco: Differentiable scan context with orientation},\n  author={Xu, Xuecheng and Yin, Huan and Chen, Zexi and Li, Yuehua and Wang, Yue and Xiong, Rong},\n  journal={IEEE Robotics and Automation Letters},\n  volume={6},\n  number={2},\n  pages={2791--2798},\n  year={2021},\n  publisher={IEEE}\n}\n```\n\n\u003c!-- CONTRIBUTING --\u003e\n## **Contributing**\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- LICENSE --\u003e\n## **License**\n\nDistributed under the MIT License. See `LICENSE.txt` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTACT --\u003e\n## **Contact**\n\nXuecheng Xu - xuechengxu@zju.edu.cn\n\nProject Link: [MR_SLAM](https://github.com/MaverickPeter/MR_SLAM)\n\nRelated Link: [RING/RING++](https://github.com/lus6-Jenny/RING) / [DiSCO](https://github.com/MaverickPeter/DiSCO-pytorch) / [Scan Context](https://github.com/irapkaist/scancontext) / [Fast-LIO2](https://github.com/hku-mars/FAST_LIO) / [A-LOAM](https://github.com/HKUST-Aerial-Robotics/A-LOAM) / [GTSAM](https://github.com/borglab/gtsam)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMaverickPeter%2FMR_SLAM","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMaverickPeter%2FMR_SLAM","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMaverickPeter%2FMR_SLAM/lists"}