# Wiimote Project

### Author Topic: Code explanation  (Read 8453 times)

#### Acapulco

• Posts: 4
• Karma: +0/-0
on: January 13, 2008, 07:02:00 PM
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!

#### bryanarby

• Posts: 89
• Karma: +2/-1
Reply #1 on: January 14, 2008, 09:53:53 AM
... Isn't the source documentated?
Lol, you dont see that much.

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.

#### Acapulco

• Posts: 4
• Karma: +0/-0
Reply #2 on: January 14, 2008, 05:07:16 PM
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.

#### Luke

• Posts: 8
• Karma: +1/-0
Reply #3 on: January 17, 2008, 11:10:12 AM
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.

#### Acapulco

• Posts: 4
• Karma: +0/-0
Reply #4 on: January 23, 2008, 11:50:29 AM
Hey, thanks a lot luke. I will look into this technique and post anything new that I can figure out.

Again, thanks a lot!

#### acosta11

• Posts: 4
• Karma: +0/-0
Reply #5 on: April 16, 2008, 08:21:40 AM
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!

Thanks for help,

acosta11