1.7 KiB
1.7 KiB
- Fixed edge cases in
compute_face_normalto use stable edge definition for quad faces (corners[1]-corners[0] x corners[3]-corners[0]). - Fixed edge cases in compute_face_normal to use stable edge definition for quad faces (corners[1]-corners[0] x corners[3]-corners[0]).
- Added explicit shape validation and zero-norm guards in rotation_align_vectors.
- Ensured concrete np.ndarray return types with explicit astype(np.float64) to satisfy type checking.
Type Checking Warnings
basedpyrightreports numerous warnings, mostly related toAnytypes fromcv2andpyzed.slbindings which lack full type stubs.- Deprecation warnings for
List,Dict,Tuple(Python 3.9+) are present but existing style uses them. Kept consistent with existing code. reportUnknownVariableTypeis common due to dynamic nature of OpenCV/ZED returns.
Parquet Metadata Handling
awkwardlibrary used for parquet reading returns jagged arrays for list columns likeids.ak.to_list()is necessary to convert these to standard Python lists for dictionary values.
Backward Compatibility
-
While
FACE_MARKER_MAPconstant remains inaruco/alignment.pyfor potential external consumers, it is no longer used by the CLI tool. -
Users with old parquet files will now see a warning and no alignment, rather than silent fallback to potentially incorrect hardcoded IDs.
-
None encountered during test implementation. API signatures were consistent with the implementation in
aruco/alignment.py.
Runtime Errors
Messaging Consistency
Iteration Speed
- Processing full SVO files (thousands of frames) is too slow for verifying simple logic changes. The
--max-samplesoption addresses this by allowing early exit after a few successful samples.