Inertia Moments - IMU Pixhawk


I have a problem and maybe you can help me. I wanted to calculate the inertia moments of a VTOL and did a bifilar pendulum test. I logged the IMU data from the pixhawk (gyroscope data) and I tracked the angular velocity with a camera tracker and we stopped time and counted the oszillations to have some data for sanity check. In the end the hand measured data and the camera tracker offered very similar data and in y axis (body fixed frame) the IMU had an offset of over 20% and in z-axis of around 10%. The x axis was very similar. We thought of maybe the offset to the rotational axis of the pixhawk has an impact, because the x axis is the only one were the pixhawk lies approximatly in the rotational axis. But for angular velocity there should be no difference. Does anyone no what the issue could be? Maybe some calculations were made in ardupilot?
Thank you so much for helping!!! :slight_smile:

1 Like

What logging message are you getting the ArduPilot IMU data from?

I get the bin data from the SD Card inside the pixhawk and read IMU1 and IMU2 with Gyr x,y or z (depends on the axis) and the time. Does this answer your question? I´m sorry, if I misunderstud it.

There might be a precession happening. That’s a guess from what I’m understanding. The period is the most important thing anyways. How close to the CG are the IMUs? Are the IMUs mounted slightly off the axis of rotation? Does the accelerometer data show the expected period?

It has not very close. I would say in z and y Axis around 30cm.
The Period is different. For a configuration in y Axis the IMU shows a period of 6.6s, the camera tracker 5.4s and the hand measurement (not that accurate) 5.3s. An other setup for the y axis (1 wing removed) says IMU:6.1s Camera:5.6s, Hand 5.4s. Nothing on the rotational axis was changed.
In z-Axis it was IMU:7.5s, Camera:6.8s and Hand: 6.8s

Can you upload your log? Just in case you are missing something obvious…

Are these plots ok? I can also create new ones, these were just implemented in my code

Could you share the dataflash log?

When you are plotting the IMU data, are you using the timestamp with each log message? The data should be recorded at the rate set in the scheduler, but it’s usually a little faster or slower and can change rates.

I think the problem is that your pendulum system is too damped.
Damped systems will have an apparent period longer than the actual one.

Try elongating your pendulum length and swinging no further from vertical than 10-15 degrees.
For a 1.5m plane I would go for a 2m pendulum length.

This is the log:
An this is the Camera Data for the first oszillation:
I did remove the timestamp for a linspace to be able to do some curve fittings, But it should only be shifted to a start time of zero.

Actually I used a formula for a damped system and also calculate the damping. It should be x = e^(-deltat)(Acos(omegat)+Bsin(omegat)). For delta is the damping and omega is the damped natural frequency. Than I calcualted the inertia moment is I= (mgd^2)/(4Lomega^2)*(1-delta^2). We have a span of 3.6m and we used a hight of 4.26m for the y axis and 4.59m for the z axis.