MultiCam-SLAM 实测

论文解析:多相机系统通用视觉 SLAM 框架的设计与评估

环境

https://github.com/neufieldrobotics/MultiCamSLAM

ubuntu 20.04
为了不影响其他代码,除了opencv安装到系统中, 其他第三方仓库均安装在home/$USER/Lib 里

BUILD

sudo apt -y install ros-noetic-desktop libopencv-dev

sudo apt -y install libgoogle-glog-dev libgflags-dev

源码编译libopencv-dev中不包含的sfm模块

mkdir -p ~/Lib/opencv4.2

mv opencv-4.2.0.tar.gz ~/Lib/opencv4.2

mv opencv_contrib-4.2.0.tar.gz ~/Lib/opencv4.2

cd ~/Lib/opencv4.2

tar -xvf opencv_contrib-4.2.0.tar.gz

tar -xvf opencv-4.2.0.tar.gz

mv opencv-4.2.0 opencv

mv opencv_contrib-4.2.0 opencv_contrib

cd opencv

mkdir build && cd build

cmake -D CMAKE_INSTALL_PREFIX=../install -D CMAKE_BUILD_TYPE=RELEASE -D WITH_OPENGL=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules ..

make -j16

make install

sudo cp -r /home/lucky/Lib/opencv4.2/opencv/install/include/opencv4/opencv2/sfm /usr/include/opencv4/opencv2/

sudo cp /home/lucky/Lib/opencv4.2/opencv/install/lib/libopencv_sfm.so.4.2.0 /usr/lib/x86_64-linux-gnu/libopencv_sfm.so.4.2.0

sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_sfm.so.4.2.0 /usr/lib/x86_64-linux-gnu/libopencv_sfm.so.4.2

sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_sfm.so.4.2 /usr/lib/x86_64-linux-gnu/libopencv_sfm.so

gtsam

mv gtsam-4.1.1.zip ~/Lib/

cd ~/Lib/

unzip gtsam-4.1.1.zip

cd gtsam-4.1.1

mkdir build && cd build

cmake .. -DCMAKE_INSTALL_PREFIX=../install

make -j16

make install

opengv

cd ~/Lib/

git clone https://github.com/laurentkneip/opengv

In Opengv's CMakeLists.txt file, add the following below cmake_minimum_required

add_compile_options(-std=c++17)

cd opengv

mkdir build && cd build

cmake .. -DCMAKE_INSTALL_PREFIX=../install

make install

DBoW2

cd ~/Lib/

git clone https://github.com/PushyamiKaveti/DBoW2

cd DBoW2

mkdir build && cd build

cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install

make install

DLib

cd ~/Lib/

git clone https://github.com/dorian3d/DLib

cd DLib

mkdir build && cd build

cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install

make install

Pangolin

cd ~/Lib/

unzip Pangolin-0.6.zip

cd Pangolin-0.6

mkdir build

cd build

cmake ..

make -j16

sudo make install

MultiCamSLAM

cuda可以不用

catkin_make -j16 \

-DCUDA_ROOT=/usr/local/cuda \ 

-DDBoW2_DIR=/home/lucky/Lib/DBoW2/build \

-DDLib_DIR=/home/lucky/Lib/DLib/build \

-Dopengv_DIR=/home/lucky/Lib/opengv/build \

-DGTSAM_DIR=/home/lucky/Lib/gtsam-4.1.1/build \

-DGTSAM_UNSTABLE_DIR=/home/lucky/Lib/gtsam-4.1.1/build \

-Dopengv_INC_DIR=/home/lucky/Lib/opengv/include

data准备

ls /work/data/MultiCam/ISEC_Ground1/

cam0 cam1 cam2 cam3 cam4 cam5 cam6

配置参数

ISEC_Ground1.cfg 内容:

debug_mode=0
data_path=/work/data/MultiCam/ISEC_Lab1
# calib_file_path=/home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/MCApps/params/MultiCam/ISEC_Lab1/calib/02_23_2022_3cams_camchain.yaml
# calib_file_path=/home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/MCApps/params/MultiCam/ISEC_Lab1/calib/02_23_2022_4cams_camchain.yaml
calib_file_path=/home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/MCApps/params/MultiCam/ISEC_Lab1/calib/02_23_2022_5cams_camchain.yaml
# calib_file_path=/home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/MCApps/params/MultiCam/ISEC_Lab1/calib/02_23_2022_cam0.yaml
# calib_file_path=/home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/MCApps/params/MultiCam/ISEC_Lab1/calib/02_23_2022_nov.yaml # 0 1 5 6
# calib_file_path=/home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/MCApps/params/MultiCam/ISEC_Lab1/calib/02_23_2022_NO_camchain.yaml # 2 5 6
# calib_file_path=/home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/MCApps/params/MultiCam/ISEC_Lab1/calib/02_23_2022_stereo_cams_camchain.yaml
# calib_file_path=/home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/MCApps/params/MultiCam/ISEC_Lab1/calib/02_23_2022_stereo_orbslam3.yaml
# calib_file_path=/home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/MCApps/params/MultiCam/ISEC_Lab1/calib/02_23_2022_orbslam3.yaml
images_path=/work/data/MultiCam/ISEC_Lab1/
kalibr=1
frontend_params_file=/home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/MCApps/params/lf_frontend.yaml
segmasks_path=segmasks
frames = 80 9092 2
radtan=1
ros=0
live_refocus=1
imgs_read=0


backend_params_file=/home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/MCApps/params/lf_backend.yaml

#Segmentation params
use_segment=0
read_segmask=0
mask_type = bmp #( 1 for image , 2 for csv)
seg_settings_file=/home/auv/ros_ws/src/MC_slam_pack/MCApps/params/SegmentSettings.yaml 

需要指定下列参数在src/MultiCamSLAM/MCApps/params/MultiCam/ISEC_Ground1.cfg中:

data_path=/work/data/MultiCam/ISEC_Ground1

calib_file_path=/home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/MCApps/params/MultiCam/calib/02_23_2022_5cams_camchain.yaml

images_path=/work/data/MultiCam/ISEC_Ground1/

需要指定下列参数在src/MultiCamSLAM/MCApps/params/lf_frontend.yaml中:

LogDir: /home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/log/

Vocabulary: /home/lucky/Lib/ORBvoc.txt

RUN

./devel/lib/MCApps/MCSlamapp --config_file src/MultiCamSLAM/MCApps/params/MultiCam/ISEC_Lab1/ISEC_Lab1.cfg

result

frontend:

LogDir: /home/lucky/ws_MultiCamSLAM/src/MultiCamSLAM/log/

slam_frontend.logFileName_ = "poses_landmark.txt"; // logFile_

slam_frontend.logFileName2_ = "poses_stats.txt"; // logFile2_

system:

DEFINE_string(traj_file, "./log/Tum_trajectory.txt", "trajectory file file path");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值