Skip to content

sair-lab/GroundSLAM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GroundSLAM: A Robust Visual SLAM System for Warehouse Robots Using Ground Textures

Kuan Xu1, Zheng Yang1, Lihua Xie1, Chen Wang2

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] | 🎥 [Youtube] |

pipeline

GroundSLAM is a novel feature-free and ground-texture-based SLAM system for the warehouse robot. Our system can provide robust pose estimation and localization in environments with many dynamic objects or open spaces, such as warehouses, which is very challenging for localization systems with a forward-facing camera or LiDAR. GroundSLAM consists of three components: feature-free visual odometry, ground-texture-based loop detection and map optimization, and map reuse. Specifically, we introduce a kernel cross-correlator (KCC) for image-level pose tracking, loop detection, and map reuse to improve localization accuracy and robustness, and incorporate adaptive pruning strategies to enhance efficiency. Due to these specific designs, GroundSLAM more robust and accurate when dealing with ground images with few textures or with many repetitive patterns than the feature-based methods.

Video:

Test Environment

Dependencies

  • OpenCV 4.2
  • Eigen 3
  • Ceres 2.0.0
  • FFTW3
  • ROS noetic
  • Boost
  • yaml-cpp
  • VTK

Build

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

Run

Modify the configuration file in configs and then run

rosrun ground_slam ground_slam src/kcc_slam/configs/your_config.yaml

Data

PathTex Dataset

pathtex_dataset

Our data collection platform is a modified Weston SCOUT Robot. The robot is equipped with an IDS uEye monocular camera, which is positioned at the bottom and facing downward, placed at a height of 0.1m above the ground. To ensure constant illumination, a set of LED lights are arranged around the camera. For ground truth, a prism is installed on the top of the robot, and its position is tracked by a Leica Nova MS60 MultiStation laser tracker.

We collect the data of 10 common ground textures, including 6 $\color{lightblue}{outdoor}$ textures and 4 $\color{red}{indoor}$ textures. The table below provides detailed information and download links for each sequence. The camera parameters can be found here.

Sequence Name Total Size Total Images Download Link
Brick_seq1 1.0g 3119 Link
Brick_seq2 0.9g 5328 Link
Carpet1_seq1 1.7g 8458 Link
Carpet1_seq2 1.7g 8499 Link
Carpet2_seq1 3.0g 15481 Link
Carpet3_seq1 0.7g 4500 Link
Carpet3_seq2 0.7g 4385 Link
Carpet3_seq3 1.0g 6428 Link
Coarse_asphalt_seq1 1.2g 5897 Link
Concrete_seq1 1.0g 5850 Link
Concrete_seq2 0.9g 5975 Link
Fine_asphalt_seq1 1.1g 5119 Link
Fine_asphalt_seq2 1.3g 11897 Link
Granite_tiles_seq1 1.2g 7194 Link
Granite_tiles_seq2 1.6g 10633 Link
Gravel_road1_seq1 0.8g 4883 Link
Gravel_road2_seq1 2.1g 11776 Link

Run with Your Data

The data should be organized in the following format:

dataroot
├── image_names.txt
├── rgb
│   ├── 00001.png
│   ├── 00002.png
│   ├── 00003.png
│   └── ......
└── times.txt

where image_names.txt contains the image names in /dataroot/rgb and times.txt contains the corresponding double type timestamps.

Experiments

Data Association

data_association

We compare the data association of our system with ORB and SIFT on the HD Ground dataset. The numbers of features and matching inliers are given. For the KCC, the correction results are projected to three coordinate axes and represent the estimation of the 3-DOF movement. The vertical axis is the confidence of estimated movement on the horizontal axis. The higher the value of the peak relative to other positions, the greater the confidence of motion estimation. The results show that the data association of KCC is more stable for various ground texture images.

Visual Odometry

This experiment is conducted on our PathTex dataset. The left figure shows the trajectories produced by our system and GT-SLAM on 4 sequences. The right figure provides the comparison of error distributions of different systems on the Gravel_road2_seq1 sequence, where the vertical axis is the proportion of pose errors that are less than the given error threshold on the horizontal axis.

Loop Closure

These two figures show the performance difference of GroundSLAM with and without loop correction on the Fine_asphalt_seq2 sequence. It is seen that the pose errors are significantly decreased after the loop correction.