home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Robotica, CNC, 3D
Finalmente un posto dove poter discutere di robotica di CNC e stampanti 3D, scambiarsi idee, progetti ed opinioni. Partecipa anche tu...


rilevare la posizione di un robot
     
Autore Messaggio opzioni
Renzo91





postato il:
30.05.2012, alle ore 14:45
multimetro:
Quello che non capisco è come e perchè sparisce una delle due iperboli che sono originate, per esempio, da Tm-Tx.

Perchè Tm-Tx>0



Semplice ed elegante, come sempre la soluzione è sotto gli occhi di chi sa vederla.
multimetro





postato il:
30.05.2012, alle ore 15:05
Vediamo se ho capito:
Introducendo un ritardo fisso tra l'emissione del master e quella dello slave, che chiamiamo t, abbiamo: Tm-Tx+t=K
Da cui: Tm-Tx=K-t
E'in virtù di questo ritardo che, anche se il robot è più vicino al master, risulta sempre Tm-Tx>0?
Prima mi sono dimenticato di una cosa: i tre emettitori li metto sull'asse x e sull'asse y per quanto riguarda gli slave e all'origine degli assi per quanto riguarda il master, perciò devo usare le iperboli traslate.



W l'ambiente.
sito internet:
http://scientificamente.weebly.com
Renzo91





postato il:
30.05.2012, alle ore 15:40
Non ti sono chiare alcune cose, probabilmente non hai letto e compreso a fondo le mie equazioni, correggo alcune affermazioni prima che viene daniels a chiarire :-)

multimetro:

Introducendo un ritardo fisso tra l'emissione del master e quella dello slave, che chiamiamo R, abbiamo: Tm-(Tx+R)=K -> Tm-Tx=K+R

usiamo la stessa notazione per evitare confusioni e complicazioni
E'in virtù di questo ritardo che, anche se il robot è più vicino al master, risulta sempre Tm-Tx>0?

Il ritardo va scelto opportunamente per far sì che sia sempre vera la disuguaglianza scritta, ho trattato ampiamente questo punto nei miei precedenti post, ti invito a rileggere lentamente tutta la pagina precedente.
Prima mi sono dimenticato di una cosa: i tre emettitori li metto sull'asse x e sull'asse y per quanto riguarda gli slave e all'origine degli assi per quanto riguarda il master, perciò devo usare le iperboli traslate.

Ho introdotto l'angolo @ per migliorare il sistema e ottenere valori molto più accurati, sotto questo punto di vista è molto sensibile, altrimenti assicurati che ci sia un perfetto angolo retto e poni a 0 @ -> f*tan@=0 nell'equazione.
Le mie equazioni rappresentano in modo perfetto il sistema, le iperboli sono ovviamente già traslate delle quantità corrette.
Ripassati le iperboli qui e su wikipedia per comprendere, non c'è altro modo:
http://www.scuoleinrete.net/ScuoleInRete/toniolo_bz/mediatec…




Semplice ed elegante, come sempre la soluzione è sotto gli occhi di chi sa vederla.
Daniels118





postato il:
30.05.2012, alle ore 16:36
Completo le affermazioni di Renzo, aggiungendo che è possibile inviare un singolo segnale dal master ed utilizzare due ritardi diversi per gli slave, in formule:
intervallo1 = tempoSlave1 - tempoMaster - ritardoSlave1
intervallo2 = tempoSlave2 - tempoMaster - ritardoSlave2
con
ritardoSlave1 >= durataSegnale + tempoDispersione
ritardoSlave2 >= ritardoSlave1 + durataSegnale + tempoDispersione
periodoMaster >= ritardoSlave2 + durataSegnale + tempoDispersione
Per semplificare i calcoli è consigliabile che tutti i segnali vengano inviati ad intervalli uguali.

In relazione al problema proposto, supponendo un segnale di durata 10ms (a 40KHz sono 400 oscillazioni), una stanza quadrata di lato 2m (distanza maggiore sulla diagonale = 2,82m), una velocità di propagazione di 320m/s e facendo qualche arrotondamento come margine:
tempoDispersione = spazio/velocità = 3m/300m/s = 0,01s
intervalloSegnali = durataSegnale+tempoDispersione = 0,01s+0,01s = 0,02s
durataMisurazione = intervalloSegnali * numeroSegnali = 0,02s*3 = 0,06s
da cui
frequenzaAggiornamento = 1/durataMisurazione = 1/0,06s = 16Hz
meglio di un vero gps (tipicamente sono a 10Hz).



http://daniels118.altervista.org/

Il principio di funzionamento è controllato da un microprocessore... mi fido di più quando il principio di funzionamento è controllato da chi ha progettato l'apparecchio!
multimetro





postato il:
30.05.2012, alle ore 16:54
Dopo un rapido ripasso dell'iperbole (peraltro studiata l'anno scorso), faccio un piccolo riordino di idee:
-il segnale emesso dai trasmettitori dura 10ms.
-il tempo impiegato a coprire una distanza di 3m, quindi il tempo di dispersione è di 0,009s, approssimiamo a 0,01s.
-pensavo di far emettere un "ciclo" di segnali ogni 30s in modo tale da consentire al sensore di distanza di ricercare gli ostacoli (quaeto non influisce sul funzionamento del sistema perchè il robot legge la sua posizione solo quando è fermo).
-pensavo di affidare il controllo dei trasmettitori ad un PIC in modo da gestire comodamente tutte le temporizzazioni.

Detto questo:
-ritardoSlave1= tempo di dispersione= 100ms
-ritardoSlave2= 100ms+100ms= 200ms
-periodo master= 1/30= 0,03Hz



W l'ambiente.
sito internet:
http://scientificamente.weebly.com
Daniels118





postato il:
30.05.2012, alle ore 17:02
Beh, se non ti crea problemi avere una frequenza di misurazione così bassa i tempi sono più che abbondanti.


http://daniels118.altervista.org/

Il principio di funzionamento è controllato da un microprocessore... mi fido di più quando il principio di funzionamento è controllato da chi ha progettato l'apparecchio!
Renzo91





postato il:
30.05.2012, alle ore 17:09
Ok Daniels, ma non concordi con questa mia affermazione? (in particolare la scritta in maiuscolo)
occorre che venga inserito un opportuno ritardo tra il tempo di trasmissione di M e quelli di X e Y che AMBEDUE (i ritardi) POSSONO ESSERE ANCHE UGUALI dato che NON viene calcolato Tx-Ty. Io lo sceglierei secondo questo criterio: il minimo ritardo tra tutti quelli possibili tale che in qualunque posizione si trovi il robot venga colpito prima dal segnale di M.


Mi sono accorto di un problema di logica che ha causato la non comprensione di multimetro.
Dovevo distinguere tra 1° impulso ricevuto e 2° impulso ricevuto, evidenziando che il 1° doveva essere sempre quello del Master dunque Tm, per questo occorreva il ritardo.
Di conseguenza Tm-(Tx+R) ha sempre valori negativi e in particolare R deve essere maggiore di Tm-Tx (uno implica l'altro infatti).
Per trovare il R minimo basta fissare simultaneamente il Tx minimo e il Tm massimo e porre R=Tm(max)-Tx(min).
Fare lo stesso con Ty nel caso la stanza non fosse quadrata e Y si trovasse a distanza maggiore da M rispetto a X, e poi prendere il massimo tra i due ritardi trovati come il Ritardo da implementare per entrambi gli slave (per la spiegazione nella citazione).
Adesso non dovrebbero esserci più dubbi.

OT: onestamente vi sembro difficile/complicato nell'esposizione o poco chiaro?? Giudicate così miglioro, grazie! Tendo ad essere sempre più prolisso del necessario ma spesso noto che non vengo letto o capito per intero...



Semplice ed elegante, come sempre la soluzione è sotto gli occhi di chi sa vederla.
multimetro





postato il:
30.05.2012, alle ore 17:22
OK, dovrei aver capito, adesso faccio i calcoli e poi vi dico cosa viene fuori; per adesso eccovi un disegnino schifido di come ho pensato i gestire l'invio dei segnali:




W l'ambiente.
sito internet:
http://scientificamente.weebly.com
multimetro





postato il:
30.05.2012, alle ore 17:32
@Renzo91: non preoccuparti, tu sei chierissimo, sono io che a volte ci metto un po' per capire le cose.

Dai calcoli viene fuori:
-distanza massima dal master: 3m => Tm(max)=3/332= 90ms
-distanza minima da uno qualsiasi dei trasmettitori: 10cm => Tx(min)=0,1/332= 0,3ms
-tempo R minimo=> 90-0,3= 89,7ms

Quindi direi che il ritardo di emissione di 100ms va più che bene.



W l'ambiente.
sito internet:
http://scientificamente.weebly.com
Renzo91





postato il:
30.05.2012, alle ore 18:10
Renzo91:
Ok Daniels, ma non concordi con questa mia affermazione? (in particolare la scritta in maiuscolo)


Come non detto, scusate, non avevo considerato che in tal modo il robot non saprebbe determinare chi è X e chi è Y, quindi dimenticate tale asserzione.

Bene multimetro, ci siamo.
Posso capirti, io stesso non ci ho ragionato in due minuti superficialmente, le equazioni così scritte son state ben pensate.
Quando le implementerai come codice nel microcontrollore sii molto scrupoloso, devi essere convinto di capire e aver chiaro ogni passaggio, per essere certo che arrivi a un sicuro risultato. Avere delle basi teoriche solide implica il 90% del successo!



Semplice ed elegante, come sempre la soluzione è sotto gli occhi di chi sa vederla.
segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale