- The first Visual-iGPS tightly-coupled SLAM system, which optimizes iGPS and Monocular Visual-SLAM jointly, reached a millimeter (mm) level of localization.
- A novel Multiview-Alignment-based method of spatial calibration is proposed to calculate the relationship between iGPS and the camera.
- An online temporal offset calibration algorithm based on a constant motion model.
- The Global Localization is enabled by pose-graph optimization and Global Bundle Adjustment with loop closure, which optimal combinates iGPS and camera.
We have tested the library in Ubuntu 16.04 and 18.04, but it should be easy to compile in other platforms. A powerful computer (e.g. i7) will ensure real-time performance and provide more stable and accurate results.
We use the new thread and chrono functionalities of C++11.
We use Pangolin for visualization and user interface. Dowload and install instructions can be found at: https://github.com/stevenlovegrove/Pangolin.
We use OpenCV to manipulate images and features. Dowload and install instructions can be found at: http://opencv.org. Required at leat 3.0. Tested with OpenCV 3.2.0 and 4.4.0.
Required by g2o (see below). Download and install instructions can be found at: http://eigen.tuxfamily.org. Required at least 3.1.0.
We use modified versions of the DBoW2 library to perform place recognition and g2o library to perform non-linear optimizations. Both modified libraries (which are BSD) are included in the Thirdparty folder.
Required to calculate the alignment of the trajectory with the ground truth. Required Numpy module.
- (deb)
sudo apt install libpython2.7-dev
, often installed when finish system installation
Clone the repository:
git clone https://github.com/LeonGoretzkatju/iGPS-MonoSLAM
cd iGPS-MonoSLAM
chmod +x build.sh
./build.sh
./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml your_dataset_path
cd evaluation/
python evaluate_ate_scale.py first_file second_file --based on args your choose