Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
HWiese's avatar
HWiese
Explorer
13 years ago

In need of some specs

Hi folks,

so, like I've already mentioned in the introduction thread, I will write my bachelor thesis about building a telepresence roboter/platform. It's planned to have a Bumblebee 2 stereo camera mounted on top that's gonna be coupled with the Rift. The Bumblebee's mount will be able to rotate the cam around the required three axis for head tracking.

Because of this attempt to use a stereo camera with the rift, I need some specs:


  • How fast is the head tracker? What's the maximum, like, RPM in every axis that it can handle? I need this to select servo motors for the camera mount.

  • I probably need additional lenses on the stereo camera that distort the images in a way that it fits the optics of the Rift. What lens would that be? What do I need to calculate the focal distance of the additional lenses?


That's it for now... however, I presume there's more to come.

Thanks a lot!

Cheers,
Hendrik

3 Replies

  • Head tracker works at 1000Hz, but because it relies on 2nd derivative (acceleration), it can track any amount of rotation per sample, even if it exceeds one whole turn. Practically, the Rift could detect precisely it's rotational position even if you spin it around violently using your hands. So the upper bound is practically physically unreachable, not without some special stress-testing machinery.

    As for human neck, you should expect acceleration rates of 2000 deg/s² and velocities of 500 deg/s.

    Given that camera gets 2d flat image (due to having flat matrix), it's essentially the same as rendering to 2d render buffer. So you can just pick up any camera imagery and render it Rift-warped and it should be good. No additional optics required, besides high FOV cam lens. Depending on the lens, however, you may need to account for reverse-warping in the rendering shader to compensate.

    Note that telepresense will lag, and lag is seriously bad experience even for VR-sickness-proof people, so make sure you can fake out instant visual feedback for the viewer.

    You also might want to install a couple of servos to compensate for personal IPD.
  • The gyro and accelerometer use 21 bit floating point values on each axis to report their values, and use ramping to trade off maximum values vs precision. You can see this in the SDK here. I suspect that the ranges will end up being far more than any servo is likely to be able to match, so I wouldn't worry about that aspect.
  • I must admit, I almost forgot about this thread. Well, no, not really. :D I've just been occupied with other aspects of the project. But the day is quickly getting closer that I will need and use this information.

    Hence, thanks a lot, guys! I'll (hopefully) make good use of it. Aaaand... probably come back later to ask further questions. ;)