Timocop / PSMoveServiceEx

A background service that communicates with the psmove and stores pose and button data.
Apache License 2.0
99 stars 9 forks source link

Support for rotation with 2 trackers on each end of DIY controller with no IMU #29

Open something1112 opened 1 year ago

something1112 commented 1 year ago

I was wondering if doing that would at all be possible, I kind of only have one move controller, I can somewhat do the position with a coloured ping pong ball on a flashlight, but lack the IMU, surely a 2 ended controller would be able to make rotation work with no IMU, it would surely make making DIY virtual controllers way easier

Timocop commented 1 year ago

2 bulb orientation tracking is planed for the future. But an IMU is always required due to optical tracking being slow.

You can add your own IMU very easily: 1) Use a Phone with owoTrack. 2) Use ESP and IMU using SlimeVR firmware (follow the DIY SlimeVR setup, but use OpticalSlimeVR firmware here). I recommend using MPU9250/ICM20948/BNO085 with magnetometers.

something1112 commented 1 year ago

Ah, well, it's good to hear that it's planned I guess.

I don't have access to another phone, my usual one is on my head already for my hacked together (not)-mobile-VR, I was really trying to do this with stuff I already had. I've considered also trying to get a DS3 sixaxis gamepad working (it'd cover the sensors (well, at least the accelerometer and gyro), and buttons too!) but it doesn't seem anyone's ever tried to do that, and I'm not sure it's even possible in the first place.

so it seems I won't get away with purely hacking things, so I'll probably get a second secondhand PSMove controller, or as you say, an ESP with an IMU.

Timocop commented 1 year ago

The best option would be another PSMove controller, they are very cheap on ebay. I recommend getting PSMove Gen1 with magnetometer because you dont have to re-center them everytime. Check Compatible Devices for more information.

As for other 3rd party controllers or devices (JoyCons, Wiimotes etc.) people can add plugins for VDM when VDM gets a plugin system in the future. VDM itself right now is in very early stages so expect things to change.

Timocop commented 1 year ago

Also VDM only supports PSMoves button inputs for now, this will change in the future as well.

Alexhb61 commented 1 year ago

In order to support rotation with 3 degrees of freedom rotation, you'd need 3 trackers not 2 because a triangle has an orientation, but a line segment doesn't.

I was planning on making some DIY trackers with no IMU & 3 bulbs & using this service, but also my own code. Do you know why the optical tracking is slow? I.E. where in the tech stack the lag is?

Timocop commented 1 year ago

You can do 2-bulb tracking which allows only 2-DoF (depending on the setup). Which can still be useful, with, and without IMU. 3-Bulbs create 3-DoF of course.

The reason why optical tracking is slow is because of varying frame rates. The max you can possibly do is 60Hz with PSEyes at 480p. In addition, the tracking is very noisy so low pass filters are applied which adds latency on top of that. Of course, you can crank up prediction settings to reduce the latency but it will add over-prediction and quick movement.

Im planning to add an Optical+Accelerometer feature to eliminate optical input lag in the future.

ghost commented 1 year ago

Do you have any update on when the Optical+Accelerometer filter will be implemented?

Timocop commented 1 year ago

Its done when its done.