Skip to content

Preserve general type for mixed dual-quaternion products - #295

Open
kaushikgunasekaren wants to merge 2 commits into
rai-opensource:masterfrom
kaushikgunasekaren:fix/dual-quaternion-product-type
Open

kaushikgunasekaren wants to merge 2 commits into
rai-opensource:masterfrom
kaushikgunasekaren:fix/dual-quaternion-product-type

Conversation

@kaushikgunasekaren

Copy link
Copy Markdown

UnitDualQuaternion * DualQuaternion checked the left operand twice when deciding the product type. A general nonunit right operand therefore became a UnitDualQuaternion, while the opposite operand order correctly returned DualQuaternion. This incorrectly exposes unit-only SE3/point-transform operations on a nonunit value.

Check both operands. Quaternion coefficients and the both-unit/general-general paths are unchanged.

Validation: 10 regression/control cases covering both mixed orders across three poses, unit products against SE3 composition, and general products against the independent 8x8 matrix representation. Original code: 3 failed / 7 passed. Fixed full suite: 576 passed, 3 skipped, 99 subtests passed; 29 existing warnings. Untouched baseline: 566 passed with the same skips/subtests/warnings. Python 3.10, local CPU tests, no robot hardware. Black 23.10.0, fatal-flake8 selection on changed files, and git diff --check pass. Whole-tree fatal-flake8 also reports two existing undefined SMPose names in tests/test_dualquaternion.py, untouched here.

Separate from #225's conjugation/vector-transform fixes and #292's norm fix; this only changes mixed-product result classification.

AI assistance was used for investigation, implementation and tests. No hardware validation is claimed.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant