0


DM-VIO安装与运行自己数据集(ROS版本)

DM-VIO安装与运行自己数据集(ROS版本)

1、dm-vio安装

进入官方链接下载dm-vio和dm-vio-ros,基本上就是按照readme的操作来:
下载代码:

git clone https://github.com/lukasvst/dm-vio.git

安装gt-sam:

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

编译:

cd dm-vio
mkdir build
cd build
cmake ..
make -j

编译完成后,在build/bin目录下,就能看到可执行文件dmvio_dataset。接下来,就可以按照官方的方法跑数据了。(一般来说按照readme进行安装即可正常编译成功,主要在ROS版本容易出错)

2、dm-vio-ros安装

代码下载:

git clone https://github.com/lukasvst/dm-vio-ros.git

我是新建了一个ROS工程:dm-vio-ws,为了能让这个插件找到刚刚编译的dm-vio,所以一个偷懒的办法,就是在.bashrc加上一个环境变量(这一步很重要,不用修改CMakeLists.txt文件)

sudo gedit ~/.bashrc
export DMVIO_BUILD=/home/xtz/dm-vio-master/build

然后编译:

catkin_make
source devel/setup.bash

3、使用自己的数据集:

3.1运行euro数据集

该代码默认配置为euroc数据集(程序里面包括了euroc数据的外参),所以只需要添加相机模型camera.txt和IMU.taml文件即可运行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

第一个命令,生成相机内参文本文件
第二个命令,读取 camera.txt和euroc.yaml(IMU内参),运行节点
第三个命令:运行数据包。

3.2运行自己的数据集

修改dm-vio工程里面的IMUSettings.cpp文件里面IMU到CAM的外参(void IMUCalibration::initDefault()),下面是我自己的外参:

   m << 0.999265 , 0.0338909, -0.0178914,
          0.0167624 , 0.0333074, 0.999305,
          0.0344632 , -0.99887 , 0.0327149;
   p <<-0.0263343,  0.0107831, -0.0136551;

然后重新编译:

make -j4

修改dm-vio-ws(ROS工程里面的话题名称):

    ros::Subscriber imageSub = nh.subscribe("/camera/color/image_raw", 3, &vidCb);
    ros::Subscriber imuSub = nh.subscribe("/camera/imu", 50, &imuCb);

重新编译:

catkin_make -j4

编译成功之后,就可以运行自己的数据集了,首先准备cam.txt和IMU.txt文件。
请添加图片描述
`请添加图片描述
我使用的IMU内参和相机内参文件。
运行:

roscore
source ./devel/setup.bash
rosrun dmvio_ros node calib=/home/xtz/dm_vio_ws/src/config/camera.txt settingsFile=/home/xtz/dm_vio_ws/src/config/imu.yaml mode=0 nogui=0 preset=0 useimu=1 quiet=1 init_requestFullResetNormalizedErrorThreshold=0.8 init_pgba_skipFirstKFs=1 setting_weightZeroPriorDSOInitX=5e09 setting_weightZeroPriorDSOInitY=5e09

运行成功:
请添加图片描述

请添加图片描述

4、论文:

链接: 论文地址


本文转载自: https://blog.csdn.net/weixin_42608723/article/details/129486028
版权归原作者 爱吃洋芋坨坨的麻雀 所有, 如有侵权,请联系我们删除。

“DM-VIO安装与运行自己数据集(ROS版本)”的评论:

还没有评论