2

I am trying to use Invensense's MPU9250. I am using provided library to read euler angle. When the IMU rotates about one axis, angles about other two axes change too. What could be potential cause to it?

drerD
  • 501
  • 3
  • 10
  • 1
    You say the other axes change too, can you provide some numbers to evaluate the problem. Basically this chip is very cheap/low quality, the internal measurement devices are not perfectly aligned to the package and to each other. This usually leads to this results – TobiasK Jun 27 '15 at 10:22
  • also, could you add some information about "how" you rotate the IMU about one axis only? Is it a test setup or hand-rotation? Is it within the specs of the angular-rates? – Gürkan Çetin Jun 27 '15 at 17:45
  • @TobiasK I didn't know that MPU9250 is low quality. I thought it's a top-notch product given its DMP. This is quite surprising. – drerD Jun 28 '15 at 18:21
  • @GürkanÇetin I have a breakout board: http://www.drotek.fr/shop/en/home/421-mpu9250-gyro-accelerometer-magnetometer.html . It's placed on a breadboard with Z axis facing down. I rotate about Z axis slowly (<2000degrees/s), and X and Y axes' angles. I will put up the data when I get a chance again later. – drerD Jun 28 '15 at 18:23
  • the drotek website refers to the github, and in the github page, there's a disclaimer that the code is mostly broken. From what i understand from the specs, the rates are user selectable (up to 2000 d/s), and I would expect to see some small changes in the other angles (roll and pitch) if you are rotating by hand around the z-axis, and not translating. Small changes would be acceptable I guess. – Gürkan Çetin Jun 28 '15 at 18:42
  • The chip is one of the better in the MEMS field but I can tell you from my experience in the semiconductor that the production of a semiconductor (especially the analog ones like this here ) are far away from being perfect. This miss alignment internally and to the package are measureable. In addition you got temperature drift, voltage ribbles and noise fields (for the magnetic measurement) .... there are some reasons why an industrial grade inertial measurement system for Navigation start at 2k $ and end at several millions for naval-military and spaceships... you will have to cope with this – TobiasK Jun 28 '15 at 18:47
  • @GürkanÇetin This is a great answer. Please make it a "real" answer so that people can vote it up and you will get reputation. Comments are for helping to improve questions and answers, and are distracting, so we try to keep them to a minimum. If all of the information needed to answer the question is contained within it, the comments can be deleted. – Ben Jun 30 '15 at 13:22
  • @TobiasK Same goes for you, please move your comment to a real answer. – Ben Jun 30 '15 at 13:22

2 Answers2

2

Your chip is a MicroElectronicalMechanicalSystem (short MEMS) based Inertial Measurement Unit. These chips itself are analog devices which measure your desired values. For example the gyroscope uses in most cases a moving mass which is inflenced by the coriolisforce of the rotating system. This force leads to a displacement of the mass. This displacement leads to changed capacity in a capacitor, which can be measured.
If you look at the manufacturing of a semiconductor device you will see that you have tons of different tolerances. If you group up all these different tolerances to specific worst cases you can name these groups "corners". It's more or less so:
you got a transistor with characteristic numbers A, B and C there tolerances +/-a, +/-b and +/-c. e.g. A is set to A-a, B+b and C-0.2*c the transistor switchtime will be the fastest of all possible tolerance combinations. Then you call this the fast corner.
You have all these different corners/tolerances and at the end you do not know how your device is placed within all these tolerances.
Some tolerances have an influence on the physical structure. All the complex internal devices won't be alligned to each other prefectly orthogonal. Furthermore the internal chip has be placed into a package which is far away from perfect. It is within a specific tolerance. All these lead to a non perfect chip.

In addition an industrial grade IMU start at 2000\$ and end at several million \$ for military-naval navigation /spacehips. These high quality IMUs do use MEMS (the 2k\$ industrial ones) but they have complex software compensation algorithms to get rid of the non-perfect chip.

TobiasK
  • 1,657
  • 1
  • 9
  • 17
1

The drotek website refers to the github link, and in the github page, there's a disclaimer that the code is mostly broken.

From what I understand from the specs, the rates are user selectable (up to 2000 d/s), and I would expect to see some small changes in the other angles (roll and pitch) if you are rotating by hand around the z-axis, and not translating.

Small changes would be acceptable I guess.

Note: this post was a comment at first, but it was recommended to be changed into an answer, and I did.

Gürkan Çetin
  • 411
  • 2
  • 17