Soon the skies will be filled with drones, or so the conventional wisdom goes, and these flying droids will deliver pizza, mail, packages, and medical supplies right to one of the taller trees in our backyards. To date, advanced fixed-wing UAVs and toy quadcopters have proven themselves to be exceptionally dumb; they have no idea what their airspeed is, and no, ground speed measured by GPS will not keep you in the air.
The sensors to measure airspeed and angle of attack can be adapted to small drones, but [gallinazo] has a better idea: why not estimate these figures using sensors a drone already has? He’s measuring synthetic airspeed, something that would have already saved a few hundred lives if it were implemented passenger airliners.
Small drones are able to take a few measurements of their surroundings using standard accelerometers, magnetometers, and of course recording the position of the throttle and control surfaces. All of these variables are related to airspeed – at a constant throttle setting, with no movement of the control surfaces, an aircraft will eventually settle at a stable airspeed.
The trick, though, is to tie all of these variables together to produce a number related to the airspeed of the drone. This is done with a Python script implementing a radial basis function and eating all the memory on [gallinazo]’s desktop. This Python script is effectively a black box that turns the throttle position, bank angle, elevator position, and pitch rate into an airspeed.
Does this black box work? Judging by the graphs comparing synthetic airspeed to measured airspeed, this is amazing work. [gallinazo]’s airspeed estimator accurately and reliably matches the measured airspeed. It does this with zero extra parts on the airframe.
All of the code required to implement this synthetic airspeed indicator is available on GitHub, and could conceivably be implemented in a small RC plane after all the variables are pre-computed. Awesome work that pushes the state of the art forward quite a bit.