1 依赖安装
1.1 Pangolin
1.2 OpenCV
1.3 Eigen3
2 ORB_SLAM2安装
cd ORB_SLAM2
chmod a+x build.sh
./build.sh
3 运行效果
- 处理 TUM 数据集
下载 associate.py 放入数据集的根目录
python associate.py rgb.txt depth.txt > associated.txt
- 在 orb_slam2 文件夹下创建 data 文件夹,放入处理好的 TUM 数据集
- 在 orb_slam2 根目录下运行
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml data/rgbd_dataset_freiburg3_walking_xyz data/rgbd_dataset_freiburg3_walking_xyz/associated.txt
4 问题
- 如果编译过程中出现error: usleep() 没有声明的情况,在 include 文件夹下对应的 System.h 文件中加入以下声明
#include<unistd.h>
- /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_imgcodecs3.so.3.3.1:对‘TIFFReadDirectory@LIBTIFF_4.0’
在CMakeLists.txt文件文件中添加:
target_link_libraries(${PROJECT_NAME}
${OpenCV_LIBS} /usr/lib/x86_64-linux-gnu/libtiff.so.5
)
- 删除orb_slam下的build文件夹,直接打开终端
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j8
5 编译build_ros
5-1 编译问题
- [rosbuild] rospack found package “ORB_SLAM2” at “”, but the current
directory is “/home/angelo/ORB_SLAM2/Examples/ROS/ORB_SLAM2”. You
should double-check your ROS_PACKAGE_PATH to ensure that packages
are found in the correct precedence order.
sudo ln -s ~/orb_slam2/Examples/ROS/ORB_SLAM2 /opt/ros/kinetic/share/ORB_SLAM2
- /home/zxy/orb_slam2/Examples/ROS/ORB_SLAM2/…/…/…/Thirdparty/g2o/g2o/types/…/core/jacobian_workspace.h:30:22:
fatal error: Eigen/Core: 没有那个文件或目录
***在cmakelists中加入:
include_directories("/usr/include/eigen3")
- undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’
在cmakelists中加入: -lboost_system
set(LIBS
${OpenCV_LIBS}
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
-lboost_system
)
5-2 运行
rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM2/Asus.yaml
- Failed to open settings file at: Examples/ROS/ORB_SLAM2/Asus.yaml
执行文件同时连接了opencv2 与 opencv3
在保留之前安装的OPENCV2的情况下在电脑上再安装一个OPENCV3
cd opencv-3.4.5
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
sudo apt-get install qt5-default
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DWITH_CUDA=OFF ..
make -j8
sudo make install
安装OPENCV3后,修改ORB-SLAM2/CMakeLists.txt,将自己安装opencv3库的路径设置到OpenCV_DIR中
set(OpenCV_DIR /usr/local/opencv3/share/OpenCV)