Ubuntu20.04系统从零运行ORBSLAM3

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加

例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言


提示:以下是本篇文章正文内容,下面案例可供参考

1.安装ROS

bash 复制代码
wget http://fishros.com/install -O fishros && bash fishros

更换源

最后一步

查看ros版本

bash 复制代码
xx@xx-virtual-machine:~$ rosversion -d
<unknown>
xx@xx-virtual-machine:~$ rosversion ros
Cannot locate [ros]
damon@damon-virtual-machine:~$ 

ROS 似乎已经安装成功,但可能由于环境变量未正确设置导致 rosversion 无法正常工作。你可以尝试以下步骤确保 ROS 环境配置正确:

1. 检查 ROS 环境设置

确保你已经加载了 ROS 的环境配置文件,可以运行以下命令来加载:

bash 复制代码
source /opt/ros/noetic/setup.bash

这会将 ROS 环境加载到当前的终端会话中。

2. 更新 .bashrc 文件

为了每次打开终端时自动加载 ROS 环境,你可以将上述命令加入到 .bashrc 文件中:

bash 复制代码
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

然后重新加载 .bashrc

bash 复制代码
source ~/.bashrc

3. 重新检查 ROS 版本

确保 ROS 环境已经加载之后,再次运行以下命令查看版本:

bash 复制代码
rosversion -d

如果上述步骤仍未解决问题,请确认你已经正确安装了 ROS 并且路径 /opt/ros/noetic/ 下存在相关文件。如果有问题,可以再次安装或检查安装步骤。

4. 检查 Python 版本

如果还需要检查 Python 版本,运行以下命令:

bash 复制代码
python3 --version

这将返回你系统的 Python 3 版本。

通过这些步骤应该可以正确配置和查看 ROS 版本。如有其他问题,请告诉我!

2.安装 cmake-3.23.2

完全参考 ubuntu20.04安装并运行ORB_SLAM3(一路顺风版)

2.安装 Eigen 3.3.7

方法1: 通过系统包管理器安装

在 Ubuntu/Debian下你可以直接通过包管理器 apt 来安装 Eigen:

bash 复制代码
sudo apt-get update
sudo apt-get install libeigen3-dev

方法2:通过源码安装

如果你需要最新版本的 Eigen 或者想手动控制安装路径,可以通过源码安装。

bash 复制代码
git clone https://gitlab.com/libeigen/eigen.git
cd eigen
mkdir build && cd build
cmake ..
sudo make install

默认情况下,Eigen 将安装到 /usr/local/include/eigen3。

3.安装opencv-3.15 和 opencv_contrib-3.4.15

ros自带opencv4.2,这里安装opencv3.15与其共存

Ubuntu18.04 OpenCV-3.4.15安装

解压opencv-3.4.15.zip

bash 复制代码
unzip opencv-3.4.15.zip

解压 opencv_contrib-3.4.zip 放在 opencv-3.4.15文件夹下

bash 复制代码
unzip opencv_contrib-3.4.15.zip -d opencv-3.4.15

安装依赖

bash 复制代码
sudo apt-get update
sudo apt-get upgrade
# sudo apt-get install cmake  # 跳过,前面已装
sudo apt-get install build-essential
sudo apt-get install -y libopencv-dev
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev         # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev         # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran          # 优化opencv功能
sudo apt-get install ffmpeg
sudo apt-get install libeigen3-dev

安装Opencv

目录结构

bash 复制代码
virtual-machine:/opt/opencv-3.4.15$ ls
3rdparty  CMakeLists.txt   doc      modules                README.md
apps      CONTRIBUTING.md  include  opencv_contrib-3.4.15  samples
cmake     data             LICENSE  platforms
virtual-machine:/opt/opencv-3.4.15$ 

在 opencv 目录下创建 build 目录:

bash 复制代码
mkdir build
cd build

运行 CMake 配置: 在配置 CMake 时,确保 OPENCV_EXTRA_MODULES_PATH 的路径指向 opencv 目录下的 opencv_contrib:

bash 复制代码
cmake -D CMAKE_BUILD_TYPE=Release \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.15/modules \
      -D WITH_CUDA=OFF \
      ..

这里 .../opencv_contrib/modules 是相对于 opencv/build 目录的路径。
Note : 运行到-- IPPICV: Download: ippicv_2020_lnx_intel64_20191018_general.tgz 按 ctrl + c 结束

Ubuntu18.04 OpenCV-3.4.15安装

bash 复制代码
virtual-machine:/opt/opencv-3.4.15/.cache/ippicv$ ls
7421de0095c7a39162ae13a6098782f9-ippicv_2020_lnx_intel64_20191018_general.tgz
ippicv_2020_lnx_intel64_general_20191018_general.tgz

将前面一个文件文件名复制给 IPPICV 并删除前一个文件,最后只有 7421de0095c7a39162ae13a6098782f9-ippicv_2020_lnx_intel64_20191018_general.tgz

重新编译

bash 复制代码
virtual-machine:/opt/opencv-3.4.15/build$ sudo rm -fr *

cmake -D CMAKE_BUILD_TYPE=Release \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.15/modules \
      -D WITH_CUDA=OFF \
      ..

编译 OpenCV: 使用以下命令编译:

bash 复制代码
make -j$(nproc)

安装 OpenCV: 完成编译后,运行以下命令安装:

bash 复制代码
sudo make install
sudo ldconfig

报错:安装opencv时,xfeatures2d模块缺失boostdesc_bgm.i文件,下载超时问题

安装opencv时,xfeatures2d模块缺失boostdesc_bgm.i文件,下载超时问题

bash 复制代码
 xfeatures2d/boostdesc: Download: boostdesc_binboost_256.i
-- Try 1 failed
CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
  xfeatures2d/boostdesc: Download failed: 56;"Failure when receiving data
  from the peer"

  For details please refer to the download log file:

  /opt/opencv-3.4.15/build/CMakeDownloadLog.txt

Call Stack (most recent call first):
  opencv_contrib-3.4.15/modules/xfeatures2d/cmake/download_boostdesc.cmake:22 (ocv_download)
  opencv_contrib-3.4.15/modules/xfeatures2d/CMakeLists.txt:12 (download_boost_descriptors)

将以下文件:

bash 复制代码
boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i

拷贝到***opencv_contrib/modules/xfeatures2d/src/***目录下,而且网上直接可以用的资源并不多。

报错2 face_landmark_model.dat

下载 face_landmark_model.dat 缓慢或者下载失败

在 /opt/opencv-3.4.15/.cache/data/中的文件按照上述 IPPICV 的方式进行替换即可

查看opencv版本

bash 复制代码
pkg-config --modversion opencv # 显示版本号则成功

3.安装pangolin0.6

3.1.安装依赖

bash 复制代码
安装Pangolin所需依赖
sudo apt install libgl1-mesa-dev
sudo apt install libglew-dev
sudo apt install libpython2.7-dev
sudo apt install pkg-config
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols

3.2.安装pangolin

bash 复制代码
git clone https://github.com/stevenlovegrove/Pangolin/tree/v0.6   
cd Pangolin
mkdir build && cd build
cmake ..
make -j16
sudo make install

3.3.检测效果

cpp 复制代码
cd examples/HelloPangolin
./HelloPangolin

`

安装 boost_v1.77

地址:https://www.boost.org/users/history/
解压后进入boost

bash 复制代码
sudo ./bootstrap.sh
sudo ./b2 install

安装 glog_v0.4.0 和 gflags_v2.2.2

在安装 glog 和 gflags 时,推荐 先安装 gflags,再安装 glog。这是因为 glog 在构建时会检测系统中是否已经安装了 gflags,并自动与其链接。如果 gflags 尚未安装,glog 会跳过对 gflags 的支持。

先安装 gflags:

bash 复制代码
git clone https://github.com/gflags/gflags.git
cd gflags
mkdir build && cd build
cmake .. && make
sudo make install

检查版本,是否安装成功

bash 复制代码
pkg-config --modversion gflags

再安装 glog

bash 复制代码
wget https://github.com/google/glog/archive/v0.4.0.zip
unzip v0.4.0.zip
cd glog-0.4.0
mkdir build && cd build
cmake .. && make
sudo make install

原因:

  • glog 的 CMake 配置文件会查找并使用系统中已经安装的 gflags 库。
  • 如果你在安装 glog 时没有提前安装 gflags,glog 将不会启用对 gflags 的支持。

安装Ceres Solver 1.14

Ceres Solver 是一个用于非线性优化的库,它依赖 Eigen 和 glog/gflags,因此在安装它之前,需要确保 Eigen、glog、gflags 已经安装好。
glog0.4.0+gflags2.2.2+ eigen3.3.7+ceres1.14能成功编译

安装依赖项

首先,需要安装 Ceres Solver 所需的依赖项,包括 Eigen3, SuiteSparse, glog, 和 gflags。在 Ubuntu 系统上,你可以通过以下命令安装这些依赖项:

bash 复制代码
sudo apt-get update
sudo apt-get install cmake libgoogle-glog-dev libgflags-dev libatlas-base-dev libeigen3-dev libsuitesparse-dev

下载 Ceres Solver 1.14 源代码

从 Ceres Solver 官方网站或 GitHub 下载 1.14 版本的源码。可以使用 wget 来直接下载:

bash 复制代码
wget http://ceres-solver.org/ceres-solver-1.14.0.tar.gz
tar zxf ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0

创建构建目录

为 Ceres Solver 创建一个单独的构建目录:

bash 复制代码
mkdir build
cd build

配置 CMake

使用 CMake 配置项目。这里会根据你安装的库来找到 Ceres 需要的依赖项:

bash 复制代码
cmake .. -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF

选项说明:

  • DBUILD_TESTING=OFF:关闭 Ceres Solver 测试项目的构建。
  • DBUILD_EXAMPLES=OFF:关闭 Ceres Solver 示例代码的构建(可选)。

如果你希望启用这些测试或示例代码,可以去掉相应选项。

bash 复制代码
make -j4
sudo make install

这将把 Ceres Solver 安装到默认的 /usr/local 目录中。

通过源码编译安装的ceres-solver卸载

一般情况下,Ceres Solver 的库文件会被安装在 /usr/local/ 下,具体路径如下:

bash 复制代码
sudo rm -rf /usr/local/lib/libceres*
sudo rm -rf /usr/local/include/ceres
sudo rm -rf /usr/local/share/Ceres

安装OpenGL

bash 复制代码
sudo apt-get install libglu1-mesa-dev

安装GLEW库

bash 复制代码
sudo apt-get install libglew-dev
相关推荐
nurupo1233 分钟前
C++学习路线(二十五)
c++·学习·算法
yava_free34 分钟前
OpenMV的无人驾驶智能小车模拟系统
c语言·c++·stm32
铭正39 分钟前
C++多线程应用
c++·多线程
学习编程之路1 小时前
深入理解C++ Lambda表达式:语法、用法与原理及其包装器的使用
开发语言·c++
AI新视界2 小时前
『Linux学习笔记』如何在 Ubuntu 22.04 上安装和配置 VNC
linux·ubuntu·vnc·vncviewer·vncserver
朝九晚五ฺ2 小时前
【Linux探索学习】第九弹——Linux工具篇(四):项目自动化构建工具—make/Makefile
linux·运维·学习·ubuntu·自动化
qing_0406032 小时前
C++——string的模拟实现(上)
开发语言·c++·string
我不会JAVA!3 小时前
排序算法(3) C++
c++·算法·排序算法
Ddddddd_1587 小时前
C++ | Leetcode C++题解之第504题七进制数
c++·leetcode·题解
J_z_Yang7 小时前
LeetCode 202 - 快乐数
c++·算法·leetcode