2026 Rebuilt - AdvantageKit Logging Reference Quick reference for all Logger.recordOutput() keys. Open these in AdvantageScope to troubleshoot.
Key Type What it tells you Drive/PosePose2d Current robot pose from odometry Odometry/RobotPose2d Same as Drive/Pose (duplicate for AdvantageScope field widget) Drive/HeadingRotation2d Current robot heading Drive/OdometryHeadingRotation2d Heading from the pose (should match Drive/Heading) Drive/GyroYawRotation2d Raw gyro yaw Drive/GyroPitchRotation2d Raw gyro pitch Drive/GyroRollRotation2d Raw gyro roll Drive/GyroRotation3dRotation3d Full 3D gyro orientation
Key Type What it tells you Drive/RobotVelocityChassisSpeeds Measured velocity in robot frame Drive/FieldVelocityChassisSpeeds Measured velocity in field frame Drive/CommandedRobotVelocityChassisSpeeds What we told the drivebase to do (robot frame) Drive/CommandedFieldVelocityChassisSpeeds What we told the drivebase to do (field frame) Drive/CommandedOmegadouble Commanded rotational rate (rad/s). Should be ~0 with no turn input Drive/ActualOmegadouble Measured rotational rate (rad/s). Compare with commanded to check responsiveness
Key Type What it tells you Drive/CurrentModuleStatesSwerveModuleState[] Actual speed + angle of each module Drive/DesiredModuleStatesSwerveModuleState[] What we commanded each module to do Drive/ModulePositionsSwerveModulePosition[] Drive distance + angle for each module
Key Type What it tells you Drive/Aim/DynamicHubPosePose2d Velocity-compensated hub aim point. Overlay on field to see SOTM lead Drive/Aim/StaticHubPosePose2d Actual hub position. Compare with dynamic to see how much lead is applied Drive/Aim/TargetAngleDegdouble Desired robot heading to face the compensated hub Drive/Aim/CurrentHeadingDegdouble Actual robot heading. Compare with target to sanity check error Drive/Aim/ErrorDegHubdouble Degrees off from hub aim target. Should converge to ~0 when aiming. If not, PID tuning issue Drive/Aim/DistanceToHubMdouble Distance to compensated hub. Correlate with shot accuracy to validate TOF table Drive/Aim/RobotVelXdouble Field-relative X velocity (m/s). If SOTM lead looks wrong, check for noisy velocity Drive/Aim/RobotVelYdouble Field-relative Y velocity (m/s) Drive/Aim/IsLockedboolean If true, SOTM is bypassed and static hub pose is used
Key Type What it tells you Drive/Aim/DynamicFerryPosePose2d Velocity-compensated ferry aim point. Overlay on field to verify correct ferry spot Drive/Aim/ErrorDegFerrydouble Degrees off from ferry aim target. Same use as hub error Drive/Aim/DistanceToFerryMdouble Distance to ferry target. Useful if passes fall short or overshoot
Key Type What it tells you Drive/Auto/TargetPathPosePose2d Where PathPlanner wants the robot to be right now Drive/Auto/PathFollowingErrorMdouble Distance (m) between robot and path target. Graph to see when error spikes Drive/Auto/IsOffPathboolean True when error > 0.15m. This is when followWithRecovery switches to recovery path Auto/CurrentPathString Name of the PathPlanner path currently executing. Changes to recovery path name when recovery fires Auto/RecoveryPathString Name of the configured recovery path for the current segment Auto/RecoveryTriggeredboolean Flips to true when the robot actually takes the recovery branch (not just off-path) Auto/PathLoadErrorString Error message if a path file fails to load. Empty normally — if populated, that auto segment returned Commands.none() Auto/ShootingAttemptedboolean True when makeAutoShootCommand fires during auto Auto/InAllianceZoneboolean Which branch auto shooting took — true = shoot at hub, false = no-op
Key Type What it tells you Shooter/Right1RPMdouble Right flywheel 1 speed Shooter/Right2RPMdouble Right flywheel 2 speed Shooter/Left1RPMdouble Left flywheel 1 speed Shooter/Left2RPMdouble Left flywheel 2 speed Shooter/TargetRPMdouble Commanded flywheel RPM. Compare with actual to check spin-up time Shooter/TargetKickerRPMdouble Commanded kicker RPM Shooter/Right1AppliedVoltsdouble Voltage applied to right motor 1 Shooter/Right2AppliedVoltsdouble Voltage applied to right motor 2 Shooter/Left1AppliedVoltsdouble Voltage applied to left motor 1 Shooter/Left2AppliedVoltsdouble Voltage applied to left motor 2 Shooter/KickerLeftRPMdouble Left kicker actual speed Shooter/KickerRightRPMdouble Right kicker actual speed Shooter/KickerLeftAppliedVoltsdouble Voltage applied to left kicker Shooter/KickerRightAppliedVoltsdouble Voltage applied to right kicker Shooter/LUTCurrentTargetRPMdouble RPM from the lookup table for current distance Shooter/LUTDistancedouble Distance used for the LUT lookup
Key Type What it tells you Intake/DesiredPercentdouble Commanded intake percent output Intake/AppliedVoltsdouble Actual voltage to intake motor IntakeRightRPMdouble Right intake roller speed IntakeLeftRPMdouble Left intake roller speed IntakeTargetRPMdouble Target intake RPM from constants
Key Type What it tells you Hopper/PushdownDesiredPercentdouble Commanded pushdown (right twindexer) percent Hopper/TransferDesiredPercentdouble Commanded transfer (left twindexer) percent Hopper/TwindexerRightMotordouble Right twindexer applied output Hopper/TwindexerLeftMotordouble Left twindexer applied output
Key Type What it tells you Pushout/DesiredPercentdouble Commanded pushout percent output
Key Type What it tells you ObjectDetection/PipelineHasTargetsboolean Whether the camera sees any game pieces ObjectDetection/TargetPoseTransform3d Best camera-to-target transform ObjectDetection/AlignToFuelPosePose2d Computed pose to drive to for pickup
Shooting Sequence (RT Command) These log the state of the RT shooting/passing sequence — the gates that control when feeding starts and stops.
Key Type What it tells you Shooting/RTHeldboolean Whether the driver right trigger is pressed Shooting/InAllianceZoneboolean Which branch was taken — true = shooting at hub, false = passing to ferry Shooting/AimLock1Degboolean True when aim error is within 1 deg of hub. This is the gate for feeding to start Shooting/AimLock3Degboolean True when aim error is within 3 deg of hub. Feeding stops if this goes false Shooting/FerryAimLock3Degboolean True when aim error is within 3 deg of ferry target. Gate for ferry feeding
Key Type What it tells you Input/Driver/LeftXdouble Left stick X axis Input/Driver/LeftYdouble Left stick Y axis Input/Driver/RightXdouble Right stick X axis Input/Driver/RightYdouble Right stick Y axis Input/Driver/LeftTriggerdouble Left trigger axis (0-1) Input/Driver/RightTriggerdouble Right trigger axis (0-1)
Key Type What it tells you Input/Operator/LeftXdouble Left stick X axis Input/Operator/LeftYdouble Left stick Y axis Input/Operator/RightXdouble Right stick X axis Input/Operator/RightYdouble Right stick Y axis Input/Operator/LeftTriggerdouble Left trigger axis (0-1) Input/Operator/RightTriggerdouble Right trigger axis (0-1)
Aim logs only appear when RT is held (isAiming = true). If you don't see Drive/Aim/ keys updating, the aim command isn't running.Auto recovery logs run always during auto and teleop.All Drive/ logs come from SwerveSubsystem.periodic(). All Shooter/ logs come from Shooter.periodic(). Controller input logs come from RobotContainer. Symptom What to check What it means Robot drifting when driving straight Drive/CommandedOmega should be ~0, check Drive/ActualOmegaIf actual omega is nonzero with zero commanded, heading correction may be off or gyro is drifting Robot not driving at full speed Drive/CommandedFieldVelocity vs Drive/FieldVelocityIf commanded is low, check for scaleTranslation. If actual is low but commanded is high, mechanical issue Odometry jumping Drive/Pose on field view, check for sudden teleportsVision measurement with bad data got accepted. Check Limelight rejection thresholds Modules fighting each other Drive/CurrentModuleStates vs Drive/DesiredModuleStatesIf angles are far apart, module PID tuning issue or encoder offset wrong
Symptom What to check What it means Aim lagging behind while moving Check if aimLookahead is set in AimAtHub. Graph ErrorDegHub Without lookahead, aim chases current position instead of leading. Should have 0.2s lookahead Aim oscillating, never settling Graph ErrorDegHub — if it bounces +/- degrees Heading PID gains too aggressive, or aimFeedforward values need tuning Aim not tracking at all Check Drive/Aim/DynamicHubPose exists in log If missing, isAiming is false — AimAtHub isn't running. Check command scheduling SOTM lead looks wrong Compare DynamicHubPose vs StaticHubPose on field view Lead should point opposite to robot velocity. If not, check RobotVelX/RobotVelY for noisy readings Aim stops when shooter reaches speed Check if AimAtHub gets interrupted in command scheduler lockCommand or another drivebase command may be taking over. AimAtHub should hold drivebase the entire timeShots missing at distance Graph DistanceToHubM and correlate with Shooter/LUTDistance If they don't match, the shooter RPM lookup is using a different distance than the aim system IsLocked is true unexpectedlyCheck Drive/Aim/IsLocked When locked, SOTM is bypassed and static hub pose is used. Robot must be stationary (no sticks) for this
Symptom What to check What it means Nothing happens when RT pressed Shooting/RTHeld should be trueIf false, trigger not registering. If true, check Shooting/InAllianceZone — may have taken wrong branch Shooter spins but never feeds Shooting/AimLock1Deg — is it ever true?Feeding waits for shooter at speed AND aim within 1 deg. If aim never locks, check ErrorDegHub Feeding starts then immediately stops Shooting/AimLock3Deg — does it flicker?Feeding has a 3 deg onlyWhile gate. If aim oscillates around 3 deg, feeding cuts in and out Shooting when not aimed at hub Shooting/AimLock1Deg should be false until aimedIf true when not aimed, the aimLock threshold may be too loose or the error calculation is wrong Passing not working in opponent zone Shooting/InAllianceZone should be falseIf true, robot thinks it's in alliance zone. Check zone boundary thresholds (182in blue, 469in red) Ferry feeding cuts out Shooting/FerryAimLock3Deg — is it stable?Same as hub — if aim oscillates near 3 deg, feeding stops. May need wider threshold
Symptom What to check What it means Shooter not spinning up Shooter/TargetRPM — is it nonzero?If zero, the shoot command isn't running. If nonzero, check AppliedVolts — motor may not be responding Shooter slow to reach speed Graph Shooter/TargetRPM vs actual RPMs over time Large gap = PID too slow, voltage sag, or mechanical drag Left/Right shooter mismatch Compare Left1RPM/Left2RPM vs Right1RPM/Right2RPM If one side lags, check for mechanical binding or motor issue on that side Kicker not feeding Shooter/KickerLeftRPM and KickerRightRPM should be nonzeroIf zero, kicker command isn't running. Check the shooting sequence composition Shots inconsistent at same distance Shooter/LUTCurrentTargetRPM should be stableIf RPM fluctuates, the distance reading is noisy — check LUTDistance
Symptom What to check What it means Intake not running Intake/DesiredPercent — should be nonzero when commandedIf zero, command isn't reaching the intake. If nonzero but AppliedVolts is zero, motor issue Fuel not transferring to shooter Hopper/TransferDesiredPercent and Hopper/PushdownDesiredPercentBoth should be nonzero during the feed sequence Fuel jamming Check if Pushout/DesiredPercent is cycling (agitate) If not, the agitate command may not be running in the shooting sequence
Symptom What to check What it means Recovery triggering too early Graph PathFollowingErrorM — what's the normal tracking error? If it regularly hits 0.12-0.14m during normal runs, the 0.15m threshold is too tight. Increase to 0.2-0.25m Recovery not triggering when knocked IsOffPath should flip true when hitIf it stays false, the threshold is too loose or targetPathPose isn't updating (check configurePathPlannerLogging) Recovery flickering IsOffPath rapidly toggles true/falseRobot is hovering at the threshold boundary. Need hysteresis or a wider threshold Robot recovers but ends up in wrong spot Overlay TargetPathPose and Drive/Pose on field view Recovery path may not end where the next auto step expects. Check recovery path endpoints Auto segment does nothing Check Auto/PathLoadError for an error message If populated, the path file failed to load and the segment silently returned a no-op. Verify path file names in PathPlanner Can't tell if recovery actually fired Check Auto/RecoveryTriggered — should flip true IsOffPath can be true without recovery running (e.g., checked twice). RecoveryTriggered confirms the recovery branch was takenDon't know which path is running Check Auto/CurrentPath — updates at each segment start Changes from main path name to recovery path name when recovery fires. Correlate with RecoveryTriggered Auto shooting not firing Check Auto/ShootingAttempted and Auto/InAllianceZone If ShootingAttempted is true but InAllianceZone is false, robot thinks it's outside alliance zone — check zone boundaries
Symptom What to check What it means Robot not responding to sticks Check Input/Driver/LeftX, LeftY, RightX If values change with sticks, the issue is downstream. If stuck at 0, controller not connected or wrong port Wrong controller is driving Compare Input/Driver/ vs Input/Operator/ values while pressing sticks Controller may be assigned to wrong role. Check the driver/operator chooser