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 中执行:
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) |