Forum Discussion
KuraIthys
12 years agoHonored Guest
Hybrid hydra + Wiimote
In reading comments about the accuracy of the hydra, and inferring a few points from it's SDK, I came to an interesting thought. Obviously, long-term it's impractical, but technically it could be b...
KuraIthys
12 years agoHonored Guest
Mmm. 2d positional tracking with a Wii remote is a well established idea, (it's how the Wii's onscreen cursor works after all), but I've seen at least one demonstration of 3d tracking with it too.
Now, the standard Wii sensor bar has 2 LED clusters (10 leds technically, but to the system it mostly looks like 2 points).
This gives you enough information to track movement in a 2d plane, and rotation around the axis (the Wii tracks controller movement, but you can of course reverse the setup and track a moving marker instead.)
It can also sort of track depth based on several features. The distance between the two led clusters can give you depth information, but unfortunately, it's ambiguous, because the angle along the plane of the LED's also causes the distance to go down, so what you actually have is a 'position' somewhere along an elipse relating the angle and distance between the remote and marker.
There are two ways of solving this; One I've seen demonstrated ages ago, is to use a marker with 4 LED clusters instead of 2, which, if arranged correctly, gives enough information to correctly deduce both angle and distance.
The other, is possible in theory, but I've never seen it implemented.
The Wii's IR sensor has 3 data modes. In the simplest, you get x and y coordinates for each point being tracked. The second mode gives you intensity values for the LED's as well (but only 2 bits worth - 16 values). This can be used because if the controller is at an angle to the LED's the relative intensity will be different, but if it's head-on, both will be at the same intensity.
Finally, there is a 3rd mode which gives an 8 bit intensity value, as well as a bounding box for the LED clusters. Both of which can provide extra information useful for separating depth from angle.
But... No existing Wii driver on PC that I know of currently lets you use this third mode.
And tracking 4 LED's is probably a simpler and more reliable solution overall.
Anyway, moving on to the hydra, now that I have one, I've got a better sense of how it behaves. Mine behaves pretty well all things considered, but I can see it do things which aren't quite right. Sometimes the position is off, but the most obvious thing that happens is huge errors in angular measurements.
This is especially obvious if I move the controllers near my monitors. (they're old CRT monitors, so they use magnetic deflection to control the electron beam).
Another thing I've noticed, which is more to do with having read about how the hydra works, is that although it's configured in the drivers to give you a position as a set of cartesian coordinates, along with an orientation vector...
The way it works is quite clearly based on a mechanism that would more naturally be represented as a set of polar coordinates.
Given the physics involved, that also means that barring any other issues, the device will be progressively less accurate as the distance from the base station increases.
(the ability to detect the angle to the base station is limited by the electronics, and since the position is actually derived from the angle, the further away the controller is, the larger the jump in position for a given change in angle.)
... I wonder if the hydra SDK can output polar coordinates at all? It would make the accuracy limitations somewhat more obvious...
Now, the standard Wii sensor bar has 2 LED clusters (10 leds technically, but to the system it mostly looks like 2 points).
This gives you enough information to track movement in a 2d plane, and rotation around the axis (the Wii tracks controller movement, but you can of course reverse the setup and track a moving marker instead.)
It can also sort of track depth based on several features. The distance between the two led clusters can give you depth information, but unfortunately, it's ambiguous, because the angle along the plane of the LED's also causes the distance to go down, so what you actually have is a 'position' somewhere along an elipse relating the angle and distance between the remote and marker.
There are two ways of solving this; One I've seen demonstrated ages ago, is to use a marker with 4 LED clusters instead of 2, which, if arranged correctly, gives enough information to correctly deduce both angle and distance.
The other, is possible in theory, but I've never seen it implemented.
The Wii's IR sensor has 3 data modes. In the simplest, you get x and y coordinates for each point being tracked. The second mode gives you intensity values for the LED's as well (but only 2 bits worth - 16 values). This can be used because if the controller is at an angle to the LED's the relative intensity will be different, but if it's head-on, both will be at the same intensity.
Finally, there is a 3rd mode which gives an 8 bit intensity value, as well as a bounding box for the LED clusters. Both of which can provide extra information useful for separating depth from angle.
But... No existing Wii driver on PC that I know of currently lets you use this third mode.
And tracking 4 LED's is probably a simpler and more reliable solution overall.
Anyway, moving on to the hydra, now that I have one, I've got a better sense of how it behaves. Mine behaves pretty well all things considered, but I can see it do things which aren't quite right. Sometimes the position is off, but the most obvious thing that happens is huge errors in angular measurements.
This is especially obvious if I move the controllers near my monitors. (they're old CRT monitors, so they use magnetic deflection to control the electron beam).
Another thing I've noticed, which is more to do with having read about how the hydra works, is that although it's configured in the drivers to give you a position as a set of cartesian coordinates, along with an orientation vector...
The way it works is quite clearly based on a mechanism that would more naturally be represented as a set of polar coordinates.
Given the physics involved, that also means that barring any other issues, the device will be progressively less accurate as the distance from the base station increases.
(the ability to detect the angle to the base station is limited by the electronics, and since the position is actually derived from the angle, the further away the controller is, the larger the jump in position for a given change in angle.)
... I wonder if the hydra SDK can output polar coordinates at all? It would make the accuracy limitations somewhat more obvious...
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 4 years ago
- 11 years ago
- 11 years ago
- 9 years ago
- 12 years ago