Patent ID: 8548766

Claim:
A method that compensates gyroscopes, the method comprising: rotating a sensor platform with three gyroscopes, three accelerometers and three magnetometers thereon; determining a first rotation vector Og based upon the rotation sensed by at least one of the three gyroscopes; determining a second rotation vector Om based upon the rotation sensed by the three accelerometers and the three magnetometers; and determining a compensation gain and a compensation bias for the at least one gyroscope based upon the first rotation vector and the second rotation vector; wherein determining the second rotation vector comprises: calculating a first rotation based upon the rotation sensed by changes in the accelerometers (dA); and calculating a second rotation based upon the rotation sensed by changes in the magnetometers (dM); wherein an acceleration vector A associated with the accelerometers corresponds to the changes sensed by the accelerometers (dA); and wherein a magnetic vector M associated with the magnetometers corresponds to the changes sensed by the magnetometers (dM); wherein calculating the first rotation is based upon solving for changes in the acceleration vector A defined by: dAx=Oz*Av−Oy*Az, dAy=−Oz*Ax+Ox*Az, dAz=Qy*Ax−Ox*Ay , and wherein determining the second rotation is based upon solving for changes in the magnetic vector M defined by: dMx=Oz*My−Oy*Mz, dMy=−Oz*Mx+Ox*Mz , and dMz=Oy*Mx−Ox*My; where dMx, dMy, and dMz are the x, y, and z components, respectively, of the derivative of the magnetic vector M; Mx, My, and Mz are the x, y, and z components, respectively, of the magnetic vector M; dAx, dAy, and dAz are the x, y, and z components, respectively, of the derivative of the acceleration vector A; Ax, Ay, and Az are the x, y, and z components, respectively, of the acceleration vector A; and Ox, Oy, and Oz are the x, y, and z components, respectively, of the second rotation vector Om.