Jetson AGX xavier 搭建ORB_SLAM3(ubuntu18)

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/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值