Analysis: python state-estimation/replay/analyze_field_ekf.py → 130 tag updates over 20 s at 400 Hz; logged innovation median 1.0 cm. Post-fit residual median 0.3 cm, 7 of 130 above the 95 % line (not a consistency test: the residual is pulled toward the fix).
Analysis: python perception-sqpnp/replay/analyze_localizer.py → 183 frames, 110 pooled multi-tag solves; chosen-tag reprojection error median 0.035 px as logged; σx from the logged covariance median 7.5 mm.
The AprilTag localizer turns a camera image into the camera’s pose on the field, plus a 6x6 covariance.
If the geometry is not observable, the pose is withheld instead of inventing a covariance.
The point cloud is the camera driver’s own output; the localizer started from a teammate’s port, and its pooled multi-tag solve and covariance are mine.
The viewer buttons open the clip with its panel layout in Lichtblick, an open-source build of Foxglove Studio; no sign-in.
Shoot on the move
Clip: the competition robot shooting while it drives.Open the MP4 file
A turret that keeps aiming while the robot drives, with shot compensation for the robot’s velocity.
A ball fired from a moving robot keeps the robot’s velocity. The compensation looks ahead and splits the velocity into the part toward the target and the part across it.
I wrote the turret’s aiming cascade and its shot compensation, with contributions from teammates.
Clip: the 10 s whole-body cycle replayed in the browser viewer: joint references against measurements, the phase, the arm and the robot on the field.Open the MP4 file
A solver on the coprocessor decides how the whole robot moves.
A phase state machine runs DRIVE, APPROACH, TASK and RETRACT. On entering TASK, the goal is converted into the solver’s frame and frozen, so it stays at one field point.
The goal freeze and the QP moving the chassis were simulation-only.
Reaching a field-fixed goal from AprilTag localization
Clip: the arm following an AprilTag held at the end of a stick.Open the MP4 file
AprilTag fixes tell the robot where it stands, so the arm’s goal can be fixed on the field.
The arm’s goals are poses fixed on the field, while the whole-body solver works in the robot’s own frame. Before TASK, APPROACH requires the field pose to be fresh.
This demo mode is not excerpted in the showcase repository.