Giter Club home page Giter Club logo

navtech-radar-slam's Introduction

Navtech-Radar-SLAM



Video   •   Install   •   Paper (ORORA)   •   Paper (ScanContext)

animated

ORORA-SLAM: SLAM using Outlier-robust radar odometry (ORORA) + ScanContext-based Loop Closing


What is Navtech-Radar-SLAM?

  • In this repository, a (minimal) SLAM problem is defeind as SLAM = Odometry + Loop closing, and the optimized states are only robot poses along a trajectory.
  • Based on the above view, this repository aims to integrate current available radar odometry, radar place recognition, and pose-graph optimization.
    1. Radar odometry: ORORA open source.
      • The odometry modules consumes file-based input (not ROS subscription) in this example. See here for the details.
    2. Radar place recognition: Scan Context open source
      • In MulRan dataset paper, the radar scan context is also proposed, but in this repository we use a Cartesian 2D feature point cloud (extracted via cen2019 method) as an input for the original Scan Context (IROS2018) method and it works.
      • The Scan Context-based loop detection is included in the file pgo/SC-A-LOAM/laserPosegraphOptimization.cpp.
    3. Pose-graph optimization
      • iSAM2 in GTSAM is used. See pgo/SC-A-LOAM/laserPosegraphOptimization.cpp for the details (ps. the implementation is eqaul to SC-A-LOAM and it means laserPosegraphOptimization.cpp node is generic!)

How to use?

Dependencies

  • ORORA: OpenCV, and SC-PGO: GTSAM
  • Code is tested on Ubuntu 20.04 with ROS Noetic.

Steps

First, clone and build. Note, there's a submodule in the repository.

$ mkdir -p ~/catkin_radarslam/src && cd ~/catkin_radarslam/src
$ git clone https://github.com/gisbi-kim/navtech-radar-slam.git 
$ cd navtech-radar-slam && git submodule init && git submodule update
$ cd ../..
$ catkin_make 

Second,

Then, enjoy!

$ source devel/setup.bash
$ roslaunch src/navtech-radar-slam/launch/navtech_radar_slam_mulran.launch seq_dir:=${DATA_DIR}

For example,

$ roslaunch src/navtech-radar-slam/launch/navtech_radar_slam_mulran.launch seq_dir:="/media/shapelim/UX980/UX960NVMe/mulran-radar/KAIST03"

Examples

  • The examples are from MulRan dataset, which is suitable to evaluate the radar odometry or SLAM algorithm in complex urban sites.
    • The MulRan dataset provides the oxford-radar-robotcar-radar data format (i.e., meta data such as ray-wise timestamps are imbedded in an radar image, see details here)

1. Recent Result in KAIST 03 of MulRan dataset

2. KAIST 03 of MulRan dataset

3. Riverside 03 of MulRan dataset

Related papers

If you cite this repository, please consider below papers.

  • ORORA open source for radar odometry:
    @INPROCEEDINGS { lim-2023-icra,
        author = {Lim, Hyungtae and Han, Kawon and Shin, Gunhee and Kim, Giseop and Hong, Songcheol and Myung, Hyun},
        title = { ORORA: Outlier-robust radar odometry },
        booktitle = { Proceedings of the IEEE International Conference on Robotics and Automation (ICRA) },
        pages={2046--2053},
        year = { 2023 },
    }
    
  • Yeti open source for radar odometry:
    @ARTICLE{burnett_ral21,
        author = {Keenan Burnett, Angela P. Schoellig, Timothy D. Barfoot},
        journal={IEEE Robotics and Automation Letters},
        title={Do We Need to Compensate for Motion Distortion and Doppler Effects in Spinning Radar Navigation?},
        year={2021},
        volume={6},
        number={2},
        pages={771-778},
        doi={10.1109/LRA.2021.3052439}}
    }
    
  • Scan Context open source for place recognition:
    @INPROCEEDINGS { gkim-2018-iros,
        author = {Kim, Giseop and Kim, Ayoung},
        title = { Scan Context: Egocentric Spatial Descriptor for Place Recognition within {3D} Point Cloud Map },
        booktitle = { Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems },
        year = { 2018 },
        month = { Oct. },
        address = { Madrid }
    }
    
  • MulRan dataset:
    @INPROCEEDINGS{ gskim-2020-mulran, 
        TITLE={MulRan: Multimodal Range Dataset for Urban Place Recognition}, 
        AUTHOR={Giseop Kim and Yeong Sang Park and Younghun Cho and Jinyong Jeong and Ayoung Kim}, 
        BOOKTITLE = { Proceedings of the IEEE International Conference on Robotics and Automation (ICRA) },
        YEAR = { 2020 },
        MONTH = { May },
        ADDRESS = { Paris }
    }
    

TODO

  • About utilities
    • support ROS-based input (topic subscription)
    • support a resulting map save functions.
  • About performances
    • support reverse loop closing.
    • enhance RS (radius-search) loop closings.

navtech-radar-slam's People

Contributors

gisbi-kim avatar limhyungtae avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

navtech-radar-slam's Issues

examples running problem

I watched the youtube video in the README file examples and found that your operating mode seems to be different from the operating mode you mentioned above. Is the data used and the code package different? To run the slam effect in your youtube video, what improvements need to be made based on the way you use it in the readme file?

there is a problem at runtime.

About the two lines of running code you mentioned in the readme file, can you just download polar_oxford_form.zip and change the path to run it? Or is it to download a sequence data set of the entire mulran and run it under the path?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.