ArduCopter

non hai linkato le eliche che intendi usare. devi fare attenzione che il peso dei compinenti sia almeno 1/3 del peso sollevabile dai motori... nel tuo caso la spinta (reale) offerta da un mototre deve essere sufficiente ad alzare il tutto (il resto della potenza ti serve per manovrare in modo reattivo)

il drone pesa 3 etti, il quadricottero magari 1.3kg o piu': quando lasci i comandi, non si ferma li

questa è l'inerzia, il drone ne è soggetto ma si nota molto meno per via della grande diferenza di peso. se prendi un quad mignon tipo quelli che stanno in una mano si nota ancora di meno

In pratica l'idea è questa: ogni volta che calcoli la tua angolazione rispetto al suolo, puoi calcolare com'è direzionato il vettore gravità (la lunghezza la sai già). A questo punto prendi i valori dell'acceleromtero, li trasformi da LSB in G, fai una sottrazzione di vettori Accelerometro - Gravita = Accelerazione attuale. Errore N°1: i sensori non sono perfetti, e anche l'angolazione calcolata. Quindi l'accelerazione è leggermente errata
Sommando le varie accelerazioni moltiplicate per il tempo di loop (o meglio tempo di integrazione) ottieni la velocità di spostamento. Errore n°2 e 3: il tempo di integrazione da per scontato che in quel tempo ti sei mosso alla stessa accelerazione, in oltre c'è la precisione del timer.

Ora che hai la velocità di spostamato puoi calcolare quanto ci metti a raggiungere una volocita (v = 0 per fermarsi) ad una certa angolazione o quanta angolazione ci vuole per raggiungere una certa velocità entro un certo tot di tempo (se possibile).
Però dato che l'errore si somma, dopo poco tempo avresti un quad che si muove da solo cercando di correggere errori inesistenti.