上期配置了刚安装好ubuntu20.04后的基本配置,这期将要配置orbslam3的环境
目录
上期配置了刚安装好ubuntu20.04后的基本配置,这期将要配置orbslam3的环境
4.安装Intel® RealSense™ SDK 2.0(用于realsense d435i d455 系列)#可选
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版本
-
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.fx
,Camera1.fy
: 焦距(像素单位)Camera1.cx
,Camera1.cy
: 光学中心坐标(像素单位)
- 立体视觉参数:
Stereo.b
: 双目相机的基线长度(米)Stereo.ThDepth
: 深度最大阈值(基线×该值决定有效深度范围)
- 图像参数:
Camera.width
,Camera.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
: 可视化焦距
关键参数调整建议
- 相机内参(
fx
,fy
,cx
,cy
)必须与相机标定结果一致。 - **基线参数
Stereo.b
** 需根据双目相机实际物理基线设置。 - IMU噪声参数 需参考传感器手册或通过Allan方差标定。
- ORB特征数(
nFeatures
)根据场景复杂度调整,复杂场景可增加。 - **深度阈值
ThDepth
** 过大可能导致远处点云噪声,过小会丢失远景。