马鞍山市网站建设_网站建设公司_交互流畅度_seo优化
2026/1/18 21:15:35 网站建设 项目流程

一、前期准备

1. 软件 / 镜像下载
  • 虚拟机软件:VMware Workstation Pro(官网下载试用版即可,或用免费的 VirtualBox);
  • Ubuntu 镜像:Ubuntu 20.04 LTS(推荐,ROS Noetic 适配性最好),下载地址:https://releases.ubuntu.com/20.04/;
  • 硬件要求:宿主机至少 16GB 内存(给虚拟机分配 8GB)、CPU 4 核以上、50GB 以上硬盘空间。
2. 虚拟机创建与配置(核心!决定运行流畅度)
  1. 打开 VMware,点击「创建新的虚拟机」,选择「典型」→ 下一步;
  2. 选择「安装程序光盘映像文件 (ISO)」,选中下载的 Ubuntu 20.04 ISO 文件 → 下一步;
  3. 设置 Ubuntu 用户名 / 密码(记住!后续登录用)→ 下一步;
  4. 虚拟机名称自定义(如「Ubuntu-SLAM」),存储路径选非 C 盘 → 下一步;
  5. 最大磁盘大小设置为「100GB」,选择「将虚拟磁盘存储为单个文件」→ 下一步;
  6. 点击「自定义硬件」,关键配置:
    • 内存:调整为「8GB(8192MB)」(至少 6GB,否则编译 SLAM 会卡死);
    • 处理器:核心数调整为「4 核」(宿主机核心数的一半);
    • 显示器:勾选「加速 3D 图形」,显存调整为「2GB」;
    • 网络适配器:选择「桥接模式」(方便后续联网装依赖);
  7. 点击「完成」,启动虚拟机,开始安装 Ubuntu 系统(全程默认下一步,等待 10-15 分钟)。

二、SLAM 环境搭建(ROS Noetic + ORB-SLAM3)

步骤 1:Ubuntu 系统基础配置
  1. 更换国内源(解决下载慢问题):

    # 备份原源文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 替换为阿里云源 sudo gedit /etc/apt/sources.list

    清空文件内容,粘贴以下内容(Ubuntu 20.04 专用):

    deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

    保存后更新源:

    sudo apt update && sudo apt upgrade -y
  2. 安装基础依赖:

    sudo apt install git cmake gcc g++ python3-pip vim -y
步骤 2:安装 ROS Noetic
  1. 添加 ROS 源和密钥:

    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

    (如果密钥添加失败,替换为国内源:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

  2. 安装 ROS 完整版:

    sudo apt update sudo apt install ros-noetic-desktop-full -y
  3. 初始化 rosdep(解决依赖的核心工具):

    # 解决rosdep update失败问题(国内专用) sudo pip3 install rosdepc sudo rosdepc init rosdepc update
  4. 设置 ROS 环境变量(每次终端启动自动加载):

    echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc
  5. 安装 ROS 构建工具:

    sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential -y
  6. 验证 ROS 安装:

    roscore

    若出现「started core service [/rosout]」,说明 ROS 安装成功(按 Ctrl+C 关闭)。

步骤 3:安装 ORB-SLAM3 依赖
# 1. 安装Eigen(线性代数库) sudo apt install libeigen3-dev -y # 2. 安装Pangolin(可视化工具) sudo apt install libpangolin-dev -y # 3. 安装OpenCV(计算机视觉库) sudo apt install libopencv-dev python3-opencv -y # 4. 安装Boost库 sudo apt install libboost-all-dev -y
步骤 4:编译 ORB-SLAM3
  1. 创建 SLAM 工作空间:

    mkdir -p ~/slam_ws/src cd ~/slam_ws/src
  2. 克隆 ORB-SLAM3 源码:

    git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
  3. 编译 ORB-SLAM3 核心库:

    cd ORB_SLAM3 chmod +x build.sh ./build.sh # 编译时间约10分钟,耐心等待,虚拟机编译会慢一些
  4. 编译 ROS 接口(让 ORB-SLAM3 和 ROS 通信):

    chmod +x build_ros.sh ./build_ros.sh
  5. 设置 ORB-SLAM3 环境变量:

    echo "export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/slam_ws/src/ORB_SLAM3/Examples/ROS" >> ~/.bashrc source ~/.bashrc

三、SLAM 环境使用(跑公开数据集验证)

虚拟机无法连接真实硬件,所以先跑离线公开数据集验证环境,这是入门 SLAM 的核心步骤。

步骤 1:下载 TUM 数据集(小型视觉数据集,适合虚拟机)
# 创建数据集文件夹 mkdir -p ~/slam_datasets/tum cd ~/slam_datasets/tum # 下载TUM单目数据集(房间场景,体积小) wget https://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_room.tgz # 解压数据集 tar -zxvf rgbd_dataset_freiburg1_room.tgz
步骤 2:运行 ORB-SLAM3 单目 SLAM
cd ~/slam_ws/src/ORB_SLAM3 # 运行单目SLAM(参数说明:词典文件 + 配置文件 + 数据集路径) ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml ~/slam_datasets/tum/rgbd_dataset_freiburg1_room
预期效果
  1. 终端会输出特征点提取、跟踪、建图的日志;
  2. 弹出两个可视化窗口:
    • 左窗口:数据集的 RGB 画面 + 实时提取的 ORB 特征点;
    • 右窗口:3D 稀疏点云地图 + 相机运动轨迹(红色);
  3. 你可以用鼠标旋转 / 缩放右窗口,查看构建的点云地图。

运行的图形化效果如下:


四、虚拟机使用 SLAM 的避坑指南

  1. 可视化窗口卡顿

    • 原因:虚拟机 3D 加速性能有限;
    • 解决:修改 ORB-SLAM3 配置文件,降低点云显示数量:
      gedit ~/slam_ws/src/ORB_SLAM3/Examples/Monocular/TUM1.yaml
      Viewer.MaxFrames1000改为100,保存后重新运行。
  2. 编译 ORB-SLAM3 报错「C++11」

    • 解决:修改ORB_SLAM3/CMakeLists.txt,在开头添加:
      set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON)
  3. rosdep update 失败

    • 解决:改用rosdepc(国内镜像),就是教程里的sudo pip3 install rosdepc
  4. Pangolin安装失败

# 1. 回到 Pangolin 根目录 cd .. git checkout v0.6 # 2. 重新创建 build 目录并编译 mkdir -p build && cd build cmake .. make -j$(nproc) sudo make install

5.OpenCV 版本错误


总结

  1. 环境搭建核心:虚拟机重点要分配足够的内存 / CPU,更换国内源解决下载慢,rosdepc 替代 rosdep 解决初始化失败;
  2. 使用核心:虚拟机只能跑离线数据集(TUM/EuRoC),验证 SLAM 算法的建图 / 定位逻辑,熟悉参数调整;
  3. 进阶方向:等熟悉基础后,装双系统(物理机 Ubuntu),连接摄像头 / 激光雷达跑实时 SLAM。

如果运行过程中遇到具体报错(比如编译失败、数据集跑不起来),可以把报错信息发给我,我帮你定位解决。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询