Sponsors of Wiimoteproject.com
IR Pens for Wiimote Whiteboard
Pages: [1]
  Print  
Author Topic: Code explanation  (Read 4415 times)
0 Members and 1 Guest are viewing this topic.
*
Karma: +0/-0
Posts: 4
Offline Offline
View Profile
« on: January 14, 2008, 04:02:00 AM »

Hi, i just read a post about the math behind the whiteboard, and I too can't figure it out. I read the whole project code and I understand almost everything, except some particular C# stuff which I believe I can find in some tutorials. My problem is with the Warper.cs file.

I see the identity matrix is set and that the source matrix is formed with 4 points (x0,y0 through x3,y3) and I understand the matrix multiplication function , the thing is, I can't seem to figure out what does the computeSquareToQuad, computeQuadToSquare and warp functions do.

I believe they are supposed to translate the IR led's position to screen coordinates, am I right? can someone explain the math behind it or point me into the right direction to read some literature please?

I would like to study the possibility of using 2 Wiimotes, one on top and one sideways on the board so as to increase resolution but first I gotta see the math behind it.

Thanks a lot!
Logged
*
Karma: +2/-1
Posts: 89
Offline Offline
View Profile
« Reply #1 on: January 14, 2008, 06:53:53 PM »

... Isn't the source documentated?
Lol, you dont see that much.
Logged

wiipen
point ATM: building V2
V1: 1 LED on 1 AAA battery feed
V2: 1 LED on USB feed
V2 will be remodded too V3
V3: 1 LED on USB feed /w LMB and RMB
V4: 1 LED WIRELESS /w LMB and RMB
V5: we'll see :3
Vmany: Bluetooth IR pen with mouse functions.
*
Karma: +0/-0
Posts: 4
Offline Offline
View Profile
« Reply #2 on: January 15, 2008, 02:07:16 AM »

It is documented, but not the math parts. I just need to know roughly what's Warper.cs job inside the program, the particular math I can figure out. For example "Warper.cs will take a matrix with the IR points and multiply it with whatever to get a matrix with this and that characteristics so it can be mapped to the screen". Or something similar.
Logged
*
Karma: +1/-0
Posts: 8
Offline Offline
View Profile WWW
« Reply #3 on: January 17, 2008, 08:10:12 PM »

As far as I can tell it uses a process called "pixel coordinate translation" using a stereo camera algorithm but with the Z(depth) component fixed. The use of stereo algorith gives a better output but is far more complex than a single camera translation. If you wanted to add a second remote control the warper.cs class would need to be changed considerably to accept parameters from both controls; also the maths may require more calibration points, depending on whether both cameras are lookingat the same screen or will they be used with a fixed depth (as is the case now) but to extend the whiteboard area.
Logged

*
Karma: +0/-0
Posts: 4
Offline Offline
View Profile
« Reply #4 on: January 23, 2008, 08:50:29 PM »

Hey, thanks a lot luke. I will look into this technique and post anything new that I can figure out.

Again, thanks a lot!
Logged
*
Karma: +0/-0
Posts: 4
Offline Offline
View Profile Email
« Reply #5 on: April 16, 2008, 05:21:40 PM »

Hello,

Anyone know about any document who explain the theory behind the calibration method that Johnny Lee uses? I've implemented the code in Delphi and that works great! But i really need to understand what the algebrics functions do... Excuse me for my english! Cheesy

Thanks for help,

acosta11
Logged
Pages: [1]
  Print  
 
Jump to:  

Clicky Web Analytics