I setupped a small drone simulator using PhysX, the time step is at 200 hz, while motors update like regular ESCs (at 50 Hz). I computed the inertia matrix, tweaked a bit mass of components to be real, air drag, gravity etc. After a first partial success in tuning a PID algorithm I got bored to find and hunt perfect values, and started thinking to tune it with a NN, but then I thinked, why using PID at all if NN can find better solutions?.

I started playing with NN, but then I realized I have no traning data.

Sure I could do


but what is actually the expected output? To be useful it has to be the thrust force of propellers tuned to keep input (position and orientation) stable in the desired place.

But actually I don't (Want to) know in advance the thrust that every single propeller has.

Since it is a simulation it is ok spending some computing time between each simulation step (eventually I'll try to optimize it later to fit it in a microcontroller)..

So, is it possible given a regular NN implementation where I can select number of:

  • Input neurons
  • Hidden neurons
  • Output neurons

find a way to train my model live? I need a way to tell the NN

hei this time you performed X keep going or go the opposite way.


1 Answer 1


It's debatable whether neural networks can find a better solution than PID, if your goal is to simply keep the output around a certain reference point PID should do a perfect job pretty much. If you really want to use "intelligent" control with NN you can look into reinforcement learning.
Few interesting papers that directly adress your problem:

Autonomous helicopter flight via reinforcement learning
An Application of Reinforcement Learning to Aerobatic Helicopter Flight
Autonomous Helicopter Control Using Reinforcement Learning Policy Search Methods

You can also find more in the references of these papers.

  • 1
    $\begingroup$ Probably worth adding something that more directly answers the title question: e.g. Reinforcement Learning addresses the issue of no supervised learning training data, by generating label data (predicted utility) or gradients (changes to control policy) from observations of interactions with the environment. $\endgroup$ Commented May 15, 2019 at 10:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .