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?


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.

| improve this answer | |
  • $\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$ – Rocketmagnet Mar 17 '14 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 Mar 17 '14 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 Mar 17 '14 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.

| improve this answer | |
  • $\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$ – Rocketmagnet Dec 12 '13 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 Dec 13 '13 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 Feb 8 '14 at 22:57

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.