Hello everyone,
I'm new to these forums and am seeking some advise/ guidance on a project.
Background:
I am trying to, essentially, recreate the Wii remote's cursor system on a computer using an Arduino Leonardo. I have a breakout of the Wii remote's IR camera and a 9DOF (which to my understanding, is truely implemented for the cursor system except for scenarios when its rotated about the y-axis).
Currently, I've messed around with the 9DOF and can successfully read the accelerometer, gyroscope and magnetometer (to get the yaw). Also, I have managed to correlate the readings from the three devices into one "accurate" reading through use of a complementary filter. As for the IR camera, I have been able to get it to detect the IR led "bar" and read the coordinates of the detected "blobs". Using the blob coordinates, I use the circle-circle intersection (as described mathworld-wolfram; Circle-Circle Intersection) method to determine the location of the camera in reference to the LED's. After doing so, I save the calculated value to subtract from the next calculated coordinates to determine the distance move the mouse cursor from its previous location. So far, it "works" not reliable however. It moves sporadically and loses the sight of the LED's easily.
The main goal was to create a glove-based controller for FPS games without the cost of some of the VR options.
I will note that I was going to attempt to write up the algorithms for perspective projection matrices to see if that would be better. Don't fully understand some of the values - I also feel that that may not work. Doing so, to my understanding, would mean a need for two devices - one to track the LED's (reading the coordinates into a program like openCV and doing the perspective projection algorithms in that) and one to do the other functions (have the LED's attached, left click, right click and what every other functions I would like implement). I am trying to stick to one device however.
Anyway, I am wondering if there are better ways of doing this or other approaches of achieving this goal. Any and all suggestions are appreciated.