Announcement

Collapse
No announcement yet.

Wii MotionPlus Yaw Problem...

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wii MotionPlus Yaw Problem...



    hey there. i've got a question/problem with the motionplus' yaw values... so i've noticed that a few different things seem to happen with the yaw over time. mainly, i've seen that it tends to drift upward (the value) when moving the wiimote around. usually what happens is that i move the wiimote with regards to yaw (left or right rotation) and the value starts creeping higher even if im just moving the wiimote slightly; there have been times when the value rises without me even touching the wiimote...


    so basically whats happening is that i start up osculator, connect the wiimote (with motionplus attached), and it starts out fine. after i move the wiimote around a little bit though, the yaw values tend to get thrown off (they get gradually higher the more i move the wiimote, regardless of how im moving it; simply moving the wiimote at all raises the yaw value). this happens very quickly; after only a few seconds, holding the wiimote straight ahead (where the initial values were all ~.5), the yaw will be way off (for example .8).


    now im aware of the ability to reset the calibration, but due to how quickly the yaw is thrown off, id have to be doing this every few seconds, which itself, could easily throw off the calibration (for example, it'd recalibrate while the user is holding the wiimote sideways).


    i tested the motionplus today with wii sports resort to see if this was a problem with the device itself of something else. even covering the wiimotes IR (since wii sports resort sometimes uses the IR to "recalibrate" itself), the axes of rotation were not thrown off at all.


    ive read some of the other topics regarding the motionplus, but i havent seen any with this sort of problem. so any advice on how i can resolve this would be greatly appreciated!


  • #2


    Actually, the Motion Plus device has been designed to be used on short periods of time. That's what happens when you play a game, even if you don't really notice it, the sensors are sampled on short periods.


    Thus, the drifting you notice is normal and expected, this is why ther is a special event called "Motion Plus Reset" that you can use to reset the calibration data while the device is in use. To use it, the most simple way is to assign this event to a wiimote button, then press the button before you want to perform a gesture that involves the motion plus.


    Now, I don't know exactly what you want to do, but perhaps you don't really need to use te yaw in the first place. The pitch and roll attitude angles are automatically re-calibrated, but can suffer from some problems under some conditions, I guess there is a compromise to find...

    Comment


    • #3


      so roll and pitch are automatically recalibrated periodically? by what? the device itself, or is that something that's happening within osculator? and is yaw different from the other two in that it's not recalibrated?


      also, for the game im making, i am using all three axes, so i do want to find a way to get around the drifting. im hesitant to use the reset command though for a few reasons. one, i dont want the user to have to press a button to recalibrate. the game is constantly tracking the motionplus' angles and rotating a moving object (the character) to those rotations. if the user had to take extra time to hold the controller straight and press a button to recalibrate, that would take too much time to do (during this time, the character is still moving and could get hit by an enemy for example) and two, it takes away a button on the controller.


      so if i HAVE to reset, i'd think i'd code it to happen periodically automatically. the problem with this is that, for example, the user is holding the controller sideways at the time of recalibration, then the motionplus gets calibrated incorrectly :-/


      you mentioned that the motionplus is meant to be used in short intervals... so how is it that games that use it dont need constant recalibration (such as wii sports resort)? for example, the sword showdown game can go on for up to 10 minutes (or more). i realize that there are times when the device DOES get thrown off and the player has to hit "A" to recalibrate, but that happens relatively rarely. i also know that the game can use the wiimote's IR to "recalibrate" the motionplus. however, when testing it earlier today, i covered the wiimote's IR, unplugged the sensor bar, and wiggled the wiimote around for a good five minutes (mostly left and right [yaw]), after which, the sword was still right where it was supposed to be, and it appeared the motionplus knew exactly where it was with respects to all three axes.


      so my question regarding that is how the stability is maintained throughout the duration of the playthrough?

      Comment


      • #4


        That is correct, on Wii games, the IR sensors are used to track an absolute position for Yaw.

        This possibility has been ruled out for the moment in oscltr because a lot of people are using the Wii on stage, where the IR sensors are not a viable potion (because of the stage lights).


        The pitch and roll axes are computed from the fusion the informations between the accelerometers and the gyroscopes. Since the accelerometers are influenced by the gravity, they provide the absolute reference we need to allow a long running play.


        Please note that the algorithms have been developped without knowledge of the internal design of the Motion Plus device, therefore some improvement us always possible. I will study the possibility of adding absolute tracking using the IR bar when I'll be back from holidays.

        Comment


        • #5


          hmm... well a few questions arise. how do the games keep track of yaw (without drifting) without the use of the IR (as happened with my wii sports resort test)? how is yaw measured differently than pitch and roll (does it not depend on gravity? if not, how is it calculated?)? why does the yaw tend to drift while the other two do not (presumably the difference in how they're measured?)? is the drift something that's happening in the device itself or does it come from the algorithms osculator uses?


          sorry to barrage you with questions; i'm just trying to understand what's doing what (what the device is doing and what osculator is doing) so i can better understand/think of ways to do what i need to do :P

          Comment


          • #6


            I'd like to chime and request the absolute tracking feature as well! I've been playing around with using the Motion Plus and have the same issues. It's easy to reset, but annoying when it consistently gets out of alignment.

            Comment


            • #7


              @m1: good to know there are other users interested in that feature!


              @SIzukhan:

              how do the games keep track of yaw (without drifting) without the use of the IR (as happened with my wii sports resort test)?
              I don't know, it depends on the game and the gesture that is tracked. Some gesture are relative to a previous one, or are reseted at random times.


              how is yaw measured differently than pitch and roll (does it not depend on gravity? if not, how is it calculated?)?
              Pitch and roll are calculated by fusing the measures given by the Wiimote's accelerometers (this is called the measure estimation, no drifting but not precise) combined with the Motion Plus's gyroscopes (this is the absolute measure, precise but suffering from drifting). When the wiimote is held normally, Yaw is not related to gravity, therefore it can not be measured with the accelerometers, leaving us with only the data coming from the gyroscopes (unless absolute tracking is provided by the IR sensors, but as you know this is not the case right now).


              why does the yaw tend to drift while the other two do not (presumably the difference in how they're measured?)? is the drift something that's happening in the device itself or does it come from the algorithms osculator uses?
              Yaw does not benefit from the fusion of the data coming from the estimation, and absolute measures. As the gyroscopes report their measure as the rotation velocity, it is thus needed to sum this data in order to obtain the angle — summing, by nature, leads to drifting because the sensors are not perfect.


              Cheers,

              Cam

              Comment

              Working...
              X