I've been working on a DIY project which involves creating a drone from scratch. My aim is simple yet challenging; I want the drone to ascend to a specified altitude, hover for a few minutes, then descend, all autonomously without any external controller.

Here are the components I'm using:

Arduino Uno as the primary microcontroller. Adafruit BNO055 Absolute Orientation Sensor for orientation tracking. Brushless motors for the propellers. My approach thus far has been centered around PID (Proportional Integral Derivative) and LQR (Linear Quadratic Regulator) control methods for the stabilization and altitude control. However, despite my best efforts and countless hours poured into this project, I've been unable to achieve a successful, stable flight.

The main issue I'm experiencing is with achieving and maintaining the set altitude. The drone either overshoots the desired height or doesn't lift off properly. I'm sure it's a problem related to tuning the control systems but despite tweaking the PID and LQR parameters, I can't get it right.

  • $\begingroup$ Absolute altitude is difficult. Sounds like you are trying with dead reckoning. Check, but I believe most drones where precise altitude is required use TOF distance detectors. If you are looking for a cheap / low accuracy relative altitude solution consider pressure sensors. $\endgroup$
    – st2000
    May 16, 2023 at 12:10
  • $\begingroup$ Since you mentioned LQR I assume you have a state space model. How did you obtain this model and have you tried simulating it suing your different controllers? $\endgroup$
    – fibonatic
    May 18, 2023 at 18:04

1 Answer 1


There are 2 primary parts to the control system - sensory input and control output. I'd recommend validating your sensory input if that is stable - i.e. provides desired output within reasonable noise limits at specific altitudes. The noise levels are an important factor as those are out of your control, and your controller would need to reject that (via some sort of filtering). Once the sensor data is validated, plotting your controller output vs sensor input would yield what needs to be tuned in your controller (eg. is your D gain too high in your PID controller?)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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