Author Topic: get the 3D coordinates to localize target for medical imaging using wiimote  (Read 8074 times)

Offline Irfan syed

  • *
  • Posts: 1
  • Karma: +0/-0
    • View Profile
Hi all
I am trying to use wiimote to 3D coordinates of sources and detectors that emit infrared from patient's head for medical imaging.
I don't know much about C# and all of my programing is Matlab. I was going thru the code of Johnny lee's 3D head tracking, but i didn't get how he is getting the follwoing
1) z coordinate
2) what is the reference origin
I also have few other questions, but let me begin by finding the algorithm
first
thanks for help in advance guys
Irfan



Offline ZaPPZion

  • *
  • Posts: 137
  • Karma: +11/-1
    • View Profile
It's quite hard to get 3D positions of an IR LED with just 1 wiimote. It's possible to get the size of the IR blob that's being tracked, but that doesn't say everything about the z-axis (if you mean the axis that's pointing away from you, so distance to the screen). If you tilt the IR LED, the intensity will decrease as well, so it's not accurate at all. I think it would be better to use 2 wiimotes. 1 for the x/y picture, and 1 for the y/z picture for example. That's already been done and shouldn't be too hard to implement (i think)



Offline yashardel

  • *
  • Posts: 37
  • Karma: +0/-0
    • View Profile
 Hi!
I have the same problem how to find the z coordinate using a 2D IR camera. I am using the wiiuse code written in c to do my headtracking. As you said, there is a varaible in the IR data structure named IR_size (0-15) which I guess is responsible for calculating the z-coordinate(distance from the screen) but it's not being used. Now my question is , how did John Lee accompolish the heatracking solution using only 1 wiimote? The VR-Desktop he has made works beautifully and he used 1 signle wiimote with some IR-LED...

What do you think people...? Can you share your ideas?

Thanks...



Offline boonjin

  • *
  • Posts: 929
  • Karma: +28/-0
  • Smoothboard Developer
    • View Profile
    • Smoothboard
Hi!
I have the same problem how to find the z coordinate using a 2D IR camera. I am using the wiiuse code written in c to do my headtracking. As you said, there is a varaible in the IR data structure named IR_size (0-15) which I guess is responsible for calculating the z-coordinate(distance from the screen) but it's not being used. Now my question is , how did John Lee accompolish the heatracking solution using only 1 wiimote? The VR-Desktop he has made works beautifully and he used 1 signle wiimote with some IR-LED...

What do you think people...? Can you share your ideas?

Thanks...

Hi,

Johnny used two infrared LEDs to be placed at the googles/specs. With the detected distance between the IR points, you can estimate the distance between the user and the screen.

Regards,
Boon Jin

Smoothboard
Wii Whiteboard/Wiimote Whiteboard with annotation features and collaborate with multiple iPads and Android Tablets!

Smoothboard for Mac
Using a Mac? Now you can annotate on PowerPoint or Keynote slideshows!

BoonJin[/url


Offline insertnick

  • *
  • Posts: 35
  • Karma: +0/-0
    • View Profile
See also free-track project (3 leds)
(they say wiimote support coming soon).
Probably with three leds you can track well also tilt and rotation movements, while with two you can only "scroll" your head left and right (I suppose).
« Last Edit: January 21, 2009, 06:36:18 AM by insertnick »



Offline yashardel

  • *
  • Posts: 37
  • Karma: +0/-0
    • View Profile
 Hi !
Thanks for the information.

Regarding Boon Jin comment, the question is how the 3D localization is achieved from 2D info? I don't think distance between LEDs (which we know by default) and x-y location info suffices for this. I believe he is using a more complex method namely Perspective transformtion to calculate the depth information. (i.e the distance) But I am not familair with this method? Any body can assist me a little?




Offline Marco

  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Hi,
I've been looking at is as well, this is what I came up with.

3D tracking with 1 Wiimote
Yes it is possible but you need 3 or better 4 IR points in a known configuration. See this rather hefty math article to get an idea: www.infoweb.drake.edu/mathcs/rieck/wii.pdf .

3D tracking with 2 Wiimotes
This is easier, at least the math is  :D.
You place 2 Wiimotes on the same line (base of a triangle is will form) at a known angle from this line. Remember the angle that the Wiimotes can see if about 40 degrees.
Then you use the X coordinate of both Wiimotes to determine the angle from the baseline.
Then you use triangulation to calculate the location of the point in the XY plane (the plane parallel to the floor). You can use the Y to do the Z.

Marco