Skip to content

RIV-SLAM: Radar-Inertial-Velocity optimization based graph SLAM

License

Notifications You must be signed in to change notification settings

Wayne-DWA/RIV-SLAM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RIV-SLAM: Radar-Inertial-Velocity optimization-based graph SLAM

RIV-SLAM is an open source ROS package for real-time 6DOF SLAM using a 4D Radar and an IMU. It is based on 3D Graph SLAM with Adaptive Probability Distribution GICP scan matching-based odometry estimation and Intensity Scan Context loop detection. It also supports several graph constraints, such as GPS. We have tested this package with Oculli Eagle and Sensradar Hugin in outdoor structured (buildings, mine), unstructured (trees and grasses, forest) and semi-structured environments.

1. Dependency

1.1 Ubuntu and ROS

Ubuntu 64-bit 18.04 or 20.04. ROS Melodic or Noetic. ROS Installation:

1.2 RIV-SLAM requires the following libraries:

  • Eigen3
  • OpenMP
  • PCL
  • g2o

1.3 The following ROS packages are required:

  • geodesy
  • nmea_msgs
  • pcl_ros
  • fast_gicp
  • msgs_radar for different datasets
    sudo apt-get install ros-XXX-geodesy ros-XXX-pcl-ros ros-XXX-nmea-msgs ros-XXX-libg2o

NOTICE: remember to replace "XXX" on above command as your ROS distributions, for example, if your use ROS-noetic, the command should be:

    sudo apt-get install ros-noetic-geodesy ros-noetic-pcl-ros ros-noetic-nmea-msgs ros-noetic-libg2o

2. System architecture

RIV_SLAM consists of four nodelets.

  • preprocessing_nodelet
  • scan_matching_odometry_nodelet
  • floor_detection_nodelet
  • radar_graph_slam_nodelet

3. optimization-based graph SLAM

Compared to the original software, we have introduced and modified the following modules:

  • IMU Preintegration Factor
  • Veloctiy Factor
  • Ground Factor
  • sliding window for optimization

4. Run the package

#build the repo
catkin build msgs_radar fast_apdgicp radar_graph_slam

Download datasets: NTU4DRadLM or MineAndForest

roslaunch radar_graph_slam radar_graph_slam.launch

5. Evaluate the results

In our paper, we use rpg_trajectory_evaluation, the performance indices used are RE (relative error) and ATE (absolute trajectory error).

6. Acknowlegement

  1. RIV-SLAM is heavily inspired by and based on 4DRadarSLAM 4DRadarSLAM and koide3/hdl_graph_slam
  2. wh200720041/iscloam intensity scan context
  3. christopherdoer/reve radar ego-velocity estimator
  4. NeBula-Autonomy/LAMP odometry check for loop closure validation
  5. slam_in_autonomous_driving and Dr. Gao Xiang (高翔). His SLAM tutorial and blogs are the starting point of our SLAM journey.

About

RIV-SLAM: Radar-Inertial-Velocity optimization based graph SLAM

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published