Announcement

Collapse
No announcement yet.

MR Gyro Sensor - Off by 10 deg

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

  • MR Gyro Sensor - Off by 10 deg

    Today we confirmed that our Modern Robotics Gyro Sensor(s) is off by 10 degrees for each turn, making the sensor absolutely useless to us.

    1. Can someone list what other Gyro Sensors are available, other then the Adafruit Gyro Sensor

    2. Are other teams seeing this? Is there anything we can do to fix this?


    Thanks.

  • #2
    So one thing to be careful with the MR Gyro Sensor is to calibrate it. AFter calibrating the sensor will drift between 1-3 degrees per minute. We suggest using the reset x integrator after the waitForStart() method. There still will be drift but it will be better. We are currently trying to figure out what is going on with our Adafruit IMU because we have had lots of problems. A sensor that we have heard good things about is the NAVX Micro but it does cost $80.

    Comment


    • #3
      Originally posted by FTC9863 View Post
      Today we confirmed that our Modern Robotics Gyro Sensor(s) is off by 10 degrees for each turn, making the sensor absolutely useless to us.

      1. Can someone list what other Gyro Sensors are available, other then the Adafruit Gyro Sensor

      2. Are other teams seeing this? Is there anything we can do to fix this?


      Thanks.
      Would you elaborate on how you "confirmed the off by 10 degrees"? Just to want to make sure it is indeed a "drift" instead of something else.

      Comment


      • #4
        Also, there is a calibration procedure that can be performed to zero the gyro aside from calling the calibrate function. It is detailed on the modern robotics site and you can do it using their core device discovery software.

        Comment


        • #5
          Oh, and we are using the heck out of the modern robotics gyro, and we get good performance out of it. We use it during autonomous and teleop constantly.

          Comment


          • #6
            Originally posted by FTC9863 View Post
            Today we confirmed that our Modern Robotics Gyro Sensor(s) is off by 10 degrees for each turn, making the sensor absolutely useless to us.

            1. Can someone list what other Gyro Sensors are available, other then the Adafruit Gyro Sensor

            2. Are other teams seeing this? Is there anything we can do to fix this?


            Thanks.
            BTW, we used to use the MR gyro but because of the I2C sensor latency issue, we gave up on MR gyro and just use a plain analog gyro and it works great.

            Comment


            • #7
              Originally posted by FTC9863 View Post
              Today we confirmed that our Modern Robotics Gyro Sensor(s) is off by 10 degrees for each turn, making the sensor absolutely useless to us.

              1. Can someone list what other Gyro Sensors are available, other then the Adafruit Gyro Sensor

              2. Are other teams seeing this? Is there anything we can do to fix this?

              Thanks.
              I'm not 100% sure what fault you are reporting, but I've encountered two different issues with mu MR gyros.

              The one that sounds most like what you are reporting was posted here:

              http://ftcforum.usfirst.org/showthre...surement-error

              I discovered that each full revolution have more than 360 degrees. And that error could be unwound by rotating back the other way.
              I fixed this problem by using the IntegratedZAxis value, but multiplying by a correcting scale value before using it...

              So in your case if it reads 370 degrees per turn, you would multiply by 360/370

              Comment


              • #8
                Originally posted by Philbot View Post
                I'm not 100% sure what fault you are reporting, but I've encountered two different issues with mu MR gyros.

                The one that sounds most like what you are reporting was posted here:

                http://ftcforum.usfirst.org/showthre...surement-error

                I discovered that each full revolution have more than 360 degrees. And that error could be unwound by rotating back the other way.
                I fixed this problem by using the IntegratedZAxis value, but multiplying by a correcting scale value before using it...

                So in your case if it reads 370 degrees per turn, you would multiply by 360/370
                You know you can save that correction to the EEPROM, right?

                Comment


                • #9
                  Originally posted by rvansmith View Post
                  You know you can save that correction to the EEPROM, right?
                  Actually no. I didn't.
                  A little more information would have been helpful. To me and any others.

                  Have you done this, using what method, and how reliable is it?

                  Phil.

                  Comment


                  • #10
                    Originally posted by Philbot View Post
                    Actually no. I didn't.
                    A little more information would have been helpful. To me and any others.

                    Have you done this, using what method, and how reliable is it?

                    Phil.
                    http://modernroboticsinc.com/Content/Images/uploaded/Sensors/Sensor%20Documentation.pdf

                    Page 16 of the MR Sensor guide has information about setting the Scaling factor in EPROM. This is overwroting the factory value, so it should work well. I haven't had to use it, my gyro seems pretty good.

                    Comment


                    • #11
                      I hate that you can not edit your posts . Corrected link to the document:
                      Modern Robotics Sensor Guide Page 16

                      Comment


                      • #12
                        Originally posted by rvansmith View Post
                        http://modernroboticsinc.com/Content/Images/uploaded/Sensors/Sensor%20Documentation.pdf

                        Page 16 of the MR Sensor guide has information about setting the Scaling factor in EPROM. This is overwroting the factory value, so it should work well. I haven't had to use it, my gyro seems pretty good.
                        I had looked at the Core Discovery User guide, and there was no mention of doing this in there. (granted it was last updated in 2015).

                        I had seen this parameter in the sensor spec, but was not sure that it was supported/tested in the SDK so I didn't want to brick my GYRO.

                        If you don't have a gyro connected to the DIM when using the Core Discovery program there is no indication that this adjustment supported.
                        (And I don't have one handy, so I can't go any further)

                        Have you actually seen this option on the Core Discovery program?

                        Phil.

                        Comment


                        • #13
                          Originally posted by Philbot View Post
                          I had looked at the Core Discovery User guide, and there was no mention of doing this in there. (granted it was last updated in 2015).

                          I had seen this parameter in the sensor spec, but was not sure that it was supported/tested in the SDK so I didn't want to brick my GYRO.

                          If you don't have a gyro connected to the DIM when using the Core Discovery program there is no indication that this adjustment supported.
                          (And I don't have one handy, so I can't go any further)

                          Have you actually seen this option on the Core Discovery program?

                          Phil.
                          The Discovery Tool allows you to write anything to any I2C registers. So I supposed you can just write the values to the Z-axis scaling coefficient registers (offset 0x10 and 0x11). But I am a little skeptical of playing with something like this. Please check if these registers are readable and write down the original values before you change them. So in case things got screwed up, you can restore the values. I don't know how Modern Robotics implements its gyro sensor but my understanding is a raw gyro chip gives you a voltage corresponds to the rotation rate. If it is a 5V gyro, it will give you 2.5V while resting and the voltage will increase if you turn in one direction and will decrease if you turn in the other direction. Generally, the gyro chip will give you a spec of how many mV per degree per second. I suspect the SCALE FACTOR is a multiplier to this. Part of the calibration is to determine the "resting voltage" which becomes the "zero offset". I've never seen gyro that needs to scale its mV per degree per second number. So I don't know why it is necessary to multiply with a scaling factor. Sometimes gyro does get affected by temperature but the circuit design should have compensated it.

                          Comment


                          • #14
                            We had some issues with the MR Gyro and the root cause turned out to be our calibration loop was not properly waiting until calibration is done to exit. I did put a call into modern robotics support, and they are the ones that recommended I set the scaling value in the EEPROM if the sensor needed it. I didn't end up needing it, so I didn't perform the scaling calibration. I would not be scared to do it however. I would recommend getting a lazy susan with angles drawn on top so you can rotate the sensor a fixed amount that you know is accurate to calculate your scaling factor. They suggested that not all gyro's required being calibrated in this way, and that it would be a one time thing.

                            Comment


                            • #15
                              And Mikets advice to record the initial values to revert in case you don't like how things turn out is very good advice.

                              Comment

                              Working...
                              X