Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Small quaternion rotations are lost in axis-angle conversion

Offen
#563 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

@sylvesterkaczmarek arbeitet bereits daran.

Seit 03.10.2026.

  • #564 von @sylvesterkaczmarek — offen

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
68/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
numpy, python
Bereich
robotics

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
Python
Sterne
4.7k
Forks
771
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus google-deepmind/dm_control

Alle Issues in google-deepmind/dm_control

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.