chore(metadata): update beads and sisyphus planning artifacts

This commit is contained in:
2026-02-07 04:16:41 +00:00
parent ddb7054f96
commit cdc4f9eec4
28 changed files with 633 additions and 220 deletions
+8
View File
@@ -0,0 +1,8 @@
{
"active_plan": "/workspaces/zed-playground/py_workspace/.sisyphus/plans/ground-plane-alignment.md",
"started_at": "2026-02-06T10:34:57.130Z",
"session_ids": [
"ses_3cd9cdde1ffeQFgrhQqYAExSTn"
],
"plan_name": "ground-plane-alignment"
}
@@ -0,0 +1,2 @@
- Alignment is applied via pre-multiplication to the 4x4 pose matrix, consistent with global frame rotation.
- Chose to raise ValueError for degenerate cases (collinear corners) in compute_face_normal.
@@ -32,7 +32,14 @@
## Debugging Heuristics
## Documentation Gaps
- Users were unclear on how `--auto-align` made decisions (heuristic vs explicit) and what `--refine-depth` actually did. The new documentation addresses this by explaining the decision flow and the optimization objective function.
## Jaxtyping Runtime Dependencies
- `jaxtyping` imports failed at runtime because it expects a backend (jax, torch, or tensorflow) to be installed.
## Depth Refinement Failure
- Depth refinement was failing (0 iterations, no improvement) because the depth map was in millimeters (~2500) while the computed depth from extrinsics was in meters (~2.5). This resulted in huge residuals (~2497.5) that the optimizer couldn't handle effectively. Fixed by normalizing the depth map to meters immediately upon retrieval.
@@ -64,7 +64,17 @@
## Debug Visibility
## Documentation
- Created `docs/calibrate-extrinsics-workflow.md` to document the runtime behavior of the calibration tool, specifically detailing the precedence logic for ground plane alignment and the mathematical basis for depth verification/refinement.
## Type Annotation Hardening
- Integrated `jaxtyping` for shape-aware array annotations (e.g., `Float[np.ndarray, "4 4"]`).
- Used `TYPE_CHECKING` blocks to define these aliases, ensuring they are available for static analysis (like `basedpyright`) while falling back to standard `np.ndarray` at runtime if `jaxtyping` backends are missing.
## Depth Units
- ZED SDK `retrieve_measure(sl.MEASURE.DEPTH)` returns values in the unit defined in `InitParameters.coordinate_units`.
- The default unit is `MILLIMETER`.
- Since our extrinsics and marker geometry are in meters, we must explicitly convert the retrieved depth map to meters (divide by 1000.0) to avoid massive scale mismatches during verification and refinement.