使用 TX2 和 realsense D435i 相机运行 ORBSLAM3

您所在的位置:网站首页 ORBslam3安装运行 使用 TX2 和 realsense D435i 相机运行 ORBSLAM3

使用 TX2 和 realsense D435i 相机运行 ORBSLAM3

2023-11-09 08:31| 来源: 网络整理| 查看: 265

非 ROS 版本。 之后可能会更新 ROS 版本的 ORBSLAM3 配置指南。TODO

目录 TX2 刷机JetPack-4.6.1安装 realsense SDK 2.0编译 opencv-4.5.0编译 Pangolin-0.5编译运行 ORBSLAM3

TX2 刷机JetPack-4.6.1

在另外一台ubuntu系统的电脑或者虚拟机上(笔者的是ubuntu18.04虚拟机),下载并安装 NVIDIA SDK Manager。 下载地址:https://developer.nvidia.com/nvidia-sdk-manager 安装:

sudo apt install ./sdkmanager_[version]-[build#]_amd64.deb

安装完成后,终端执行 sdkmanager即可启动。

按照官方教程 Install Jetson Software with SDK Manager: https://docs.nvidia.com/sdk-manager/install-with-sdkm-jetson/index.html,刷机 JetPack。

各个版本的Jetpack的信息,包括对应的 ubuntu 版本,可以在这个网站查看: JetPack Archive: https://developer.nvidia.com/embedded/jetpack-archive。

刷机时需要将 TX2 和给 TX2 刷机的电脑连接在同一局域网下。

刷机完成后,环境中自带 eigen-3.3.4 以及 opencv-4.1.1,eigen 满足 ORBSLAM3 的版本要求,但是 opencv 不满足版本要求,所以需要额外的 opencv 。

安装 realsense SDK 2.0

TX2 安装教程:https://github.com/IntelRealSense/librealsense/blob/master/doc/installation_jetson.md 通过 DEB 包方式安装:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u sudo apt-get install librealsense2-utils sudo apt-get install librealsense2-dev

终端执行 realsense-viewer,能够打开一个可视化窗口,说明安装成功。

如果安装成功,在 CMakeLists.txt 中加入类似以下代码,就能使用 realsense 提供的库。

cmake_minimum_required(VERSION 3.1.0) # Find librealsense2 installed package find_package(realsense2 REQUIRED) # Enable C++11 set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) # Add the application sources to the target add_executable(${PROJECT_NAME} hello_librealsense2.cpp) # Link librealsense2 to the target target_link_libraries(${PROJECT_NAME} ${realsense2_LIBRARY}) 编译 opencv-4.5.0

最新的 ORBSLAM3(2022.04.29) CMakeLists.txt 文件里要求 OpenCV > 4.4。 选择合适版本下载:https://opencv.org/releases/

安装依赖:sudo apt install -y g++ sudo apt install -y cmake sudo apt install -y make 编译:cd opencv mkdir build cd build cmake .. make -j4 安装(可选):sudo make install 也可以选择不安装,之后在 CMakeLists.txt 文件里指定 opencv 库的路径即可。 编译 Pangolin-0.5

尝试过安装 Pangolin-0.6,但是有的依赖太新了,没有安装成功。 github 仓库:https://github.com/stevenlovegrove/Pangolin/tree/v0.5

安装依赖:sudo apt-get install libglew-dev sudo apt-get install cmake sudo apt-get install libpython2.7-dev sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev sudo apt-get install libjpeg-dev libpng12-dev libtiff5-dev libopenexr-dev 下载Pangolin-0.5,编译:cd Pangolin mkdir build cd build cmake .. make -j4 安装(可选):sudo make install 也可以选择不安装,之后在 CMakeLists.txt 文件里指定 Pangolin 库的路径即可。 编译运行 ORBSLAM3

github仓库:https://github.com/UZ-SLAMLab/ORB_SLAM3 ORBSLAM3 提供了 build.sh 脚本文件,该脚本首先编译第三方库 DBoW2, Sophus 和 g2o,然后解压 Vocabulary/ORBvoc.txt.tar.gz 文件,最后编译 ORBSLSM3。

以上编译过程都使用了 make -j加速编译,这容易导致编译过程中系统卡顿,甚至会降低编译速度,所以宜把 build.sh 文件里的 make -j改为 make -j4,使用 4 个线程编译。

编译 ORBSLAM3 的时候,首先会生成一个 ORBSLAM3 库,然后再基于该库编译 Examples 和 Examples_old 文件夹的子文件夹里相应的源文件,生成相应的可执行程序。 如果不需要生成所有的可执行程序,可以在 CMakeLists.txt 里注释掉,缩短编译时间。

执行脚本 build.sh,开始编译 如果之前安装了 opencv 和 Pangolin,就不需要修改 CmakeLists.txt 文件;如果只编译没安装,为了让 CMake 能够找到我们编译好的 opencv 和 Pangolin ,需要在在CmakeLists.txt 中指定库的路径:

... set(OpenCV_DIR opencv路径/opencv/build) find_package(OpenCV 4.4) ... set(Pangolin_DIR Pangolin路径/Pangolin/build) find_package(Pangolin REQUIRED) ...

即在相应的 find_package(…) 前指定路径到 build 文件夹。

执行 build.sh 文件:

cd ORB_SLAM3 chmod +x build.sh ./build.sh

等待完成编译即可。 如果 realsense SDK 没有安装成功,是不会生成 realsense 可执行程序的。

运行 这里运行 双目-惯性 例子,其它类似:

./Examples/Stereo-Inertial/stereo_inertial_realsense_D435i Vocabulary/ORBvoc.txt ./Examples/Stereo-Inertial/RealSense_D435i.yaml

笔者在运行该程序的时候,程序初始化阶段会出现段错误:Segmentation fault (core dumped),最后发现是 src/Settings.cc 文件中 运算符重载函数 ostream &operator



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3