TyborAUT / ALVR_FreePIE_scripts

7 stars 6 forks source link

Is it possible to have 1 psmove and 1 og controller plus 1 psmove for head tracking? #5

Closed renatopmestre closed 5 years ago

renatopmestre commented 5 years ago

I tried to analise both your amazing scripts (great work @TyborAUT and @nerionx ) trying to add one ps move controller for head tracking to the existing script: go_single_psmove.py trying to create go_single_psmove_plus_head_6dof.py

1-Since I dont have much space yet the fly mode of the go_single_psmove.py really helps, it this possible with headtracking?

2-Is it possible to create Go_Dual_PSMove_Plus_Head_6DOF.py where the head tracking is done by a virtual hmd created in psmoveservices with a ping pong illuminated ball? Is this script's head tracking done by the controller itself or can be done by it's light?

I'll attach a test I made but I can't get it to work. my configs are: virtual hmd id0 psmove for left controller id1 psmove for virtual hmd id2

Thanks for your time guys! Really appreciate it!

go_single_psmove_Plus_Gead_6DOf.py.txt

TyborAUT commented 5 years ago

Hi @renatopmestre.

You have to comment/remove the last 3 lines of your script, otherwise the head position will be overwritten everytime. 1 & 2 are definately possible. The head tracking is done by camera's. Perhaps @nerionx can describe his setup.

nerionx commented 5 years ago

I actually dont have a setup anymore started new job money was tight, VR set was first thing to go.

It should be possible to use a Virtual HMD as long as PSMovefreepiebridge lets your setup both when you load it

Just change the ID's at the top of the script to match your setup no other changes needed

LEFT_CONTROLLER = 1 RIGHT_CONTROLLER = 2 HMD = 0

renatopmestre commented 5 years ago

Thank you for your time! PSMovefreepiebridge lets you choose tracking devices: hmd or controllers. If I set hmd, then id0 is hmd0. If I set controllers, ids 0 and 1 will be the controllers shown in psmoveconfigtool.

I dont know how Freepie will manage these ids, but hmd is id0 in its class and one controller is id0 in its class. I can't figure out how to pass the virtual hmd id to freepie. The id is 0, but refering to the hmd id, not the controller. With my two moves connected I get devices id0 and id1. It is possible to open two instances of the freepiebridge, one tracking controllers, the other one virtual hmd. As to the ids not a clue yet!

By the way, I did it! I managed to get head tracking working. Controllers id0, and id1. no hmd for now. What happens now is the controllers stay in the same place when my head moves, like the head is moving on its own. There has to be an equal amount of movement for the hands, same as the head. hands 1 and 2 xyz+= head movement xyz. I dont know how to work with these offsets, but if two move controllers plus 1virtual hmd works without having to take care of this hand movement it's best to figure out that first.

nerionx commented 5 years ago

@renatopmestre

Im afraid thats not the case for PSMove controllers, they are tracked in 3d space just like the headset, the movement is independent. (Although the getting it running is different between our 2 setups, once started the tracking is exactly the same. There should not be any major code changes needed)

Is it possible they need colour calibrating in psmoveconfig or is it possible one of your hands is tracking as headset (moving on its own)?, look at the watch list in freepie when running there are values for left right controllers and hmd positions. You can match them up to the controllers/hmd

renatopmestre commented 5 years ago

Bigger problem is with PSMovefreepiebridge, I asked in their git page. Closing this thread. Thanks for your help!