首页
/ 在Windows上搭建Ubuntu与ROS 2环境运行LiDAR-SLAM项目教程

在Windows上搭建Ubuntu与ROS 2环境运行LiDAR-SLAM项目教程

2025-06-19 13:31:33作者:余洋婵Anita

前言

对于机器人开发者和研究者而言,ROS(机器人操作系统)是必不可少的工具。然而,许多开发者日常使用的是Windows系统,这给ROS开发带来了挑战。本文将详细介绍如何在Windows系统上通过WSL(Windows Subsystem for Linux)搭建完整的Ubuntu和ROS 2开发环境,并运行LiDAR-SLAM项目。

环境准备

WSL与Ubuntu安装

  1. 启用WSL功能

    • 以管理员身份打开PowerShell
    • 执行命令:wsl --install -d Ubuntu-22.04
    • 系统将自动下载并安装Ubuntu 22.04 LTS版本
  2. 初始化Ubuntu环境

    • 安装完成后,系统会提示创建用户名和密码
    • 建议使用普通用户权限而非root用户
  3. 图形界面支持

    • 现代WSL版本已原生支持Linux GUI应用
    • 确保Windows系统为最新版本以获得最佳图形支持

系统优化建议

  1. 内存与CPU配置

    • 在用户目录下创建.wslconfig文件
    • 可配置WSL使用的内存和CPU核心数
  2. 文件系统交互

    • Windows访问Linux文件:通过资源管理器中的"Linux"选项
    • Linux访问Windows文件:挂载在/mnt/目录下

ROS 2 Humble安装指南

基础环境配置

  1. 系统更新

    sudo apt update && sudo apt upgrade -y
    
  2. 区域设置(避免locale警告):

    sudo apt install locales
    sudo locale-gen en_US en_US.UTF-8
    sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
    export LANG=en_US.UTF-8
    

ROS 2安装步骤

  1. 添加ROS 2仓库

    sudo apt install software-properties-common
    sudo add-apt-repository universe
    sudo apt update && sudo apt install curl -y
    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
    
  2. 安装ROS 2核心包

    sudo apt update
    sudo apt install ros-humble-desktop
    
  3. 环境变量配置

    echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    
  4. 开发工具安装

    sudo apt install python3-colcon-common-extensions python3-rosdep2
    

LiDAR-SLAM项目部署

项目结构说明

LiDAR-SLAM是一种结合激光雷达(LiDAR)和惯性测量单元(IMU)的同步定位与建图技术。本项目实现了一个简化的LIO-SLAM系统,包含以下主要组件:

  1. 激光雷达数据处理节点
  2. IMU数据融合节点
  3. 位姿估计与地图构建模块
  4. RViz可视化配置

项目构建流程

  1. 创建工作空间

    mkdir -p ~/lio_ws/src
    cd ~/lio_ws
    
  2. 安装依赖库

    sudo add-apt-repository ppa:borglab/gtsam-release-4.1
    sudo apt update
    sudo apt install -y libgtsam-dev libgtsam-unstable-dev
    
  3. 构建项目

    cd ~/lio_ws
    rosdep install --from-paths src --ignore-src -y --rosdistro humble
    colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
    

数据准备与运行

  1. 数据集说明

    • 项目使用ROS 2 bag格式的测试数据
    • 数据包含激光雷达扫描和IMU测量信息
  2. 运行步骤

    • 终端1:启动RViz可视化
      rviz2 -d src/lio-slam/scanmatcher/rviz/lio.rviz
      
    • 终端2:启动SLAM节点
      ros2 launch scanmatcher lio.launch.py
      
    • 终端3:播放数据集
      ros2 bag play walking_dataset/
      

常见问题解决

  1. 图形显示问题

    • 确保Windows系统为最新版本
    • 更新显卡驱动程序
  2. 性能优化建议

    • 限制WSL内存使用以避免系统卡顿
    • 对于大型数据集,考虑在Linux物理机上运行
  3. ROS 2通信问题

    • 确保所有终端都正确source了环境
    • 检查网络配置,特别是多机通信时

进阶学习建议

  1. SLAM算法扩展

    • 尝试集成不同的前端匹配算法
    • 实验不同的后端优化策略
  2. 多传感器融合

    • 加入视觉传感器数据
    • 实现GPS融合定位
  3. 性能分析工具

    • 使用rqt工具监控节点性能
    • 学习使用ros2 tracing进行性能分析

结语

通过本教程,您已经成功在Windows系统上搭建了完整的ROS 2开发环境,并运行了LiDAR-SLAM项目。这为Windows用户参与机器人开发提供了便利的途径。随着WSL技术的不断发展,其在机器人开发中的应用前景将更加广阔。

登录后查看全文
热门项目推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
179
263
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
871
515
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
131
184
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
346
380
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
334
1.09 K
harmony-utilsharmony-utils
harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。
ArkTS
31
0
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.08 K
0
kernelkernel
deepin linux kernel
C
22
5
WxJavaWxJava
微信开发 Java SDK,支持微信支付、开放平台、公众号、视频号、企业微信、小程序等的后端开发,记得关注公众号及时接受版本更新信息,以及加入微信群进行深入讨论
Java
829
22
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
603
58