wii3d logo

 

The Wii3D Project System

 

Powered by...

Libraries

 

Several libraries were used in the implementation of the Wii3D System:

WiimoteLib

The WiimoteLib library is a third party library for managed interaction with connected Nintendo Wii Remotes over Bluetooth. The library exposes two different ways to interact with the Wii Remotes:

The event driven approach would introduce unnecessary complications because of the way that the WiimoteLib built-in events simply monitor a change in the state of the Wii Remotes - the state change is fired each time one of the Wii Remotes detects a change. In order to use this model, whenever an event is fired, the time of the event would need to be factored into the calculation of three dimensional coordinates of the infra-red sources. This would be accomplished by building a model based on the positions and their associated times and estimating the coordinates from the resulting model. A solution based on this approach was implemented using a linear regression that used the ordinary least squares algorithm. Aside from the inherent overheads generated by the firing of and listening to events, the computational cost of this approach was very high. Furthermore, the propensity of gestures where a resultant model would not be linear or transformable into a linear model made this approach very difficult.

The polling approach ensures that the Wiimote states are synchronized and hence that the stereoscopic estimation of the infra-red sources introduces as little error as possible. The Wii3D system utilises the polling approach and generates its own events from the state changes that it detects.

The decision to use polling rather than events was influenced by three overriding factors. Firstly, the model that was being used for the estimation was not applicable to the problem at hand. Secondly, the overhead created by events which would subsequently fire other events was considered to be too expensive and use resources that would otherwise be put to better use in the gesture recognition component of Wii3D. Finally, and most importantly, when using the polling approach, both of the Wii Remotes' states are received at the same time rather than taking note of the time at which an event was fired and correcting.

Accord.NET

The Accord.NET library, built on top of the Aforge.NET library, was used for its statistical modelling capabilities. The discrete Hidden Markov Models present in the library provide the tools for the recognition of the spatiotemporal gestures.

MathNET Iridium

The MathNET library was used for its mathematical objects and its associated functions. The stereoscopic triangulation method utilises vectors, matrices, and their associated properties and functions to solve a three dimensional coordinate from two two dimensional coordinates. The MathNet Iridium release exposes the required functionality.

32feet.NET

The 32feet.NET library was used for the Windows Bluetooth functionality that it exposes. The Connection Manager allows the user to pair and connect the Nintendo Wii Remotes in preparation for their use in the Wii3D System.

<< Back to Project