Focuser

Ruolo

Il modulo Focuser esegue la messa a fuoco automatica del telescopio. Sposta il focheggiatore motorizzato su un intervallo di posizioni, misura la dimensione delle stelle (HFR — Half Flux Radius) a ogni punto, poi calcola la posizione ottimale tramite un adattamento polinomiale di secondo grado. Con lo zoning attivato, produce anche una mappatura del tilt del sensore.

Interfaccia

L’interfaccia mostra in tempo reale la curva HFR in costruzione, l’avanzamento della sequenza e i risultati (HFR finale e posizione). I parametri sono accessibili tramite il pulsante Parametri in alto a destra.

Screenshot del modulo Focuser Screenshot del modulo Focuser

La curva HFR è tracciata con barre d’errore che rappresentano la deviazione standard delle misure a ogni posizione, e un adattamento polinomiale appare come linea tratteggiata arancione con l’avanzare delle acquisizioni.

Curva HFR con barre d’errore e adattamento polinomiale Curva HFR con barre d’errore e adattamento polinomiale

Dispositivi richiesti

DispositivoRuolo
CameraAcquisizione delle immagini per la misura HFR
Focheggiatore motorizzatoSpostamento della messa a fuoco
Ruota portafiltriOpzionale — utilizzata se configurata

Parametri

Questi parametri sono accessibili dal menu Parametri del modulo. Un set di parametri può essere salvato in un profilo.

Esposizione

ParametroDescrizione
EsposizioneDurata dell’esposizione in secondi
GuadagnoGuadagno della camera
OffsetOffset della camera

Focus

ParametroDescrizione
Posizione di partenzaPosizione assoluta del focheggiatore per iniziare la sequenza (ignorata se Intorno alla posizione attuale è attivato)
Intorno alla posizione attualeCentra automaticamente la sequenza intorno alla posizione corrente del focheggiatore: pos_attuale − (passo × iterazioni / 2)
PassoDifferenza in unità focheggiatore tra due misure consecutive
IterazioniNumero di punti di misura. Con 5 iterazioni e un passo di 2000, il focheggiatore esplora un intervallo di 8000 unità
BacklashOvershoot applicato prima di ogni spostamento per correggere il gioco meccanico. Il focheggiatore arretra di questo valore prima di avanzare verso il target
ZoningSuddivisione dell’immagine in zone (1×1 a 9×9). Vedi sezione dedicata più sotto

Algoritmo

La messa a fuoco si svolge in due fasi.

Fase 1 — Esplorazione

  1. Il focheggiatore si posiziona a posizione_partenza − backlash (per compensare il gioco meccanico)
  2. Avanza alla posizione_partenza
  3. Per ogni iterazione:
    • Reset del sotto-frame della camera
    • Acquisizione di un’immagine, calcolo dell’HFR e della sua deviazione standard
    • Registrazione della tripla (posizione, HFR, deviazione standard)
    • Aggiornamento dell’adattamento polinomiale in tempo reale
    • Avanzamento di un passo

L’adattamento polinomiale di secondo grado fornisce continuamente la posizione del minimo della curva HFR:

posizione_ottimale = −k1 / (2 × k2)    [per k0 + k1·x + k2·x²]

Fase 2 — Posizionamento finale

  1. Il focheggiatore arretra verso migliore_posizione − backlash
  2. Avanza alla posizione ottimale calcolata dal polinomio
  3. Viene acquisita un’immagine finale per misurare l’HFR risultante
Valore di ritorno

La posizione ottimale scelta è quella del fit polinomiale (bestposfit). Se il fit non è stato calcolabile (meno di 3 punti), viene usata la migliore posizione misurata direttamente (bestpos).

Curva HFR

La curva HFR è tracciata in tempo reale durante l’esplorazione e aggiornata a ogni punto di misura. Comprende due elementi sovrapposti:

  • Punti misurati (verde) con barre d’errore che rappresentano ±1 deviazione standard delle misure a ogni posizione
  • Curva polinomiale (tratteggio arancione) — adattamento di secondo grado aggiornato a ogni nuovo punto

L’asse X rappresenta la posizione assoluta del focheggiatore, l’asse Y l’HFR in pixel.

Barre d’errore

La deviazione standard mostrata corrisponde alla dispersione delle HFR individuali misurate per stella a una stessa posizione di messa a fuoco. Una barra d’errore ampia indica un seeing variabile o una turbolenza importante al momento dell’acquisizione.

Zoning

Lo zoning divide l’immagine in una griglia di N×N zone e calcola un adattamento polinomiale indipendente per ciascuna zona. Permette sia un’analisi fine delle variazioni HFR sul campo che una mappatura del tilt del sensore.

ValoreGrigliaUtilizzo
11×1Nessuno zoning — una sola misura globale
22×2Rilevamento basico del tilt (4 quadranti)
33×3Analisi corrente — centro + bordi + angoli
55×5Analisi fine
99×9Analisi molto fine — 81 zone

Per ogni zona, il modulo calcola tramite l’algoritmo di Welford (aggiornamento incrementale in un solo passaggio):

  • L’HFR media della zona
  • La deviazione standard HFR della zona — indicatore della qualità ottica locale

Mappatura del tilt del sensore

Quando lo zoning è attivato (≥ 2×2), il modulo genera automaticamente quattro immagini di mappatura al termine della sequenza. Ciascuna rappresenta la posizione di messa a fuoco ottimale di ogni zona, codificata a colori (blu = posizione bassa / piano vicino, rosso = posizione alta / piano lontano).

Esempi di mappature del tilt del sensore (4 immagini) Esempi di mappature del tilt del sensore (4 immagini)

Il rapporto larghezza/altezza delle immagini corrisponde a quello del sensore.

rawTilt — Tilt grezzo per zona

Ogni zona è rappresentata da un blocco di colore uniforme proporzionale alla posizione di miglior fuoco. Nessuna interpolazione — la risoluzione spaziale è quella della griglia di zoning.

rawTilt — blocchi di colore per zona rawTilt — blocchi di colore per zona

localTiltLinear — Interpolazione bilineare locale

Interpolazione bilineare tra i centri delle zone adiacenti. Produce una mappa fluida senza ipotesi sulla forma globale del piano focale.

globalTiltLinear — Piano globale (adattamento lineare GSL)

Adattamento di un piano ai minimi quadrati (libreria GSL) sull’insieme delle posizioni di zona. Ideale per quantificare un tilt puro: inclinazione del sensore rispetto all’asse ottico. Il residuo mostrato in ogni cella (in giallo) è la differenza tra la misura e il piano adattato.

globalTiltQuadratic — Superficie quadratica (adattamento GSL di secondo grado)

Adattamento di una superficie di secondo grado. Rileva i difetti non planari: curvatura di campo, flessione del sensore. La gamma di colori copre il minimo e il massimo reali della superficie (vertice incluso se si trova nei limiti del sensore).

Interpretazione
  • rawTilt / localTiltLinear: diagnostiche locali, utili per individuare una zona anomala dovuta a una stella difettosa.
  • globalTiltLinear: misura diretta del tilt. Se il gradiente è uniforme, inclinare il sensore nella direzione indicata basterà a correggere.
  • globalTiltQuadratic: se il residuo del piano globale è importante e la superficie quadratica è nettamente migliore, la curvatura di campo o una flessione meccanica ne sono la causa.

Valori mostrati in tempo reale

ValoreDescrizione
StatoStato corrente della sequenza (Idle / Running / Ok / Error)
AvanzamentoBarra di avanzamento globale della sequenza
HFRHFR misurata alla posizione finale
PosizionePosizione finale del focheggiatore

Risultato finale

Al termine della messa a fuoco, il modulo pubblica:

RisultatoDescrizione
Posizione finalePosizione assoluta del focheggiatore dopo il posizionamento
HFR finaleHFR misurata alla posizione ottimale

Questi valori sono anche pubblicati verso gli altri moduli (sequencer) tramite il sistema di eventi inter-modulo.

Azioni

AzioneDescrizione
Avvia la messa a fuocoAvvia la sequenza completa
AnnullaInterrompe immediatamente la sequenza in corso