Document about Measuring Vibration does not match the source code


While researching methods for calculating vibration, I came across the following link: Measuring Vibration — Copter documentation ( The document describes the process as “High-pass filtering the raw values at 5 Hz to remove the vehicle’s movement.” However, upon reviewing the associated code referenced here: ardupilot/libraries/AP_InertialSensor/AP_InertialSensor.cpp at master · ArduPilot/ardupilot (, I found discrepancies between the description and the code implementation.

In the code, the filters utilized in the vibration calculation are as follows:

  • LowPassFilterVector3f _accel_vibe_floor_filter[INS_VIBRATION_CHECK_INSTANCES]
  • LowPassFilterVector3f _accel_vibe_filter[INS_VIBRATION_CHECK_INSTANCES]

Both of these filters are low-pass filters. This leads me to question whether “accel_vibe_floor” actually includes the vehicle’s movement.

Thank you for your assistance.

I am also seeing both to be lowpassfiltervector3f. Did you find any info how it works?

1 Like

Probably it uses low pass and then subtracts the result from the signal, effectively creating a high pass.

1 Like

Thanks Amil, that makes sense.

1 Like

Oh dear,
I did not realize that. Indeed the subtraction acts as a high-pass.
Thank you!