Hartmann test (semplificato by Mirco)

Come accennato nell’articolo precedente (Hartmann test) in questo post descrivo il metodo che ultimamente ho cominciato ad utilizzare per testare le ottiche in fase di lavorazione e che si basa sul test di Hartmann.

Nella fase di parabolizzazione dello specchio, in particolare nell’ultima fase di affinamento della forma della superficie è necessario conoscere con precisione il profilo dell’errore per poter intervenire con efficacia.
Per ricostruire questo profilo solitamente si usa, almeno a livello amatoriale, il test di Foucault con maschera di Couder, che però nella mia personale esperienza non sono mai riuscito a sfruttare in maniera ottimale.
La difficoltà maggiore l’ho sempre riscontrata nel valutare quale fosse la posizione longitudinale precisa del carrello per cui la lama generasse la tinta piatta nelle due finestre simmetriche della maschera. In effetti difficilmente riuscivo a determinare questa posizione con un margine di incertezza tra misurazioni diverse entro 1-1,5 decimi di millimetro, forse penalizzato dalla distanza da cui dovevo valutare la tinta (circa 4 metri ovvero il raggio di curvatura dello specchio), abbinata alle modeste dimensioni delle finestre necessarie per avere un numero adeguato di punti di misura.
Una sensibilità nelle misure di 1-2 decimi di millimetro però non è sufficiente per poter definire con precisione il profilo della forma della superficie, soprattutto nella regione del bordo e soprattutto quando si cominciano a raggiungere alti valori di lambda.

Per tentare di migliorare la lettura delle misure ho sempre pensato che la soluzione migliore stesse nell’utilizzare un test che fosse il meno soggettivo possibile.
Tra i vari test che ho valutato quello di Hartmann nella versione classica mi ha dato l’ispirazione per tentare in questa direzione. Questo test prevede di posizionare una sorgente di luce puntiforme nel centro di curvatura e una maschera adeguatamente forata in prossimità dello specchio. La luce riflessa dallo specchio passando tra i fori della maschera ritorna verso il centro di curvatura sotto forma di piccoli fasci luminosi che se intercettati da una lastra fotografica o da un dispositivo di acquisizione digitale (privo della parte ottica) si manifestano come una serie di punti luminosi. Analizzando la posizione dei puntini luminosi si può riuscire ad determinare la forma della superficie dello specchio.
Esistono molte varianti di questo test ma quella che ho pensato di usare, perché ritenevo più semplice da implementare era quella a due foto, una presa in intrafocale ed una presa in extrafocale.

Per rendere l’idea del principio di funzionamento di questo test basti pensare ad una maschera da porre davanti allo specchio fatta come quella nella figura seguente, ovvero con un foro al centro e uno in una posizione marginale.

H5

Posizionandosi con il sensore della webcam in posizione intrafocale si otterrà un’immagine con il puntino della finestra marginale in una posizione più a destra rispetto al puntino della finestra centrale, mentre posizionandosi in extrafocale si otterrà un’immagine in cui il puntino della finestra marginale sarà in una posizione più a sinistra rispetto al puntino della finestra centrale.

H6

Evidentemente esiste una posizione nella quale i due puntini saranno esattamente sovrapposti e questa posizione indica il punto in cui l’asse del cono di luce di ritorno dalla finestra marginale interseca l’asse ottico dello specchio. Questa posizione la si può facilmente individuare matematicamente se si hanno a disposizione i seguenti dati:

H7

Quindi è necessario conoscere la distanza in mm o in px tra lo spot luminoso marginale e lo spot luminoso centrale nelle due foto (a1 ed a2) e la distanza longitudinale tra le due foto (ovvero la quantità d1+d2).
Si può pensare di ripetere questa operazione per una maschera a più fori per ognuno dei quali si calcola la posizione del raggio di curvatura e di conseguenza la differenza di tiraggio rispetto alla prima finestra partendo dal centro ottenendo gli stessi dati che si ottengono con il test di Foucault, ovvero i valori di tiraggio delle varie zone e la distanza media delle finestre dal centro della maschera.
Se si usa una maschera con i fori disposti su tutta la superficie si sarà in grado di analizzare in un unico colpo l’intero specchio. Questo test però e molto sensibile agli eventuali disallineamenti tra la sorgente di luce puntiforme e la posizione in cui si colloca il sensore fotografico, ed a meno di non essere in grado di creare un set-up del tester in modo che i due fasci siano pressoché coincidenti si noteranno sempre delle differenze tra i valori di tiraggio di due spot simmetrici rispetto al centro dello specchio (mentre dovrebbero risultare identici se lo specchio fosse perfettamente assialsimmetrico).

Un altro aspetto da considerare per migliorare la precisione delle misure è di scattare le foto da posizioni opportunamente lontane del centro di curvatura dello specchio (e comunque sempre al di fuori dei limiti della caustica), ma ciò implica la necessità di avere a disposizione delle fotocamere o delle webcam con le dimensioni del sensore molto grandi.

Tenendo conto di queste limitazioni ho deciso di eseguire il test con una maschera con i fori disposti solamente lungo un diametro dello specchio, o poco distanti da esso, come mostrato nelle due figure seguenti, in modo da poterli allineare con la dimensione maggiore del sensore della webcam:

H8

In questo modo, con i fori così disposti si può minimizzare l’effetto negativo introdotto dal leggero disallineamento tra i due fasci di andata e ritorno o del leggero tilt del sensore della fotocamera, andando a mediare i valori di tiraggio di due finestre simmetriche.
Poiché la webcam a mia disposizione aveva un sensore di dimensioni limitate ho dovuto prendere due immagini per ogni posizione per riuscire a coprire tutta l’area sottesa dagli spot luminosi (badando di includere sempre lo spot luminoso centrale nelle foto), muovendomi lateralmente con il carrello del tester, ottenendo in tutto 4 serie di immagini: intra-destra, intra-sinistra, extra-destra ed extra-sinistra.

H9

Una volta ottenute le immagini sarà dunque necessario determinare il centro di ogni spot luminoso e calcolarne la distanza di ognuno di essi rispetto allo spot centrale. Questa operazione può essere fatta manualmente valutando ad occhio il centro degli spot, cosa che rischia di introdurre una dose di soggettività al test che era mia intenzione evitare fin dall’inizio. Per questo motivo ho implementato un semplice codice in Visual Basic (perché non sono riuscito a trovare nessun software dedicato), che mi aiutasse in questo, il quale calcola il baricentro tra tutti pixel luminosi che compongono ogni singolo spot. In oltre per migliorare la qualità del risultato finale acquisisco almeno una trentina di immagini per ogni posizione, che il programmino provvede ad analizzare mediando tutti i singoli risultati.
Una volta analizzate tutte le immagini il software aprire in automatico un foglio Excel pre-elaborato in cui inserisce tutti i dati necessari per la determinazione del profilo della superficie dello specchio.

Anche se la procedura sembra laboriosa e lunga in realtà consente di effettuare il test e di ridurre tutti i dati in breve tempo, o in linea con i tempi necessari per eseguire un solo test di Foucault, con il vantaggio però di aver effettuato una misura che è già la media di ben 30 o più immagini diverse e risulta essere il meno soggettivo possibile.
In linea di massima, dopo aver allineato il tester con il fascio luminoso, montato la webcam e collegata al PC (cioè più o meno lo stesso tempo per settare il tester per il test di Foucault), servono un paio di minuti per acquisire tutte le foto necessarie e 4-5 minuti per ridurre tutti i dati.

Per fare un esempio pratico ecco alcuni esempi di foto che ho acquisito durante alcuni test:

Come accennato precedentemente a causa della ridotta dimensione del sensore a mia disposizione ho dovuto acquisire 2 immagini per ogni posizione per poter coprire tutti gli spot luminosi spostandomi lateralmente con il carrello del tester.

Intrafocale destra:
H10

Intrafocale sinistra:
H11

Extrafocale destra:
H12

Extrafocale sinistra:
H13

Se avessi avuto a disposizione un sensore più grande, avrei potuto acquisire direttamente due immagini come queste senza dover spostare lateralmente il sensore per riprendere tutti gli spot luminosi:

Intrafocale:
H14

Extrafocale:
H15

Ripeto qui di seguito il principio che sfrutta questo modo di analizzare la superficie dello specchio, utilizzando 2 immagini reali che forse potranno aiutare a capire ancora meglio di prima. La linea blu che collega i punti centrali delle due foto rappresenta l’asse ottico dello specchio, mentre le linee rosse e le linee verdi rappresentano invece quelli che sarebbero i percorsi di ogni spot luminoso andando dalla propria posizione in intrafocale alla rispettiva posizione in extrafocale. Come si può vedere le linee verdi si incrociano in un punto diverso dalle linee rosse e questo è dovuto al differente raggio di curvatura dello specchio sotto le differenti finestre della maschera.
Confrontando tra loro tutte le posizioni dei centri di curvatura, si riescono a calcolare i tiraggi di tutte le zone consentendo di ridurre i dati esattamente come si farebbe con il test di Foucault.

H16

Nel caso di un sensore ancora più grande avrei potuto acquisire delle immagini tipo queste che ricoprono l’intera superficie dello specchio, come previsto nel vero test di Hartmann.

A causa della ridotta dimensione del sensore a mia disposizione, ognuna di queste le ho potute ottenute solamente incollando assieme 4 immagini diverse. Anche con un sensore modesto è possibile intercettare tutti i punti luminosi, basta avvicinarsi al centro di curvatura dello specchio, dove i raggi tendono a convergere sempre più. Più ci si avvicina al punto di fuoco però, anche i punti luminosi si avvicinano gli uni agli altri cominciando a fondersi assieme impedendo di identificare bene dove finisce uno e dove inizia l’altro. Per questo è necessario allontanarsi adeguatamente dal centro di curvatura dello specchio in modo tale che i puntini siano più nitidi, isolati e lontani possibile.

H17

Nell’ultima sessione di parabolizzazione che ho effettuato ho sempre utilizzato questo metodo per testare lo specchio in lavorazione avendo modo di apprezzarne le qualità. In oltre ho potuto utilizzare una maschera a 12 finestre sul raggio, cosa impensabile da fare con il test di Foucault e maschera di Couder, che altrimenti genererebbe finestre troppo piccole in prossimità del bordo.

Una delle qualità che intendevo cercare e che ho avuto modo di riscontrare durante le varie sessioni di misura era la verifica della ripetibilità tra misure successive.
Ecco quindi alcuni esempi di questi test:

ESEMPIO 1:

Nelle figure seguenti riporto un passaggio di una lavorazione dove, dopo aver effettuato una misurazione del profilo dello specchio, ho deciso di intervenire per abbassare la zona centrale dello specchio andando a eseguire una breve sessione di lavoro con utensile sub-diametro con corse a W entro una circonferenza di 100 mm di raggio, per poi eseguire un’altra misurazione. Non essendo andato a lavorare nelle zone con raggio superiore ai 100 mm mi aspettavo che la forma della superficie in quelle zone non cambiasse, ed infatti è molto chiaro come lì ci sia una buonissima corrispondenza tra i valori prima e dopo la lavorazione.

H18

ESEMPIO 2:

Questi invece sono i valori di altri 2 test fatti a distanza di un giorno. E’ evidente la corrispondenza tra i valori delle due serie di dati che presentano uno scarto massimo minore di un decimo di millimetro e in media attorno a mezzo decimo di millimetro.

H19

In conclusione la fattibilità di questo test, almeno a livello amatoriale, è pesantemente influenzato dal riuscire a trovare dei software che consentano di ridurre i dati in maniera veloce, altrimenti i tempi per l’ottenimento dei risultati diventerebbero troppo lunghi e i conti abbastanza laboriosi da non renderne conveniente l’uso.
Per utilizzare questo test ho dovuto implementare un piccolo codice in Visual Basic in quanto in rete non sono riuscito a trovarne nessuno che facesse al caso mio (P.S: non avevo nessuna nozione di programmazione quando ho cominciato a pensare a questo tipo di test, ma con un vecchio libro di scuola e un po’ di tempo per lo studio sono riuscito a implementare qualcosa di utile).

Se qualcuno volesse cimentarsi con questo tipo di test e avesse bisogno di questo programmino per la riduzione dei dati può trovarlo al seguente link sotto forma di file compresso RAR. Oltre al programmino è presente anche un file word con le istruzioni per l’utilizzo :
Hartmann test by Mirco

Mentre sarebbe cosa ancora più gradita se qualcuno con capacità nella programmazione volesse cimentarsi nell’ elaborare un programmino (sicuramente migliore e più efficace del mio) che sarebbe unico nel suo genere non solo a livello nazionale.

Per completezza di informazione è possibile eseguire questo test anche tramite una sola immagine presa arbitrariamente o in intrafocale o in extrafocale.
Il principio comunque non cambia in quanto si può pensare alla maschera stessa (posta davanti allo specchio) come una delle due foto necessarie. In questo caso però, per la riduzione dei dati, è necessario conoscere con precisione la distanza tra il sensore e lo specchio e la dimensione in micron dei pixel del sensore per poter convertire in mm la distanza tra gli spot luminosi (visto che la distanza tra le finestre della maschera solitamente sono espresse in mm).

Il software per la riduzione dei dati per quest’ultimo tipo di set-up del tester si chiama Hart1d. Purtroppo il link che ero riuscito a trovare che rimanda alla pagina da cui può essere scaricato al momento non è più attivo, ma ricercando in rete lo si potrebbe trovare comunque. Nel caso il link tornasse attivo provvederò a postarlo nuovamente nell’articolo.

Comments (9)

  1. LonRobie

    Hi all,
    I’m a new member from the Sacramento area of California, USA, an avid mirror maker, ATM’er, and extremely interested in this easy form of the classic Hartmann test. At present, I’m using a precise mirror mask to replace the inner first photo, a point light source, and a single DSLR camera image taken outside the ROC for the second photo. Measuring the point light source pixel separation on the photo is easily accomplished using Photoshop, ImageJ, or any one of the many pixel measuring software packages available. They automatically determine each light point’s center of mass. I’m developing an Excel worksheet that calculates and graphs Miles Lacroix data similar to Foculat but in four graphs around the mirror that includes independent left and right side data. This will give me a read on the entire mirror’s surface that far outperforms a one-sided single axis test like Foucault, not to mention far greater accuracy. It’s amazing how much we miss with an averaged single axis test!

    I would like to discuss applying the above formula d1=(a1*(d1+d2))/a1+a2). I have a difficult time explaining d1 in the formula part (d1+d2), since the answer we are looking for is the actual focal point value of d1? I concluded they are different values, my poor math skills are showing here. For the d1 in (d1+d2), I used the physically measured ROC value taken from the mirror’s center, sagitta and parallax adjusted for each mask zone, and it seems to work perfectly.

    This simplified Hartmann test shows great promise as an extremely accurate, simple and quick to use, ATM test that can be applied at any stage of mirror making! It would be great fun to discuss this test further!

    Lonnie Robinson

  2. arpafab

    arpafab

    ciao Mirco,
    vorrei tornare su questo tuo post sul test di Hartmann che vorrei decisamente provare.
    Da quel che ho capito (mi sto leggendo anche il Danjon et Couder sull’argomento) il sistema è potenzialmente in grado di dare letture più ripetibili e più puntuali del buon Foucault che fa soffrire sulle zone più piccole, al bordo.
    Oltre a chiederti se puoi ripristinare il link al tuo software (a me non sembra funzionare al momento), volevo capire come ci si attrezza per riprendere le due immagini intra ed extra focale: da quel che capisco è essenziale una misura molto precisa della distanza tra i due punti di ripresa (d1+d2). Con che precisione riesci a stimare la posizione dei fasci luminosi?

    Grazie!!

    Fabio

    • BARTolomei Mirco

      Ciao Fabio :bye:
      scusa il ritardo nella risposta.
      Il SW che mi ero scritto per la riduzione dei dati del test non ce l’ho più neanch’io. Come scrivevo nell’articolo, l’avevo fatto tempo fa ancora in Visual Basic e tra cambi di PC eccetera, non lo trovo più.
      Mi piacerebbe provare a svilupparne un altro con qualche linguaggio di programmazione più moderno, ma non so quasi nulla di programmazione quindi boh vedremo. Alcuni anni fa avevo trovato in rete due software molto validi per eseguire il test di Hartmann, mi pare si chiamassero Hardt 1D e Hart2D, se riesci a rintracciarli secondo me potrebbero fare al caso tuo.

      Ad ogni modo per rispondere alle tue domande:
      Si è necessario conoscere adeguatamente la distanza tra le due posizione in cui si sono acquisite le immagini. Questo non è un grossissimo problema se si dispone di una piattaforma scorrevole. La posizione rispetto a un qualsiasi punto di battuta, di ogni foto la puoi prendere con un calibro digitale, un comparatore ecc, quindi basta fare la differenza tra le due misure, e ottieni il valore della distanza con buona precisione.
      Serve ancora più precisione nello stabilire il centroide di ogni dischetto luminoso, per questo lo facevo fare al PC (mediando tra l’altro decine di immagini) e non lo facevo manualmente.
      Se hai altre domande chiedi pure,
      Ciao Fabio, a presto :good:

  3. Alberto Bugoloni

    Ciao Mirco
    valutando altri test oltre ai consueti, mi sono imbattuto anche nei tuoi post.
    A ma piace parecchio sviluppare codice. Se ritieni, possiamo unire gli sforzi e vedere se si riesce a implementare qualche soluzione decente. Probabilmente prima sviluppando per pc poi eventualmente per smart device, così da poter sfruttare i sensori e la telecamera.
    Fammi sapere se pensi la proposta ti possa piacere, anche perchè in realtà pure io ho in mente qualcosa ma non ho ancora avuto il tempo di rifletterci bene

    A

    • BARTolomei Mirco

      Ciao Alberto,
      scusa il ritardo ma in questo periodo sono stato un po’ impegnato.
      Assolutamente si, si potrebbe provare a sviluppare un piccolo codice, magari ne esce qualcosa di carino!
      Eseguire il test di hartmann con un cellulare purtroppo non è possibile in quanto bisogna acquisire le immagini con una webcam o camera ecc direttamente con il sensore esposto, ovvero privo delle lenti davanti. Ad ogni modo un piccolo software per PC che aiuti nella riduzione dei dati sarebbe davvero bello!
      Per iniziare, sarebbe carino vedere se si riesce ad automatizzare anche solo il procedimento che è indicato nell’articolo. Ovvero far determinare al software il centro di ogni spot luminoso e salvare le coordinate dei centri in un array. Poi tutti i calcoli successivi si faranno partendo da questi dati.
      Che ne dici è fattibile? In che linguaggio programmi solitamente?
      Ciao
      Mirco

  4. BARTolomei Mirco

    Ah alberto,
    ovviamente prima di iniziare, è bene dare un’occhiata a questa pagina:
    http://yubagold.com/
    come suggerito da LonRobie qualche commento fa.
    Non ho mai approfondito molto e dovrei studiare un po’, perchè non vorrei che ci mettessimo a re-inventare qualcosa che già esiste :mail:
    a presto
    Mirco

    • Alberto Bugoloni

      Ciao Mirco
      in generale sviluppo in ambiente .net, ma me la cavicchio anche con altro. Credo che questo non sia un problema….Anche il problema di determinare il centro degli spot luminosi mi pare risolvibile. Se esiste già quello che intendi sviluppare, implementato come lo intendi tu, questo non lo so.
      Per essere chiaro, io mi sono interessato alla costruzione di telescopi l’anno scorso. Ho a disposizione un po’ di tempo che mi piacerebbe trascorrere in officina a grattare vetro ma purtroppo non ho sempre a disposizione l’officina, quindi posso dedicare parte di quel tempo liberto nel seguire, eventualmente, il tuo di progetto, visto che comunque pure io alla fine mi troverò nella situazione, se riesco a proseguire con il mio di specchio, di dover far misure quantitative…
      Facciamo così: per non spammare il post di nostri messaggi, vediamo di scambiarci gli indirizzi mail se sei d’accordo, così cominciamo a pensare ad un “prototipo” dell’applicazione, in maniera da dotarla fin da subito di una veste grafica intuitiva e di tutte le funzionalità che serviranno per ottenere il risultato che tu già hai sperimentato.
      Resto in attesta
      A

Leave a comment