Skip to content

shxxie/LCSHFS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spherical Harmonics based Fast Structure Representation (SH-FS)

Overview

Demo code for paper Fast Structural Representation and Structure-aware Loop Closing for Visual SLAM. SH-FS can be applied in visual SLAM systems to calculate the structural change in a fast way, thus can solve the perceptual aliasing problem with structure-aware loop closing method.

System Overview

In the demo code, we present:

  • Calculation method for Spherical Harmonics based Fast Structural representation (SH-FS)
  • Free space check process for loop failure identification

IROS, 2022.


License

License: GPL v3

This demo repository is released under GPLv3 License. (see LICENSE)

To use this work in academic work, please cite,

@article{xie2022fast,
  title={Fast Structural Representation and Structure-aware Loop Closing for Visual SLAM},
  author={Xie, Shuxiang and Ishikawa, Ryoichi and Sakurada, Ken and Onishi, Masaki and Oishi, Takeshi},
  year={2022}
}

The preprint version paper can be found here.


Run Demo

Dependencies

Install requirements for main program:

sudo apt install libeigen3-dev

To properly install this program, CMAKE should also be preinstalled.

Testing

To see the result of this simple demo:

mkdir build
cd build
cmake .. 
make 
./LD_Graph

The program takes four arguments.

  • data path of the map before PGO
  • data path of the map after PGO
  • id of start node in the loop
  • id of end node in the loop

Data

We provide some example scenes to show the performance of the algorithm. Please download the data from

This demo includes the implementation of SH-FS and algorithm for loop failure detection. You may implement this algorithm into your own SLAM systems.

Visualize the map

To visualize the map, use

python scripts/visulize.py

You may change the parameters in scripts/config.py to specify which map you want to draw, whehter to draw 3D points, and other necessary options. The requirements of this program are

pip install msgpack
pip install scipy
pip install matplotlib

Create original data

If you want to test your own data with this demo code, you need to create the msgpack file with certain data structure. The data structure used by our samples is the following,

├── points_t
│   ├── id            # 3D point id
│   └── coord_w       # 3D point position in world coordinate 
│ 
└── nodes_t
    ├── id            # node id
    ├── rotation      # l2w rotation of node represented in quarternion 
    ├── translation   # l2w translation of node
    ├── edges         # connection between nodes in pose graph 
    └── parent        # parent in pose graph

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published