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、效果

DM-VIO数据集测试_github