AirSLAM

sair-labGPL-3.0更新放缓

AirSLAM 是面向视觉定位的 SLAM 系统,融合 SuperPoint 与 SuperGlue 做特征提取和匹配,为机器人在未知环境中提供实时位姿估计与建图。

[TRO 2025] AirVO upgrades to AirSLAM

1.0发布于 2024-08-05 12:01 UTC1,217star180fork同步于 2026-11-07 07:32 UTC

怎么上手

由 README 提炼,执行前请确认
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
硬件要求按 README 说明

README未给出显存要求;需NVIDIA GPU与CUDA 12.1、TensorRT 8.6.1.6,官方提供nvidia runtime的Docker镜像;Jetson平台部署流程较复杂,README仅给出参考博客。

支持 Apple Silicon需要 CUDA有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于点线特征与深度学习的视觉SLAM系统,在光照剧烈变化场景下稳定建图与重定位

AirSLAM 是面向视觉定位的 SLAM 系统,融合 SuperPoint 与 SuperGlue 做特征提取和匹配,为机器人在未知环境中提供实时位姿估计与建图。

核心能力

  • 用单个CNN同时提取关键点与结构线并耦合优化
  • 支持V-SLAM与VI-SLAM双模式运行
  • 复用地图的轻量重定位流程,仅需单目查询图像
  • 用C++与TensorRT加速特征检测与匹配网络
  • PC上可达73Hz、嵌入式平台40Hz

容易踩的坑

依赖版本较严格(OpenCV 4.2、Ceres 2.0.0、G2O tag 20230223_git、TensorRT 8.6.1.6、CUDA 12.1),且需ROS noetic环境;运行前必须修改launch文件中的dataroot与saving_dir,保存目录必须是已存在的文件夹;数据需按ASL格式组织(cam0/cam1/imu0),EuRoC路径中需包含mav0。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

1 个版本1.0
  1. 1.0AirVO (IROS 2023)最新正式版2024-08-05 · 2024-08-05 12:01 UTC

    An Illumination-Robust Point-Line Visual Odometry (IROS 2023)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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},
    }