Augmented Reality

Realtà aumentata

La Realtà Aumentata (AR) consente di sovrapporre elementi di una stazione RoboDK a un video di ingresso o a un feed video dal vivo.

Questa funzione è disponibile in RoboDK abilitando l'Add-in per l'elaborazione delle immagini.

Le funzioni dell'Image Processing Editor possono essere attivate navigando su StrumentiàAdd-In Manager e attivando Image Processing Editor.

Augmented Reality - Figura 1

Con l'Editor di elaborazione immagini Add-in abilitato, la stazione deve ora essere preparata per la Realtà Aumentata. I passi da compiere per creare un rendering AR di successo possono essere riassunti in 3 sezioni:

1.Selezionare e creare un marcatore fiduciale. Importare il marcatore in RoboDK.

2.Crei una telecamera simulata in RoboDK.

3.Creare una pipeline di rilevamento.

Selezionare e creare un marcatore fiduciale

L'add-in di realtà aumentata richiede l'uso di marcatori per stimare la posa e la traiettoria della telecamera.

RoboDK supporta 4 tipi di marcatori OpenCV: Aruco, Chessboard, Charuco Diamond e Charucoboard rispettivamente, come mostrato nelle immagini seguenti:

Augmented Reality - Figura 2Augmented Reality - Figura 3Augmented Reality - Figura 4Augmented Reality - Figura 5

Ci sono molti fattori da considerare quando si seleziona un marcatore. Le dimensioni della stazione, la risoluzione della telecamera, il framerate, il movimento, l'illuminazione e l'occlusione sono importanti da considerare. Ad esempio, una stazione di grandi dimensioni con una telecamera fissa, non occlusa, trarrà grandi vantaggi dall'uso di un marcatore Aruco, in quanto l'ID del singolo marcatore può essere rilevato da molto più lontano rispetto ai 4 o più ID di un marcatore Charuco Diamond o Charucoboard della stessa dimensione, e la mancanza di sfocatura del movimento e di occlusione può garantire che il marcatore venga rilevato in ogni momento. Se il marcatore è occasionalmente parzialmente occluso, si dovrebbe selezionare Charucoboard, in quanto non ha bisogno di tutti gli ID rilevati per determinare la posizione della telecamera. Di seguito è riportata una tabella che aiuta nella selezione dei tipi di marcatore:

Aruco

Diamante Charuco

Carlucoboard

Scacchiera

 

Pro

- Impostazione più semplice

- Tempo di rendering più veloce

- L'opzione più equilibrata

(Precisione/Tempo di rendering)

- Resistente all'occlusione parziale

- La più accurata

- Calibrazione della fotocamera

 

Contro

 

(I marcatori devono rimanere sempre nella visuale della telecamera).

 

- Perde il tracciamento quando è occluso

- La posa meno accurata

- Perde il tracciamento quando è occluso

- Più difficile da configurare

- Tempi di rendering lunghi

- Non va bene con Live AR

- Più difficile da rilevare

- Non può essere occluso

 

 

 

Applicazioni suggerite

- FPS elevati / AR live a bassa risoluzione

- Video lunghi

- Video senza ostacoli

- Telecamera fissa

- Stazioni grandi

- Migliore tracciamento per Live AR

- Video ad alta risoluzione

- Movimento lento della telecamera

- Il video contiene un'occlusione parziale del marcatore

- Video con elevati requisiti di precisione della posa.

- Calibrazione della fotocamera

(La scacchiera può essere utilizzata per generare file di calibrazione della telecamera personalizzati, se la calibrazione generica non è sufficiente).

Una volta selezionato il marcatore appropriato, è possibile personalizzare l'ID del marcatore, le dimensioni, il layout della scacchiera e le dimensioni del quadrato

Il marcatore deve poi essere salvato e stampato. La funzione "Salva con nome..." può essere utilizzata per salvare un PNG del marcatore sul suo computer, che potrà poi essere facilmente importato in RoboDK. Per stampare il marcatore, si può utilizzare l'opzione "Copia negli appunti" per importare rapidamente l'immagine in un editor di testo/immagine come Word o GIMP, per poi ridimensionarla e stamparla.

Importa il marcatore

Deve importare il marcatore in RoboDK per indicare la posizione del marcatore rispetto al robot e agli altri oggetti.

Segua questi passaggi per posizionare correttamente il marcatore:

1.Nella sua stazione RoboDK, crei un nuovo piano di riferimento.

2.Clicchi con il tasto destro del mouse sul nuovo piano di riferimento e selezioni "Aggiungi elemento...".

3.Trovi e selezioni il marcatore PNG creato con il Generatore di marcatori fiduciali.

4.Regola la scala del marcatore virtuale in modo che corrisponda alle dimensioni del marcatore reale:

Esempio: il marcatore Charuco Diamond ha dimensioni predefinite di 106,186 mm x 106,186 mm: Il marcatore Charuco Diamond ha dimensioni predefinite di 106,186 mm x 106,186 mm. Se le dimensioni del marcatore stampato sono 280 mm x 280 mm, è necessario applicare un fattore di scala di 2,63688 → ( 280 / 106,186 ). Questo può essere fatto facendo doppio clic sull'oggetto marcatore, selezionando Altre opzioni à Applica scala.

5.Allinea il centro del marcatore all'origine del piano di riferimento, con l'asse Y che punta all'ID superiore.

Esempio: per spostare il marcatore: Per spostare il marcatore, faccia doppio clic sull'oggetto marcatore e modifichi la posizione dell'oggetto rispetto alla cornice del marcatore. Per il nostro esempio, il marcatore doveva essere spostato di 140 mm su X, 140 mm su Y e ruotato di 180° sull'asse Z. Veda l'immagine qui sotto per un esempio della posizione corretta.

Augmented Reality - Figura 6

6.Posizionare la cornice del marcatore nella stazione per allineare gli oggetti della stazione rispetto al marcatore.

Impostare la telecamera simulata

Per sovrapporre accuratamente gli asset della stazione al feed video, è necessario creare una telecamera simulata. Questa telecamera simulata utilizza la posa e la traiettoria della telecamera calcolata con i marcatori fiduciali per registrare la stazione RoboDK dalla stessa angolazione, distanza e traiettoria del feed video di ingresso.

La risoluzione di questa telecamera simulata deve corrispondere al video di ingresso, affinché la scalatura del marcatore sia accurata. I passaggi per aggiungere una telecamera virtuale alla stazione sono illustrati di seguito:

1.Aggiunga una telecamera alla sua stazione selezionando Editor di elaborazione immagini à Aggiungi una telecamera RoboDK nella barra degli strumenti.

2.Clicchi con il tasto destro del mouse sulla telecamera o sul feed della telecamera e selezioni "Impostazioni della telecamera".

3.Regoli le impostazioni della telecamera virtuale in modo che corrispondano alla risoluzione del feed video in ingresso.

4.Allinea il piano di riferimento in modo che la telecamera simulata possa vedere il marcatore Aruco virtuale.

Augmented Reality - Figura 7

Per ottenere risultati ottimali, il video di ingresso fisico deve essere registrato tenendo conto delle seguenti considerazioni:

1.Posizionare il marcatore su una superficie piana in un ambiente ben illuminato. Per ottenere risultati ottimali, consideri le dimensioni e la distanza degli oggetti nella stazione virtuale rispetto al marker e all'ambiente di registrazione.

2.Impostazioni della telecamera coerenti (le telecamere reali e simulate devono avere impostazioni di risoluzione corrispondenti).

3.Documenti d'identità Aruco leggibili (la telecamera deve mantenere leggibili i documenti d'identità. Cose da evitare: Riprese veloci/sfocate, bassa risoluzione della telecamera, elevata distanza del marcatore dalla telecamera).

4.Si assicuri che il video sia in formato .mp4 o .avi

Crea un file di calibrazione della telecamera personalizzato

Per creare un file di calibrazione della fotocamera personalizzato, stampi una scacchiera e scatti circa 10-20 immagini della scacchiera con la fotocamera, utilizzando le stesse impostazioni di quando gira un video.

Ogni immagine deve contenere l'intera scacchiera. Le immagini devono variare l'orientamento e la posizione della scacchiera in ogni immagine.

Una volta scattate le immagini, si rechi in Editor di elaborazione immagini à Calibra da file... e compili i parametri della scacchiera. Quindi selezioni le immagini. RoboDK genererà un file di calibrazione che potrà essere utilizzato per la creazione di una pipeline.

Creare una pipeline di rilevamento

Il passo finale per preparare la stazione RoboDK per l'AR è creare una pipeline per rilevare i marcatori fiduciali. Questa pipeline di rilevamento sarà utilizzata per calcolare la posa dai marcatori reali e virtuali e sovrapporre gli asset della telecamera RoboDK simulata al feed video di ingresso.

Segua questi passaggi per creare una pipeline di rilevamento:

1.Vada su Editor di elaborazione immagini à Editor di elaborazione immagini nella barra degli strumenti.

2.Selezionare la telecamera RoboDK simulata se si utilizza Video AR, per Camera AR selezionare la sorgente della telecamera.

3.Selezioni il suo marcatore alla voce Rivelatori à Marcatori Charuco Diamond.

4.Impostare i parametri richiesti in base alle dimensioni fisiche del marcatore.

5.Sotto Dispositivo, impostare il file di calibrazione. Si consiglia di utilizzare la Calibrazione generica.

6.Salvi il progetto della pipeline in File à Salva progetto con nome

Con la stazione preparata, un video di ingresso registrato e una pipeline di elaborazione salvata, possiamo iniziare a creare video AR. Le prossime sezioni spiegano come creare video AR e rendering AR dal vivo, oltre a una sezione di risoluzione dei problemi per aiutare a risolvere rendering indesiderati.

Creare una AR da un feed video

Lo strumento Video AR viene utilizzato per creare una sovrapposizione AR su un video preregistrato. Questo è ideale per i video dimostrativi o promozionali. La stazione può essere modificata durante il rendering del video e le modifiche saranno applicate immediatamente.

Segua questi passaggi per creare effetti di sovrapposizione AR su un video:

1.Nasconda tutti gli oggetti della sua postazione che non desidera vengano renderizzati nel video AR.

2.Selezioni Editor di elaborazione immagini → Realtà Aumentata (Video).

3.Se sono state salvate più pipeline, selezioni la pipeline corretta per il suo marcatore.

4.Selezionare il piano di riferimento che contiene il marcatore.

5.Selezionare il file video in ingresso.

6.Seleziona la posizione e il nome del video in uscita.

7.Monitorare il processo di rendering e apportare le modifiche necessarie per ottenere la qualità desiderata.

8.Una volta che il video ha completato il rendering, può chiudere l'AR Camera Frame.

Realtà mista

La Mixed Reality (MR) in RoboDK si riferisce alla sostituzione dello sfondo di RoboDK con un feed live passthrough dalle cuffie VR. Questa operazione in RoboDK VR consente di mescolare il suo ambiente locale, SteamVR e RoboDK.

Requisiti:

Cuffia VR Quest 2 / Quest 3 e un PC con capacità VR

Virtual Desktop + Virtual Desktop Streamer

Collegamento SteamVR + Meta Quest

Segua questi passaggi per abilitare la Realtà Mista:

1.Abiliti la modalità Developer di Quest 2/3:

Come attivare la modalità sviluppatore su Meta Quest 3? (vr-expert.com)

2.Avvii Meta Quest Link sul PC e segua le istruzioni per collegare le cuffie al PC:

Configurare e collegare Meta Quest Link e Air Link | Meta Store

3.Si colleghi al suo PC utilizzando Virtual Desktop

4.Nell'applicazione Virtual Desktop attivi l'API VR Passthrough.

5.Modifichi le impostazioni di Passthrough VR: Imposti i colori della maschera Passthrough su 0, 255, 0 (verde).

Augmented Reality - Figura 8

6.In RoboDK, imposti le opzioni di sfondo superiore e inferiore sulla stessa tonalità di verde:

Strumenti -> Opzioni -> Visualizzazione -> Colore di sfondo -> Imposta su 0, 255, 0 (Verde)

Augmented Reality - Figura 9

7.Avvii SteamVR attraverso Virtual Desktop.

8.Avvii RoboDK e attivi la modalità VR: Collegare➔ Collegare le cuffie VR.