Skip to content

HuaiYu-Yang/SceneLoopNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

SceneLoopNet: Learning-based Loop Closure for LiDAR SLAM

SceneLoopNet is a lightweight, learning-based loop closure detection module designed for LiDAR SLAM systems. It operates solely on standard ROS topics (PointCloud2 and Odometry), enabling seamless integration with any odometry front-end (e.g., FastLIO2, Point-LIO) without modification.

This repository contains the code accompanying our paper (to appear). The code will be open-sourced upon publication.


Key Features

  • Front-end agnostic – Works with any LiDAR odometry that publishes point clouds and odometry on ROS.
  • Learning-based scene descriptor – Employs a supervised feature extractor to obtain robust, compact representations of LiDAR scans.
  • Coarse-to-fine matching – Performs scene-level retrieval followed by structural similarity verification for reliable loop candidates.
  • ROS1 native – Minimal dependencies, easy to drop into existing ROS1 pipelines.
  • Practical deployment – Prioritizes real-world mapping over offline benchmarks, with built-in visualization for debugging.

Paper & Citation

Our paper is currently under review. A preprint will be made available soon. If you use SceneLoopNet in your research, please cite:

@article{yourpaper,
  title={SceneLoopNet: Learning-based Loop Closure Detection for LiDAR SLAM},
  author={Yang, Huaiyu and ...},
  journal={...},
  year={2025}
}

System Overview

SceneLoopNet acts as an independent backend component:

  1. Input: Subscribes to /pointcloud (sensor_msgs/PointCloud2) and /odometry (nav_msgs/Odometry).
  2. Feature Extraction: A learned network encodes each scan into a global descriptor.
  3. Retrieval: Uses a fast approximate nearest neighbor search to propose loop candidates.
  4. Verification: Performs geometric consistency check (e.g., ICP or feature matching) to confirm loops.
  5. Output: Publishes loop closure constraints and visualisation markers.

System Architecture (diagram to be added)


Dependencies

  • ROS1 (Melodic/Noetic)
  • PCL >= 1.8
  • Eigen3
  • LibTorch (PyTorch C++ API) – for inference only (training code separate)

Installation instructions are provided in INSTALL.md.


Quick Start

  1. Clone the repository:

    git clone https://github.com/HuaiYu-Yang/SceneLoopNet.git
    cd SceneLoopNet
  2. Build with catkin:

    catkin build scenelooopnet
  3. Run the node:

    roslaunch scenelooopnet loop_detector.launch
  4. Play your bag or run your front-end; the node will automatically start detecting loops.

Detailed usage examples can be found in examples/.


Results

We evaluate SceneLoopNet on multiple public and self-collected datasets. Quantitative comparisons against state-of-the-art handcrafted and learned methods demonstrate superior recall and precision under various environmental conditions. Example visualizations:

Loop closure example


License

This project is released under the MIT License. See LICENSE for details.


Contributors

We welcome contributions! Please see CONTRIBUTING.md for guidelines.


Contact

For questions or collaboration, please open an issue or contact the author directly.


Note: This repository is under active development. The code will be fully open-sourced once the paper is accepted.

About

SceneLoopNet: Lightweight learning-based loop closure for LiDAR SLAM. ROS1-native, front-end agnostic. Uses learned scene descriptors for robust loop candidate detection. Integrates with any odometry (FastLIO2, Point-LIO) via PointCloud2 & Odometry topics.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors