进入官方链接 ,基本上就是按照readme的操作来:
下载代码:
git clone https://github.com/lukasvst/dm-vio.git
安装gtsam:
sudo apt install libtbb-dev
git clone https://github.com/borglab/gtsam.git
cd gtsam
git checkout 4.2a6 # not strictly necessary but this is the version tested with.
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
sudo make install
安装opencv:
sudo apt-get install libopencv-dev
安装pangolin:
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 .
sudo make install
这里要注意,如果电脑里没有pangolin,是可以编译的,但是不会生成可执行文件,所以这个仍然是必须安装的库,此外,必须是0.6版本。
git checkout v0.6
编译之前,进入到CMakeLists.txt, 19行增加regex:
find_package(Boost COMPONENTS system thread filesystem chrono serialization date_time timer regex)
编译:
cd dm-vio
mkdir build
cd build
cmake ..
make -j
编译完成后,在build/bin目录下,就能看到可执行文件dmvio_dataset。接下来,就可以按照官方的方法跑数据了。
接下来是ros插件的安装,由于市面上的代码和数据都是ros版的,使用起来比较方便。随便进入一个目录,推荐是刚刚安装的dm-vio的一个子目录下:
git clone https://github.com/lukasvst/dm-vio-ros.git
为了能让这个插件找到刚刚编译的dm-vio,所以一个偷懒的办法,就是在.bashrc加上一个环境变量:
sudo gedit ~/.bashrc
在最后面,加上:
export DMVIO_BUILD=/YOURPATH/TO/dm-vio/build
catkin_make之前,仍然需要修改CMakeLists.txt,85行之后,增加一句:
add_dependencies(${PROJECT_NAME}_node ${PROJECT_NAME}_generate_messages_cpp)
不然编译的时候会因为找不到生成的msg格式而报错,最后就是:
catkin_make
source devel/setup.bash
尝试euroc数据集:
首先要在config里加上euroc的相机模型:
echo -e "458.654 457.296 367.215 248.375 -0.28340811 0.07395907 0.00019359 1.76187114e-05\n752 480\ncrop\n640 480\n" > camera.txt
就可以跑了:
rosrun dmvio_ros node calib=/PATH/TO/camera.txt settingsFile=/PATH/TO/dm-vio/configs/euroc.yaml mode=1 nogui=0 preset=1 useimu=1 quiet=1 init_requestFullResetNormalizedErrorThreshold=0.8 init_pgba_skipFirstKFs=1
rosbag play V2_01_easy.bag
效果如下,直接法的VIO效果真炫!
论文地址:https://arxiv.org/pdf/2201.04114.pdf
TODO,待续