I am testing pitch orientation correction of Quadcopter and ended up in a issue.

I have a test setup with one degree of freedom to test orientation correction. I have fixed the drone to the setup and basically trying to test pitch correction by feeding a desired pitch angle and current pitch angle from IMU. The AHRS code uses Mahony filter to fuse the sensor data from Accelerometer, Gyroscope and Magnetometer. When I start my testing and spin the motors, can see the current pitch angle varying (or Oscillating). When I test without spinning the motors, the pitch angle is much precise. I observed that when the motors spin, a lot of vibration is generated and i doubt this is affecting the sensor to result in inaccurate output.

My question is

  1. How can the vibration effect be nullified on the IMU sensor? By using some hardware component?
  2. If it can be handled using Software, please let me know.


  • 1
    $\begingroup$ Physically soft-mounting the IMU, with say rubber or similar, would likely help significantly. Further filtering could also help. $\endgroup$
    – ifconfig
    Dec 4 '20 at 20:11
  • $\begingroup$ @ifconfig, I used a soft mount but I don't see much effective results using a soft mount. I used complementary filter for filtering the accel data inorder to reduce the orientation output fluctuations due to vibrations. It has been effective upto certain extent, but the effect is not nullified to max extent. Do you have any other suggestions? $\endgroup$
    – TheLazy
    Dec 16 '20 at 5:59

You need to be specific about what IMU hardware you are using, like a general purpose IC like MPU6050 (gyro + accelerometer), or flight controllers like Pixhawk, pixRacer, etc ..

In Order for you to achieve a fine tuned, linear input-output response, you need to take care of few things firsts and accept some constraints :

  1. you cannot fully get rid of vibrations, but hopefully you can reduce it to an extent by using anti-vibration absorber like this


  1. You cannot achieve a linear relationship between input and output signals. This is mainly due to limitations of The flight hardware you are using

    In the end, the goal is get proper output signals rather than reduce vibrations. this can be achieved by

1)Research more about your IMU hardware, like manufacturers Datasheet, or asking with the community

  1. The reason why you are getting a change in pitch angle is due to its internal offset of various parameters associated with its IC manufacturing.

  2. Coming to UAVs, you need to implement your own PID algorithms by using digital filters like Kalman Filter, or you can choose Open Source flight firmwares for your IMU hardware.

  3. After implementing and testing your filter, you need to fine tune it by hooking the output to a DSO and modifying the filter coefficients to suit your needs. A lot of trial and error goes into finding the tuning parameters like Kp, Ki, and Kd.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.