Quote
Originally posted by: Jensen
This is very simple guys. There are 3 acceleration sensors in the controller. The only feedback is 3 numbers: the amount of acceleration in each of the three directions.
Your own link makes a good case for there only being one sensor in each controller. One chip can detect acceleration on 3 axes, and it can detect the pull of gravity. Color me impressed.
Quote
Holding the controller upside down will give the same 3 numbers as pushing the controller downwards at 2g. But turning the controller upside down requires it to first be on its side, so you can infer that the controller was turned.
Not to mention that as soon as it came to rest, it would detect a sudden, constant 1g pull in the opposite direction that could be assumed to be gravity. There's no way anyone could keep it moving in the same direction at 1g for long.
Quote
Without harsh lateral movement, Pitch and Roll detection is absolute, because it is sensing the constant force of gravity. Yaw detection is relative, so it can drift. Lateral vs. Rotational motion is just infered. You could use the remote as a pointer without the sensor bar, but the horizontal orientation would quickly drift. The IR sensor bar gives absolute orientation along the horizontal/yaw axis.
That's an interesting point. I'd wager the sensor is actually in the controller, and the bar has IR emitters on it. It wouldn't be unreasonable to assume the bar was horizontal. The sensor would see two bright spots in the IR spectrum, and the controller's orientation could be determined based on the line between them. However, twist the controller 180 degrees and it will see the exact same thing. I don't think that's what the IR is for, regardless.
Quote
The IR can also detect distance by comparing how far apart the sensors are.
True, as long as the sensors are in view. Acceleration detection can make up for when they aren't, and it may explain the need to continuously recalibrate under some circumstances.
All of that still only gets the position of the controller within its own reference frame, though. The virtual world is a different reference frame, and the only way to know the controller's absolute position in the virtual world's reference frame is to start with a known point in both. That would be the TV screen. The game knows which point in the virtual world is being used as a POV. It could paint a dot on the screen and ask you to touch the controller to it to calibrate, and then the two reference frames would be in sync right up until the moment you exceeded 2 g with the controller, which is probably pretty easy to do based on the examples at the end of
this article.
Let me reiterate that I am not whining. The controller does not suck. The controller is awesome. I just want to understand it.