
WSL安装ros2wsl安装保姆级教程WSL2 (Ubuntu 20.04/22.04) 安装全过程与终极避坑指南设置语言环境locale# 查看是否支持 UTF-8# 不支持时修改命令sudoaptupdatesudoaptinstalllocalesudolocale-gen en_US.UTF-8sudoupdate-localeLC_ALLen_US.UTF-8LANGen_US.UTF-8exportLANGen_US.UTF-8 locale# 验证结果启用 Ubuntu universe 存储库# 检查是否启用apt-cachepolicy|grepuniverse# 有结果就表示已经启动# 启用命令sudoaptinstallsoftware-properties-common-ysudoadd-apt-repository universe配置源ros2源信息更新wslwsl--update# 在win的命令窗口执行进入wsl并更新aptwslcd~sudoaptupdatesudoaptupgrade-y# 开启universe源sudoaptinstallsoftware-properties-common-ysudoadd-apt-repository universesudoaptinstallcurlgnupg2-y# 导入GPG密钥curl-sSLhttps://raw.githubusercontent.com/ros/rosdistro/master/ros.key|gpg--dearmor-o/usr/share/keyrings/ros-archive-keyring.gpg# 添加清华ros2源echodeb [arch$(dpkg --print-architecture)signed-by/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu noble main|sudotee/etc/apt/sources.list.d/ros2.list/dev/null# 更新缓存sudoaptupdate异常解决raw.githubusercontent.com 访问超时解决办法将 raw.githubusercontent.com 的ip映射添加到hosts文件中sudovim/etc/hosts# 适用 vim 打开 hosts 文件# 将ip映射信息添加到hosts文件中并保存关闭185.199.108.133 raw.githubusercontent.comapt 拒绝读取 ros 源原因ROS2 清华源缺少 GPG 公钥F42ED6FBAB17C654apt 拒绝读取 ros 源所以找不到 ros-jazzy-desktop 包解决办法# 清理就的ros源文件sudorm-f/etc/apt/sources.list.d/ros2.listsudorm-f/usr/share/keyrings/ros-archive-keyring.gpg# 导入 ROS GPG 公钥国内可用方案避开 raw.githubusercontentgpg--keyserverhkp://keyserver.ubuntu.com:80 --recv-keys F42ED6FBAB17C654 gpg--export--armorF42ED6FBAB17C654|sudogpg--dearmor-o/usr/share/keyrings/ros-archive-keyring.gpg# 重新写入清华 ROS2 源echodeb [arch$(dpkg --print-architecture)signed-by/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu noble main|sudotee/etc/apt/sources.list.d/ros2.list/dev/null# 更新源并安装 ros-jazzy-desktopsudoaptupdatesudoaptinstallros-jazzy-desktop-y安装 ros2# 更新apt存储库sudoaptupdatesudoaptupgrade-y# 安装ros2# 根据自己的 ubuntu 系统版本选择安装对应的 ros2 版本# 笔者是 Ubuntu24.04, 查看自己的版本可以在win的命令行中输入 wsl --list 查看自己安装的版本# 具体对照信息看下方的版本名称对照表找到对应版本后将安装命令中的版本简称替换为需要安装的版本简称即可sudoaptinstallros-jazzy-desktop# 完整版带 rviz、demo、可视化工具推荐sudoaptinstallros-jazzy-ros-base-y# 精简核心版不带 RViz、GUI# 添加环境信息echosource /opt/ros/jazzy/setup.bash~/.bashrcsource~/.bashrc小提示ros-jazzy-ros-base最小核心包无 GUI适合机器人底层开发ros-jazzy-desktop桌面版包含 rviz、demo学习调试首选ros-jazzy-desktop-full全套所有包体积最大ROS2 版本命名规则LTS 长期支持版偶数年发布5 年维护工程 / 产品首选非 LTS奇数年发布仅约 18 个月尝鲜新特性不适合项目落地[!IMPORTANT]重要ROS2 版本和 Ubuntu 系统强绑定不能跨版本混用版本全称简写类型发布EOL 结束对应 UbuntuFoxy FitzroyfoxyLTS2020202320.04Humble HawksbillhumbleLTS2022202722.04Iron Irwiniiron非 LTS2023202422.04Jazzy JaliscojazzyLTS2024202924.04Kilted Kaijukilted非 LTS2025202624.04Lyrical LuthlyricalLTS2026203126.04其它依赖安装# 安装和初始化rosdepsudoaptinstall-ypython3-rosdepsudorosdep init rosdep update# 安装 colonsudoaptinstallcolconwsl图形界面前提你现在是WSL2WSL1 不行WSL1 没有完整 Linux 图形支持方案 1WSLgWSL2 自带优先推荐不用额外装 Xserver[!NOTE]Windows 11 新版本自带 WSLgWindows10 需要手动升级 WSL 版本。WSLg 原理Windows 内置 Linux 图形转发直接在 WSL 终端启动 rviz2窗口自动弹出到 Windows 桌面。检查 WSL 是否启用 WSLg在 WSL 内执行echo $WSL_DISTRO_NAME echo $WSLg如果输出1→ WSLg 已开启直接可以跑 GUI 程序如果空值需要升级 WSL在**Windows PowerShell (管理员)**执行wsl --update重启电脑。测试可视化WSL 终端# 先加载ros环境 source /opt/ros/jazzy/setup.bash # 启动rviz2 rviz2✅ 正常情况下RViz 窗口直接弹出在 Windows 桌面。测试小 demoROS2 自带样例ros2 run turtlesim turtlesim_node ros2 run turtlesim turtle_teleop_key方案 2Windows 安装独立 XServerVcXsrv老版本 Windows10 备选如果 WSLg 无法使用用 VcXsrvWindows 下载安装 VcXsrv启动 VcXsrv勾选Disable access controlWSL 里面配置环境变量export DISPLAY$(cat /etc/resolv.conf | grep nameserver | awk {print $2}):0.0 export LIBGL_ALWAYS_INDIRECT0 # 永久写入bashrc echo export DISPLAY$(cat /etc/resolv.conf | grep nameserver | awk \{print $2}\):0.0 ~/.bashrc echo export LIBGL_ALWAYS_INDIRECT0 ~/.bashrc source ~/.bashrc然后再执行rviz2。⚠️ 常见坑conda (base) 环境冲突你现在终端前面有(base)conda 的 python 会干扰 ROS2。 临时关闭 condaconda deactivate建议跑 ROS 的时候尽量不要开启 conda base 环境容易出现库版本冲突、rqt 报错。显卡加速NVidia GPU你有 cuda wsl WSLg 自带 NVidia 支持不需要额外配置直接硬件加速 RViz、gazebo。可以测试 glxinfosudo apt install mesa-utils glxinfo | grep OpenGL能看到 NVIDIA 显卡信息就是 GPU 渲染成功。Gazebo 仿真如果后续需要 Jazzy 的 Gazebo 是 HarmonicWSLg 可以直接跑但是会占用较多资源。