编译高博ORBSLAM2_with_pointcloud_map,用TUM数据集测试。
程序员文章站
2022-03-13 23:31:02
...
1、下载源代码
git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git
2、
cd ORBSLAM2_with_pointcloud_map
解压文件,出现两个文件夹:
将这两个文件夹拷贝到上级文件,其他文件夹删除。
编译g2o_with_orbslam2:
cd g2o_with_orbslam2
mkdir build
cd build
cmake ..
make
sudo make install
报错1:
解决:修改 g2o_with_orbslam2/g2o/types/slam2d/edge_se2_pointxy_bearing.cpp
将
t.setRotation(t.rotation().angle()+_measurement);
改为
t.setRotation((Eigen::Rotation2Dd)(t.rotation().angle()+_measurement));
报错2:
解决:修改g2o_with_orbslam2/g2o/solvers/eigen/linear_solver_eigen.h(注意:eigen3.2.8不用修改此处,以上版本需修改,如3.2.10) 我的eigen版本 3.2.10 。
将
typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, SparseMatrix::Index> PermutationMatrix;
改为
typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, SparseMatrix::StorageIndex> PermutationMatrix;
不出意外应该编译通过了。
编译ORB_SLAM2_modified
报错1:
解决:
sudo gedit CMkaeLists.txt
将
find_package(OpenCV 2.4.3 REQUIRED)
改为:
find_package(OpenCV REQUIRED)
报错2:
解决:新版本的OpenCV修改了接口名,将CV_LOAD_IMAGE_UNCHANGED 换为了 cv::IMREAD_UNCHANGED
报错3:
解决:重新编译DBoW2:
cd Thirdparty/DBoW2/
rm -rf build
mkdir build
cd build
cmake ..
make
不出意外编译应就通过了。
下载Vocabulary中的ORBvoc.txt文件,下载TUM数据集到data文件夹,下载associate.py到Examples的RGB文件夹下。
以rgbd_dataset_freiburg2_large_with_loop数据集为例
cd Examples/RGB-D/
python associate.py ../../data/rgbd_dataset_freiburg2_large_with_loop/rgb.txt ../../data/rgbd_dataset_freiburg2_large_with_loop/depth.txt > associations_loop.txt
然后
cd ../..
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml data/rgbd_dataset_freiburg2_large_with_loop Examples/RGB-D/associations_loop.txt
这次TUM数据集调试完毕。