GNU General Public License v3.0

项目介绍

sair-lab/AirSLAM 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 GNU General Public License v3.0 许可证,目前获得 1.2k 个 Star、180 次 Fork。

仓库全名
sair-lab/AirSLAM
开源许可证
GNU General Public License v3.0
Star 数
1.2k
Fork 数
180
未关闭 Issue
38

README 摘要

AirSLAM: An Efficient and Illumination-Robust Point-Line Visual SLAM System Kuan Xu 1 , Yuefan Hao 2 , Shenghai Yuan 1 , Chen Wang 2 , Lihua Xie 1 1: Centre for Advanced Robotics Technology Innovation (CARTIN), Nanyang Technological University 2: Spatial AI & Robotics (SAIR) Lab, Computer Science and Engineering, University at Buffalo 📄 [PDF] | 💾 [Project Site] | 🎥 [Youtube] | &#127909…

完整内容见 GitHub 原始 README 或本页 。

常见问题

AirSLAM 用什么语言开发?

主要使用 C++ 编写,采用 GNU General Public License v3.0 许可证,目前有 1.2k 个 Star。

AirSLAM 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 AirSLAM 的源码?

可以直接克隆仓库:git clone https://github.com/sair-lab/AirSLAM.git,默认分支为 master;安装与运行步骤见仓库 README。

AirSLAM 最近还在维护吗?

仓库最近一次更新为 2025年11月19日,当前有 38 个未关闭 Issue;Star 数为 1.2k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

[TRO 2025] AirVO upgrades to AirSLAM

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
1595
价值分
783
活跃状态
活跃

语言占比

C
C++
CMake
Python

Release

README

AirSLAM: An Efficient and Illumination-Robust Point-Line Visual SLAM System

Kuan Xu1, Yuefan Hao2, Shenghai Yuan1, Chen Wang2, Lihua Xie1

1: Centre for Advanced Robotics Technology Innovation (CARTIN), Nanyang Technological University
2: Spatial AI & Robotics (SAIR) Lab, Computer Science and Engineering, University at Buffalo

📄 [PDF] | 💾 [Project Site] | 🎥 [Youtube] | 🎥 [Bilibili]

Accepted to IEEE Transactions on Robotics (TRO), 2025

:scroll: AirSLAM has dual-mode (V-SLAM, VI-SLAM), upgraded from AirVO (IROS’23)

AirSLAM is an efficient visual SLAM system designed to tackle both short-term and long-term illumination challenges. Our system adopts a hybrid approach that combines deep learning techniques for feature detection and matching with traditional backend optimization methods. Specifically, we propose a unified convolutional neural network (CNN) that simultaneously extracts keypoints and structural lines. These features are then associated, matched, triangulated, and optimized in a coupled manner. Additionally, we introduce a lightweight relocalization pipeline that reuses the built map, where keypoints, lines, and a structure graph are used to match the query frame with the map. To enhance the applicability of the proposed system to real-world robots, we deploy and accelerate the feature detection and matching networks using C++ and NVIDIA TensorRT. Extensive experiments conducted on various datasets demonstrate that our system outperforms other state-of-the-art visual SLAM systems in illumination-challenging environments. Efficiency evaluations show that our system can run at a rate of 73Hz on a PC and 40Hz on an embedded platform.

Video

:eyes: Updates

  • [2025.01] The paper AirSLAM was officially accepted to IEEE Transactions on Robotics (TRO).
  • [2025.01] We release the training code for PLNet. The Python code for PLNet can now be found here.
  • [2024.08] We release the code and paper for AirSLAM.
  • [2023.07] AriVO is accepted by IROS 2023.
  • [2022.10] We release the code and paper for AirVO. The code for AirVO can now be found here.

:checkered_flag: Test Environment

Dependencies

  • OpenCV 4.2
  • Eigen 3
  • Ceres 2.0.0
  • G2O (tag:20230223_git)
  • TensorRT 8.6.1.6
  • CUDA 12.1
  • python
  • ROS noetic
  • Boost

Docker (Recommend)

docker pull xukuanhit/air_slam:v4
docker run -it --env DISPLAY=$DISPLAY --volume /tmp/.X11-unix:/tmp/.X11-unix --privileged --runtime nvidia --gpus all --volume ${PWD}:/workspace --workdir /workspace --name air_slam xukuanhit/air_slam:v4 /bin/bash

Jetson

Due to ROS dependencies and certain operators used in PLNet, deploying AirSLAM on the Jetson platform requires a rather involved process. This blog provides a useful reference for that deployment.

:book: Data

The data for mapping should be organized in the following Autonomous Systems Lab (ASL) dataset format (imu data is optional):

dataroot
├── cam0
│   └── data
│       ├── t0.jpg
│       ├── t1.jpg
│       ├── t2.jpg
│       └── ......
├── cam1
│   └── data
│       ├── t0.jpg
│       ├── t1.jpg
│       ├── t2.jpg
│       └── ......
└── imu0
    └── data.csv

After the map is built, the relocalization requires only monocular images. Therefore, you only need to place the query images in a folder.

:computer: Build

    cd ~/catkin_ws/src
    git clone https://github.com/sair-lab/AirSLAM.git
    cd ../
    catkin_make
    source ~/catkin_ws/devel/setup.bash

:running: Run

The launch files for VO/VIO, map optimization, and relocalization are placed in VO folder, MR folder, and Reloc folder, respectively. Before running them, you need to modify the corresponding configurations according to your data path and the desired map-saving path. The following is an example of mapping, optimization, and relocalization with the EuRoC dataset.

Mapping

1: Change “dataroot” in VO launch file to your own data path. For the EuRoC dataset, “mav0” needs to be included in the path.

2: Change “saving_dir” in the same file to the path where you want to save the map and trajectory. It must be an existing folder.

3: Run the launch file:

roslaunch air_slam vo_euroc.launch 

Map Optimization

1: Change “map_root” in MR launch file to your own map path.

2: Run the launch file:

roslaunch air_slam mr_euroc.launch 

Relocalization

1: Change “dataroot” in Reloc launch file to your own query data path.

2: Change “map_root” in the same file to your own map path.

3: Run the launch file:

roslaunch air_slam reloc_euroc.launch 

Other datasets

Launch folder and config folder respectively provide the launch files and configuration files for other datasets in the paper. If you want to run AirSLAM with your own dataset, you need to create your own camera file, configuration file, and launch file.

:writing_hand: TODO List

  • Initial release. :rocket:
  • Support more GPUs and development environments
  • Support SuperGlue as the feature matcher
  • Optimize the TensorRT acceleration of PLNet
  • Optimize the evaluation using PyPose

:pencil: Citation

@article{xu2024airslam,
  title = {{AirSLAM}: An Efficient and Illumination-Robust Point-Line Visual SLAM System},
  author = {Xu, Kuan and Hao, Yuefan and Yuan, Shenghai and Wang, Chen and Xie, Lihua},
  journal = {IEEE Transactions on Robotics (TRO)},
  year = {2024},
  url = {https://arxiv.org/abs/2408.03520},
  code = {https://github.com/sair-lab/AirSLAM},
}

@inproceedings{xu2023airvo,
  title = {{AirVO}: An Illumination-Robust Point-Line Visual Odometry},
  author = {Xu, Kuan and Hao, Yuefan and Yuan, Shenghai and Wang, Chen and Xie, Lihua},
  booktitle = {IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  year = {2023},
  url = {https://arxiv.org/abs/2212.07595},
  code = {https://github.com/sair-lab/AirVO},
  video = {https://youtu.be/YfOCLll_PfU},
}

评论

暂无评论