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
Daniels118





postato il:
26.05.2012, alle ore 09:48
multimetro:
@Daniels118: devo dire ceh non capisco che bisogno ci sia di sapere qual'è il trasmettitore più vicino, visto che l'iperbole è efinita come il luogo dei punti del piano la cui differenza di distanza dai fuochi è costante.
Magari dico pure vaccate, se è così=>

Considera la seguente immagine tratta da wikipedia:

I punti A e B sono due trasmettitori e quelle linee rappresentano le varie iperboli corrispondenti a diverse differenze di tempo misurate. Se il robot è più vicino alla stazione A riceverà il segnale di A per primo, se è più vicino alla stazione B riceverà per primo quello di B. Ma visto che il robot non conosce la sua posizione prima di calcolarla, come fa a dire se il primo segnale ricevuto sia quello di A o di B?
Come puoi vedere le iperboli sono simmetriche, se non hai queste informazioni è impossibile determinare se ti trovi sull'iperbole sinistra o su quella destra.
Un'alternativa sarebbe quella di utilizzare ancora una volta di utilizzare frequenze diverse per le due stazioni e di distinguerle con un filtro.
Ovviamente questa scelta spetta a te.



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!
double_wrap




una ogni 100 livelli
una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli


postato il:
26.05.2012, alle ore 12:48
Daniels118:
con il sistema gps ne bastano solo 2, perchè con quest'ultimo basta l'intersezione di due circonferenze per determinare la posizione


Con due soli trasmettitori GPS hai due circonferenze che si intersecano in DUE punti simmetrici che cadono nello spazio in cui si muove il robot.


vedi sorgente fidocadJ

Non puoi eliminare " a priori" uno dei due punti come si fa in astronomia nautica: in quel caso se uno dei punti è nel Mediterraneo l'altro spesso cade nell'Oceano Pacifico.

Anche il GPS "reale" ha bisogno di almeno TRE satelliti per un punto bidimensionale e di QUATTRO satelliti per il punto in tre dimensioni con anche l'altezza.

Resta il problema di sincronizzare il ricevitore per calcolare i tempi di volo, proprio come si fa nel GPS vero, ma questo dovrebbe essere risolvibile con una trasmissione radio.





"se peso cado, ma se cado non peso"
adamatj.altervista.org
Daniels118





postato il:
26.05.2012, alle ore 13:07
Scusa double_wrap, io mi riferivo sempre alla condizione in cui ti trovi in una stanza e poni i due trasmettitori in due angoli consecutivi:

In questo caso delle due soluzioni del sistema si può scartare quella con Y negativa.



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!
schottky





postato il:
26.05.2012, alle ore 13:19
Daniels118:
Scusa double_wrap, io mi riferivo sempre alla condizione in cui ti trovi in una stanza e poni i due trasmettitori in due angoli consecutivi:

In questo caso delle due soluzioni del sistema si può scartare quella con Y negativa.





Il vantaggio di essere intelligente e' che si puo' sempre fare l'imbecille, mentre il contrario e' del tutto impossibile. -- W. Allen
double_wrap




una ogni 100 livelli
una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli


postato il:
26.05.2012, alle ore 17:54
Avete perfettamente ragione!

Mi avete fatto venire in mente una certa idea che non c'entra nulla con il robot in questione, se va in porto vi metto nelle "citazioni" per lo spunto!





"se peso cado, ma se cado non peso"
adamatj.altervista.org
Daniels118





postato il:
26.05.2012, alle ore 18:03
Devi ringraziare Renzo91, l'idea di usare solo due trasmettitori è stata sua :)
Cosa vorresti realizzare?



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:
27.05.2012, alle ore 00:17
Grazie Daniels, ma te mi hai compreso perfettamente e l'hai spiegato agli altri, ed è anche merito di multimetro, senza vedere quel triangolo con le formuline non mi sarei mai interessato forse alla questione.

C'è un modo per ovviare alla sincronizzazione, così facendo:
immaginiamo che uno dei trasmettitori mandi n impulsi, adesso determinerò il minimo n per cui l'impulso risulterà sincronizzato.
Appena ricevuto il 1° impulso il ricevitore inizierà a contare, supponiamo che gli impulsi, SUPPONIAMOLI DA 10kHz, vengano ripetuti con una frequenza di 1000Hz, significa che in 1/100 di secondo il ricevitore può contare dai 10 agli 11 impulsi, bene.
Se conta 11 impulsi fine, è per straordinaria fortuna già sincronizzato.
Conterà quasi sicuramente 10, bene, allora lo facciamo azzerare e aumentiamo di 1/10000 di secondo il clock del ricevitore, a cui però a causa dei tempi trascorsi per evitare errori gli facciamo saltare un ciclo di conta o equivalentemente aumentiamo di 101/10000 di secondo il clock.
Bene, questo si ripeterà finchè non saranno contati 11 impulsi, il ciclo si ferma e il clock è sincronizzato. Da notare che il ciclo si ripete al max 9 volte il che implica che il clock al max sarà sincronizzato dopo 9*101/10000 + 9*10/1000 secondi, meno di 1/5 di secondo!
Dunque il minimo n in questo caso è 180.

I calcoli sono puramente indicativi, in effetti non so se è sufficiente 1/1000 di secondo di segnale a 10kHz per far avvertire l'impulso al ricevitore, ma non è un problema, male che vada si moltiplica tutto di un fattore k.
Da notare che il sistema è fortemente dipendente dai dati, se 1/1000 di secondo fosse troppo piccolo e ci volesse 10*1/1000, allora nel peggiore dei casi il segnale sarebbe sincronizzato dopo circa 10*1/5 = 2 secondi, ebbene, in quel lasso di tempo il robot avrebbe percorso anche 1 metro!

Tuttavia, invece di fargli contare 10-11 impulsi si potrebbe fare ad esempio 3-4 e si accorcia il tempo, se ho più dati forse posso valutare a quanto ammonta l'errore e qual'è la soluzione più conveniente.

In alternativa si può anche aumentare la frequenza di ripetizione di questi impulsi portandola a k*1000Hz (con 1<k<5 a causa del tempo minimale del componente di cui parlo qui sotto), il tempo totale dunque diminuirà di k volte.

Unendo queste ultime due osservazioni si potrebbe avere dunque un tempo totale di un ordine di grandezza in meno, ossia passare da 1/5 di secondo a 1/50! ***

Mi spiace, ci ho pensato parecchio, ma un altro modo per cavarsela con soli due trasmettitori e il metodo delle circonferenze non l'ho trovato.


Dimenticavo, anche il fatto del salto di un ciclo è indicativo, dipende dalla velocità nell'eseguire le operazioni da parte dei componenti, tuttavia se è irrisorio (almeno un ordine di grandezza inferiore a quelle su cui si sta lavorando) si guadagna circa metà tempo, quindi alla fine occorrerebbe 1/10 di secondo al max. (Per *** 1/100 dunque...)

In media occorrerà chiaramente invece di 9 solo 5 cicli, e quindi scendiamo a circa 1/20 secondo, tempo aspettabile piuttosto buono. (Per *** 1/200 dunque...)

Tuttavia, attenzione anche per un altro punto, non ho considerato l'intervallo minimale di tempo che serve al componente del ricevitore per "captare" l'impulso, se quest'ultimo ha una frequenza di 10kHz come d'esempio, direi che tale intervallo minimale è buono sia compreso tra 1/10000 e 2/10000 di secondo, non di più perchè sarebbe controproducente, non di meno perchè non riuscirebbe ad elaborarlo.

Spero che l'idea sia chiara e abbia un minimo di valore, purtroppo la applicabilità o meno dipende dalle caratteristiche dei componenti utilizzati, inoltre spero di non avervi annoiato col tema di sopra.



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





postato il:
27.05.2012, alle ore 11:31
Uhm... forse mi sbaglio, ma ho l'impressione che il metodo che hai proposto abbia come scopo quello di sincronizzare solo la FREQUENZA del clock del robot rispetto a quella dei trasmettitori. Purtroppo questo non è sufficiente, perchè il sistema gps richiede che anche la FASE sia perfettamente sincronizzata.
Considerando che nell'aria il suono ha una velocità di 360m/s, per avere una risoluzione di 1cm serve un clock a 36KHz (ogni incremento del contatore corrisponderà a 1cm). Se il robot si trova a 2m dal trasmettitore (la distanza che vuole coprire multimetro), il segnale impiegherà 0,0056s per raggiungere il robot; in questo intervallo di tempo il clock avrà incrementato il contatore di circa 200, producendo un errore di posizione di 2m, nonostante i clock continuino ad oscillare alla stessa frequenza. Questa situazione apparentemente paradossale è dovuta alla velocità non nulla del robot, che produce un effetto doppler, ovvero una temporanea variazione nella frequenza durante il movimento, che nel complesso è bilanciata, ma non è trascurabile su periodi brevi.



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!
Daniels118





postato il:
27.05.2012, alle ore 11:40
Considerando la distanza limitata si può anche utilizzare un led ad infrarossi al posto delle onde radio come reset del clock, in questo modo si assicura un riallineamento della fase ad ogni ciclo di misurazione.


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:
27.05.2012, alle ore 12:09
Può sincronizzare anche la fase, basta scegliere opportunamente la frequenza del segnale e l'aggiunta della frazione di secondo che il clock fa finchè non si sincronizza.
Vado di fretta, non ho capito bene i tuoi calcoli, ti rileggo più tardi, prova anche te a leggere di nuovo il mio post per fugare ogni dubbio ed essere sicuro che hai compreso, grazie.



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