Skip to content

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: 视觉辅助测距。

颜色主题调整