- Overview
- Build
- Dependencies
- Build
- Errors when make
- Run
-
code: https://github.com/zju3dv/PVIO
-
paper
@inproceedings{PRCV-LiYHZB2019, author={Jinyu Li and Bangbang Yang and Kai Huang and Guofeng Zhang and Hujun Bao}, title = {Robust and Efficient Visual-Inertial Odometry with Multi-plane Priors}, booktitle = {Pattern Recognition and Computer Vision - Second Chinese Conference, {PRCV} 2019, Xi'an, China, November 8-11, 2019, Proceedings, Part {III}}, series = {Lecture Notes in Computer Science}, volume = {11859}, pages = {283--295}, publisher = {Springer}, year = {2019} }
Note: 本博客主要是记录下在本人Ubuntu 16.04的PC平台上编译时遇到的问题和解决办法。
Build Dependencies- cmake 3.18.0
- GCC 9.3.0
- Eigen 3.3.7
- Ceres Solver 1.14.0
- OpenCV-3.3.1 (from ROS kinetic)
- FFMPEG 4.3.2
-
download
git clone https://github.com/zju3dv/PVIO.git
-
cmake
cd PVIO && mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release ..
Tips: 执行 cmake 过程中会下载 GIT_REPOSITORY,因网络原因可能导致部分下载失败,可改善网络或者多执行几次直到全部下载下来。
-
make
make -j1
-
error: ‘::av_packet_alloc’ has not been declared
解决办法:升级 FFMPEG(之前是FFMPEG2) 和 对应的 libavcodec
sudo add-apt-repository ppa:jonathonf/ffmpeg-4 sudo apt update sudo apt install ffmpeg ffmpeg -version sudo apt install libavcodec-dev
-
/usr/lib/x86_64-linux-gnu/libavutil.so: undefined reference to clEnqueueWriteImage@OPENCL_1.0
解决办法:
因我之前装了cuda8,libavutil.so 链接到了 cuda 中的 libOpenCL.so.1
使其链接到 /usr/lib/x86_64-linux-gnu/ 中的 libOpenCL.so.1 即可。
cd /usr/local/cuda-8.0/lib64 sudo unlink libOpenCL.so.1 sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0.0 libOpenCL.so.1
-
run with dataset
./pvio-pc/pvio-pc euroc:///home/cg/dev_sdb/datasets/ETH_ASL_Datasets/EuRoC_MAV/V1_01_easy/mav0 ../config/euroc.yaml



