1. 竞速门穿越项目概述
浙江省机器人竞赛"空中机器人"赛项中的竞速门穿越环节,是检验无人机自主飞行与精准控制能力的经典项目。参赛团队需要设计一套完整的飞行控制系统,使无人机能够在无人干预的情况下,自主识别并穿越一系列悬挂在不同高度的圆环形门框。这个看似简单的任务,实际上融合了机器视觉、飞控算法、路径规划等多领域技术难点。
去年带队参赛时,我们花了整整三个月时间才让无人机稳定完成整套动作。最让人头疼的是那扇离地仅1.2米、直径80cm的矮门——视觉识别容易受地面干扰,飞行高度控制稍有偏差就会撞上门框。经过反复调试,最终我们采用"视觉辅助+超声波定高"的混合方案,将穿越成功率提升到95%以上。
2. 核心技术与实现方案
2.1 硬件系统搭建
竞赛级无人机通常采用四旋翼构型,我们选配的硬件组合经过多次迭代验证:
- 飞控主板:Pixhawk 4 Mini(稳定性优于普通F4飞控)
- 主处理器:Jetson Nano(兼顾算力和功耗)
- 视觉模块:Intel RealSense D435i(RGB+深度+IMU三合一)
- 测距模块:US-100超声波(用于低空精确定高)
- 动力系统:2207 1750KV电机+6045三叶桨
特别注意:竞赛规则明确禁止使用GPS定位,所有导航必须依靠机载传感器实现。这要求飞控必须具备良好的姿态解算和视觉里程计能力。
2.2 视觉识别系统设计
门框识别采用经典的计算机视觉处理流程:
-
图像预处理:
- 高斯滤波去噪(kernel size=5)
- HSV色彩空间转换(重点提取红色门框)
- 自适应阈值二值化(适应不同光照条件)
-
轮廓检测与筛选:
python复制contours, _ = cv2.findContours(binary_img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
valid_contours = [cnt for cnt in contours if 0.7 < cv2.contourArea(cnt)/(math.pi*(min_rect[1][0]/2)**2) < 1.3]
- 空间定位计算:
- 通过已知门框实际直径(80cm)和成像大小
- 结合深度相机数据,计算出门框中心相对无人机的三维坐标
我们在实际测试中发现,当无人机与门框成角超过30度时,圆形检测准确率会急剧下降。为此增加了IMU数据补偿,根据无人机姿态动态调整识别参数。
2.3 飞行控制算法
穿越过程中的控制逻辑分为三个层次:
-
粗定位阶段:
- 使用PID控制器维持2m/s的巡航速度
- 视觉系统持续检测门框位置
- 当门框进入3米范围内时转入精调模式
-
精调对准阶段:
- 横向控制:LQR控制器(权重矩阵Q=diag[1,0.1,0.5])
- 高度控制:串级PID(外环位置+内环速度)
- 偏航角保持:Mahony互补滤波
-
穿越执行阶段:
- 前馈控制补偿风阻影响
- 动态调整穿越速度(0.8-1.2m/s可配置)
- 穿越后立即进行状态确认(通过门框计数)
3. 关键问题与解决方案
3.1 低空飞行稳定性控制
离地1.2米的低空区域存在明显的地面效应,会导致:
- 气压计测高误差增大(±15cm)
- 下洗气流扰动增强
- 视觉系统易受地面纹理干扰
我们的解决方案:
- 融合超声波定高数据(采样率50Hz)
- 在飞控中增加地面效应补偿项:
c复制float ground_effect_factor = 1.0f - constrain((altitude - 0.2f)/1.0f, 0, 1); thrust_output *= (1.0f + 0.15f * ground_effect_factor); - 视觉识别区域限定在图像上半部分(减少地面干扰)
3.2 多门连续穿越策略
竞赛场地通常设置3-5个门框,间距2-3米不等。快速连续穿越需要解决:
- 门框间过渡路径优化
- 飞行状态快速稳定
- 异常情况恢复机制
我们开发的"预测-修正"算法流程:
- 穿越当前门框时,记录通过时刻的位姿
- 根据历史数据预测下一门框位置
- 实际检测到门框后进行位置修正
- 动态调整速度曲线(采用梯形加速模式)
实测数据显示,该策略将平均穿越时间从5.2秒缩短到3.8秒,同时将碰撞概率降低60%。
4. 现场调试与优化技巧
4.1 标定流程标准化
赛前必须完成的标定项目:
| 标定项目 | 工具/方法 | 允许误差 |
|---|---|---|
| 相机内参 | MATLAB标定工具箱 | <0.3像素 |
| 相机-IMU外参 | Kalibr工具箱 | <1cm |
| 电机响应曲线 | 激光转速计+示波器 | <5% |
| 超声波偏移量 | 实测平台对比 | <1cm |
经验提示:每次更换螺旋桨后必须重新标定电机曲线,不同桨叶的气动特性差异会导致控制响应变化。
4.2 参数整定方法论
飞控参数调试遵循"先静态后动态"原则:
-
悬停调试(无风环境):
- 先调姿态内环(Pitch/Roll角速率)
- 再调位置外环(XY轴位移)
- 最后调高度环
-
动态调试(有门框场景):
- 先用低速(0.5m/s)测试穿越稳定性
- 逐步提高速度并观察超调量
- 重点优化转弯过渡段的控制参数
我们总结的参数调整速查表:
| 现象 | 可能原因 | 调整方向 |
|---|---|---|
| 穿越时左右振荡 | 横向D增益过高 | 减小D项或增加滤波 |
| 门框中心持续偏左 | 相机安装位置偏差 | 修正外参或软件补偿 |
| 低空高度波动明显 | 超声波噪声过大 | 增加中值滤波窗口 |
| 高速穿越时过冲 | 前馈补偿不足 | 增大速度前馈系数 |
4.3 竞赛现场应急方案
根据多次参赛经验,必须准备的应急措施:
-
光照突变应对:
- 准备不同曝光参数的视觉配置文件
- 携带便携遮光罩(应对逆光情况)
-
设备故障预案:
- 备用无人机核心部件(至少2套飞控+相机)
- 快速更换的模块化线束设计
-
规则适应技巧:
- 提前确认门框颜色RGB值(不同届次可能有变化)
- 准备可快速调整的穿越速度参数组
去年决赛时就遇到突发状况——场地灯光色温与测试环境差异巨大,导致门框识别率骤降。我们立即切换到备用参数组(将HSV阈值从[0,100,100]-[10,255,255]调整为[0,80,120]-[20,255,255]),最终顺利完成比赛。
5. 进阶优化方向
对于希望进一步提升成绩的团队,可以考虑:
-
多传感器融合定位:
- 引入光流传感器补偿XY轴位移
- 使用UWB进行辅助定位(需规则允许)
-
机器学习增强:
- 用YOLOv5-tiny替代传统视觉算法
- 训练LSTM网络预测门框位置
-
气动优化:
- 测试不同桨叶在不同转速下的效率
- 设计低阻力的机臂保护罩
实测数据显示,仅通过桨叶优化(从普通6045换成乾丰7040三叶桨),在相同功耗下就能将最大稳定飞行速度从3m/s提升到3.8m/s。
竞速门穿越项目最迷人的地方在于,它看似简单的任务要求背后,蕴含着无人机自主控制领域的诸多核心技术。从最初的频繁炸机到最后的行云流水般的穿越,这个过程带给我们的不仅是技术成长,更是对工程问题系统化解决思维的锤炼。建议新手团队从最基础的PID调参开始,逐步增加系统复杂度,切忌一开始就追求花哨的算法——有时候,把简单的控制逻辑做到极致,反而能获得最稳定的表现。