Best 9-axis IMU for thrown and rotating balls?


I'm working on a project utilising balls with sensors inside as MIDI controllers. I would like the participants using the balls to be able to throw them, rotate them, and move them through space in order to control musical variables such as volume pitch etc. At the moment I am in the parts finding phase to get the most appropriate sensors for what i'm doing.

Aspects I would like to be able to determine include speed of ball rotation, when a ball is moving in an arc as if thrown (including when at the peak of that throw), when the ball is being moved physically, and the size of those movements.

This is my first time delving into IMUs so I may be overreaching their capability (or perhaps my own). When in motion and as such being acted upon will the accelerometers still be able to identify which direction is down? Considering there may be rotation occurring at the same time can the gyroscope data if properly interpreted account for this? Ideally one of the functions here, and the one I am most concerned about is an increase and decrease in volume related to the arc in a throw.

I had previously been looking at the MPU6050 but it occurred to me that the magnometer would be useful. As such I have looked into other options. The obvious from looking at the MPU6050 is then the MPU9250, but looking around I am also considering

Does anyone have experience with either of these, or another considering the functioning I am looking for?

Thanks, Minrat

I suggest to start with the MPU6050 and play with it a bit in order learn how to understand what the two sensors report.

Note that “movement”, as we normally think of it, is not sensed by the sensor, only acceleration and rates of rotation are reported.

The sensor will report the acceleration due to gravity when it is held still, but little or no acceleration when the ball is in flight.

It is not possible to use an accelerometer to detect the peak of the ball’s trajectory, in free flight.


Thanks for your response. My understanding of accelerometer function is that there are capacitive plates against a spring which will change the voltage output. I understand that this measures changes in velocity as inertia acts upon the spring resulting in change in output from the plates. So, if in a free fall I can see that the spring would be under no pressure and send a 0G reading, but if not given time to reach terminal velocities wouldn't there be a variable value between 1 and 0 Gs depending on what part of the parabola it is in?

If i'm wrong on the above interpretation, would it be possible to measure the acceleration at release of the throw (presumably when there would be the greatest change in acceleration) and find out based on that the likely height the parabola would reach? Probably a good idea to have a play first as you suggest, just trying to increase my understanding and reasonable expectations before making a monetary investment.

Thanks for your time, Minrat

EDIT: Utilising an app I have just been playing with my phones inbuilt accelerometer. It appears when thrown, maintaining orientation (not rotating) that the measurement on the up/down axis holds 1G at stationary, increases when upward force in appliend in the process of throwing, then moves to 0 by peak, moves to past 1 as it is caught (degree of which depending on how quickly the motion is stopped), and then sets again to 1 at rest. This suggests that either the events are happening too quickly for me to follow and that the 0 value is unrelated to the peak, and is simply a reflection of being in the air at all, or that there is indeed changes in acceleration experienced by the spring through the thrown parabola.

Keep working on it.

Have you ever seen movies of astronauts training for "zero gravity" in an airplane undergoing ballistic motion?

Hey. After more observation you are indeed correct. I wasn’t throwing it for it to be airborne enough for me to notice the difference. Looking up the explanation this wording elsewhere provided the most understandable explanation for me, “In a free fall, when all parts of the accelerometer experience the same acceleration, the mass accelerates due the gravity - not due to the push or the pull of the spring. Therefore, the spring does not experience any forces, hence, there is no compression or stretching and no displacement, hence, the reported acceleration is zero.”

Imagining a thrown spring worked for me as an analogy.

That said, in my testing I found that the harder I threw it, the more airtime it got and also the more Gs were generated prior to the 0G free fall. I believe that this could be programmed with testing and some maths to figure out expected time till reaching the apex of the parabola.

With a gyro and accelerometer setup, there will be significant X axis drift as I understand it, which is why I am looking at a 9Dof sensor.

So my question becomes, which 9dof sensor on the market has the appropriate response specificity to be able to make that calculation without being significantly affected by noise?

If you know the angle and the initial velocity (the integrated value of the the initial acceleration), you can quite accurately predict the path of a projectile. Galileo worked this out several hundred years ago and invented ballistics.

Air resistance is a problem for lightweight projectiles, but you can approximate the result. Problems like this are discussed and worked out in detail in introductory physics textbooks.

which 9dof sensor on the market has the appropriate response specificity to be able to make that calculation without being significantly affected by noise?

None of them, and the magnetometer doesn’t do you much good in this situation, except possibly to determine the initial angle of the projectile path, with respect to North.

The problems with such sensors are outlined in this tutorial: Using Accelerometers to Estimate Position and Velocity |.