Jetson AGX xavier 搭建ORB_SLAM3(ubuntu18)
ORB_SLAM3 :
Github: https://github.com/UZ-SLAMLab/ORB_SLAM3
1.安装依赖
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
可以新建一个文件夹gedit install Dependences 输入上述指后通过chmod +x install Dependences 增加执行命令最后./ install Dependences
2.安装opencv3 :
https://docs.opencv.org/3.1.0/d7/d9f/tutorial_linux_install.html(本人用的是opencv3.2)
git clone https://github.com/opencv/opencv.git
git chekcout 3.3.1
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local …
make -j3
make install
可以使用pkg-config opencv --modversion 查看opencv版本,在ORB SLAM3中规定使用的opencv的版本不能低于3.0。
3.安装 Eigen3
sudo apt install libeigen3-dev
4.安装 Pangolin
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake … -DCMAKE_BUILD_TYPE=Release
make -j 3
make install
注意:在执行make -j 3时可能会出现以下问题:
src/CMakeFiles/pangolin.dir/build.make:662: recipe for target ‘src/CMakeFiles/pangolin.dir/video/video_output.cpp.o’ failed
make[2]: *** [src/CMakeFiles/pangolin.dir/video/video_output.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs…
src/CMakeFiles/pangolin.dir/build.make:638: recipe for target ‘src/CMakeFiles/pangolin.dir/video/video.cpp.o’ failed
make[2]: *** [src/CMakeFiles/pangolin.dir/video/video.cpp.o] Error 1
CMakeFiles/Makefile2:135: recipe for target ‘src/CMakeFiles/pangolin.dir/all’ failed
make[1]: *** [src/CMakeFiles/pangolin.dir/all] Error 2
Makefile:127: recipe for target ‘all’ failed
make: *** [all] Error 2
也就是与ffmpeg相关的错误,经过多次尝试后发现可以到Pagolin/src文件夹下,在CMakeList.txt中删去下面这段代码(屏蔽掉ffmpeg的影响):
find_package(FFMPEG QUIET)
if(BUILD_PANGOLIN_VIDEO AND FFMPEG_FOUND)
set(HAVE_FFMPEG 1)
list(APPEND INTERNAL_INC ${FFMPEG_INCLUDE_DIRS} )
list(APPEND LINK_LIBS ${FFMPEG_LIBRARIES} )
list(APPEND HEADERS ${INCDIR}/video/drivers/ffmpeg.h)
list(APPEND SOURCES video/drivers/ffmpeg.cpp)
list(APPEND VIDEO_FACTORY_REG RegisterFfmpegVideoFactory )
list(APPEND VIDEO_FACTORY_REG RegisterFfmpegVideoOutputFactory )
if(_GCC_)
# FFMPEG is a real pain for deprecating the API.
set_source_files_properties(video/drivers/ffmpeg.cpp PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations")
endif()
message(STATUS "ffmpeg Found and Enabled")
endif()
5.安装DBoW2 and g2o
DBoW2主要用于回环检测,g2o(General Graph Optimization)主要用于图优化。
ORB-SLAM3的源码包自带DBoW2 and g2o,编译时会自动安装。
6.安装ORB SLAM3
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
cd ORB-SLAM3/
chmod +x build.sh
sudo ./build.sh
可能遇到的问题1:
x3D = x3D_h.get_minor<3,1>(0,0) / x3D_h(3); error: no match for ‘operator/_
将出现问题的文件中的这一句换成:
x3D = cv::Matx31f(x3D_h.get_minor<3,1>(0,0)(0) / x3D_h(3), x3D_h.get_minor<3,1>(0,0)(1) / x3D_h(3), x3D_h.get_minor<3,1>(0,0)(2) / x3D_h(3));
可能遇到的问题2:
version `OPENSSL_1_1_1’ not found (required by /usr/local/lib/libssl.so.1.1)
解决方法:
先确认了下问题,使用命令objdump -tT libssl.so.1.1 |grep OPENSSL_1_1_
发现库文件里只有OPENSSL_1_1_0, 没有 OPENSSL_1_1_1。
或者使用 openssl version 查看版本。
解决方法:
首先:
去https://www.openssl.org/下载最新版本,目前 是 openssl-1.1.0l.tar.gz。
tar xvf openssl-1.1.0g.tar.gz
cd openssl-1.1.0g
./config
make
make install
然后:
sudo mv /usr/local/lib/libssl.so.1.1 /usr/local/lib/libssl.so.1.1.old
sudo cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/local/lib/
最后:
sudo mv /usr/local/lib/libcrypto.so.1.1 /usr/local/lib/libcrypto.so.1.1.old
sudo cp /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/local/lib/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)