Eccovi un filmato che dimostra come funziona ora l'autopilota dopo tutte le elucubrazioni matematiche che ho dovuto compiere.
Non riuscendo (per ora) ad eseguire una accelerazione ed una frenata precisa in modo che l'astronave si fermi esattamente nel punto di arrivo, ho dovuto operare per approssimazioni successive. La funzione e' piu' o meno cosi'
- Ferma l'astronave se si muove
- Allinea l'astronave verso la destinazione
- Accelera fino a quando hai compiuto meta' della distanza
- Rimani a velocita' costante fino a distanza pari a velocita*(1-exp(-5*t))/3;
- Rallenta fino a raggiungere una velocita' di 2 m/s: se a sto punto la distanza e' maggiore di 50 metri allora riparti da capo, altrimenti:
- Rvanza lentamente fino alla destinazione
- Rallenta fino a fermarti
Nel video una dimostrazione: l'astronave e' molto lontana dalla stazione spaziale, voglio portarla fino all'ingresso del "tunnel". Per complicare le cose punto il muso dell'astronave in una direzione casuale ed accelero in modo da muovermi da tutt'altra parte. Puo' essere interessante qualche numerino che vedete: in alto a destra, in bianco, con la label S: viene indicata la velocita' attuale.
A destra pos x, y e z indicano la posizione attuale, state indica in quale degli stati (elencati sopra) di autopilota attualmente sta operando l'astronave, ed infine dist e' la distanza dalla destinazione.
Questo algoritmo purtroppo non funziona se l'oggetto destinazione si muove nel frattempo che l'astronave cerca di raggiungerlo. A questo devo ancora lavorare