Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Algoritmo di allineamento

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Algoritmo di allineamento

Messaggioda Foto UtenteArrow » 7 apr 2015, 1:00

Ciao a tutti,
ho un piccolo robottino che deve esplorare un labirinto e mi chiedevo come si potesse fare una cosa: mentre il suddetto robot gira per il labirinto deve costeggiare le pareti, ovvero andare dritto.
Ci abbiamo montato sopra diversi sensori di distanza, in particolare due nei lati e vorrei usarli per mandare dritto il robot.
L'algoritmo che avevo pensato è questo:
-leggi i due sensori
-fanne la differenza (delta)
-arcotangente dellla distanza tra i sensori e il delta (non mi ricordo il contrario)
-valore dell'angolo passato alla funzione per far ruotare il robot (non sul proprio asse)

come vi sembra come cosa?
Il prof ha citato algoritmi più complessi come quello dei minimi quadrati o filtro di kalmann ma non abbiamo tempo per implementare dato che la gara è giovedì :mrgreen:

Volevo giusto un'opinione dei grandi esperti di EY :D :D
Avatar utente
Foto UtenteArrow
103 1 6
Frequentatore
Frequentatore
 
Messaggi: 166
Iscritto il: 11 giu 2014, 22:12

0
voti

[2] Re: Algoritmo di allineamento

Messaggioda Foto Utentespud » 7 apr 2015, 1:25

Senza fare l'arcotangente che immagino sia pesantina da eseguire. Non potete far ruotare il robot fin che la differenza tra le due letture rientri in un range di tolleranza (per essere perfettamente allineato dovrebbe essere zero).

Il senso della rotazione lo decidete in base al segno della differenza tra le due letture.
Atlant.

Behind every great man is a woman rolling her eyes.
Avatar utente
Foto Utentespud
3.767 3 10 12
free expert
 
Messaggi: 1601
Iscritto il: 1 feb 2012, 14:26
Località: Udine

0
voti

[3] Re: Algoritmo di allineamento

Messaggioda Foto UtenteEcoTan » 7 apr 2015, 8:51

Anche perché i sensori di distanza a ultrasuoni (usate quelli?) non sono tanto direzionali, e la distanza fra i sensori non può essere grande, perciò la risposta sarà più qualitativa (cioè sul segno della differenza) che quantitativa e sempre che la parete sia piana.
Comunque, come cosa mi s e m b r a buonina.

P.S. Ovviamente se la distanza diventa troppo bassa, meglio allontanarsi indipendentemente dall'algoritmo..
Avatar utente
Foto UtenteEcoTan
7.720 4 12 13
Expert EY
Expert EY
 
Messaggi: 5423
Iscritto il: 29 gen 2014, 8:54

0
voti

[4] Re: Algoritmo di allineamento

Messaggioda Foto Utenteangel99 » 7 apr 2015, 9:40

Non è così semplice. Questo è un controllo, con tutti i problemi di stabilità connessi.

Serve un controllore, direi PI (proporzionale integrale). Più difficile a scriversi che a farsi, ma bisogna capire cosa si sta facendo.

Le soluzioni ad minchiam posso funzionare bene, ma più probabilmente faranno muovere il robot come un serpente a zig-zag, oppure nel caso di sfiga massima facendolo sbacchettare a destra e a sinistra senza fine.

Controlli è una bella materia da studiare. ;-)
Avatar utente
Foto Utenteangel99
3.516 1 5 11
Master
Master
 
Messaggi: 1148
Iscritto il: 23 gen 2015, 19:39

0
voti

[5] Re: Algoritmo di allineamento

Messaggioda Foto UtenteRussell » 7 apr 2015, 10:04

spud ha scritto:Non potete far ruotare il robot fin che la differenza tra le due letture rientri in un range di tolleranza (per essere perfettamente allineato dovrebbe essere zero).

Il senso della rotazione lo decidete in base al segno della differenza tra le due letture.


quoto!

e aggiungo che l'entità della sterzata potresti imporla di un valore proporzionale al valore del delta, in modo da non zig-zagare troppo
Avatar utente
Foto UtenteRussell
3.373 3 5 9
Master
Master
 
Messaggi: 2193
Iscritto il: 4 ott 2009, 10:25

0
voti

[6] Re: Algoritmo di allineamento

Messaggioda Foto UtenteEcoTan » 7 apr 2015, 10:06

Per quanto riguarda il controllo di direzione, probabilmente per renderlo stabile occorrerà aggiungere la solita derivata dell'errore.
Ma il solo controllo di direzione non basta in quanto il cumulo degli errori porterà presto o tardi ad allontanarsi troppo o a sbattere sulla parete, per cui occorre fondere la regolazione di direzione con una regolazione di distanza, tutto sommato più semplice e forse sufficiente.
Avatar utente
Foto UtenteEcoTan
7.720 4 12 13
Expert EY
Expert EY
 
Messaggi: 5423
Iscritto il: 29 gen 2014, 8:54

0
voti

[7] Re: Algoritmo di allineamento

Messaggioda Foto Utenteangel99 » 7 apr 2015, 10:18

Russell ha scritto:l'entità della sterzata potresti imporla di un valore proporzionale al valore del delta


EcoTan ha scritto:occorrerà aggiungere la solita derivata dell'errore.


Russell ha scritto:il cumulo degli errori porterà presto o tardi ad allontanarsi troppo


State reinventando l'acqua calda (descrivendo in modo un po' fantasioso i controllori PID).

A occhio la parte derivativa è superflua. Basta un controllore proporzionale-integrale.
Avatar utente
Foto Utenteangel99
3.516 1 5 11
Master
Master
 
Messaggi: 1148
Iscritto il: 23 gen 2015, 19:39

0
voti

[8] Re: Algoritmo di allineamento

Messaggioda Foto UtenteArrow » 7 apr 2015, 12:31

Per quanto riguarda l'arcotangente in micro ha una FPU integrata, quindi tutto ok da quel punto di vista. La rotazione è gestita da un pid e si ruota solo se l'angolo letto è maggiore di un angolo impostato

Si, anche io mi preoccupo che faccia zig zag ahahah
Avatar utente
Foto UtenteArrow
103 1 6
Frequentatore
Frequentatore
 
Messaggi: 166
Iscritto il: 11 giu 2014, 22:12

0
voti

[9] Re: Algoritmo di allineamento

Messaggioda Foto UtenteWALTERmwp » 7 apr 2015, 12:33

Arrow ha scritto:la gara è giovedì :mrgreen:
... allora "la vedo dura" ... (anche per i vostri avversari).
Come criteri di regolazione credo anch'io che un Proporzionale Integrale sia più che sufficiente; come gestione della movimentazione, invece, troverete qualche difficoltà in più.
Se si tratta di un labirinto, in quanto tale, è implicito il fatto che l'algoritmo a governo della movimentazione dovrà risolvere tutte le situazioni possibili, oltre a mantenersi magari equidistante in un tratto rettilineo.
Buon divertimento.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8986
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite