Arduino Forum

International => Italiano => Megatopic => Topic started by: Mosc on Jul 26, 2013, 04:52 pm

Title: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: Mosc on Jul 26, 2013, 04:52 pm
Salve a tutti  :smiley-mr-green:
Tempo fà avevo chiesto informazioni su questo forum riguardo sistemi di questo tipo, con la promessa di postare tutto il materiale relativo al progetto, una volta finito (e passato l'esame di stato  :D). Ora eccomi quì!  :)

I documenti allegati a questo progetto sono molti: Datasheet, DI, Schemi elettrici, Liste parti, Disegni meccanici, Modelli 3D (Tramite SolidWorks), Piramide Prodotto, Relazione Progettuale, Software, Lista Connessioni, Descrizione Cavi, e non ricordo cos'altro..  :smiley-yell:

Riassumendo questo AutoBalance è composto dai seguenti componenti "fondamentali", disposti su tre piani in alluminio:


Una spiegazione esaustiva del funzionamento, e dei componenti utilizzati, è data in questa relazione progettuale:
https://docs.google.com/file/d/0B6XepKMbmngoNXc1YW9yNFdxWFE/edit?usp=sharing
(Scaricandolo la qualità migliora)

Mentre quì è disponibile l'intera cartella del progetto:
https://drive.google.com/folderview?id=0B6XepKMbmngoSlR6bXo2YmJoRW8&usp=sharing

Quì invece un video del funzionamento dell'AutoBalance :D
https://docs.google.com/file/d/0B6XepKMbmngocHdXNEZheTFRbGc/edit

Sono a vostra disposizione per qualsiasi dubbio o richiesta :D
Title: Re: AutoBalance - Self–Balancing of a two–wheeled robot
Post by: PaoloP on Jul 26, 2013, 05:46 pm
Bel progetto.
Complimenti.  ;)
Title: Re: AutoBalance - Self–Balancing of a two–wheeled robot
Post by: Mosc on Jul 26, 2013, 05:50 pm

Bel progetto.
Complimenti.  ;)
Grazie!  :D
Title: Re: AutoBalance - Self–Balancing of a two–wheeled robot
Post by: pictux on Jul 26, 2013, 11:52 pm
Ciao,
molto ben documentato, spero di riuscire a leggerlo per bene.
Intanto mi è balzata agli occhi una inesattezza, se vuoi pure irrilevante: Eagle NON è opensource :)

Se vuoi risparmiare sui sensori di distanza, invece di usare gli sharp potresti usare delle coppie di led ir; gioblu ci aveva fatto svariati test:
http://www.gioblu.com/tutorials/robotica/295-robot-self-balancing-con-arduino-e-4-led
Title: Re: AutoBalance - Self–Balancing of a two–wheeled robot
Post by: Mosc on Jul 27, 2013, 12:16 am

Ciao,
molto ben documentato, spero di riuscire a leggerlo per bene.
Intanto mi è balzata agli occhi una inesattezza, se vuoi pure irrilevante: Eagle NON è opensource :)

Se vuoi risparmiare sui sensori di distanza, invece di usare gli sharp potresti usare delle coppie di led ir; gioblu ci aveva fatto svariati test:
http://www.gioblu.com/tutorials/robotica/295-robot-self-balancing-con-arduino-e-4-led
Ci avevo pensato, e a dir la verità anche provato.. Con scarso successo  :smiley-roll-sweat:

Comunque penso sia più semplice acquisire una distanza dai sensori Sharp, e forse anche più affidabile..

Inoltre tramite i sensori si può utilizzare un amplificatore differenziale per effettuale la differenza fra le due distanze, ottenendo direttamente l'errore di inclinazione.
In questo modo tramite un trimmer ( Che và a variare un tensione Vshift) si possono "bilanciare" leggeri dislivelli del piano di riferimento, errori di bilanciamento del robot, o differenti guadagni dei sensori.

Cosa molto più difficile se la differenza viene effettuata direttamente da Arduino... ( sempre dopo aver adattato i due segnali agli ingressi di Arduino, questa volta andrebbero adattati con due amplificatori distinti però )

Non sono sicuro sia possibile farlo con il metodo di gioblu...


Tuttavia ammetto di aver usato i sensori Sharp per una maggiore semplicità  :smiley-mr-green:


Cavolo per quanto riguarda Eagle hai ragione... Vabbè ormai è andata   :smiley-sweat:
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: ratto93 on Jul 27, 2013, 08:32 am
Molto bravo! mi piace :)
Title: Re: AutoBalance - Self–Balancing of a two–wheeled robot
Post by: astrobeed on Jul 27, 2013, 08:43 am

Se vuoi risparmiare sui sensori di distanza, invece di usare gli sharp potresti usare delle coppie di led ir; gioblu ci aveva fatto svariati test:
http://www.gioblu.com/tutorials/robotica/295-robot-self-balancing-con-arduino-e-4-led


Stendiamo un velo pietoso su questa cosa, un led non è un fotoricettore, sopratutto non è un telemetro come il sensore Sharp che sfrutta un emittore IR molto ben collimato tramite lente, spot < 1cm, e un array lineare di fotoricettori tramite il quale fornisce l'errore di parallasse e da questo la reale distanza in modo abbastanza preciso.
Title: Re: AutoBalance - Self–Balancing of a two–wheeled robot
Post by: Mosc on Jul 27, 2013, 09:34 pm


Se vuoi risparmiare sui sensori di distanza, invece di usare gli sharp potresti usare delle coppie di led ir; gioblu ci aveva fatto svariati test:
http://www.gioblu.com/tutorials/robotica/295-robot-self-balancing-con-arduino-e-4-led


Stendiamo un velo pietoso su questa cosa, un led non è un fotoricettore, sopratutto non è un telemetro come il sensore Sharp che sfrutta un emittore IR molto ben collimato tramite lente, spot < 1cm, e un array lineare di fotoricettori tramite il quale fornisce l'errore di parallasse e da questo la reale distanza in modo abbastanza preciso.
Meno male che sono andato sul sicuro  :D

Molto bravo! mi piace :)

Grazie!  :)

--

A breve carico un video  ;)
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: Mosc on Jul 27, 2013, 10:19 pm
Aggiunto nel primo post un video dimostrativo del funzionamento dell' AutoBalance  :D

---

Una precisazione però, riguardo l'utilizzo del "tappetino" di cartoncino.
Il sistema funziona su tutte le superfici non riflettenti, ma la risposta dei sensori cambia leggermente in base al materiale del piano di riferimento.
Cambiando la risposta dei sensori, cambia anche il comportamento del sistema... (Ad esempio fra plastica e gomma, etc)

Quindi andrebbe regolato il controllo PID ogni volta che si cambia superficie di lavoro.
Per evitare questo ho regolato il PID su cartoncino, e mi porto appresso un "tappetino" di cartoncino  :D

Quote
Per complicarmi ulteriormente le cose, ho posizionato il baricentro a pochi cm sopra l'asse delle ruote, il che rende ancora piu' difficile gestire l'inclinazione del robot. Per via della regola del pendolo inverso, è piu semplice tenere in equilibrio un corpo con baricentro spostato verso l'alto, piuttosto che il contrario.

Stavo rileggendo la pagina di gioblu... questa frase non mi convince per nulla  :smiley-roll:
Ovviamente i sensori più sono posti in alto meglio è, ma il baricentro deve rimanere in basso.
Sbaglio io?
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: astrobeed on Jul 28, 2013, 04:51 am

Ovviamente i sensori più sono posti in alto meglio è, ma il baricentro deve rimanere in basso.
Sbaglio io?


Si perché il tempo di oscillazione di un pendolo dipende esclusivamente dalla lunghezza del braccio e più è in alto il baricentro e maggiore è il tempo di oscillazione, di conseguenza diventa più "facile" contrastare l'oscillazione, ovviamente c'è sempre da fare un compromesso tra stabilità e reattività, la prima richiede il baricentro alto, la seconda il baricentro basso.
Se possibile non è male posizionare il baricentro sotto l'asse di rotazione, in questo caso diventa un elemento che collabora alla stabilità perché contrasta l'oscillazione.
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: Mosc on Jul 28, 2013, 10:00 am


Ovviamente i sensori più sono posti in alto meglio è, ma il baricentro deve rimanere in basso.
Sbaglio io?


Si perché il tempo di oscillazione di un pendolo dipende esclusivamente dalla lunghezza del braccio e più è in alto il baricentro e maggiore è il tempo di oscillazione, di conseguenza diventa più "facile" contrastare l'oscillazione, ovviamente c'è sempre da fare un compromesso tra stabilità e reattività, la prima richiede il baricentro alto, la seconda il baricentro basso.
Se possibile non è male posizionare il baricentro sotto l'asse di rotazione, in questo caso diventa un elemento che collabora alla stabilità perché contrasta l'oscillazione.

Mmh.. siamo sicuri che si possa approssimare ad un pendolo?

Comunque penso di aver capito, l'unico problema è che aumentando l'altezza del baricentro aumenta anche la coppia richiesta ai motori, e quelli che ho usato io cela fanno a malapena così  :smiley-fat:
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: astrobeed on Jul 28, 2013, 10:08 am

Mmh.. siamo sicuri che si possa approssimare ad un pendolo?


Non è una approssimazione, è un pendolo inverso a tutti gli effetti.

Quote

Comunque penso di aver capito, l'unico problema è che aumentando l'altezza del baricentro aumenta anche la coppia richiesta ai motori


SI, più alzi il baricentro diventa maggiore il braccio di leva e di conseguenza serva una maggiore coppia.
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: Mosc on Jul 28, 2013, 10:10 am


Mmh.. siamo sicuri che si possa approssimare ad un pendolo?


Non è una approssimazione, è un pendolo inverso a tutti gli effetti.

Quote

Comunque penso di aver capito, l'unico problema è che aumentando l'altezza del baricentro aumenta anche la coppia richiesta ai motori


SI, più alzi il baricentro diventa maggiore il braccio di leva e di conseguenza serva una maggiore coppia.
Capito, grazie della spiegazione  :D
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: pictux on Jul 29, 2013, 12:06 am
Ciao,

Quote
Stendiamo un velo pietoso su questa cosa, un led non è un fotoricettore, sopratutto non è un telemetro come il sensore Sharp che sfrutta un emittore IR molto ben collimato tramite lente, spot < 1cm, e un array lineare di fotoricettori tramite il quale fornisce l'errore di parallasse e da questo la reale distanza in modo abbastanza preciso.


mi sembra palese che a un 20mo del costo non si ottiene la stessa qualità  ]:)
In ogni caso il lavoro di Gioblu l'ho visto proprio su un robot self-balancing ed andava davvero bene.
Nel senso: stava in equilibrio  :P


Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: leo72 on Jul 29, 2013, 11:14 am
Ai complimenti per il progetto, aggiungo una domanda.
Finora ho visto tutti progetti di questi oggetti autobilancianti che stanno ... fermi!  ;)
C'è qualcuno (di voi) che ha realizzato anche un oggetto semovente che si autobilancia? E che ha messo in opensource il progetto?
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: Mosc on Jul 29, 2013, 11:24 am

Ai complimenti per il progetto, aggiungo una domanda.
Finora ho visto tutti progetti di questi oggetti autobilancianti che stanno ... fermi!  ;)
C'è qualcuno (di voi) che ha realizzato anche un oggetto semovente che si autobilancia? E che ha messo in opensource il progetto?
Che io sappia no  :smiley-fat:
Quando avrò voglia/tempo ci vorrei provare...   XD

Comunque farlo muovere avanti e indietro non dovrebbe essere difficile, però c'è sempre da tener conto del tempo impiegato per effettuare un ciclo. (Se aumenta troppo il sistema non è abbastanza reattivo)
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: astrobeed on Jul 29, 2013, 11:34 am

Comunque farlo muovere avanti e indietro non dovrebbe essere difficile,


Invece è molto più complesso ottenere la stabilità dinamica, robot che si sposta, che quella statica, robot fermo in equilibrio, non credo sia possibile farlo con le soluzioni basate su i telemetri per via della loro ridotta velocità di risposta e precisione.
Tutti i balancing robot che si muovono usano una IMU composta da un giroscopio, va bene un singolo asse, e un accelerometro ad almeno due assi come sensore, spesso anche motori dotati di encoder.
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: nid69ita on Jul 29, 2013, 01:51 pm
Un pò OT, come lego li ho visti, e si muovono:
http://www.youtube.com/watch?v=9xnw-yn_piw&list=PL20A819DFA5D02447
http://www.youtube.com/watch?v=CTMntaMlgi0
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: astrobeed on Jul 29, 2013, 02:04 pm

Un pò OT, come lego li ho visti, e si muovono:


Si, ma usano giroscopio e accelerometro come sensore.
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: Etemenanki on Jul 29, 2013, 04:02 pm
Sono solo io, che mi chiedo perche' nessuno usa lo stesso "sporco trucco" dei segway, di mettere il baricentro sotto l'asse delle ruote ? :P XD
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: pictux on Jul 29, 2013, 04:04 pm
Quote
Sono solo io, che mi chiedo perche' nessuno usa lo stesso "sporco trucco" dei segway, di mettere il baricentro sotto l'asse delle ruote ?


ehm, credo che una volta che ci sali sopra, il baricentro si sposti  :P
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: Etemenanki on Jul 29, 2013, 04:09 pm

Quote
Sono solo io, che mi chiedo perche' nessuno usa lo stesso "sporco trucco" dei segway, di mettere il baricentro sotto l'asse delle ruote ?


ehm, credo che una volta che ci sali sopra, il baricentro si sposti  :P


Nei segway, e' ovvio (ma neanche tanto, se il piano d'appoggio e' sotto l'asse, il peso contribuisce a stabilizzare, sei poi tu che ti devi inclinare per farli muovere ;) ) ... io mi riferivo ai robot ... se ho il baricentro al di sotto dell'asse di sospensione, il tutto e' quasi autobilanciante (senza il "quasi" se l'allineamento e' perfetto), ed il sistema dovrebbe limitarsi quindi a bilanciare gli scompensi provocati da azioni esterne o dal movimento ... in ogni caso, anche abbassare il baricentro contribuirebbe alla stabilizzazione (esempio, batterie sotto l'asse di sospensione e ruote piu grandi per alzare l'asse, abbasserebbero il baricentro senza troppe complicazioni, credo ;) )
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: astrobeed on Jul 29, 2013, 04:21 pm

Nei segway, e' ovvio (ma neanche tanto, se il piano d'appoggio e' sotto l'asse, il peso contribuisce a stabilizzare, sei poi tu che ti devi inclinare per farli muovere ;) ) .


Nel segway, l'ho provato di persona, il baricentro è sotto l'asse di rotazione quando non c'è nessuno sopra, questo gli consente di minimizzare il lavoro, e l'energia consumata, per rimanere in equilibrio, però quando ci monti sopra il baricentro sale notevolmente sopra l'asse di rotazione.
In rete ci sono molti filmati che dimostrano quanto il segway può essere pericoloso se usato senza accendere il cervello :)
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: Etemenanki on Jul 29, 2013, 04:37 pm

...
In rete ci sono molti filmati che dimostrano quanto il segway può essere pericoloso se usato senza accendere il cervello :)


E' una questione di riflessi condizionati :P ... il nostro sistema di equilibrio non e' abituato a bilanciare il peso "automaticamente" su un piano con un'asse di rotazione, ed ancora meno se il piano si muove ed al baricentro del corpo applichi un vettore (e' per quello che hanno un'impugnatura :P XD) ... te ne rendi conto in modo molto semplice cercando di stare in equilibrio a piedi affiancati su un'asse posta su un manico di scopa (senza avere nulla a cui aggrapparsi, ovviamente XD) ... pochissime persone ci riescono ai primi tentativi :P ... eppure, quando siamo fermi in piedi su una superficie ferma, i muscoli delle nostre gambe compiono continui assestamenti di posizione senza che nemmeno ce ne accorgiamo, se non ci facciamo caso intenzionalmente (perche' i nostri riflessi "automatici" reagiscono ai minimi sbilanciamenti in modo automatico, dopo anni di "esperienza" nel camminare e nel mantenere la posizione)

Per i robot, comunque, il senso della mia domanda e' diverso ...  l'avere il baricentro il piu basso possibile potrebbe essere molto vantaggioso, anche solo sull'asse di rotazione, se non al di sotto ... e' vero che il periodo di un pendolo dipende dalla sua lunghezza, principalmente, ma l'energia necessaria a contrastarne l'oscillazione (e quindi anche la velocita' ed efficenza di risposta) dipende dal peso e dalla leva ... in fatto di forza da applicare non e' la stessa cosa, per i motori, dover bilanciare, ad esempio, un pendolo di un metro che ha un peso di un chilo all'estremita', ed un pendolo di un metro che ha all'estremita' una cinquantina di grammi ;)
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: Mosc on Jul 29, 2013, 06:48 pm


...
In rete ci sono molti filmati che dimostrano quanto il segway può essere pericoloso se usato senza accendere il cervello :)


E' una questione di riflessi condizionati :P ... il nostro sistema di equilibrio non e' abituato a bilanciare il peso "automaticamente" su un piano con un'asse di rotazione, ed ancora meno se il piano si muove ed al baricentro del corpo applichi un vettore (e' per quello che hanno un'impugnatura :P XD) ... te ne rendi conto in modo molto semplice cercando di stare in equilibrio a piedi affiancati su un'asse posta su un manico di scopa (senza avere nulla a cui aggrapparsi, ovviamente XD) ... pochissime persone ci riescono ai primi tentativi :P ... eppure, quando siamo fermi in piedi su una superficie ferma, i muscoli delle nostre gambe compiono continui assestamenti di posizione senza che nemmeno ce ne accorgiamo, se non ci facciamo caso intenzionalmente (perche' i nostri riflessi "automatici" reagiscono ai minimi sbilanciamenti in modo automatico, dopo anni di "esperienza" nel camminare e nel mantenere la posizione)

Per i robot, comunque, il senso della mia domanda e' diverso ...  l'avere il baricentro il piu basso possibile potrebbe essere molto vantaggioso, anche solo sull'asse di rotazione, se non al di sotto ... e' vero che il periodo di un pendolo dipende dalla sua lunghezza, principalmente, ma l'energia necessaria a contrastarne l'oscillazione (e quindi anche la velocita' ed efficenza di risposta) dipende dal peso e dalla leva ... in fatto di forza da applicare non e' la stessa cosa, per i motori, dover bilanciare, ad esempio, un pendolo di un metro che ha un peso di un chilo all'estremita', ed un pendolo di un metro che ha all'estremita' una cinquantina di grammi ;)

Hai ragione, sicuramente il baricentro sotto l'asse delle ruote aiuterebbe molto... Ma a quel punto non starebbe in piedi anche da spento?  :D

A parte gli scherzi, mantenere il baricentro sotto o sull'asse delle ruote migliorerebbe di molto la situazione, ma non saprei come fare..
Si dovrebbe ripensare tutta la struttura con questo obiettivo  :smiley-roll-sweat:
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: PaoloP on Jul 30, 2013, 11:28 am
Ad esempio come l'OpenWheels
(http://arduinoflashmob.elettronicain.it/wp-content/uploads/2012/06/OpenWheels.jpg)
Ha i motori e l'elettronica al di sotto dell'asse delle ruote.
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: RonzaGeI on Nov 05, 2014, 12:12 pm
Un saluto a tutti.

Mi dispiace fare cadere questo tread. Ve ne sono altri, ma in inglese. Almeno per me un po' pesantino.
Chi vuole starci?

La foto che hai postato sopra e' stata pubblicata da ElettronicaIn, un  progetto fatto esternamente al giornale.

Prima di questo progetto riuscii a fare funzionare un Cariolino in legno:

Club Elettronica Informatica Genova (http://www.prismawin.net/club/index.php/progetti/8-progetto-cariolino)


Forum correlati in inglese:
http://forum.arduino.cc/index.php?topic=228028.0 (http://forum.arduino.cc/index.php?topic=228028.0)
http://forum.arduino.cc/index.php?topic=204379.0 (http://forum.arduino.cc/index.php?topic=204379.0)

Diamoci una mano italiana!
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: antra95 on May 26, 2015, 10:43 am
Ciao, ci sono delle alternative per gli op. amp. mcp6044?
grazie
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: SistemaL on Mar 28, 2016, 09:38 pm
mi interessa anche a me .. però vorrei sapere che robot sono?

perché nella cartella linkata non mi fa entrare e ho chiedo l'autorizzazione da parte dell'autore.

sono luigi.

Avete informazioni per quando riguarda questi robot?

grazie mille.
Title: Re: AutoBalance: Self–Balancing of a two–wheeled robot
Post by: RonzaGeI on Jul 11, 2016, 09:38 am
Puoi contattarci direttamente. Sul sito linkato e funzionante trovi tutte le info. Ciao