Calibration problems with the WiiMotionPlus
Closed this issue · 2 comments
Hi ! First of all thank you for your work !
I encountered a problem while using the wiimotionplus extension: when I play your demo scene, the wiimote slowly unsyncs with the virtual model that seems to keep rotating even while the actual wiimote is left on a table without moving.
I calibrated it with the apropriate button of your GUI and reset the offset multiple time.
Plus it seems that my movments are 1/4th of what happens onscreen. (I tried compensating that doing "wmpOffset += offset * 4f" in the Update funtion of WiimoteDemo.cs" it seems to work aproximatly but the perpetual rotation I described above keeps ruining everything !
I am currently woking on a 64bit version of Windows 10 with Unity 5.2.0f3.
Make sure that when you calibrate it it is left face down - if it is face up you can't guarantee that it is completely still (due to the rounded bottom).
Even then, the Wii Motion Plus hardware is not 100% accurate. Because it measures change in angle (not absolute angle), floating point error slowly desyncs the virtual model from the real orientation. So you can get a pretty good short-term approximation, but expect to re-sync often. In practice what you can also try is to reference the accelerometer. When the accelerometer is relatively still you can assume that it is pointing in the direction of gravity (down). So you can use this as a reference.
If this isn't your problem (that is, the virtual model never rotates at the correct speed) it is a problem with your hardware (IE your bluetooth card / dongle) or the OS (Windows 10 has been pretty hit or miss for me, but Windows 7 works correctly). I can say with certainty that the Wiimote reports at a rate of 95 updates per second. However, often on Win10 I only get 30 UPS (this seems in line with your estimates). One thing you can try is to dynamically measure the incoming report rate and change the multiplier here from 95 to whatever rate you measure (30 for example). Of course, the virtual model will not be as accurate though (because you are polling the Wiimote at a slower rate).
You can also get a DolphinBar which has custom drivers specifically for Wiimotes. This should alleviate any driver problems.
I'm closing this issue for bookkeeping / organizational purposes. If you have any further inquiries or questions feel free to ask me to reopen this issue or create a new one.