DSL
Project page: https://sites.google.com/view/dsl-ram-lab/
Monocular Direct Sparse Localization in a Prior 3D Surfel Map
RAM-LAB.
Authors: Haoyang Ye, Huaiyang Huang, and Ming Liu fromPaper and Video
Related publications:
@inproceedings{ye2020monocular,
title={Monocular direct sparse localization in a prior 3d surfel map},
author={Ye, Haoyang and Huang, Huaiyang and Liu, Ming},
booktitle={2020 IEEE International Conference on Robotics and Automation (ICRA)},
pages={8892--8898},
year={2020},
organization={IEEE}
}
@inproceedings{ye20213d,
title={3D Surfel Map-Aided Visual Relocalization with Learned Descriptors},
author={Ye, Haoyang and Huang, Huaiyang and Hutter, Marco and Sandy, Timothy and Liu, Ming},
booktitle={2021 International Conference on Robotics and Automation (ICRA)},
pages={5574-5581},
year={2021},
organization={IEEE}
}
Video: https://www.youtube.com/watch?v=LTihCBGcURo
Dependency
- Pangolin.
- CUDA.
- Ceres-solver.
- PCL, the default version accompanying by ROS.
- OpenCV, the default version accompanying by ROS.
Build
git submodule update --init --recursive
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j8
Example
The sample config file can be downloaded from this link.
To run the example:
[path_to_build]/src/dsl_main --path "[path_to_dataset]/left_pinhole"
Preparing Your Own Data
- Collect LiDAR and camera data.
- Build LiDAR map and obtain LiDAR poses (the poses are not necessary).
- Pre-process LiDAR map to make the
[path_to_dataset]/*.pcd
map file containsnormal_x, normal_y, normal_z
fields (downsample & normal estimation). - Extract and undistort images into
[path_to_dataset]/images
. - Set the first camera pose to
initial_pose
and other camera parameters in[path_to_dataset]/config.yaml
.
Note
This implementation of DSL takes Ceres Solver as backend, which is different from the the implementation of the original paper with DSO-backend. This leads to different performance, i.e., speed and accuracy, compared to the reported results.
Credits
This work is inspired from several open-source projects, such as DSO, DSM, Elastic-Fusion, SuperPoint, DBoW2, NetVlad, LIO-mapping and etc.
Licence
The source code is released under GPL-3.0.