ubuntu20.04 从头开始配置orbslam3和ros1 noetic 并且使用d455跑代码(2)

上期配置了刚安装好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的配置

### Ubuntu 20.04 上的一键安装 ROS 教程及相关注意事项 对于希望快速完成 ROS 安装的用户来说,可以采用一键脚本的方式简化操作流程。以下是基于已知资料以及专业知识整理的内容。 #### 使用 FishROS 的一键安装方法 FishROS 提供了一种简单的方法来实现 ROSUbuntu 20.04 上的一键安装。通过执行以下命令即可完成环境配置: ```bash wget http://fishros.com/install -O fishros && . fishros ``` 此命令会自动下载并运行安装脚本,完成 `ros-noetic-desktop-full` 的安装过程[^3]。它还会处理依赖项、设置环境变量,并验证安装是否成功。 #### 手动安装的关键步骤回顾 如果需要手动确认或补充某些细节,则可以通过传统方式逐步完成 ROS Noetic 的安装。具体如下: 1. **更新包索引** 首先确保系统的软件源是最新的: ```bash sudo apt update ``` 2. **添加 ROS 软件仓库密钥** 添加官方 ROS 密钥以便能够访问其存储库: ```bash sudo apt install curl curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - ``` 3. **启用 ROS 存储库** 将 ROS Noetic 的存储库地址加入到 APT 源列表中: ```bash sudo sh -c &#39;echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list&#39; ``` 4. **实际安装 ROS** 更新本地缓存后,安装完整的桌面版本: ```bash sudo apt update sudo apt install ros-noetic-desktop-full ``` 5. **初始化 `rosdep` 工具** 这一步是为了让 ROS 更方便地管理依赖关系: ```bash sudo apt install python3-rosdep sudo rosdep init rosdep update ``` 6. **设置环境变量** 修改用户的 `.bashrc` 文件以加载 ROS 环境: ```bash echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc ``` 7. **验证安装结果** 启动一个简单的节点测试功能正常与否: ```bash roscore ``` 以上步骤涵盖了从头开始的手动安装流程[^1]。 #### 关于硬件兼容性的额外说明 当涉及到特定外设(如无线网卡),可能还需要单独解决驱动问题。例如针对 TP-LINK 型号 TL-WDN5200H 的情况,需按照指定路径编译加载内核模块[^2]。这通常涉及以下几个动作: - 下载对应的驱动程序; - 利用 `make` 构建工具构建项目; - 加入新设备支持至当前系统内核。 #### 总结 无论是借助自动化脚本来加速部署还是遵循标准文档逐条实施,都各有优劣之处。前者适合追求效率的人群;后者则更适用于学习了解内部机制或者遇到复杂场景下的定制化需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值