跳转至

WinWSL — 编译与开发环境


WinWSL 是 RflySim 工具链基于 WSL (Windows Subsystem for Linux)Ubuntu 系统框架封装集成的编译与开发环境。它为用户在 Windows 平台上提供了完整的 Linux 开发能力,无需配置虚拟机或双系统。


为什么需要 WinWSL?

需求 说明
PX4 源码编译 PX4 固件需在 Linux 环境下交叉编译
ROS 1/2 开发 ROS 生态基于 Ubuntu,视觉/集群算法需在 ROS 中运行
机载算法测试 在部署到 Jetson 等 ARM 平台前,先在本地 Linux 环境测试
Docker 支持 WSL2 支持 Docker 容器化部署

预装组件

WinWSL 环境预装了以下核心组件,构建了一个开箱即用的研发平台:

组件 功能说明
Ubuntu 20.04/22.04 基础操作系统
ROS 1 (Noetic) 机器人操作系统(经典版)
ROS 2 (Humble/Jazzy) 机器人操作系统(新一代)
OpenCV 图像处理与计算机视觉库
PX4 交叉编译工具链 PX4 固件编译环境
ArduPilot 编译支持 ArduPilot 固件编译环境
Python 3.x Python 运行环境
Gazebo ROS 配套的仿真器
NS-3 网络协议仿真器
图形化桌面 接近真实机载系统的可视化操作体验

WSL1 vs WSL2

特性 WSL1 WSL2
架构 系统调用翻译层 Hyper-V 轻量虚拟机
Linux 内核 无完整内核 完整 Linux 内核
跨系统文件性能 ✅ 优秀 ❌ 较弱
Linux 内部 I/O 中等 ✅ 优秀
Docker 支持 ❌ 不支持 ✅ 支持
GPU 加速 ❌ 不支持 ✅ 支持
内存占用 ✅ 低 ❌ 较高
与 Windows 网络 ✅ 共享网络栈 需配置端口映射

默认选择

RflySim 默认使用 WSL1,因其轻量、编译速度快、跨系统通信简单。需要 Docker/GPU 加速时可切换到 WSL2。

版本切换

使用桌面快捷方式 RflyTools\WslSwitch2 或在 CMD 中执行:

wsl --set-version RflySim-20.04 2   # 切换到 WSL2
wsl --set-version RflySim-20.04 1   # 切换回 WSL1

ROS 版本切换

WinWSL 支持通过一键脚本在 ROS 1 与 ROS 2 之间切换:

  • 使用 RflyTools\RosSwitch 快捷方式
  • 或在 WinWSL 终端中执行切换脚本

GPU 加速环境(WSL2)

对于需要 GPU 加速的高级用户,RflySim 提供了基于 WSL2 的完整 AI 算法开发环境,预装:

  • Docker 算法部署
  • NVIDIA CUDA / cuDNN
  • TensorFlow / PyTorch GPU 支持
  • 大模型决策框架
  • 端到端控制训练
  • 强化学习训练环境

相关例程

WSL2 GPU 加速环境详见:RflySimAPIs\1.RflySimIntro\2.AdvExps\e13.WinWSL2-GPU


常用命令

命令 功能
ls 列出当前目录文件
cd ~ 回到用户主目录
uname -a 查看当前系统与 WSL 版本信息
roscore 启动 ROS 1 Master 节点
ros2 run <pkg> <node> 运行 ROS 2 节点
gazebo 启动 Gazebo 仿真器
make px4_sitl_default 编译 PX4 SITL 固件
docker --version 检查 Docker 版本(仅 WSL2)