So I can't really wrap my head around this problem.

I have an Inertial Measurement Unit (IMU consisting of an accelerometer and a gyroscope) mounted to a stick which can rotate from a fixed position in the ground with a motor (see picture).

The length of the stick is unknown and through rotations of the motor (the motor has an encoder to measure the angle and speed and acceleration) I want to determine the distance from the rotational joint to the IMU.

I could just make a sufficient arc and calculate with the angle the radius, but that is error prone if you have a bad IMU due to double integration to get the distance, right?

Is there a way by measuring the gravity vectors at certain static positions and calculating a radial vector through that? Would it help if there is also an IMU at the bottom of the stick at the rotational joint?

## Best Answer

The problem would be simpler if the arm were pivoted some distance above the ground so that it could rotate continuously at a steady speed.

In that case, you could determine the rotational rate via the gyro sensor, or by timing the changing presence of gravity in the acceleration reading.

You could then measure the centripetal acceleration with your accelerometer, and with that and the angular rate calculate the radius.

In theory, you could make a similar analysis even when the rotation has to start from a standstill and stop again before hitting the ground on the other side as your drawing seems to show - however, it will be more complicated and more sensitive to error in determining the instantaneous angular rate (probably now from the gyro exclusively, unless your mentioned ability to measure the angle refers to some sort of encoder at the motor rather than being limited to the IMU).

You will not be able to deduce anything from static measurements (at least for any practical arm length). Further, the error of your measurements will probably be lower the faster you can rotate, up to the point where the centripetal acceleration is mid-range on the accelerometer - that's part of why a system that could rotate continuously would be easier to measure than the limited range one you have drawn.