Go Down

Topic: [Multicotteri] Elettronica : IMU, MCU, Sensori ed algoritmi di controllo (Read 134 times) previous topic - next topic

lesto

Quote
, contando che è il mio primo quadricottero e che le mie conoscenze nel campo sono ridotte posso farcela?

no, ma openpilot è stato portato sulla STM32. io ci sto invece programmando da 0, e non sei obbligato ad usare le loro librerie, puoi anche farne a meno :)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

danipisca07

#1336
Oct 20, 2013, 08:49 pm Last Edit: Oct 20, 2013, 08:52 pm by danipisca07 Reason: 1
grazie lesto ma scusami il sorgente di openpilot dove lo posso trovare? ho provato a cercare in giro ma ho solo trovato la scheda in vendita, il sorgente è libero come per multiwii? ho trovato il programma per la configurazione ma per quanto riguarda il codice da scrivere sul mio arduino uno?

lesto

è opensource; http://git.openpilot.org/browse

ma non credo supportino gli arduino.. diciamo che è un passo avanti
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie


lesto

non conosco l'MS5611, gli altri sono sensori classici. Assicurati che sia supportato dal software che vuoi usare, altrimenti vai incontro a casini
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

danipisca07

si ho controllato danno tutti e tre i sensori come compatibili con multiwii  :) aggiudicata quella IMU

lesto

io sto usando uns STM32f3discovery, che a bordo possiede sensori a 16bit... un altro mondo!

Il codice è al punto che manca l'input da rx, finire e testare il codice per settare il PID via USB (usiamo una VERA bulk transfer, senza finte seriali o menate del genere), e il codice per "mixare" lo yaw con gli altri 2 assi (per ora stiamo lavorando a banco con un braccio solo). progetto: https://github.com/lestofante/stm32f3stabilization (branch PWM)

Se guardi nel mio repository arduino (in firma) troverai un progetto tipo "quadricotterocompleto". Quello usa la DCM ed è all'incirca allo stesso livello di completamento, però l'accelerometro usato è un adxl345. Però magari è "rotto", è da un pò che non ci metto mano, da quando ho la stm32 :)
Il bello di quel codice è che è a classi. Esempio: vuoi implementare il LSM303? estendi la classe il sensor, nel .INO sostituisci nell'array di sensori il ADXL con il LSM303, et voilà, NESSUNA altra modifica necessaria

edit: come non detto, mi sono accorto che querl codice è tralmente vecchio che usa ancora i sensori della Wii (con cui iniziai il tutto)
ri-edit: il sistema citato è nella cartella "testIMU", quindi ha solo la parte di input dei sensori e elaborazione DCM
la aparte di visualizzazione grafica lato PC è la stessa sia per arduino che per la STM, ed è la https://github.com/lestofante/SerialToDCM (branch mag)

In pratica non finirò mai perchè appena esce una board più bella mollo tutto e uso quella (no dai, questo sabato vorrei completare)

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lesto

L3GD20 - 250/500/2000 dps - 16 bit - ODR max 760Hz

vs

ITG3200 - 2000 dps - 16 bit - ODR max 8KHz? (limitato dalla i2c in fast mode)

dal punto di vista letture/s vince l'ITG3200, però il suo full-scale range lo limita alal sensibilità di
1LSB = 0.07°
mentre L3GD20 con fullscale a 500 (quello che uso)
1LSB = 0.017°
e
a 250 (ma in tal caso non gestirebbe un 360° in un secondo, che non è un problema se non fai acrobazie)
1LSB = 0.008°

--------------

l'accelerometro è lo stesso, l'LSM303.
±2, ±4, ±8 g - 16 bit - ODR max 780Hz

--------------

LSM303DLHC (quel DHLC fa la differenza)
±1.3 to ±8,1 gauss - 16bit - ODR max 220Hz

HMC5843
0.7, 1, 1.5, 2.0, 3.2, 3.8, 4.5, 6.5 gauss - 12 bit -ODR max 116Hz

fai conto che il campo magnetico terrestre alle nostre latituduni è di circa 0.4 gauss, credo che con il fondoscala a 1 o 1.5 gauss copri tutto il necessario.
Però credo che un 1.3g a 16bit sia più sensibile di un 0.7g a 12bit, dovrei vedere quanto gauss/LSB sono
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lesto

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lesto

direi che è molto simile all'ultima versione di freeimu se non erro, il vantaggio della arduimo è avere il sistema di filtrazione già fatto ed in un micro esterno.

In oltre le MPU-6000 in toeria fanno l'elaborazione a bordo, ma per quel che ne so è una roba proprietaria mai rilasciata/retroingenierizzata agli hobbisti.
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lesto

il cuore della freeIMU, ovvero la DCM, lo uso anche sulla STM32 e tutte le altre
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lesto

guarda, prendi la stm32f3discovery, la stessa che uso io, 20 euri spedizione compresa da rs e hai il cortex-M4 con float-fpu, i sensori, la jtag on board e un pò di led sulla scheda.

edit: ma il kallman è un filro, non una sensor fusion, no? Quindi pi come giochi con i valori "filtrati"? oppure pensi di filtrare a tal punto da ottenere un valore usabile direttamente?
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lesto

sinceramente sono partito da un sietema già parzialmente funzionante perchè il mio obbiettivo è automatizzare il più possibile il quad, ma mi sono perso troppo tempo dietro alla sua costruzione vera e propria, oltre che i mille passaggi di sensori e di schede.

Il gps mi manca, ma ho visto che un tizio lo ha usato al posto del magnetometro in una DCM; infatti la DCM è bella perchè per tutti i sensori al di fuori del giroscopio, tu crei il versore in cui ti aspetti puntare il sensore, ne calcoli il versore di errore crossandolo con il versore restituito dal sensore, dopo di che applichi questo errore come correzione al valore restituito dal giroscopio in radianti al secondo; integri la lettura del giroscopio per il tempo; infine applichi la rotazione al quaternione.
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

astrobeed

Test che ho fatto con MPU6060 utilizzando il suo DMP e un dsPIC33, semplicemente impressionante  :D
La visualizzazione su pc è tramite il programma Teapot Demo di Invensense.

http://www.youtube.com/watch?v=HOeNsUzlg7k&feature=c4-overview&list=UUp_8JPuLSFZBvrHnvq9mhfA

astrobeed


@astro
hai valutato anche questa board ?


E' solo una demo board con sopra l'MPU6050 e un PIC24, costa pure cara.

Go Up