Wrong rotation values from psmove/freepie (I believe radians instead of degrees)

Home Forums Trinus PSVR Wrong rotation values from psmove/freepie (I believe radians instead of degrees)

This topic contains 2 replies, has 2 voices, and was last updated by  bob97470 5 months ago.

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #7396

    polhoney
    Participant

    Hi,

    I recently ran into problems trying to use psmove controllers in steamvr (driver somehow crashing steamvr, already posted on the psmove google group).

    So, I decided to try the psmove>freepie bridge, and then use TrinusPSVR feature to get data from freepieIO and send them to steamvr.

    I have 2 psmove controllers, and checked with a freepie script that I get everything I’m expecting watching the following FreePieIO registers:

    controller 0 yaw/pitch/roll = FreePieIO[0].yaw/pitch/roll (in radians, from -pi to +pi except for roll from -pi/2 to +pi/2)
    controller 0 x/y/z = FreePieIO[0].x/y/z (+/- real values around 0 = psmoveservice calibrated center)
    controller 0 trigger = FreePieIO[3].yaw (from 0.0 to 1.0)
    controller 0 buttons = bits 0 to 7 from FreePieIO[3].x (in this order: [] /\ X O Move PS Start Select)

    controller 1 yaw/pitch/roll/x/y/z = FreePieIO[1]/yaw/pitch/roll/x/y/z
    controller 1 trigger = FreePieIO[3].pitch
    controller 1 buttons = bits from FreePie[3].y

    (and since I don’t have a 3rd psmove controller yet, I believe yaw/pitch/roll/x/y/z in FreePieIO[2], trigger in FreePieIO[3].roll and buttons in FreePieIO[3].z, but cannot confirm yet).

    I believe FreePie have all necessary data to present to TrinusPSVR. Here is the behaviour once in steam:
    – x/y/z controls are OK, I can move my controllers (that is fine!)
    – yaw/pitch/roll are wrong, well I barely can turn my controllers in any directions, i suspect (as I have read in another post on this forum) that rotation data in FreePieIO are in radians (which I can confirm when I watch the registers using freepie script), but Trinus is sending these raw values as degrees, or something alike, and that could explain why rotation is nearly unperceptible).
    – buttons doesn’t work at all, nor trigger, but I have the following error in TrinusPSVR log when I use the default FreePIE mapping : “E: Error parsing freepie Requested value ‘square’ was not found.”. I do not understand this error, is this an internal reference used in trinus to access buttons register with correct mask? There is no such concept of square/cross/circle and alike in freepie, so I believe this is a straight bug in trinus (for whatever reason). Perhaps some dependancies problem?

    TL;DR

    So, I believe there are 2 problems here:
    – something wrong with TrinusPSVR reading data from FreePie, since psmoveservice + bridge + freepie watch script show that all data are present in the expected registers. yaw/pitch/roll values in FreePie are in radians, and probably sent raw to steamvr expecting degrees (which result in rotation of controllers being barely perceptible). Also, could not confirm if trigger axis suffers the same problem or if the trigger don’t react at all (seems unnoticeable in steam vr), but I remember reading some topics (elsewhere) about trigger value being int(0-255), so could be same sort of behaviour as yaw/pitch/roll.
    – buttons also are not taken from FreePie, but due to the Trinus log error “E: Error parsing freepie Requested value ‘square’ was not found.” I rather suspect an unmet dependancy for TrinusPSVR (not psmoveservice nor freepiebridge).

    Thx for reading.
    Pol

    #7397

    polhoney
    Participant

    To add a hint, people are using the FreePie feature of trinus psvr for head tracking, thus probably explaining why rotation/buttons problems won’t affect them where only x/y/z data are needed!

    And to be exhaustive, here are my software version, and my freepie mapping :

    PSMoveService 0.9 alpha 8.7.1
    PSMoveFreepieBridge-Release15
    FreePIE 1.10.666.0
    Trinus PSVR 0.8d
    Tried with steam/steamVR non-beta and beta versions

    Trinus PSVR FreePIE mapping (default values except head/posIndex ignored, left rot/pos index 0, right rot/pos index 1, both controllers enabled:

    {
    “head”:{
    “rotIndex”:-1,
    “posIndex”:-1,
    “posScale”:0.1,
    “enabled”:true
    },
    “left”:{
    “rotIndex”:0,
    “posIndex”:0,
    “posScale”:0.1,
    “square”:”padUp”,
    “triangle”:”touchUp”,
    “cross”:”touchLeft”,
    “circle”:”touchRight”,
    “move”:”touchDown”,
    “PS”:”A”,
    “start”:”app”,
    “select”:”sys”,
    “enabled”:true
    },
    “right”:{
    “rotIndex”:1,
    “posIndex”:1,
    “posScale”:0.1,
    “square”:”padUp”,
    “triangle”:”touchUp”,
    “cross”:”touchLeft”,
    “circle”:”touchRight”,
    “move”:”touchDown”,
    “PS”:”A”,
    “start”:”app”,
    “select”:”sys”,
    “enabled”:true
    }
    }

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.