主题模式
无人机飞行工作前言
本部分内容面向第一次接触 ROS 2、Docker、动捕系统和本项目地面站的用户,指导实验室新手从容器环境准备开始,完成动捕位姿接入、无人机起飞、算法演示和安全关机等操作。
1. 软硬件环境
| 项目类别 | 当前配置 |
|---|---|
| 操作系统 | Ubuntu 22.04 |
| ROS 2 版本 | Humble |
| 项目工作空间 | swarmlab_simulator_ws |
| Docker 容器 | aiswarmlab_vrpn |
| Docker 镜像 | aiswarmlab_control:ros2_cmdvel_bridge_v2 |
| 动捕发送端 | Windows 系统 NOKOV 动捕软件 |
| 无人机 | Fanci(幻思)无人机 |
不建议随意更改操作系统以及与之相对应的 ROS 2 版本,因为不同版本对应的系统库、编译器、Python、ROS 2 接口及第三方依赖可能不同,原有代码和编译结果不一定兼容;同时显卡驱动、串口、相机、网络和 DDS 通信等功能还会受到宿主机内核与驱动环境影响,因此随意修改版本可能导致依赖缺失、编译失败、节点无法启动或设备无法正常使用,通常应固定原有环境,确需升级时再重新安装依赖、清理编译文件并完整测试。
2. 系统数据链路
整套系统的数据流如下:
text
Windows 动捕软件
│
│ VRPN,默认 10.1.1.198:3883
▼
vrpn_client_ros(Docker 容器)
│
│ 发布 PoseStamped 位姿
▼
fcu_core(Docker 容器)
│
│ 位姿反馈、解锁、起飞、任务指令
▼
Fanci 无人机
AISWARMLAB 地面站 UI
│
└── 读取 ROS 2 状态,配置算法、场景和评估参数3. 终端分工
建议至少准备 5 个终端,不要在同一终端中覆盖正在运行的程序。
| 终端 | 运行位置 | 用途 |
|---|---|---|
| A | Ubuntu 宿主机 | 启动 Docker Compose,观察容器状态 |
| B | Docker 容器 | 编译并启动地面站 UI |
| C | Docker 容器 | 启动 VRPN 客户端 |
| D | Docker 容器 | 检查 ROS 2 节点、话题和位姿 |
| E | Docker 容器 | 启动 fcu_core 和 RViz |
4. 起飞前安全要求
- 清空飞行区域,人员与无人机保持安全距离;
- 检查桨叶方向、机架、电池以及遥控或急停手段;
- 确认无人机编号与刚体名称一一对应,例如无人机 1 对应
uav_1; - 确认动捕坐标持续更新,没有跳变、冻结或 NaN 数据;
- 确认动捕坐标轴方向与无人机机头方向一致;
- 首次联调先拆除桨叶检查通信和解锁逻辑;
- 不要同时发送位置控制和速度控制指令;
- 操作人员必须随时准备降落或执行现场急停。
未完成检查时禁止起飞
位姿、飞控或 ROS 2 指令链路没有确认正常前,不要点击“解锁”或“起飞”。坐标轴标定错误可能导致无人机倾斜起飞或坠落。
5. 操作手册目录
- 环境、容器与地面站:加载镜像、配置 X11、启动容器、编译并打开 UI。
- 动捕与 VRPN 定位:启动 Windows 发送端、VRPN 客户端并核对
/uav_1/pose。 - 配置无人机 Wi-Fi 模块:设置无线模式、IP、端口和串口透传参数,并检查地面站连通性。
- FCU、RViz 与起飞:检查设备、启动 FCU、完成最终检查并起飞。
- 算法与场景演示:选择算法环境、设置虚实设备和参数并开始演示。
- 结束实验:安全降落、停止节点并关闭容器。
遇到软件、动捕、通信或飞行问题时,统一参阅常见问题排查。
阅读建议
首次操作请严格按照目录顺序执行。每个新容器终端都需要重新加载 ROS 2 和工作空间环境。
