Simplify reset code (again) #207

Closed
opened 2026-04-05 18:05:50 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @ButterscotchV on 10/24/2025

Our current reset code is a mess, we can absolutely annihilate gyroFix and leave it to yawFix to handle the yaw offset. The yaw calculation for isolating attachment pitch/roll is now using YXZ euler angle order so that roll does not affect the yaw (at the sacrifice of pitch, but it's one I'm willing to make). This also fixes changes to manual mounting orientation causing your calibration to be annihilated.

I tested this lightly and it works for IMUs, unsure about with HMD or computed trackers. I left most other jank the same because I don't want to break things, but there is a lot that can be improved. Notably, the way we handle computed trackers (which btw only means that it doesn't need mounting) is kinda weird and tposeDownFix is super weird and jank?

I would also like to make more unit tests, I spent way too much time figuring out all the logic behind the reset code so I'm prepared to actually write some new ones for computed trackers and maybe things like t-pose.

Replaces #1321

*Originally created by @ButterscotchV on 10/24/2025* Our current reset code is a mess, we can absolutely annihilate `gyroFix` and leave it to `yawFix` to handle the yaw offset. The yaw calculation for isolating attachment pitch/roll is now using YXZ euler angle order so that roll does not affect the yaw (at the sacrifice of pitch, but it's one I'm willing to make). This also fixes changes to manual mounting orientation causing your calibration to be annihilated. I tested this lightly and it works for IMUs, unsure about with HMD or computed trackers. I left most other jank the same because I don't want to break things, but there is a lot that can be improved. Notably, the way we handle computed trackers (which btw only means that it doesn't need mounting) is kinda weird and `tposeDownFix` is super weird and jank? I would also like to make more unit tests, I spent *way* too much time figuring out all the logic behind the reset code so I'm prepared to actually write some new ones for computed trackers and maybe things like t-pose. Replaces #1321
MrUnknownDE added the Area: ServerType: EnhancementType: BugPriority: NormalArea: Hardware ProtocolArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerArea: ServerType: EnhancementType: EnhancementType: EnhancementType: EnhancementType: EnhancementType: EnhancementType: EnhancementType: EnhancementType: EnhancementType: EnhancementType: EnhancementType: EnhancementType: EnhancementType: EnhancementType: EnhancementType: EnhancementPriority: NormalPriority: NormalPriority: NormalPriority: NormalPriority: NormalPriority: NormalPriority: NormalPriority: NormalPriority: NormalType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugType: BugArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware ProtocolArea: Hardware Protocol labels 2026-04-05 18:06:01 +02:00
Sign in to join this conversation.
No Label Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Hardware Protocol Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Area: Server Priority: Normal Priority: Normal Priority: Normal Priority: Normal Priority: Normal Priority: Normal Priority: Normal Priority: Normal Priority: Normal Priority: Normal Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Bug Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement Type: Enhancement
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/SlimeVR-Server#207