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
相关推荐
小俊俊的博客4 分钟前
海康RGBD相机使用C++和Opencv采集图像记录
c++·opencv·海康·rgbd相机
_WndProc19 分钟前
C++ 日志输出
开发语言·c++·算法
薄荷故人_21 分钟前
从零开始的C++之旅——红黑树及其实现
数据结构·c++
m0_7482400221 分钟前
Chromium 中chrome.webRequest扩展接口定义c++
网络·c++·chrome
大妞25 分钟前
ubuntu20.04 install vscode[ROS]
ubuntu
qq_4335545428 分钟前
C++ 面向对象编程:+号运算符重载,左移运算符重载
开发语言·c++
努力学习编程的伍大侠32 分钟前
基础排序算法
数据结构·c++·算法
ac.char1 小时前
在 Ubuntu 下使用 Tauri 打包 EXE 应用
linux·运维·ubuntu
yuyanjingtao1 小时前
CCF-GESP 等级考试 2023年9月认证C++四级真题解析
c++·青少年编程·gesp·csp-j/s·编程等级考试
闻缺陷则喜何志丹2 小时前
【C++动态规划 图论】3243. 新增道路查询后的最短距离 I|1567
c++·算法·动态规划·力扣·图论·最短路·路径