OpModes 自动控制文件解析¶
约 600 个字 预计阅读时间 2 分钟
1. 命名规则¶
文件名通常遵循 颜色_位置_策略 的格式: * 颜色 (Color): BLUE (蓝盟) vs RED (红盟) * 位置 (Position): Far (远端/观众席侧) vs Near (近端/后台侧) * 策略 (Strategy): 12ball (激进策略,更多循环) vs 9ball (保守策略,较少循环) vs Test (测试/简化版)
2. 远端自动 (Far Side Auto)¶
适用于机器人从离得分区较远的位置(通常是观众席一侧)出发。
| 文件名 | 描述与区别 |
|---|---|
BLUE_Far_12ball.java | 蓝盟远端主程序。 • 逻辑:执行 3 次“捡球-射击”循环(Gather1/2/3)。 • 路径:起点 -> 射击点1 -> 捡球点1 -> 射击点2 -> ... -> 结束。 • 特点:坐标系 Y 轴为正,Heading 角度适应蓝方。 |
RED_Far_12ball.java | 红盟远端主程序。 • 逻辑:与 BLUE_Far_12ball 完全对应,但坐标镜像。• 特点:Y 轴坐标为负,Heading 角度取反。 • 目标:尝试完成所有 3 堆球的拾取和射击。 |
RED_Far_9ball.java | 红盟远端(保守版)。 • 逻辑:比 12ball 版本少一个循环。 • 区别:只执行到 FinishGather2 和随后的射击,不去捡第 3 堆球。• 用途:当时间不够或为了求稳时使用。 |
3. 近端自动 (Near Side Auto)¶
适用于机器人从离得分区较近的位置(后台一侧)出发。
| 文件名 | 描述与区别 |
|---|---|
BLUE_Near_12ballPk.java | 蓝盟近端主程序。 • 逻辑:近端特有的路径规划。 • 特点:代码中虽然定义了 Gate(门)的坐标,但在构建路径时被注释掉了,采用直接路径。 |
RED_Near_12ball.java | 红盟近端(带过门逻辑)。 • OpMode Name: "RED_Near_12ball_gate"• 核心区别:路径规划中显式包含了 Gate(门) 的路径点( GatePose -> GatePassby)。• 用途:用于避开场地中间的桁架或障碍物。 |
RED_Near_12ballTest.java | 红盟近端(直连/测试版)。 • OpMode Name: "RED_Near_12ball"• 核心区别:这是 RED_Near_12ball.java 的修改版。它注释掉了过门路径点,直接从捡球点连线到射击点。• 用途:路径更短更快,适用于无障碍情况。 |
4. 代码逻辑共性¶
所有文件共享同一套底层架构: 1. 状态机 (State Machine): 使用 switch(pathState) 分步执行任务(移动 -> 射击 -> 捡球 -> 循环)。 2. 子系统 (Subsystems): * Follower: 使用 PedroPathing 库进行路径跟随。 * Shooter: 控制飞轮射击,包含自动瞄准 (updateFocused)。 * Intake: 控制进气,与射击状态联动。 * Limelight: 视觉辅助测距。