基础概念
本文档介绍 DronePilotWeb 中的核心概念,帮助您更好地理解和使用本系统。
坐标系统
三维空间坐标
DronePilotWeb 使用右手坐标系:
- X 轴:水平方向,向右为正
- Y 轴:垂直方向,向上为正
- Z 轴:前后方向,向前为正
角度系统
使用弧度制表示角度:
- 0:向右
- π/2:向前
- π:向左
- -π/2:向后
运动控制
移动解锁
悬停模式
hover: true- 保持水平位置不变
- 可调整高度
运动模式
hover: false- 按指定角度和速度移动
- 同时可调整高度
速度控制
- 单位:米/秒
- 建议范围:0.1 ~ 0.5
- 过高速度可能导致控制不稳
高度控制
- 单位:米
- 最小高度:0.05
图像处理
摄像头系统
底部摄像头
- 分辨率:240×240
- 视场角:60°
- 朝向:垂直向下
- 实时更新
图像格式
- OpenCV.js Mat 对象
- RGB 颜色空间
- 可转换为其他颜色空间
颜色空间
RGB
- 默认颜色空间
- 适合显示
- 不适合颜色检测
HSV
- 适合颜色检测
- H:色相
- S:饱和度
- V:明度
图像处理流程
获取图像
- 通过
frame参数 - OpenCV.js Mat 格式
- 通过
处理图像
- 颜色空间转换
- 阈值分割
- 形态学操作
- 轮廓检测
返回结果
- 处理后的图像
- 运动控制命令
场景管理
地面系统
尺寸设置
- 可调整宽度和深度
- 单位:米
- 实时更新
纹理管理
- 支持自定义纹理
- 提供预设纹理
- 自动适应尺寸
场景存储
保存内容
- 场景名称
- 地面尺寸
- 地面纹理信息
加载机制
- 自动加载纹理
- 调整地面尺寸
- 重置无人机位置
代码执行
执行环境
全局变量
- 使用
window对象 - 持久存储状态
- 每次刷新重置
- 使用
局部变量
- 每帧重新创建
- 不保持状态
- 及时释放资源
执行周期
初始化
- 设置初始状态
- 创建必要对象
- 初始化变量
循环执行
- 每帧调用
- 处理图像
- 返回控制命令
清理资源
- 释放 Mat 对象
- 清理临时变量
- 避免内存泄漏
最佳实践
状态管理
- 使用状态机模式
- 合理使用全局变量
- 注意状态转换
资源管理
- 及时释放内存
- 避免重复创建
- 优化性能
错误处理
- 添加异常捕获
- 提供默认行为
- 保持代码健壮