SlimeVR-Server icon indicating copy to clipboard operation
SlimeVR-Server copied to clipboard

Acceleration decoding doesn't respect AXES_OFFSET

Open 9il opened this issue 1 year ago • 5 comments

SlimeVR do convert rotation from tracker to openGL axis, but forget to do so for acceleration vector.

9il avatar Apr 24 '24 08:04 9il

It does: https://github.com/SlimeVR/SlimeVR-Server/blob/24f28952385dc2f834c62c7157b293ce7613ac50/server/core/src/main/java/dev/slimevr/tracking/trackers/udp/TrackersUDPServer.kt#L357

Erimelowo avatar Apr 24 '24 11:04 Erimelowo

AXES_OFFSET transformation is a quaternion transformation; it can't be a reflection transformation. It changes Y and Z with a single sign change.

It does:

It is reflection transformation (conversion between left-hand and right-hand axis).

So, it can't be the same transformation.

9il avatar Apr 24 '24 11:04 9il

@Louka3000 What is the tracker axis in the UDP packet?

  • Z up or Y up?
  • Is it right-handed or left-handed?

9il avatar Apr 24 '24 12:04 9il

I believe SlimeVR expects Y+ forward, X+ right, Z+ up, but not entirely sure right now OpenVR is Z- Forward, X+ Right, Y+ Up

Erimelowo avatar Apr 24 '24 13:04 Erimelowo

Understood. We're currently dealing with the Z+ up vs. Y+ Up and hand switch issue.

However,

SlimeVR-Server/server/core/src/main/java/dev/slimevr/tracking/trackers/udp/TrackersUDPServer.kt

doesn't affect Z at all.

9il avatar Apr 24 '24 15:04 9il