修复审查发现的自动赛与状态机问题
- rotater 开机默认按收拢姿态归零(assumeZeroedOnBoot,可关), 否则自动赛无人能按归零键,收球和射击被未归零保护永久拦下 - 预装球开机默认持球(assumePreloadedAtBoot,可关), 否则自动赛第一发被 hasNote 门控拦死 - 新增操作员 X 键运行时翻转持球状态,纠正无传感器推断的失真 - 进入禁用前结算持球推断:SHOOTING 中被禁用视为球已射出, INDEXING 中被禁用视为球已入传送带 - 未归零被拦下的 intake 转射击不再误置持球 - CLEANUP 结束不再强写 wantedState=IDLE,清理窗口内重按射击键不会被吞 - 机构请求按键加 teleop 门控,防止自动赛误触取消 PathPlanner 自动程序 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YTEBmjtkz1ouCmn5yytFti
This commit is contained in:
@@ -51,6 +51,15 @@ public class IntakeRotaterSubsystem extends SubsystemBase {
|
||||
rightIntakeRotater.getConfigurator().apply(Constants.Intaker.intakeRotaterSlot0Configs);
|
||||
rightFollower = new Follower(leftIntakeRotater.getDeviceID(), MotorAlignmentValue.Opposed).withUpdateFreqHz(50);
|
||||
followLeft();
|
||||
|
||||
if (Constants.Intaker.assumeZeroedOnBoot) {
|
||||
// 开机默认机构处于收拢姿态,直接把当前位置记为零点,
|
||||
// 让自动赛阶段的收球/射击门控可以工作;只标定编码器,不命令运动。
|
||||
leftIntakeRotater.setPosition(0.0);
|
||||
rightIntakeRotater.setPosition(0.0);
|
||||
zeroed = true;
|
||||
goal = IntakePosition.STOW;
|
||||
}
|
||||
}
|
||||
|
||||
public void setGoal(IntakePosition position) {
|
||||
|
||||
Reference in New Issue
Block a user