[TOC]
Overview
-
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
Build
- 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
Errors when make
-
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
- 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
PREVIOUSIMU数据滤波
NEXT3D欧式变换之AB两坐标系间变换