上期配置了刚安装好ubuntu20.04后的基本配置,这期将要配置orbslam3的环境

目录

上期配置了刚安装好ubuntu20.04后的基本配置,这期将要配置orbslam3的环境

1.下载orbslam3的源码

2.对orbslam3所需要的依赖进行配置

        1.安装Pangolin库,

注意下载的是0.6版本

       2.安装opencv库

        3.安装Eigen库

        4.安装Intel® RealSense™ SDK 2.0(用于realsense d435i d455 系列)#可选

3.对ORBSLAM3进行编译

4.使用 d455(非ROS)实时跑

​1. 相机参数 (Camera Parameters)

​2. IMU参数 (IMU Parameters)

​3. ORB特征提取参数

​4. 可视化参数 (Viewer Parameters)

​关键参数调整建议

下期进行ros的配置


1.下载orbslam3的源码

sudo apt install git
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3

如果克隆失败,可能是网络不好,那么加个github的代理

git clone https://ghfast.top/https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3

也就是在路径前面加个GitHub Proxy 代理加速,如果碰到其他git不下来的,记得使用代理加速

GitHub Proxy 代理加速https://ghfast.top/

2.对orbslam3所需要的依赖进行配置

        1.安装Pangolin库,

          Pangolin 可用于管理 OpenGL 显示和交互、抽象视频输入,去除平台特定的样板代码以方便可视化数据,还能用于交互式调试,如 3D 操作、绘图、调整变量以及通过类似 Quake 的下拉控制台进行 Python 脚本编写和实时调整等。

        Pangolin 是一组轻量级且便携的实用程序库,用于对基于 3D、数字或视频的程序和算法进行原型设计,也可用于计算机视觉领域中辅助相关工作。

这里我选择安装的是 Pangolin v0.6,下载链接: Linkhttps://github.com/stevenlovegrove/Pangolin/releases

unzip Pangolin-0.6.zip
cd ~/Pangolin-0.6
mkdir build
cd build
cmake ..
make -j
sudo make install

注意下载的是0.6版本

  1.        2.安装opencv库

sudo apt update && sudo apt install -y cmake g++ wget unzip

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.4.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.4.0.zip
unzip opencv.zip 
unzip opencv_contrib.zip 

cd ~/opencv-4.4.0 
mkdir build && cd build
# Configure
cmake -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.4.0/modules ..
# Build
cmake --build .
# Install
sudo cmake --install .

        3.安装Eigen库

        这里选择安装的是 Eigen 3.3.0,下载链接: Link,为了防止出错,最好跟我安装同一个版本

sudo apt install libeigen3-dev

        可能之前在小鱼ros中装过了

        4.安装Intel® RealSense™ SDK 2.0(用于realsense d435i d455 系列)#可选

1.安装依赖

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo apt-get install libssl-dev libusb-1.0-0-dev libudev-dev pkg-config libgtk-3-dev
sudo apt-get install git wget cmake build-essential
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev at

2.使用编译

  • 下载 librealsense master 分支: Link
  • unzip librealsense-master.zip
    
    cd librealsense-master/
    sudo apt install v4l-utils
    ./scripts/setup_udev_rules.sh
    

    查看版本内核

    uname -r
    

  • //如果是 Ubuntu 20/22 (focal/jammy) with LTS kernel 5.13, 5.15,则
    
    ./scripts/patch-realsense-ubuntu-lts-hwe.sh
    //如果是 Ubuntu 18/20 with LTS kernel (< 5.13),则
    
    ./scripts/patch-realsense-ubuntu-lts.sh
    

 一般新装的ubuntu20的内核是5.15或者低于5.15的,那么可以运行上述,但是我自己给升级了内核为5.19,所以需要查看Releases · IntelRealSense/librealsense · GitHub来看对应的sdk版本,

cd librealsense-master
mkdir build && cd build
cmake ../ -DBUILD_EXAMPLES=true
sudo make uninstall && make clean && make && sudo make install

        这样realsense就配置完成了,在终端启动realsense-viewer,插上相机

3.对ORBSLAM3进行编译

        1.找到CMakeLists.txt,将改为下述,代码第131行        

        2.尤其注意opencv和eigen的版本,改为这样,Eigen3就够了

        3./home/lx/ORB_SLAM3/Thirdparty/g2o/CMakeLists.txt,前往g2o的cmake里面,将Eigen改为如下        4.同理,在/home/lx/ORB_SLAM3/Thirdparty/Sophus/CMakeLists.txt这里面,也改为

        5.在 /home/lx/ORB_SLAM3/src/System.cc的第84行,将cout << (*settings_) << endl;注释掉

最后,以上修改完成后,完成最后的编译

cd ORB_SLAM3/
sudo ./build.sh 

#如果遇到一些报错,可以进去build.sh文件里面里面一步一步执行,看看哪里有问题,电脑性能不够的make -j4 or j6 or j8,性能够的make -j

4.使用 d455(非ROS)实时跑

        进入到ORB_SLAM3的文件目录下

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

简单来说为三部分,一为代码的可执行文件,二为ORB词袋,三为相机的参数文件

以下是我d455相机自己标定的参数,yaml文件


1. 相机参数 (Camera Parameters)

  • File.version: 配置文件版本号(1.0)
  • Camera.type: "Rectified" 表示图像已经过畸变校正
  • 内参矩阵:
    • Camera1.fxCamera1.fy: 焦距(像素单位)
    • Camera1.cxCamera1.cy: 光学中心坐标(像素单位)
  • 立体视觉参数:
    • Stereo.b: 双目相机的基线长度(米)
    • Stereo.ThDepth: 深度最大阈值(基线×该值决定有效深度范围)
  • 图像参数:
    • Camera.widthCamera.height: 图像分辨率(640x480)
    • Camera.fps: 帧率(30 FPS)
    • Camera.RGB: 颜色顺序(1=RGB,0=BGR)

2. IMU参数 (IMU Parameters)

  • 坐标系变换:
    • IMU.T_b_c1: 4x4变换矩阵,表示IMU到左相机的刚体变换(包含平移和旋转)
  • 噪声参数​(影响传感器融合精度):
    • IMU.NoiseGyro: 陀螺仪噪声(rad/s²/√Hz)
    • IMU.NoiseAcc: 加速度计噪声(m/s²/√Hz)
    • IMU.GyroWalk: 陀螺仪随机游走噪声
    • IMU.AccWalk: 加速度计随机游走噪声
  • 其他:
    • IMU.Frequency: IMU数据频率(200 Hz)
    • IMU.InsertKFsWhenLost: 是否在丢失跟踪时插入关键帧(0=禁用)

3. ORB特征提取参数

  • 特征数量与质量:
    • ORBextractor.nFeatures: 每帧提取的最大特征点数(1250)
    • ORBextractor.iniThFAST: 初始FAST角点检测阈值(越高越严格)
    • ORBextractor.minThFAST: 最低FAST阈值(初始阈值失败时使用)
  • 金字塔参数:
    • ORBextractor.scaleFactor: 图像金字塔层级间的缩放因子(1.2倍)
    • ORBextractor.nLevels: 金字塔层数(8层)

4. 可视化参数 (Viewer Parameters)

  • 显示效果:
    • Viewer.KeyFrameSize: 关键帧显示大小
    • Viewer.PointSize: 地图点大小
    • Viewer.CameraSize: 相机图标大小
  • 视点设置:
    • Viewer.ViewpointX/Y/Z: 初始观察视角位置
    • Viewer.ViewpointF: 可视化焦距

关键参数调整建议

  1. 相机内参​(fxfycxcy)必须与相机标定结果一致。
  2. ​**基线参数 Stereo.b**​ 需根据双目相机实际物理基线设置。
  3. IMU噪声参数​ 需参考传感器手册或通过Allan方差标定。
  4. ORB特征数​(nFeatures)根据场景复杂度调整,复杂场景可增加。
  5. ​**深度阈值 ThDepth**​ 过大可能导致远处点云噪声,过小会丢失远景。

下期进行ros的配置

更多推荐