1、下载源码
https://github.com/lukasvst/dm-vio
https://github.com/lukasvst/dm-vio-ros
2、编译
编译主要有两点需要注意:
1)pangolin的版本需要是0.6;
由于我系统里面的版本不是0.6,为了避免冲突,我编译到指定目录下,然后在CMakeLists.txt中添加位置;
a、cmake -DCMAKE_INSTALL_PREFIX=/xxx/x ..指定安装位置;
b、修改DM-VIO中的CMakeLists.txt找到该安装位置相应的库文件及头文件
include_directories(/home/xx/source-code/DM-VIO_ws/pangolin-06-install-dir/include)
link_directories(/home/xx/source-code/DM-VIO_ws/pangolin-06-install-dir/lib)
且在链接处添加
/home/xx/source-code/DM-VIO_ws/pangolin-06-install-dir/lib/libpangolin.so
2)gtsam的版本也需要4.2a6;
同理跟上面一样;
可能会出现的问题:
error: main.o: undefined reference to symbol 'glTexImage2D':解决方式在链接里面添加-lGLEW;
libpthread.so.0: error adding symbols: DSO missing from command line:解决方式在链接里面添加-lpthread -lm
;
undefined reference to symbol 'pthread_create……':解决方式SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread")
libboost_program_options.so.1.65.1: 无法添加符号: DSO missing from command line:解决方式:添加link_libraries("/usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1")或者直接在链接里添加/usr/local/lib/boost/lib/libboost_filesystem.so.1.65.1
libtbb.so.2: 无法添加符号:DSO missing from command line:解决方式:先locate libtbb.so.2
,找到对应位置,再link_libraries("/usr/lib/x86_64-linux-gnu/libtbb.so.2")或者在链接里添加/usr/lib/x86_64-linux-gnu/libtbb.so.2;
3、下载数据包V2_01_easy.bag(官网上有地址)
4、运行
rosrun dmvio_ros node calib=./camera_euroc.txt settingsFile=/home/gary/source-code/DM-VIO_ws/src/dm-vio/configs/euroc.yaml mode=1 nogui=0 preset=1 useimu=1 quiet=1 init_requestFullResetNormalizedErrorThreshold=0.8 init_pgba_skipFirstKFs=1
5、效果