一、DM-VIO:
克隆仓库:
git clone https://github.com/lukasvst/dm-vio.git
安装依赖:
sudo apt-get install cmake libsuitesparse-dev libeigen3-dev libboost-all-dev libyaml-cpp-dev
sudo apt-get install libopencv-dev
安装GTSAM (必需)(其实只需要编译即可,不需要install)(一定要4.2a6):
# 在home路径下我创建了software文件夹,我都是克隆到这个文件夹下的
sudo apt install libtbb-dev
git clone https://github.com/borglab/gtsam.git
cd gtsam
git checkout 4.2a6
mkdir build && cd build
cmake -DGTSAM_POSE3_EXPMAP=ON -DGTSAM_ROT3_EXPMAP=ON -DGTSAM_USE_SYSTEM_EIGEN=ON -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
make -j
编译以后,在build/gtsam
路径下,会出现config.h
和dllexport.h
两个文件,我们把这两个文件放到build
的上一路径下,也就是gtsam
文件夹下。
安装Pangolin(必需)(其实只需要编译即可,不需要install)(一定要0.6):
# 在home路径下我创建了software文件夹,我都是克隆到这个文件夹下的
sudo apt install libgl1-mesa-dev libglew-dev pkg-config libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
git checkout v0.6
mkdir build
cd build
cmake ..
cmake --build .
一些其它可选的包:
Librealsense:
如果你要使用IntelRealsense相机,这是必须的,详情请查看https://github.com/lukasvst/dm-vio/blob/master/doc/RealsenseLiveVersion.md,如果你要使用它,并且你的ros版本是ROS1,那么你应该选择librealsense2.50版本,因为realsense-ros包支持ROS1的最后版本是2.3.2,这个版本的rospackage只支持2.50版本的SDK。
GTest (可选):
我没装,不到有啥用
ziplib 可选):
我的ubuntu20.04貌似系统自带。
编译DM-VIO:
修改CMakelist.txt:
注释:find_package(GTSAM REQUIRED)
改成:
message(STATUS "-------------------------------------------------------------------")
set(GTSAM_DIR $ENV{HOME}/software/gtsam4.2a6/build)
MESSAGE(${GTSAM_DIR})
find_package(GTSAM EXACT)
message(STATUS "-------------------------------------------------------------------")
注释:find_package(Pangolin 0.2 QUIET)
改成:
message(STATUS "-------------------------------------------------------------------")
set(Pangolin_DIR $ENV{HOME}/software/pangolin0.6/build)
MESSAGE(${Pangolin_DIR})
find_package(Pangolin 0.6 EXACT)
message(STATUS "-------------------------------------------------------------------")
为了验证修改寻找库的路径,我一般会加上打印版本,以验证修改成功:
在add_definitions("-DENABLE_SSE")
前,加上:
message(STATUS "-------------------------------------------------------------------")
MESSAGE("GTSAM VERSION:")
MESSAGE(${GTSAM_VERSION})
MESSAGE("Pangolin VERSION:")
MESSAGE(${Pangolin_VERSION})
MESSAGE("EIGEN3 VERSION:")
MESSAGE(${EIGEN3_VERSION})
MESSAGE("OPENCV VERSION:")
MESSAGE(${OpenCV_VERSION})
message(STATUS "-------------------------------------------------------------------")
二、dm-vio-ros:
编译:
我是按照这个文章走的流程:
https://blog.youkuaiyun.com/iwanderu/article/details/126117565
其中只需要修改这个功能包里的CMakelist.txt:
注释:find_package(GTSAM REQUIRED)
改成:
message(STATUS "-------------------------------------------------------------------")
set(GTSAM_DIR $ENV{HOME}/software/gtsam4.2a6/build)
MESSAGE(${GTSAM_DIR})
find_package(GTSAM EXACT)
message(STATUS "-------------------------------------------------------------------")
运行数据集:
使用作者脚本运行数据集:
https://blog.youkuaiyun.com/weixin_43468805/article/details/125614169
自己下载:
自行去euroc数据集网站下载V2_01_easy.bag
然后按照这篇文章最后的办法去运行:https://blog.youkuaiyun.com/iwanderu/article/details/126117565
注意:rosrun
前要roscore