Pages: 1 ... 47 48 [49] 50 51 ... 106   Go Down
Author Topic: [Multicotteri] Elettronica : IMU, MCU, Sensori ed algoritmi di controllo  (Read 99487 times)
0 Members and 1 Guest are viewing this topic.
Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ragazzi scusatemi la domanda, però il topic è un po' dispersivo e per estrapolare l'informazione che mi serve dovrei spulciare 48 pagine :\
Mi sono promesso che prima o poi proverò a costruire un multicottero però non mi sento ancora all'altezza per vari motivi, tra questi c'è l'algoritmo..
Ora, sinceramente parlando di solito mi ha spaventato l'elettronica nei miei progetti perchè frequento un indirizzo informatico all'ITIS e problemi con la logica e programmazione non ne ho avuti nel mio piccolo.
Quindi, tornando a noi, vorrei chiarire i miei dubbi:
La logica è (detta proprio terra terra): controllo il giroscopio, se pende a destra, aumento il motore di destra?
Se così fosse, ciò non mi torna. Alla fine quando voglio che il multicottero vada avanti non devo diminuire il motore frontale? Dovrei quindi ignorare per quel momento il giroscopio?

Come vedete sono assai confuso, illuminatemi smiley-grin
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Come vedete sono assai confuso, illuminatemi smiley-grin

Prima di tutto devi leggerti completamente i tre thread dedicati ai quadricotteri, sopratutto quello principale, ormai chiuso, di oltre 100 pagine perché li trovi di tutto di più.
Se vuoi cominciare comprati un telaio pronto e usa MultiWii come software, così hai fin da subito un qualcosa sicuramente funzionante che puoi studiare e modificare a tuo piacere con calma.
Logged

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Prima di tutto devi leggerti completamente i tre thread dedicati ai quadricotteri, sopratutto quello principale, ormai chiuso, di oltre 100 pagine perché li trovi di tutto di più.
Se vuoi cominciare comprati un telaio pronto e usa MultiWii come software, così hai fin da subito un qualcosa sicuramente funzionante che puoi studiare e modificare a tuo piacere con calma.


Non so..se devo spenderci l'equivalente per costruirmelo da solo...
Cosa intendi per telaio?

Comunque la mia era solo una coriosità per la logica del programma, la mia ipotesi è del tutto sbagliata ? smiley
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

nel mio codice io faccio così: all'input della ricevente assegno un angolo. se non fai niente l'angolo è 0, se dici avanti +5°, se dici indietro -5° (per esempio)

ora, integrando il giroscopio (che restituisce la velocità angolare, NON l'angolo) e i dati degli altri sensori, ottengo l'inclinazione del mezzo. Confronto l'inclinazione del mezzo con quella desiderata, e poi intervengo sui motori come hai detto tu.

Per sapere QUANTO devo agire sui motori mi affido ad un basico algoritmo PID.
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ahaha sei il mio preferito lesto!
Io pensavo che il giroscopio tornasse un angolo, e invece..! Comunque più o meno ci sono: se gli dico di andare avanti inclinandosi di x allora agisco sui motori fino a che l'inclinazione non ha raggiunto x ?
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

esatto, però puoi seguire altri metodi. Per esempio, se dici avanti al massimo, col mio caso non ti pieghi più di 5° (è un esempio, nella realtà il limite è 30°), invece potresti dire che quando dici avanti al massimo, di AGGIUNGERE 5° all'angolo attuale

un altro sistema angora, usando solo i giroscopi, è legare agli stick non l'angolo, ma la velocità angolare desiderata. (questo credo sia il sistema usato dalla KKboard)
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

un altro sistema angora, usando solo i giroscopi, è legare agli stick non l'angolo, ma la velocità angolare desiderata. (questo credo sia il sistema usato dalla KKboard)

Tutti i sistemi che usano solo il giroscopio implementano una logica del tipo "tenere velocità angolare uguale a 0", in pratica se dai comando con lo stick, o se arriva una folata di vento, vai a perturbare il sistema che reagisce cercando di correggere con un movimento contrario al fine di azzerare la velocità di rotazione dell'asse, però l'assetto rimane quello imposto.
Se ci fai caso tutti i quadri che volano solo col giroscopio una volta che li metti con un certo assetto poi ci rimangono anche se porti gli stick a zero, per rimetterli in piano devi dare comando contrario a differenza del modo di volo stabile, dove serve anche l'accelerometro, che riporta sempre il quadri in assetto ortogonale al terreno azzerando di fatto anche la velocità di avanzamento.
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

un altro sistema è quello di dare il giro in pasto alla DCM con un finto input dell'accelerometro a 0, 0, 1... in questo modo puoi leggere un angolo assoluto dato dal giroscopio, che però per via del finto accelerometro che continua a dire di essere dritto tende ad azzerarsi più o meno in fretta (dipende dal PI della DCM).

Si tratta di un comportamento che ho notato testando la DCM, che mi piacerebbe testare in volo

edit: il vantaggio sta nell'eliminare il drift e gli errori di integrazione avendo però un sistema un poco più "intelligente" della sola velocità angolare
« Last Edit: February 08, 2012, 06:02:22 pm by lesto » Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tutti i sistemi che usano solo il giroscopio implementano una logica del tipo "tenere velocità angolare uguale a 0", in pratica se dai comando con lo stick, o se arriva una folata di vento, vai a perturbare il sistema che reagisce cercando di correggere con un movimento contrario al fine di azzerare la velocità di rotazione dell'asse, però l'assetto rimane quello imposto.
Se ci fai caso tutti i quadri che volano solo col giroscopio una volta che li metti con un certo assetto poi ci rimangono anche se porti gli stick a zero, per rimetterli in piano devi dare comando contrario a differenza del modo di volo stabile, dove serve anche l'accelerometro, che riporta sempre il quadri in assetto ortogonale al terreno azzerando di fatto anche la velocità di avanzamento.

Capisco..dite che sia troppo per me pretendere di sviluppare un mio algoritmo basandomi sui dati di un giroscopio?

P.S: ma allora per ottenere il grado di inclinazione devo ricorrere per forza ad algoritmi tipo questo, specifico per quel giro?
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

scordati l'inclinazione con solo gyro, a meno che non siano giroscopi della nasa  smiley-mr-green smiley-mr-green
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

scordati l'inclinazione con solo gyro, a meno che non siano giroscopi della nasa  smiley-mr-green smiley-mr-green

Intendi dire che serve l'algoritmo o che lo devo affiancare ad altri hardware ?
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

altro hardware, come l'accelerometro. Però così non regoli lo yaw, e quindi serve un magnetometro.
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Milano, Italy
Offline Offline
Faraday Member
**
Karma: 10
Posts: 3085
Sideralis Arduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate, se qualcuno puo' controllare...

Ma quali sono i valori PID di default su MultiWii 1.8r2 ??

A memoria io avevo su per dire P4 D17, qualcosa del genere, adesso ho ricaricato lo sketch e viene fuori che il P di base e' 7.4 7.2 7.5 rispettivamente roll pitch e yaw e D50 ??

Vi risulta?
Logged

Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

Milano, Italy
Offline Offline
Faraday Member
**
Karma: 10
Posts: 3085
Sideralis Arduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate, se qualcuno puo' controllare...

Ma quali sono i valori PID di default su MultiWii 1.8r2 ??

A memoria io avevo su per dire P4 D17, qualcosa del genere, adesso ho ricaricato lo sketch e viene fuori che il P di base e' 7.4 7.2 7.5 rispettivamente roll pitch e yaw e D50 ??

Vi risulta?

Sentite questa. Ho dato 1mm di gas con questi parametri e il quad si e' catapultato da una parte all'altra della stanza... Dopo un'ora di configurazione di ESC senza esito, ho ricaricato lo sketch ancora e mi ha messo su valori ancora diversi. A sto punto mi sono insospettito, ho caricato lo sketch eeprom_clear e ho rimesso su multiwii, e mi ha rimesso i miei valori base che ricordavo. Ma che cavolo... A cosa puo' essere dovuto tutto questo??

EDIT: Senza contare che ovviamente, nella mia immensa sfiga, il motore che e' partito a tuono e che si e' schiantato per primo, si e' pure sbiellato...
Maledetto multiwii e la sua eeprom
« Last Edit: February 09, 2012, 03:58:18 pm by Federico » Logged

Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

Tortona
Offline Offline
God Member
*****
Karma: 2
Posts: 590
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sentite questa. Ho dato 1mm di gas con questi parametri e il quad si e' catapultato da una parte all'altra della stanza... Dopo un'ora di configurazione di ESC senza esito, ho ricaricato lo sketch ancora e mi ha messo su valori ancora diversi. A sto punto mi sono insospettito, ho caricato lo sketch eeprom_clear e ho rimesso su multiwii, e mi ha rimesso i miei valori base che ricordavo. Ma che cavolo... A cosa puo' essere dovuto tutto questo??

EDIT: Senza contare che ovviamente, nella mia immensa sfiga, il motore che e' partito a tuono e che si e' schiantato per primo, si e' pure sbiellato...
Maledetto multiwii e la sua eeprom

anch'io ho notato che caricando lo stesso sketch di multiwii, i valori del pid rimangono quelli dello sketch precedente...spero che il problema riguardi solo i valori del pid
Logged

Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

Pages: 1 ... 47 48 [49] 50 51 ... 106   Go Up
Jump to: