从零到一:在Win11的WSL中部署Ubuntu 22.04 LTS与ROS2 Humble完整指南

张开发
2026/5/7 9:53:21 15 分钟阅读

分享文章

从零到一:在Win11的WSL中部署Ubuntu 22.04 LTS与ROS2 Humble完整指南
1. 环境准备Win11与WSL的完美组合作为一个长期在Windows和Linux双系统间反复横跳的老玩家第一次发现WSL能完美运行ROS2时简直像发现了新大陆。这里先带大家做好基础准备避免后续踩坑。Win11版本确认是第一步。很多人以为自己的系统是最新版结果一查发现还停留在老版本。按下WinR输入winver确保版本号至少是21H2Build 22000。我遇到过最离谱的情况是某位同事的Win11其实是魔改版Win10导致WSL2死活装不上。如果版本过低建议先通过Windows Update升级。硬件虚拟化支持这个坑我踩过三次。不同主板的BIOS设置差异巨大联想的选项叫Intel Virtualization Technology华硕的叫VT-x惠普的甚至藏在安全设置里。更隐蔽的是某些品牌机的虚拟化默认关闭需要进BIOS手动开启。验证方法很简单打开任务管理器→性能标签页看右下角虚拟化是否显示已启用。关于WSL版本选择实测WSL2的性能比WSL1提升明显特别是IO操作快3-5倍。但要注意WSL2需要开启Hyper-V而某些游戏反作弊系统会与Hyper-V冲突。如果你常玩Valorant这类游戏可能得在游戏时临时关闭Hyper-V功能。2. WSL安装与Ubuntu配置实战微软官方文档推荐的wsl --install命令虽然方便但实际使用中我发现三个常见问题自动安装的是WSL1、默认用户不是root、磁盘空间分配不合理。这里分享我的定制化安装方案。分步安装更可控先用管理员权限运行PowerShell执行dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart重启后设置WSL2为默认版本wsl --set-default-version 2Ubuntu镜像选择有讲究。Microsoft Store里的Ubuntu 22.04 LTS有两个版本带版本号的和不带版本号的。建议选择带具体版本号的镜像因为后者会自动更新大版本可能导致ROS2环境不兼容。安装完成后别急着关窗口这时首次启动会卡在解压进度条我遇到过等20分钟的情况其实不是卡死耐心等待就好。系统配置三大关键点修改软件源sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list分配更多内存在C:\Users\用户名\.wslconfig中添加[wsl2] memory4GB swap2GB解决时区问题sudo apt install tzdata sudo dpkg-reconfigure tzdata3. ROS2 Humble深度安装指南官方安装文档看着简单但网络环境不同可能导致各种玄学问题。经过十几次重装测试我总结出最稳定的安装流程。编码设置这步很多人会忽略结果后面编译报错找不到原因。必须严格执行sudo apt update sudo apt install locales sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALLen_US.UTF-8 LANGen_US.UTF-8 echo export LANGen_US.UTF-8 ~/.bashrc密钥添加环节最容易出问题。当raw.githubusercontent.com连不上时可以尝试修改hostssudo sh -c echo 199.232.68.133 raw.githubusercontent.com /etc/hosts或者使用国内镜像sudo curl -sSL https://mirrors.tuna.tsinghua.edu.cn/rosdistro/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] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(source /etc/os-release echo $UBUNTU_CODENAME) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null完整安装建议用这个顺序sudo apt update sudo apt upgrade -y sudo apt install -y ros-humble-desktop python3-argcomplete sudo rosdep init rosdep update echo source /opt/ros/humble/setup.bash ~/.bashrc特别注意rosdep update可能会因网络问题失败多次坚持重试直到成功为止。4. 开发环境优化与实战测试基础安装只是开始要让ROS2真正好用还需要这些优化配置。图形界面支持有三种方案直接使用Windows端的MobaXterm等支持X11转发的终端安装VcXsrv并配置环境变量export DISPLAY$(awk /nameserver / {print $2} /etc/resolv.conf):0使用WSLgWin11 22H2后原生支持海龟仿真测试时如果遇到键盘无响应可能是焦点问题。我的解决方案是先点击teleop终端窗口按一次空格激活控制使用方向键控制VS Code联动才是生产力爆发的关键安装WSL扩展和ROS插件在Ubuntu中创建workspace后执行code .会自动在Windows端打开调试配置示例{ version: 0.2.0, configurations: [ { name: ROS: Launch, type: ros, request: launch, target: src/your_package/launch/example.launch.py } ] }5. 常见问题与性能调优遇到问题别急着重装先看看这些实战经验。网络问题是WSL最大痛点我的解决方案矩阵问题现象解决方案注意事项apt更新慢换国内镜像源要同时改Ubuntu和ROS源git clone失败设置git代理git config --global http.proxy socks5://127.0.0.1:1080ROS节点通信延迟关闭Windows防火墙或添加专用规则文件系统性能方面千万别在/mnt/c/下直接开发实测WSL2的Linux根目录比挂载的Windows目录快10倍。建议在Ubuntu内创建项目用\\\\wsl$\\Ubuntu-22.04\\path访问或者使用VS Code的Remote-WSL扩展内存泄漏问题曾让我抓狂直到发现这个配置[wsl2] memory6GB swap4GB processors4 localhostForwardingtrue保存为.wslconfig后运行wsl --shutdown生效。建议根据主机配置调整16GB内存的机器给8GB更流畅。最后分享一个终极技巧定期执行wsl --export备份系统状态。我曾因一次错误的apt autoremove毁了整个环境现在每周备份已成习惯。具体操作wsl --export Ubuntu-22.04 ubuntu_backup.tar wsl --import Ubuntu-Backup C:\wsl\backup\ ubuntu_backup.tar

更多文章