Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate IR-based positional tracking #3

Open
wchill opened this issue May 12, 2015 · 2 comments
Open

Investigate IR-based positional tracking #3

wchill opened this issue May 12, 2015 · 2 comments

Comments

@wchill
Copy link
Owner

wchill commented May 12, 2015

Positional tracking is a Really Hard Problem. Barring any more expensive setups like buying a Hydra or Sixense (which kind of defeats the purpose of this project), it's not exactly easy to accomplish through sensors alone.

The Wiimote has an IR camera with a built-in image processor that can track up to 4 points of IR light. (There can be more than 4, but it will track the brightest 4 points) Normally the Wii sensor bar uses 4 collinear points; however, this means that there is one degree of freedom that is unaccounted for while tracking. The solution is to use an asymmetric distribution of 4 points and use an algorithm to determine position and correct drift based on the camera's viewpoint of those 4 points.

This is a tricky task, unfortunately, and without a special setup (ie. IR LEDs on the ceiling) I can't think of a good way to do this for all 360 degrees of rotation. However, it's worthwhile to see if it can be done within at least the camera's field of view and then investigate whether it can be extended to all 360 degrees (maybe with an overhead attachment with some overhanging LEDs or something).

@wchill
Copy link
Owner Author

wchill commented May 12, 2015

Some technical details on the Wiimote camera: http://wiibrew.org/wiki/Wiimote#IR_Camera

@wchill
Copy link
Owner Author

wchill commented May 12, 2015

Also note that the camera can be removed from the Wiimote and the Raspberry Pi can communicate with it using I2C. The important thing here is to get the general algorithm down; everything else is just an implementation detail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant