Skip to content

Hw 02 gesture drone control#5449

Merged
donghaiwang merged 12 commits intoOpenHUTB:mainfrom
springstart11111:hw-02-gesture-drone-control
Apr 18, 2026
Merged

Hw 02 gesture drone control#5449
donghaiwang merged 12 commits intoOpenHUTB:mainfrom
springstart11111:hw-02-gesture-drone-control

Conversation

@springstart11111
Copy link
Copy Markdown
Contributor

修改概述:

  • 修复AirSim版手势检测不准确的问题,使手势识别与3D仿真模拟器保持一致
  • 简化run_airsim.bat启动脚本,解决PowerShell环境下的兼容性问题

修改的详细描述

  1. 更换手势检测器 - 将main_airsim.py中的手势检测器从EnhancedGestureDetector改为GestureDetector,因为前者在规则检测模式下分类逻辑为空,导致所有手势都返回固定值
  2. 优化手势处理逻辑 - 参考main.py中3D仿真模拟器的实现,添加以下优化:
    • 添加帧镜像翻转(cv2.flip(frame, 1)),让手势操作更自然
    • 添加命令冷却机制(1.5秒),防止频繁执行相同命令
    • 添加重复手势检测(2秒内不重复处理)
    • 使用detector.get_command(gesture)获取命令映射,确保与仿真逻辑一致
  3. 简化启动脚本 - 重写run_airsim.bat,移除在PowerShell环境下不兼容的批处理语法

经过了什么样的测试?

  1. 操作系统:Windows 11
  2. Python版本:Python 3.9
  3. 测试场景:
    • 验证8种手势(张开手掌、握拳、食指上指、食指向下、胜利手势、大拇指、大拇指向下、OK手势)均能正确识别
    • 验证手势对应的指令能正确执行(起飞、降落、上升、下降、前进、后退、悬停、停止)
    • 验证命令冷却机制正常工作,不会重复触发

运行效果

image image

修改前后对比:

  • 修改前:手势检测文字固定不变,无论做什么手势都显示相同内容
  • 修改后:手势检测文字随手势变化实时更新,能正确识别8种不同手势并显示对应的中文指令

截图说明:

  • 张开手掌 → 显示"手势: open_palm (规则) 指令: 起飞"
  • 握拳 → 显示"手势: closed_fist (规则) 指令: 降落"
  • 其他手势均能正确识别并显示对应指令

新增功能:
- 添加 airsim_controller.py: AirSim 无人机控制器
- 添加 main_airsim.py: AirSim 真实模拟器版本
- 更新 README.md: 添加 AirSim 使用说明

功能特性:
- 支持连接 Microsoft AirSim 模拟器
- 实现起飞、降落、悬停、移动控制
- 保持原有手势识别功能
- 支持键盘控制(空格/T/L/H/Q)

使用说明:
- 本地仿真:python main.py
- AirSim 模式:python main_airsim.py
- 需要先运行 AirSim 模拟器
新增文档:
- 运行指南.md: 详细的中文运行说明
- 运行_本地仿真.bat: 本地仿真一键启动
- 运行_AirSim 版.bat: AirSim 一键启动(含检查)

使用说明:
- 新手:双击 运行_本地仿真.bat
- AirSim: 双击 运行_AirSim 版.bat
- 包含完整的控制说明和故障排除
@springstart11111 springstart11111 force-pushed the hw-02-gesture-drone-control branch from 514081f to 069e2bf Compare April 18, 2026 04:26
@donghaiwang donghaiwang merged commit b8204bb into OpenHUTB:main Apr 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants