Pages: [1] 2   Go Down
Author Topic: AutoBalance: Self–Balancing of a two–wheeled robot  (Read 3994 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-grin). Ora eccomi quì!  smiley

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:
  • Arduino
  • Due sensori di prossimità Sharp
  • Un Driver Motore
  • Un Amplificatore differenziale
  • Due Motori DC
  • Due Ruote
  • Uno Switch

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 smiley-grin
https://docs.google.com/file/d/0B6XepKMbmngocHdXNEZheTFRbGc/edit

Sono a vostra disposizione per qualsiasi dubbio o richiesta smiley-grin
« Last Edit: July 27, 2013, 03:34:19 pm by Mosc » Logged

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 112
Posts: 7112
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bel progetto.
Complimenti.  smiley-wink
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bel progetto.
Complimenti.  smiley-wink
Grazie!  smiley-grin
Logged

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2309
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley

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
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley

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
Logged

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5500
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Molto bravo! mi piace smiley
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

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

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.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-grin
Molto bravo! mi piace smiley
Grazie!  smiley

--

A breve carico un video  smiley-wink
« Last Edit: July 27, 2013, 02:38:15 pm by Mosc » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Aggiunto nel primo post un video dimostrativo del funzionamento dell' AutoBalance  smiley-grin

---

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  smiley-grin

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?
« Last Edit: July 27, 2013, 03:43:51 pm by Mosc » Logged

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

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.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

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

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.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-grin
Logged

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2309
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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à  smiley-evil
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  smiley-razz


Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 328
Posts: 22755
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ai complimenti per il progetto, aggiungo una domanda.
Finora ho visto tutti progetti di questi oggetti autobilancianti che stanno ... fermi!  smiley-wink
C'è qualcuno (di voi) che ha realizzato anche un oggetto semovente che si autobilancia? E che ha messo in opensource il progetto?
Logged


Pages: [1] 2   Go Up
Jump to: