怎样才能创建网站,全国哪个县网站做的最好,个体户网站建设,实例 久久建筑网文章目录 Openvslam 学习报告什么是Openvslam概念特点 安装和运行OpenVSLAM克隆源代码安装依赖库测试#xff08;环境已经安装成功#xff09;运行运行失败的总结运行成功 系统设计模块和函数接口调用流程流程图参考资料 Openvslam 学习报告
什么是Openvslam
概念
OpenVSL… 文章目录 Openvslam 学习报告什么是Openvslam概念特点 安装和运行OpenVSLAM克隆源代码安装依赖库测试环境已经安装成功运行运行失败的总结运行成功 系统设计模块和函数接口调用流程流程图参考资料 Openvslam 学习报告
什么是Openvslam
概念
OpenVSLAMVisual SLAM是一个开源的视觉定位与地图构建Visual Simultaneous Localization and MappingVisual SLAM库。它旨在通过使用单目相机、双目相机、RGB-D相机或者其他传感器实现实时的相机定位和地图构建。Visual SLAM 是一种技术可以使机器例如机器人、车辆或者无人机在未知环境中通过感知视觉信息实时地进行定位和建立地图。使开发者能够利用相机捕获的图像数据来定位相机自身并创建环境地图。它结合了特征提取、特征匹配、姿态估计、地图构建等核心技术以实现准确和实时的相机定位和地图构建。
特点
多传感器的支持实时性能开源易用
安装和运行OpenVSLAM
克隆源代码
git clone https://github.com/lp-research/openvslam安装依赖库
安装Ubuntu系统依赖
sudo apt update -y
sudo apt upgrade -y --no-install-recommends
# basic dependencies
sudo apt install -y build-essential pkg-config cmake git wget curl unzip
# g2o dependencies
sudo apt install -y libatlas-base-dev libsuitesparse-dev
# OpenCV dependencies
sudo apt install -y libgtk-3-dev
sudo apt install -y ffmpeg
sudo apt install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavresample-dev
# eigen dependencies
sudo apt install -y gfortran
# other dependencies
sudo apt install -y libyaml-cpp-dev libgoogle-glog-dev libgflags-dev# (if you plan on using PangolinViewer)
# Pangolin dependencies
sudo apt install -y libglew-dev安装Eigen矩阵库
cd /Desktop/study/dir
wget -q http://bitbucket.org/eigen/eigen/get/3.3.4.tar.bz2
tar xf 3.3.4.tar.bz2
rm -rf 3.3.4.tar.bz2
cd eigen-eigen-5a0156e40feb
mkdir -p build cd build
cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr/local \..
make -j4
sudo make install安装OpenCV库
cd /Desktop/study/dir
wget -q https://github.com/opencv/opencv/archive/3.4.0.zip
unzip -q 3.4.0.zip
rm -rf 3.4.0.zip
cd opencv-3.4.0
mkdir -p build cd build
cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr/local \-DENABLE_CXX11ON \-DBUILD_DOCSOFF \-DBUILD_EXAMPLESOFF \-DBUILD_JASPEROFF \-DBUILD_OPENEXROFF \-DBUILD_PERF_TESTSOFF \-DBUILD_TESTSOFF \-DWITH_EIGENON \-DWITH_FFMPEGON \-DWITH_OPENMPON \..
make -j4
sudo make install安装DBoW2
cd /Desktop/study/dir
git clone https://github.com/shinsumicco/DBoW2.git
cd DBoW2
mkdir build cd build
cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr/local \..
make -j4
sudo make install安装g2o
cd /Desktop/study/dir
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
git checkout 9b41a4ea5ade8e1250b9c1b279f3a9c098811b5a
mkdir build cd build
cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr/local \-DCMAKE_CXX_FLAGS-stdc11 \-DBUILD_SHARED_LIBSON \-DBUILD_UNITTESTSOFF \-DBUILD_WITH_MARCH_NATIVEON \-DG2O_USE_CHOLMODOFF \-DG2O_USE_CSPARSEON \-DG2O_USE_OPENGLOFF \-DG2O_USE_OPENMPON \..
make -j4
sudo make install安装Pangolin库
cd /Desktop/study/dir
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
git checkout ad8b5f83222291c51b4800d5a5873b0e90a0cf81
mkdir build cd build
cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr/local \..
make -j4
sudo make install编译源码
cd /Desktop/study/openvslam
mkdir build cd build
cmake \-DBUILD_WITH_MARCH_NATIVEON \-DUSE_PANGOLIN_VIEWERON \-DUSE_SOCKET_PUBLISHEROFF \-DUSE_STACK_TRACE_LOGGERON \-DBOW_FRAMEWORKDBoW2 \-DBUILD_TESTSON \..
make -j4测试环境已经安装成功 运行 运行失败的总结
爆红是我改过代码之后的输出。可能是爆内存了。听取老师的建议后我租了服务器。并且通过查阅资料发现可以使用Docker一键安装。
运行成功
$ docker pull celinachild/openvslam:latest$ docker run --gpus all -it --ipchost --nethost --privileged -e DISPLAYunix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw -e NVIDIA_DRIVER_CAPABILITIESall celinachild/openvslam# for mapping
$ ./run_video_slam -v ./orb_vocab/orb_vocab.dbow2 -m ./aist_living_lab_1/video.mp4 -c ./aist_living_lab_1/config.yaml --no-sleep --map-db map.msg# for localization
$ ./run_video_localization -v ./orb_vocab/orb_vocab.dbow2 -m ./aist_living_lab_2/video.mp4 -c ./aist_living_lab_2/config.yaml --no-sleep --map-db map.msg系统设计
OpenVSLAM的整体系统设计可以概括为以下几个关键方面
相机模型和传感器输入OpenVSLAM支持多种不同类型的相机模型和传感器输入包括单目、双目、RGB-D相机等。特征提取和跟踪OpenVSLAM使用视觉特征来进行定位和建图。特征提取和跟踪模块负责检测图像中的关键点并在连续帧之间跟踪这些特征点。视觉里程计这个模块负责计算相机在连续帧之间的运动估计以确定相机的位置和姿态。回环检测OpenVSLAM包括回环检测模块用于识别在不同时间点拍摄的相似帧并纠正可能的漂移。建图建图模块将特征点和运动估计转化为地图用于表示环境的三维结构。优化优化模块用于全局地图优化以提高定位的准确性和地图的一致性。可视化和输出OpenVSLAM还包括可视化工具和输出模块以便于用户查看定位和地图结果。
模块和函数接口
OpenVSLAM的代码基本上按照上述系统设计分为多个模块每个模块包含多个函数和类。以下是一些主要模块和它们的功能
FeatureExtractor 模块负责特征点提取。Initializer 模块执行初始化操作例如初始化视觉里程计。Tracking 模块执行相机的跟踪和定位。LoopDetector 模块用于检测回环。Map 模块管理地图的结构包括关键帧和地图点。Optimizer 模块执行全局地图优化。System 模块系统的核心协调各个模块的运行。
调用流程
OpenVSLAM的调用流程通常涉及以下步骤
初始化OpenVSLAM系统选择相机类型和配置。提供传感器输入如图像序列或相机数据流。执行特征提取和跟踪计算视觉里程计。在运行中回环检测模块可能会触发来检测回环。定期执行全局地图优化以提高地图的一致性和定位精度。输出定位结果和地图数据以便可视化或后续应用。
流程图 参考资料
lp-research/openvslam: OpenVSLAM Fork for LP-Research (github.com)
zm0612/openvslam-comments: openvslam的注释版代码 (github.com)
https://hub.docker.com/r/celinachild/openvslam
https://arxiv.org/abs/1910.01122 (论文OpenVSLAM: A Versatile Visual SLAM Framework)
ChatGPT (openai.com)