news 2026/9/5 21:13:55

15.Slam算法的环境搭建与测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
15.Slam算法的环境搭建与测试

一、前期准备

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。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 21:52:22

Python+Vue的 二手书籍交易平台 django Pycharm flask

目录 这里写目录标题目录项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路!!需要的小伙伴可以发链接或者截图给我 项目介绍 …

作者头像 李华
网站建设 2026/9/4 5:16:25

计算机小程序毕设实战-基于springboot+微信小程序的服装商城的设计与实现小程序基于微信小程序的在线服装商城店铺的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/8/30 0:26:42

吐血推荐10个一键生成论文工具,专科生毕业论文必备!

吐血推荐10个一键生成论文工具,专科生毕业论文必备! 专科生的论文救星,AI 工具如何改变你的写作方式? 在如今的学术环境中,论文写作早已不再是单纯的文字堆砌,而是对逻辑、结构和内容深度的综合考验。尤其是…

作者头像 李华
网站建设 2026/8/24 13:44:51

(1-2)人形机器人的发展历史、趋势与应用场景:未来趋势与行业需求

1.2 未来趋势与行业需求随着具身智能、大模型与机器人核心硬件的快速发展,人形机器人正从技术验证阶段迈向面向真实场景的规模化应用阶段。未来的发展趋势不仅体现在智能水平的持续提升,更体现在对劳动力结构、生产方式与服务形态的深刻重塑。在制造业、…

作者头像 李华
网站建设 2026/8/21 15:00:49

4. 为什么 Triton 不够了

作者:HOS(安全风信子) 日期:2026-01-17 来源平台:GitHub 摘要: 2026年,随着大模型规模和复杂度的急剧增长,传统推理框架Triton Inference Server在处理现代推理场景时逐渐显现出局限性。本文深入剖析了Trit…

作者头像 李华