論文でよく比較対象に上がるSLAMと関連手法

# 概要

タイトルには比較対象に上がると書いたが、単純に興味があるものを取り上げる。
随時更新。

## 一覧
**2024年4月現在**

* 用語
    * LIO(LiDAR Inertial Odometry): LiDARとIMUがtightly-coupledな手法
    * VIO(Visual Inertial Odometry): Visual(画像)とIMUがtightly-coupledな手法
* LiDAR Odometry/SLAM
  * gmapping(<https://github.com/ros-perception/slam_gmapping>)
    * license: BSD-3
    * keyword: Rao-Blackwellised Particle Filte, 2D LiDAR, ROS
  * hdl_graph_slam(<https://github.com/koide3/hdl_graph_slam>)
    * license: BSD-2
    * keyword: graph based slam, 3D LiDAR, NDT/ICP/GICP/VGICP, pepole tracking, ROS
    * 様々なスキャンマッチング手法を切り替えて使用できる。IMUや床面制約などオプションが豊富。
    * localizationやpepole trackingは別パッケージ化され個別に使用可能。
  * LOAM(<https://github.com/laboshinl/loam_velodyne>)
    * license: BSD
    * keyword: 3D LiDAR, ROS
    * 平面とエッジ検出を用いたマッチング
    * オドメトリー算出とマッピングの分離によるリアルタイム性
  * LOAM family
    * ALOAM(<https://github.com/HKUST-Aerial-Robotics/A-LOAM>)
      * license: BSD
      * keyword: 3D LiDAR, ROS
    * FLOAM(<https://github.com/wh200720041/floam>)
      * license: BSD
      * keyword: 3D LiDAR, ROS
    * LeGO-LOAM(<https://github.com/RobustFieldAutonomyLab/LeGO-LOAM>)
      * license: BSD-3
      * keyword: 3D LiDAR, ROS
  * LIO-SAM(<https://github.com/TixiaoShan/LIO-SAM>)
    * license: BSD-3
    * keyword: 3D LiDAR, LIO, ROS1/ROS2
    * 最初のLiDARとIMUの密結合手法
    * ROS2ブランチあり
  * LILI-OM(<https://github.com/KIT-ISAS/lili-om>)
    * license: GPL-3.0
    * keyword: 3D LiDAR, LIO, ROS
    * 不規則なスキャンパターンのLiDAR向け特徴抽出手法。スライディングウィンドウ方式のキーフレーム選択。
  * LINS(<https://github.com/ChaoqinRobotics/LINS---LiDAR-inertial-SLAM>)
    * keyword: 3D LiDAR, LIO, ROS
    * 反復型エラー状態カルマンフィルタ(ESKF)で6自由度の姿勢推定を行うLIO
  * FAST-LIO/FAST-LIO2(<https://github.com/hku-mars/FAST_LIO>)
    * license: GPL-2.0
    * keyword: 3D LiDAR, LIO, ikd-tree, ROS
    * FAST-LIO: LiDARとIMUの密結合させた反復カルマンフィルタと新しいカルマンゲイン計算式
    * FAST-LIO2: ikd-treeを採用した高速な検索手法。特徴抽出なしでのマッピング。
  * LOCUS(<https://github.com/NeBula-Autonomy/LOCUS>) 
  * Kiss-icp(<https://github.com/PRBonn/kiss-icp>)
  * CT-ICP(<https://github.com/jedeschaud/ct_icp>)
  * Faster-LIO(<https://github.com/gaoxiang12/faster-lio>)
  * Point-LIO(<https://github.com/hku-mars/Point-LIO>)
  * VoxelMap(<https://github.com/hku-mars/VoxelMap>)
      * VoxelMap++(<https://github.com/uestc-icsp/VoxelMapPlus_Public>)
  * DLO(<https://github.com/vectr-ucla/direct_lidar_odometry>)
  * DLIO(<https://github.com/vectr-ucla/direct_lidar_inertial_odometry>)
      * ROS2ブランチあり
  * Intensity based LiDAR SLAM(<https://github.com/MISTLab/Intensity_based_LiDAR_SLAM>)
  * DMSA_LiDAR_SLAM(<https://github.com/davidskdds/DMSA_LiDAR_SLAM>)
  * MD-SLAM(<https://github.com/rvp-group/mdslam>)
      * LiDARとRGB-Dを同じパイプライン上で処理する仕組み
      * 上記の発展版(<https://github.com/rvp-group/ba-mdslam>)
  * NeRF-LOAM(<https://github.com/JunyuanDeng/NeRF-LOAM>)
      * NeRF+LOAM
* Visual Odometry/SLAM
  * SVO(<https://github.com/uzh-rpg/rpg_svo>)
    * license: GPL-3.0
    * keyword: Direct-baesd, Monocular
  * SVO2.0(<https://github.com/uzh-rpg/rpg_svo_pro_open>)
    * license: GPL-3.0
    * keyword: Direct-baesd, Monocular, Stereo, Fish-Eye
  * DynaSLAM(<https://github.com/BertaBescos/DynaSLAM>)
    * CC BY-NC 4.0
    * keyword, Monocular, Stereo, RGB-D
  * ORB-SLAM(<https://github.com/raulmur/ORB_SLAM>)
    * license: GPL3.0
    * keyword: Feature-based,Monocular
  * ORB-SLAM2(<https://github.com/raulmur/ORB_SLAM2>)
    * license: GPL3.0
    * keyword: Feature-based, Monocular, Stereo, RGB-D
    * 派生でROS2パッケージがある<https://github.com/appliedAI-Initiative/orb_slam_2_ros/tree/ros2>
  * ORB-SLAM3(<https://github.com/UZ-SLAMLab/ORB_SLAM3>)
    * license: GPL3.0
    * keyword: Feature-based,Monocular, Stereo, RGB-D, Fish-Eye, IMU
  * OpenVINS(<https://github.com/rpng/open_vins>)
    * license: GPL3.0
    * keyword: Feature-based, ROS1/2
  * VDO-SLAM(<https://github.com/halajun/VDO_SLAM>)
    * license: GPL-3.0
    * keyword: RGB-D, Dynamic SLAM
  * DROID-SLAM(<https://github.com/princeton-vl/DROID-SLAM>)
    * license: BSD-3
    * keyword: DNN-based, mono, stereo, RGB-D
  * OKVIS(<https://github.com/ethz-asl/okvis>)
    * license: BSD-3
    * keyword: Feature-based
  * Cube-SLAM(<https://github.com/shichaoy/cube_slam>)
    * license: BSD-3
    * keyword: Feature-based, ORB-SLAM2ベース, monocular, 2D/3D object detection
  * QuadricSLAM(<https://github.com/qcr/quadricslam>)
    * license: BSD-3
    * keyword: Feature-based, ORB-SLAM2ベース
  * VINS-mono(<https://github.com/HKUST-Aerial-Robotics/VINS-Mono>)
    * license: GPL-3.0
    * keyword: Feature-based, VIO, monocular
  * VINS-Fusion(<https://github.com/HKUST-Aerial-Robotics/VINS-Fusion>)
    * license: GPL-3.0
    * keyword: Feature-based, VIO, monocular, stereo
  * EVO(<https://github.com/uzh-rpg/rpg_dvs_evo_open>)
    * 特許取得済み
    * keyword: Event-based Camera
  * ElasticFusion(<https://github.com/mp3guy/ElasticFusion>)
    * license: 独自(非商用目的でのみ利用可能)
  * NICE-SLAM
  * Point-SLAM(<https://github.com/eriksandstroem/Point-SLAM>)
      * license: Apache-2.0
      * keyword:
  * Gaussian Splatting SLAM(<https://github.com/muskie82/MonoGS>)
* Fusion
    * LVI-SAM(<https://github.com/TixiaoShan/LVI-SAM>)
  * R2LIVE(<https://github.com/hku-mars/r2live>)
    * license: GPL-2.0
  * R3LIVE(<https://github.com/hku-mars/r3live>)
    * license: GPL-2.0
  * FAST-LIVO(<https://github.com/hku-mars/FAST-LIVO>)
    * license: GPL-2.0
* pose graph optimizer
  * ceres-solver(<http://ceres-solver.org/>)
    * license: BSD
  * g2o(<https://github.com/RainerKuemmerle/g2o>)
    * license: BSD(ただし一部依存するモジュールがLGPL.回避方法の記載あり)
  * gtsam(<https://gtsam.org/>)
    * license: BSD
* loop closure
  * DBoW2(<https://github.com/dorian3d/DBoW2>)
    * ORB-SLAM採用のアルゴリズム
  * Scan-Context(~~<https://github.com/irapkaist/scancontext>~~)
    * リポジトリ移動済み。発展手法のScan-Context++(<https://github.com/gisbi-kim/scancontext_tro>)と同じリポジトリ
    * license: CC BY-NC-SA 4.0
  * LiDAR-Iris(<https://github.com/BigMoWangying/LiDAR-Iris>)
    * license: MIT
  * M2DP(<https://github.com/LiHeUA/M2DP>)
    * license: 不明
  * Intensity Scan Context(<https://github.com/wh200720041/iscloam>)
    * license: BSD
  * OverlapNet(<https://github.com/PRBonn/OverlapNet>)
    * license: MIT
* Scan Matching
    * NDT, ICP, Generalized-ICP(GICP)
        * PCLに実装済
    * NDT-OMP(<https://github.com/koide3/ndt_omp>)
        * ROS2版はこちらを使うとよい(<https://github.com/tier4/ndt_omp>)
  * FAST-GICP(<https://github.com/SMRT-AIST/fast_gicp>)
  * Nano-GICP(<https://github.com/engcang/nano_gicp>)
      * DLOからNano-GICPのみモジュールとして独立させたもの
      * FAST-GICP+Nano-FLANN
  * small_gicp(<https://github.com/koide3/small_gicp>)
      * FAST-GICPより最大2倍早くなっているらしい
* Object Detection
  * LiDAR
    * CenterPoint(<https://github.com/tianweiy/CenterPoint>)
  * Vison
    * Yolo3(<https://pjreddie.com/darknet/yolo/>)
    * SSD(<https://github.com/amdegroot/ssd.pytorch>)
* Semantic Segmentation
* Depth Estimation
  * monodepth(<https://github.com/mrharicot/monodepth>)
    * license: UCLA ACP-A
  * monodepth2(<https://github.com/nianticlabs/monodepth2>)
    * license: monodepth2ライセンス（独自）
* Feature Detection
  * SIFT, SURF, ORB
    * OpenCVに実装済み
  * SuperPoint
    * 元論文の技術は公開されていないが、有志がTensorflow版を公開している(<https://github.com/rpautrat/SuperPoint>)
      * license: MIT
    * keyword: CNN
  * cuda-efficient-features(<https://github.com/fixstars/cuda-efficient-features>)
* Feature Matching
    * SuperGlue(<https://github.com/magicleap/SuperGluePretrainedNetwork>)
        * license: 独自
        * keyword: SuperPoint, Attention Graph Nerual Network
    * LightGlue(<https://github.com/cvg/LightGlue>)
        * license: Apache-2.0
* Structure from motion
    * COLOMAP(<https://github.com/colmap/colmap>)
        * license: BSD
        * カメラパラメータ推定によく利用される
* 3D Reconstruction
    * NeRF(<https://github.com/bmild/nerf>)
        * license: MIT
        * kayword: Machine Learning
    * 3D Gaussian-Splatting(<https://github.com/graphdeco-inria/gaussian-splatting>)
        * license: 独自
* Tools
    * pg_trajectory_evaluation(<https://github.com/uzh-rpg/rpg_trajectory_evaluation>)
        * VIO(Visual Inertial Odometry)の軌道評価ツール
    * evo(<https://github.com/MichaelGrupp/evo>)
        * SLAM評価用のパッケージ
    * rosbag2_bag_v2(<https://github.com/ros2/rosbag2_bag_v2>)
        * ROS1のrosbagからROS2のrosbagへの変換
    * rosbags(<https://github.com/rpng/rosbags>)

* Dataset
    * hilti(<https://hilti-challenge.com/>)
    * New College Dataset(<https://ori-drs.github.io/newer-college-dataset/>)
* その他
    * https://docs.mrpt.org/reference/latest/#
* サポート
    * Dockerを使う上で役立つサイト
        * https://tech.aptpod.co.jp/entry/2023/09/25/170000
        * https://memoteki.net/archives/4471