Announcement

Collapse
No announcement yet.

Wiimote IR tracking help

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wiimote IR tracking help

    Hi all,

    Firstly, thanks for OSCulator - it's a great piece of software, and up until recently hasn't been a problem to use.

    I've already created a head-tracking system, whereby the user wears a Wii RemotePlus on their head - all working nicely.

    Now, I want to create a different head-tracker, using a Wii and a pair of IR Leds (Johnny Lee style). I have the IR glasses, and the wii is definitely detecting them and I see the data in Pure Data, using "udpreceive".
    The problem I have is not understanding what the data (x, y) represents - I've tried many different movements, and there seems to be no point of reference (i.e. a 0˚) and the data appears to often move about very randomly.
    I have tried changing the sensitivity or the IR and also the smoothing - these help a little, but I'm still not getting data that makes much sense to me.
    I also tried using the IR raw tracking, but the size parameter (s) didn't really change as I varied the rotation angle or the distance. Its value was either 0125 or 0.0625, with no obvious reason for whether it was one or the other.

    My questions are:
    1. Should I use IR(x, y) tracking, or IR raw tracking? (I think the latter, especially as I will be extending this to 2 Wii Remotes later)
    2. Why does the data appear to be randomly jumping around? e.g. If I start at 0˚ = 0.5 (IR, x) then rotate the glasses to 30˚, and then back again to 0˚, it does not return to its original value of 0.5. The same applies to the (y) values.

    It's strange, as this process was exteremly simple when using the gyroscope to track head movements.

    Any ideas would be much appreciated.
    Thank you and keep up the great work!

    oggy

  • #2
    Hi oggy!

    IR tracking works normally but is greatly affected by lighting conditions.
    You have to find the best lighting source for your application.
    In my case I was usually using candlelights, but when I used a customized IR bar, it really made the difference, because the IR source was more steady and accurate.

    IR sensitivity is a setting that change the hardware sensivity. It can help tweaking this parameter, but in practice I have not seen huge improvements. Again the source it what really matters.

    The IR(x, y) tracking is a composite of the 4 tracked IR objects into one virtual (x, y) cursors. It is designed to work with the Mouse Absolute events. You can use it to control the mouse cursors. A user once created a light painting installation with it.

    IR Raw tracking gives you access to the 4 individual IR objects the Wiimote detects, leaving you the task to filter and interpret the data. The size of the objects should change, but not dramatically. You have a full description of Raw IR at pages 54 and 56 of the manual.

    About your 2nd question: it's weird that the value does not come back to the original value. The only reason I can see is that the IR light source is not good enough, and that (x, y) tracking is made on other points. Remember that this is designed to work with at least 2 bright dots, ideally something that looks like a IR bar. You should not experience the same behavior when using the Raw IR mode.

    In the Sample Library, you might be interested in trying the Max/MSP file, it displays the position of the IR objects in a canvas. If you don't have Max/MSP, I can try to make a self-running executable.


    Best,
    Cam

    Comment


    • #3
      Thank you Cam!

      In which case, since I only want to track a single point in space (my head), then the IR(x, y) setting appears to be the way forward - I don't want to manipulate the individual IR sources.

      I think then, the reason I'm getting odd results is due to lighting conditions. I'll try turning off all lights and close the curtains to see if it makes a difference. It's possible my IR lights aren't bright enough either - so maybe as a test, I can try tracking a candle.

      As long as I get understandable/reliable data (i.e. no random fluctuations), I'm confident I can create the 3D model myself using the x, y values.

      Thanks for now, I'll see how it goes from here.

      Best,
      oggy

      Comment


      • #4
        You might want to try with the Raw data too, you will have more freedom.
        Remember, the IR(x, y) is designed to point a virtual 2D cursor on screen.
        Let me know how it goes!

        Comment


        • #5
          Right, I've tried now both IR(x, y) and Raw data. This was with minimal external light (curtains closed, all other lights off, door closed - only other source of light is my computer monitor, which isn't facing the Wii camera).

          I'm still getting fairly random results. i find often the camera suddenly stops picking up the IR, and its value jumps to 1. Sometimes it appears to be working, and I can rotate/move it very slightly and the values change as I would expect. But then, often the values suddenly start drifting away, getting bigger/smaller, even when the IR sources aren't moving. There seems to be no point of reference, with the values just changing all the time....

          The only thing I can think that might be the problem is the IR source is not bright enough... yet, I'm using what appears to be almost identical equipment to Johnny Lee (and some other videos I've seen) and their Wii picks up IR sources no problem, and from greater distances.

          Any other ideas?

          Thank you,
          oggy

          Comment


          • #6
            In which case, since I only want to track a single point in space (my head), then the IR(x, y) setting appears to be the way forward - I don't want to manipulate the individual IR sources.
            Sorry, I forgot to mention this:
            If you have only one dot, the IR(x, y) will not work properly, it needs at least 2 dots.

            Comment


            • #7
              I have two dots: pair of safety glasses with clip-on LEDs (which I've exchanged for IR Leds)

              Comment


              • #8
                The other thing that happens, is the values with read fine when facing directly towards the camera, but when I rotate my head, the value will increase slightly then suddenly jump up to 1.
                Seems like I don't have enough LEDs?

                Comment

                Working...
                X