Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Daydream Controller DoF?

Discussion in 'Daydream' started by fmielke, Dec 9, 2016.

  1. fmielke

    fmielke

    Joined:
    Oct 17, 2016
    Posts:
    35
    Hi guys,

    orientational tracking is obviosly (3 DoF). But is there a kind of positional tracking? In fact, I can make use of the accelerometer. So if I move the controller fast, he changes his position. I think that is not enough to call it 6 DoF, but is there another name of it?

    Thank you!

    Kind regards, Fabian
     
  2. Tuitive

    Tuitive

    Joined:
    Mar 25, 2013
    Posts:
    36
    3.5 DoF? (It's still a llllong way from 6 DoF)
     
    idan1985 likes this.
  3. fmielke

    fmielke

    Joined:
    Oct 17, 2016
    Posts:
    35
    @Tuitive What do you mean by 3.5 DoF? Is that an official statement for this bit accelero use?
     
  4. Tuitive

    Tuitive

    Joined:
    Mar 25, 2013
    Posts:
    36
    No, I made that up, taking inspiration from the 2.5D term that is sometimes applied to games that are somewhere between 2D and 3D.
     
  5. sterlingcrispin

    sterlingcrispin

    Joined:
    Oct 23, 2013
    Posts:
    18
    You can infer certain motion from just an IMU (3DOF) and get a sense of position, but there's a ton of drift involved, you won't get an accurate result without something else to recalibrate the IMU -- like a camera or some other sensor technology.

    you could get some useful relative positional information like "the user moved the controller left quickly" and use that as an input to your application

     
  6. samKeene

    samKeene

    Joined:
    Jan 20, 2013
    Posts:
    8
    It is fairly simple to do what you are describing, infer position of the controller based on wrist tilt. The Daydream Unity SDK comes with a really useful component that takes care of this for you: GvrControllerPointer. It includes a 3D model of the Daydream controller and uses what's called an "arm model" for natural rotation of the controller as if it were attached to your arm. It also includes a "body model" so the controller stays by your side when you rotate your head. I've written a tutorial on setting this up from scratch over at SDK Boy http://www.sdkboy.com/2016/12/building-daydream-controller-based-app-scratch/ I hope this is useful!
     
    idan1985 likes this.
  7. idan1985

    idan1985

    Joined:
    Jan 3, 2017
    Posts:
    1
    Hey Sam, wow this is great! thank you so much! very useful!
    BTW, do you happen to know of a workaround for people who have the Daydream headset and controller but don't own the Google Pixel? I have the Samsung Galaxy Note 4 (SM-N910F). I figured it the minimum requirement is Android 7.0 but even when installing a custom ROM with Android 7.1.1 the controller can pair with my device with no problem but it's not giving any input and all the daydream apps keep showing "incompatible device"... it's not really a hardware issue... I'm sure... any thoughts?
    Thanks again for the tutorial!
     
  8. samKeene

    samKeene

    Joined:
    Jan 20, 2013
    Posts:
    8
    According to Google, Daydream will only work with Daydream compatible devices, so the Pixel and certain Motorola devices are currently the only ones. You can use the Nexus 6P for Daydream development but I don't think it can be used for the full Daydream experience like downloading apps from the Play Store. There may be a workaround for this but I'm unaware.