As I understand it, a Kalman filter uses a mathematical model of the robot to predict the robot's state at t+1. It then combines that prediction with information from sensors to get a better sense of the state.

If the robot is an aeroplane, how accurate/realistic does the model need to be? Can I get away with simple position and velocity, or do I therefore need an accurate flight model with computational fluid dynamics?


2 Answers 2


Well, i had a little trouble understanding your question. If you want to control it, and the UAV can be controlled (it has to do with its design) just use some decent controller. As far as I know the Ardupilot uses a very simplified version of a PID controller and works just fine for pretty much everything. You can add additional stability to an aircraft during its design with things like the position and angles of the wings. The Kalman will give you the state, and you use that state to control the aircraft. But airplanes are made with lots of stability due to the uncertainties you get. I remember using a LQR algorithm in college to control an aircraft. It incorporates state vectors and control vectors. That algorithm is pretty much state of the art. It incorporates everything you need from the aircraft. Just like you asked. And answering your question, we only need the coefficients of the main parameters, and we can look those up in tables and graphics (Search for Roskam books...). It doesn't get better than that. We would get two matrices A and B. One for state (x1) and another for control(u1) . The next iteration of the state of the aircraft that we wanted would be x2 = A.x1 + B.u1 The control vector u1 for now would take into account how the aircraft was, and how we wanted it. u1 = (x2 - A.x1)/B So simple... It's one of the best controllers you have out there. The other don't need information about the UAV, just feed back. Did you understand? Did I solve your problem?

Ps. For velocity, you need a pitot tube to measure the true airspeed.

  • $\begingroup$ Sorry, this does not address my question: "how accurate/realistic does the model need to be?" I.E. how accurate does the A matrix need to be? $\endgroup$ Commented Mar 17, 2014 at 13:56
  • $\begingroup$ The A matrix is given by gathering the values of tables and charts, where you would get values by only knowing the general dimensions and ratios of the aircraft. $\endgroup$
    – TAG
    Commented Mar 17, 2014 at 16:50
  • $\begingroup$ Edited - The A matrix is given by gathering the values (coefficients) of tables and charts, where you would get values by only knowing the general dimensions and ratios of the aircraft. In the Roskam books link you can find the coefficients. It's very forgiving about the precision. It doesn't matter how accurate you get. In the end, by using this Linear Quadratic Regulator performs better than any other, regardless of their performance. But hey, if you need more help, jut ask. $\endgroup$
    – TAG
    Commented Mar 17, 2014 at 16:58

Depends on how stable you want the UAV to be. If the air is still, probably position/velocity/acceleration added with friction and drag would be a pretty accurate model and is not too difficult.

However, air is not still, and no matter what model you make, you can't predict wind. Neither it's strength nor direction. The effect of wind especially makes the calculation of drag difficult as it depends on the aerodynamicity of the UAV in the direction of the wind.

That said, unless someone here has created before a similar UAV to the one you are building, and used it in the same application as yours, I don't think you can get a clear answer. Best way would be to try it.

My suggestion is to try building a model that doesn't ignore the basics (e.g. basic fluid dynamics), but don't go out of your way either. If it turns out that it's not good enough, then ask for help on the particular behavior.

  • $\begingroup$ But, in general, when people make UAVs, what kind of flight models do they include? Are there any existing autopiloted planes with trivial flight models? How about Ardupilot, does that need to be programmed with the flight model of the particular plane it's in? $\endgroup$ Commented Dec 12, 2013 at 21:58
  • $\begingroup$ @Rocketmagnet, I'm sorry but I really don't know. I know Kalman filters, but don't have any experience with UAVs. $\endgroup$
    – Shahbaz
    Commented Dec 13, 2013 at 9:40
  • $\begingroup$ and its not just the Kalman Filter you need. so just like Shahbaz said build something and try on it. start with simple then move towards complex models $\endgroup$
    – Neo
    Commented Feb 8, 2014 at 22:57

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.