Tracciamento della rotazione con precisione estremamente elevata


14

Vorrei tracciare la posizione angolare di un braccio rotante motorizzato abbastanza lento (azionamento diretto; vedere l'illustrazione seguente) - ma richiedono una precisione angolare inferiore a 0,05 ° e una risoluzione simile.

Come notato da @gbulmer nei commenti, ciò equivale a tracciare la punta del braccio in posizione lungo la circonferenza, con una precisione di (2 × π × 10 cm) / (360˚ / 0,05) = 0,08 mm.

disegno

Esiste un sensore o metodo elettronico attualmente realizzabile che può raggiungere questo livello di precisione nel rilevamento rotazionale senza spendere una fortuna?


Questo è quello che ho provato finora, dal più semplice all'intricato:

  • Bussola / magnetometro digitale: ho iniziato con questo; ma ovviamente in nessun posto vicino all'esibizione che sto cercando.

  • Codifica rotativa: codifica basata su potenziometro / basata su sensore ad effetto hall: impossibile ottenere una risoluzione sufficiente e si è verificato un errore di linearità significativo.

  • Visione artificiale: ho provato a posizionare un marcatore ottico sulla punta del braccio (poiché la punta traccia l'arco più lungo) e usando la fotocamera (OpenCV) per tracciare la posizione del marcatore: impossibile risolvere rotazioni molto piccole così bene, date le campate di rotazione del braccio un'area di 10x10 cm.

  • Encoder magnetico: sto attualmente esaminando l'uso di AS5048, un encoder rotativo magnetico di AMS, posizionato con il centro del sensore nella posizione dell'albero del motore. Qualcosa come questo:

inserisci qui la descrizione dell'immagine


1
Perché non considerare un codificatore ad albero (può anche essere magnetico)? Gli encoder in quadratura potrebbero avere una precisione piuttosto elevata. Prendi uno con 2000 linee. Post-quadratura sarà di 8000 impulsi per giro. 360/8000 = risoluzione di 0,045 gradi
Eugene Sh.

A proposito, il sistema è orientato?
Eugene Sh.

@EugeneSh: il sistema non è orientato. Guida diretta. Inoltre, per quanto ho visto, la preoccupazione degli encoder rotativi è che, sebbene la loro risoluzione sia elevata, la loro precisione è carente. L'errore per un encoder rotativo magnetico, ad esempio, può arrivare fino a 1 grado, in base a schede tecniche. Gli encoder ottici che hai visto significativamente meglio in questo senso?
sasha,

Solo per verificare ho capito, calcolo che si desidera conoscere la posizione della punta del braccio ad una risoluzione e la precisione di che è 0,008 cm, o 80µm. È corretto? Il motore è in grado di tale precisione? (2×π×10cm)/(360˚/0.05)
bagliore

3
Vuoi condividere il tuo vero problema qui? Forse la soluzione è molto più semplice e si trova su un piano diverso.
Eugene Sh.

Risposte:


12

Quello che stai facendo è possibile, ma non vedo come lo farai a buon mercato.

0,05 gradi (3 minuti di arco) implicano una risoluzione di 7200 conteggi / giro o l'equivalente di 13 bit (8192). Peggio ancora, dal momento che stai cercando di creare un loop di posizione, avrai bisogno di almeno un ulteriore bit di risoluzione o di un sistema a 14 bit. Il problema sta nel fatto che l'anello di posizione non è in grado di rilevare un errore inferiore a un bit, quindi se il braccio inizia a spostarsi, il sensore angolare non lo rileverà fino a quando l'uscita non è un bit. L'anello di posizione riporterà il braccio indietro nell'altro modo e smetterà di guidarlo quando l'errore scende a zero. Ma ciò consentirà al braccio di oscillare dall'altra parte fino a quando non ottiene un conteggio nella direzione opposta, ecc. Quindi, ad esempio, se si desidera che il braccio mantenga un conteggio del sensore di 100, il sistema potrebbe produrre 100, 101, 100 , 99, 100, ecc.

Suggerisco che un codificatore ottico sia la soluzione migliore, ma un codificatore a 14 bit (16.384 ppr) non sarà economico. Un'altra possibilità è un resolver o synchro, con un RDC o SDC (resolver / convertitore digitale o convertitore sincro / digitale) come seconda possibilità, ma ciò costerà ancora di più. I sincronizzatori / resolver presentano 2 inconvenienti. In primo luogo, sono stati generalmente sostituiti da encoder ottici, quindi ciò che troverai sul mercato sono principalmente unità surplus. In secondo luogo, l'accuratezza non è generalmente adeguata. I resolver di dimensione 23 sono generalmente classificati in circa 5-10 minuti di arco, quindi avrai bisogno di un'unità di alta precisione e buona fortuna nel trovarne uno.

Inductosyns ti darà una risoluzione e un'accuratezza eccezionali, ma costerà anche più di un codificatore ottico. In sostanza, è necessario un RDC ad alta velocità per leggere l'output.

La tua preoccupazione per l'accuratezza dell'encoder ottico si basa sulla carta di un produttore specifico, ma si tratta essenzialmente di un pezzo di paura. Le possibilità di errore sono le stesse per tutti i produttori e il produttore collegato non è in qualche modo migliore di altri produttori. In generale, per gli encoder di precisione, l'accuratezza è la stessa della risoluzione.

Mentre è possibile ottenere encoder ottici con uscite parallele, probabilmente stai meglio con un encoder incrementale e facendo rotolare il tuo contatore su / giù. Se segui questa strada, utilizzerai il segnale "home" per ripristinare il contatore di posizione ogni volta che accendi il sistema.


Grazie per una risposta equilibrata e realistica. Sembra che dovrei dare uno scatto alla codifica ottica / incrementale e se funziona, siamo a posto. Sarei anche curioso di sapere quali sono i tuoi pensieri sull'approccio che ho delineato nel mio ultimo paragrafo usando un encoder magnetico lineare insieme a un anello magnetico multipolare del tipo raccomandato nel foglio dati dell'encoder.
sasha,

@sasha - Penso che devi guardare molto attentamente il processo richiesto per produrre un anello magnetico. Dubito fortemente che sarai in grado di farcela da solo. Mentre la scheda tecnica suggerisce che si possono usare tolleranze piuttosto rilassate, sarei molto diffidente nei confronti di qualsiasi "qualcosa per niente". Inoltre, a meno che tu non abbia le strutture per verificare l'accuratezza a 3 min / 80 micron, penso che tu sia meglio lasciare che i professionisti affrontino possibili imprecisioni. Tieni presente il documento collegato.
WhatRoughBeast

Notato! Detto questo, avrei dovuto chiarire: avevo intenzione di utilizzare l'anello magnetico (multipolare) progettato in modo compatibile prescritto dagli stessi AMS nel foglio dati AS5311; questo è l'anello: ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128
sasha

@sasha - Va bene, ma il problema che ho è come montare l'anello esattamente concentrico con l'asse dell'albero. Qualsiasi eccentricità apparirà nell'angolo recuperato.
WhatRoughBeast,

4

Penso che ciò che OP suggerisce non sia affatto una cattiva idea. Quello che vuole usare è l'anello pronto: http://ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128 , ha 128 poli = 64 coppie di poli. La risoluzione è di 16 bit = 65536, max 305 rpm.
Se smontate un encoder ottico ad alta risoluzione, scoprirete che è quasi impossibile allineare il rivelatore senza strumenti speciali, infatti l'utilizzo di questo nuovo metodo rende tutto molto semplice.
Avresti bisogno di un tornio per adattarsi correttamente all'anello e quindi posizionare il sensore a distanza ravvicinata, non è necessario alcun allineamento speciale. Il sensore stesso viene fornito in versioni kit già saldate sulla scheda di breakout, ciò di cui avresti bisogno è un sensore di riferimento aggiuntivo: uno spazio con il fotorilevatore, quindi puoi fare riferimento all'encoder all'interno di una coppia di poli con una combinazione di uscita indice + sensore di riferimento ext.


Il "sensore di riferimento aggiuntivo" è solo per la posizione assoluta, giusto? (simile al finecorsa in caso di movimento stepper CNC). Puoi anche spiegare il tuo suggerimento per l'uso di un "tornio per adattarsi correttamente"? Vuoi dire, come un solco in cui l'anello può sedere? In tal caso, come si può garantire che la scanalatura sia nella posizione perfetta, quando il taglio CNC stesso potrebbe non essere così preciso?
sasha,

@sasha Un tornio per il montaggio dell'anello magnetico, l'est. sensore per rilevare il riferimento. Il sensore ext + impulso zero dall'encoder assicurerà che avrai sempre lo stesso riferimento assoluto, che nel tuo caso potrebbe non essere necessario. Ho fatto un innesto LIDAR con l'utilizzo di stepper a microstep e riduttori epicicloidali, senza feedback: l'unica posizione assoluta erano i finecorsa per impedire che si girassero e strappassero i cavi. Supponiamo che dovrai fare riferimento a un determinato oggetto, quindi eseguire movimenti relativi, in questo modo il LIDAR funziona, se così non hai bisogno di una posizione zero di riferimento.
Marko Buršič,

4

Dal momento che è una domanda di brainstorming e WhatRoughBeast ha già menzionato tutto ciò che prenderei in considerazione, perché non aggiungere le unità armoniche all'elenco? In teoria (non ho verificato con stime empiriche o primi calcoli), ti consente di ottenere un rapporto di trasmissione 20: 1 facilmente senza alcun gioco (100: 1 è comune), portando il numero di passaggi richiesti a 720 / giro . Potrebbe essere qualcosa che vale la pena dare un'occhiata. Le unità armoniche non sono economiche, ma sono generalmente molto più economiche dei sensori ad alta risoluzione, specialmente per questo rapporto di trasmissione.


3

Se è necessaria una risoluzione sull'albero di uscita corrispondente a 13 bit, è necessario disporre di ulteriori bit aggiuntivi, è necessario almeno 1 bit per il controllo ad anello chiuso. Il prossimo problema è che i produttori pubblicizzano la risoluzione ma non pubblicizzano l' accuratezza . È necessario chiedere costantemente l'accuratezza. Se l'errore è ripetibile, è possibile migliorare utilizzando la correzione software.

Un altro problema se hai bisogno di una soluzione per esterni pesante. Se sì, l'encoder magnetico è un'opzione. Ma l'encoder magnetico può avere un errore periodico ripetibile significativo, che è necessario eliminare nel processo di calibrazione utilizzando un altro encoder ottico esteso. Ma hai bisogno di una maschera che abbia una precisione ancora maggiore della larghezza.

L'interpolazione sin / cos (di ottica o magnetica) aumenta la risoluzione ma aggiunge anche qualche errore casuale.

Devi essere in grado di produrre con la precisione desiderata, la concentricità particolare. Inoltre, è necessario considerare la larghezza di banda come quando si aumenta la risoluzione, quindi un movimento più veloce può superare la larghezza di banda consentita (ad es. Frequenza di uscita in quadratura). Al contrario, il controllo al rallentatore è un'altra disciplina in cui è possibile trovare interessanti problemi inediti.

Se è necessaria la rotazione del braccio di controllo (non solo la posizione del binario), la risoluzione della trasmissione diretta e della coppia è problematica. Il doppio loop aiuta con il controllo ma richiede motore (encoder in caso di cambio o passi di conteggio in caso di stepper) e rilevamento della posizione dell'albero.

Anche l'encoder incrementale o assoluto è una decisione fondamentale.

Il consiglio generale è: se si desidera terminare il progetto, utilizzare componenti professionali costosi (ad es. Encoder ottici ATOM Renishaw). Se stai giocando per piacere e il tempo non è importante, puoi divertirti a reinventare i problemi (cul-de-sac), scoprire problemi ingovernabili, ecc. Controlla se riesci a fabbricare apparecchi con la precisione richiesta.


3

Sembra perfettamente adatto per un calibro digitale, normalmente utilizzato per misurare distanze precise, vedi:

Come funziona un calibro elettronico?

Sono simili agli encoder capacitivi (che hai già visto in http://www.digikey.com/en/articles/techzone/2012/apr/a-designers-guide-to-encoders ).

Probabilmente la parte elettronica di un calibro digitale lineare può essere riutilizzata, quindi è necessario creare solo un quarto di disco con lo schema corretto.

PS: la precisione ti consentirebbe persino di lavorare con uno lineare standard.


2

Ecco la mia nuova idea, eppure, un'altra storia del motore passo-passo :-)

inserisci qui la descrizione dell'immagine

Fare clic sull'immagine animata per vedere la piena risoluzione senza motivo. Qui usi il motore passo-passo come righello mobile. C'è un magnete sulla punta della mano principale. Le linee rosse mostrano la direzione prevista del flusso magnetico. Supponendo che il motore passo-passo sia come quello su Wikipedia. Ha 3,6 gradi di un passo completo. Per una parte presumibilmente lineare del campo, sono necessarie 3,6 / 0,05 = 72 combinazioni di 7 bit. Ciò significa che un ADC a 10 bit di un MCU ordinario farà molto bene il lavoro per un intervallo non lineare maggiore. Una volta eseguito il meccanismo, analizza il modello di approssimazione e scegli la porzione più lineare, con un po 'di mappatura software che lo linearizza e sceglie i bordi del righello per quella particolare configurazione.

I motori passo-passo non sono perfetti. Secondo Wikipedia possono presentare una variazione fino al 5% tra i denti. Per misurare l'errore, puoi estendere i bordi primari del righello con i bordi secondari, che devono solo seguire il modello di gradiente della precedente analisi del bordo adiacente.

Inoltre, dovresti guidare meglio il motore passo-passo con microstepping per evitare le accelerazioni +/- che possono influire sulle scale di impostazione, penso che almeno tu debba fare un mezzo passo.


È improbabile che i motori passo-passo siano migliori degli encoder e il microstepping è notoriamente non lineare.
Chris Stratton,

Il microstepping non serve per fare riferimento a nulla, non è necessario alcun stepping intermedio statico. È solo per evitare l'accelerazione. @ChrisStratton
Ayhan,

1

Trattare con la meccanica, inizia prima con la meccanica.

inserisci qui la descrizione dell'immagine

Ruotando l'ingranaggio grande (R2) per un angolo, l'ingranaggio piccolo (R1) ruota per un angolo R2 / R1 volte più grande.

Pertanto, se si tratta di una precisione dell'angolo molto estrema su un raggio dato (R), è possibile gestire una precisione dell'angolo n volte maggiore su un raggio n volte inferiore (cioè R / n).

Nel tuo caso, puoi installare un ingranaggio grande sull'asse del braccio e attaccare un ingranaggio più piccolo ad esso, quindi interfacciare un sensore più grosso con quello piccolo.

Molti altri metodi di trasmissione sono noti e utili, a partire dal wiki .


Introduce un gioco e la produzione precisa è un problema. In altre parole, aumenta sicuramente la precisione ma importante è la precisione.
TMa,

1

Dovresti creare un secondo meccanismo sul bordo della mano, per dividere i passi del centro con un meccanismo lineare come si trova nel sistema ottico del driver del cd-rom. In questo modo, potrebbe essere più semplice e sufficiente implementare l'intero sistema come anello aperto utilizzando anche un motore passo-passo al centro e guidarlo mediante micropasso per evitare magnitudini di accelerazione molto elevate.


1

Limitazioni fisiche nello spazio attorno al braccio mobile potrebbero escludere questa soluzione, ma eccoti qui: un altro approccio economico alla visione artificiale. La precisione può essere regolata modificando l'ingrandimento dell'obiettivo. un altro approccio di visione artificiale


0

Non so cosa consideri una fortuna, ma potresti prendere in considerazione http://www.inductosyn.com/


+ Stavo per pubblicare un post per considerare i resolver o gli RVDT
JonRB il

3
Questa è una risposta piuttosto debole, essenzialmente essendo solo un collegamento. Meglio se potessi spiegare un po 'a cosa stai collegando.
Tcrosley,

@tcrosley: In questo caso, invece di fornire un design completo e una descrizione esaustiva del circuito, (come di solito non è mio), ho scelto di fornire il collegamento perché allude a un dispositivo / sistema in grado di risolvere 360 ​​gradi in 7200 parti per grado di angolo e ha lasciato la maggior parte delle gambe e lo sforzo di progettazione all'OP. Perché questo mi rende un cattivo ragazzo?
EM Fields

2
@EMFields Il mio problema non era che non hai fornito il tuo design, invece non è una buona idea pubblicare qui un link come risposta perché potrebbe andare male a un certo punto - uno dovrebbe pubblicare sia un link che una sorta di testo di accompagnamento in modo che un lettore possa cercare un oggetto o una tecnologia simile anche se il collegamento non è più valido. Nel tuo caso hai pubblicato un link alla home page di un'azienda, che è meno probabile che vada male. Vedi "Fornisci contesto per i collegamenti" in questa pagina .
Tcrosley,

1
@tcrosley: apprezzo il tuo punto, ma solo il nome del marchio "Inductosyn" (che potrebbe essere vicino a un termine generico, ormai) dovrebbe mettere una domanda sincera sulla strada dell'illuminazione, indipendentemente dal fatto che il bersaglio del link sia vivo o morto. Google "Inductosyn" e vedrai che ci sono molte più informazioni là fuori di quanto mi piacerebbe passare una serata a fare il pappagallo.
EM Fields

0

Un'altra opzione molto interessante, se il tuo braccio va regolarmente in una posizione iniziale (di riposo), è quella di utilizzare un mouse ottico (da gioco) o, più specificamente, il suo sistema di rilevamento.

Montare il sensore sulla punta del braccio e fornire uno sfondo buono (a grana fine, non riflettente) su cui scivolare. Leggere i dati tramite un'interfaccia mouse USB standard.

Avrai bisogno di un semplice sensore per calibrare la posizione iniziale. Dovresti sperimentare per vedere se funziona abbastanza bene. Dovrebbe funzionare principalmente a prescindere dalla polvere ed è semplice da mantenere.


0

Forse puoi prendere in considerazione l'uso di un codificatore ottico lineare all'estremità del braccio di articolazione e utilizzare una codestrip flessibile come questa , che ha fino a 2000 linee per pollice. Se vuoi andare super economico, potresti usare un encoder lineare come questo , ma arriva solo a 150 linee per pollice, quindi una risoluzione di 40 micron (dal momento che è un encoder in quadratura). Se non sei sensibile ad alcun jitter nel sistema di azionamento, puoi usarlo direttamente. Altrimenti, è possibile estendere il braccio sotto l'applicazione e estendere ulteriormente il gocciolamento del codice. Potresti anche essere in grado di stampare il tuo codice personale se hai una stampante con un DPI di 1000 o più.

In bocca al lupo!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.