usare 2 accelerometri inclindati di 45 gradi, 2 accelerometri per asse, x-y
non conoscevo questo metodo, come fai ad eliminare le accelerazioni?
Deve essere, faccio speculazione. una moda lanciata da un articolo scientifico che sinceramente mi devo esser perso, ma di cui ho notato la diffuzione in molti Application Notes da parte di molti costruttori di accelerometri.
Si tratta di 2 inclinometri per asse fra loro ortogonali, messi ad ad "L", per capirci
e il tutto, la "L", e poi e' inclinato di 45 gradi rispetto all'asse di cui si vuole valutare l'inclinazione rispetto all'earth
Disegnando i vettori la "magia" si evince dai conti: del resto il sistema, l'artificio, la geniata di averci pensato, e' progettato apposta per rispondere alla necessita'di essere immune dalle accelerazioni nel valutare l'angolo che assume la normale all'asse del sensore rispetto all'asse del vettore gravita'. Il trucco consiste in una somma differenziale vettoriale. Tutto un gioco di geometria, e di vettori, dunque.
Numericamente ci sono delle limitazioni, sono richiesti calcoli trigonometri inversi, e l'angolo di inclinazione massima e' limitato nel ragne -30..+30.
Correzioni, o calibrazioni, del 45 gradi della "L" rispetto all'earth e' fattibile (anche se in pochi, negli application note, riportano il risultato finale dell'equzione per intero"
Dal mio punto di vista avrebbe senso anche una calibrazione. Del resto ... e' anche vero che poi in molti utilizzano lbrerie fixed con pochi bit decimali, il che vanificherebbe l'informazione correttiva della calibrazione.
usare Horizon sensor
i sensori di orizzonte esistono di vari tipi, so che sono stati usati con successo indoor, ma hanno qualche problema a lavorare all'aperto
Infatti non mi convincono. Ma e' anche vero che non li conosco.
ecco qui tutta la presenza sinergica delle 3 azioni P, I, D
mai detto che non serva, ma che secondo me lavora meglio (ovvero è più facile da settare la terna) se la risposta al suo output è lineare(ovvero il pid da un ouput una forza peso), anziché parabolica (il pid outputta direttamente il PPM)
Dovresti modellare meglio motori ed attuatori.
Diversamente ti si deve rispondere: assolutamente no! Nell'affermare che un PID sia + facile se e' olo P -- senza ID, ti sembra + facle, ma anche solo abbozzando una funzione di trasferimento del tuo sistmea (compresi trasduttori, attuatatori e risposta in frequenza dei motori), confezionato il regolatore R(S) .... beh, dai conti, antitrasformando da S->t, anche solo per guardare che faccia ha il grafico nel tempo della risposta del sistema retroazionato ad uno stimolo (per esempio uno scalino sca(t)), si evince tutta una discussione che ti porta a dire che R(S) e' bene che abbia tutte e 3 le azioni P.I.D.
Te ne accorgi ulteriormente se sposti la tua attenzione su e(t)
Certo, confezionare un R(S)=Kp, cioe' la sola azione proporzionale, e', anche nei conti, la cosa + facile da farsi, ma non la migliore.
Secondo me, cmq, il problema risiede nella modellazione dell'attuatore e del motore. Dubbi, oppure troppo semplficato.
per compensare le perturbazioni
che sono accelerazioni lungo i 3 assi e rotazioni attorno ai 3 assi
(anche infinitesime, ma ci sono)
qui non ti seguo. Se precedentemente hai usato uno degli altri 2 punti discussi sopra (4 assi di accelerometro o sensore di orizzonte) in teoria non hai bisogno di tutti questi sensori, perché sono in parte derivabili dai valori che già possiedi.
i 4 accelerometri sono usati, a coppie, 2 per l'asse x, 2 per l'asse y, per realizzare un inclinometro di volo: sono studiati e progettati per confezionare una coppia di angoli compresi fra -30 e +30 gradi. Il sottomodulo vede cioe' cono di 60 gradi, e si occupa solo ed esclusivamente di questo, e in questo limitato range. E' vitale nella fase di atterraggio, tanto quanto nelle indicazioni di assetto stabile in quota.
Per grandi angoli, invece, ricaverei invece l'axial tilt da accellerometro-3assiale + gyro sfruttando logica quaternionica (al limite integrando anche l'informazione di un magnetometro per meglio contenere gli errori di stima ... ma l'iinformazione andrebbe trasformata in quaternione) sfruttando invece accelerometri, e lo stesso gyro, opportunamente filtrati (kalman).
Questo modulo non lavorera' per angoli di eulero ma per quaternioni, e questo perche' per ricavare angoli di eulero mi imbatterei in situazioni in cui e' matematicamente inpossibile non perdere un grado di liberta': Gimbal lock ... potrei risolvere usando diversi Gimbal, che soffrono del lock per angoli particolari rispetto all'earth, quindi una prima soluzione consisterebbe nell'usarne diversi, inclinati diversamente, in modo che almeno uno non sia in Gimbal lock.
Ridondanza. In questo caso non mi piace (non e' detto che non sia una soluzione, NASA l'ha usata per le missioni Apollo)
Per quel che mi riguarda, per grandi angoli sfruttero' la logica quaternionica, per piccoli angoli, invece, gli angoli di eulero.
In ogni casto quanto facevo notare e' che mantenere una posizione nello spazio richiede un grande lavoro di retroazione, un discorso interno, e di principio: spesso nelle implementazioni, come hai visto, la ridondanza di informazione trovail suo perche'.
a livello di test con un motore fisico (jbox2d), possiedo un algoritmo (non fatto da me, ma da un mio compagno di uni) che usa se non erro 3 PID, per mantenere l'angolo, l'altezza, e la posizione.
Interessante.