[PLS-VIO] Comparison of 4-parameter orthogonal expression and 2-parameter expression proposed by our paper of line features.
This repository is supplementary material that provides the simulation code for running and comparison results. After we generate the simulated straight line observations, we initialize them to obtain the straight line in the three-dimensional space and optimize the line landmarks. The code is the initial version, and it will be improved further in the comming months.
We compared the consuming time and accuracy of optimization, as the line observation noise (pixels) in the image increases. The accuracy is obtained by comparing the reconstructed straight line with the groundtruth of the 3D line landmark. In the experiment, we optimized the whole scene structure, and added 80 line landmarks and 600 poses to the optimizer at one time. From the experimental results, we can see that our 2-parameter expression and 4-parameter expression have the same optimization accuracy on the whole, but we optimize fewer parameters, the running time is only half of the 4-parameter expression, which improves the efficiency.
comparison of optimization consuming time[s] in different pixel noise level[pixel]
- | 0 | 1.5 | 3 | 4.5 |
---|---|---|---|---|
2-parameter | 20.54 | 20.34 | 20.38 | 20.66 |
4-parameter | 40.89 | 41.00 | 40.75 | 40.49 |
comparison of accuracy[cm] in different pixel noise level[pixel]
- | 0 | 1.5 | 3 | 4.5 |
---|---|---|---|---|
2-parameter | 0.06 | 7.93 | 14.99 | 20.63 |
4-parameter | 0.05 | 5.34 | 10.65 | 16.17 |
1.1 Ubuntu and python
- Ubuntu 16.04 or Ubuntu18.04
- python3.
1.2. Dependency
- C++14 or C++17 Compiler
- Eigen 3.3.7
- OpenCV 3.3.9
- Cere-solver 2.0.0: Ceres Installation, remember to sudo make install.
Clone the repository and compile the project:
git clone https://github.com/xubogithub/Structural-and-Non-structural-line.git
cd ~/Structural-and-Non-structural-line-master/
mkdir build
cd build
cmake ..
make -j4
Notice: The executable file line_optimization is in the bin directory, and you can run it by ./line_optlimization
cd ../bin
./line_optlimization
We provide some visualizaton tools for comparison and analysis. Visual simulation animation:
python draw_points.py
Visual simulation trajectory and line landmarks:
python plot_simulate.py
Visual results of the code:
python plot_result.py
- Leveraging Structural Information to Improve Point Line Visual-Inertial Odometry.
@misc{xu2021leveraging,
title={Leveraging Structural Information to Improve Point Line Visual-Inertial Odometry},
author={Bo Xu and Peng Wang and Yijia He and Yu Chen and Yongnan Chen and Ming Zhou},
year={2021},
eprint={2105.04064},
archivePrefix={arXiv},
primaryClass={cs.RO}
}
If you use the code for your academic research, please cite our related papers. And we use vio_data_simulation as our basic code and generate the simulation data.
Thank Dr. Yijia He very much. We are still working on improving the code reliability. For any technical issues, please contact Bo Xu [email protected] and Peng Wang [email protected].
The source code is released under GPLv3 license.