Small quaternion rotations are lost in axis-angle conversion
评估
调研方向
Start with the transformations.axisangle_to_quat and transformations.quat_to_axisangle entry points and run the reproduction shown in the issue. Check the existing conversion behavior around the 1e-10 threshold, negative quaternions, principal-angle handling, half-turns, and scalar validation. Done means small above-threshold rotations round-trip without losing their vector information while the stated existing conventions remain unchanged.
由索引模型根据 Issue 内容生成。
描述
Reproduction
import numpy as np
from dm_control.utils import transformations
rotation = np.array([1e-8, 0., 0.])
quat = transformations.axisangle_to_quat(rotation)
print(quat) # [1.e+00, 5.e-09, 0.e+00, 0.e+00]
print(transformations.quat_to_axisangle(quat)) # [0., 0., 0.]
The rotation is above the function's 1e-10 threshold. Its information remains in the quaternion's vector part, but the scalar has rounded to one, so arccos loses the angle. Equivalent negative quaternions also suffer cancellation.
Recover small angles from the vector part while retaining the principal-angle range, half-turn convention, subthreshold identity behavior and scalar-range validation. Native MuJoCo quaternion-to-velocity conversion retains this rotation.
Reproduced on main at a04e3e4cf56c12117d2294bb090f9acec21e5c67.
- 主要语言
- Python
- 星标
- 4.7k
- 派生
- 771
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
google-deepmind/dm_control 的其他 Issue
-
Initial observation padding changes when source arrays are reused可能已有人在做 @sylvesterkaczmarek 于 16 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 85/100
google-deepmind/dm_control#559 ·
-
Built-in observation aggregators drop bounds-preserving specifications可能已有人在做 @sylvesterkaczmarek 于 16 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 75/100
google-deepmind/dm_control#560 ·
-
Flattened observations disagree with explicitly declared task specifications可能已有人在做 @sylvesterkaczmarek 于 16 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 74/100
google-deepmind/dm_control#557 ·
-
Schema regeneration in 985d0940 dropped three declarations MuJoCo 3.12 accepts (contact sensor, jointinparent references, custom numeric arrays)可能已有人在做 @shoemoney 于 51 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 76/100
google-deepmind/dm_control#552 ·
-
DeprecationWarning: Setting the shape on a NumPy array has been deprecated in NumPy 2.5.可能已有人在做 @Trenza1ore 于 96 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 45/100
google-deepmind/dm_control#540 · 1 条评论 ·
查看 google-deepmind/dm_control 的全部 Issue
相似的 Issue
-
approved Good First Issue scope: docs
难度 1/5 1 小时以内 新手友好度 85/100
hiero-ledger/hiero-sdk-python#2730 · 3 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 62/100
wemake-services/wemake-django-template#3178 · 1 个 reaction ·
维护者通常 1 天内回复
-
md/asciidoc/csv: an explicit `encoding="utf-8"` keeps a leading BOM, the auto-detect path drops it未关闭
难度 2/5 1-3 小时 新手友好度 82/100
docling-project/docling#4846 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
neurostuff/NiMARE#1181 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
pytest-dev/pytest#15180 ·
维护者通常 1 天内回复