Installa il server sul computer
Il server è il programma che riceve le foto e comanda l'elaborazione. Va installato una volta sola, sul computer che farà i calcoli. Scegli la tua piattaforma.
- Apri Photo3DServer.dmg.
- Trascina Photo3D Server sulla cartella Applicazioni che vedi accanto.
- Aprila dal Launchpad e premi Avvia.
Al primo avvio prepara da solo l'ambiente (pochi secondi). La finestra mostra il semaforo verde, la cartella di salvataggio e un QR che servirà all'app.
- Scompatta Photo3DServer-Windows.zip dove preferisci.
- Doppio click su photo3d-server.exe. Se preferisci partire dai sorgenti: tasto destro su
avvia-server.ps1→ Esegui con PowerShell. - Windows chiederà il permesso di rete: scegli Consenti sulle reti private. La finestra parla italiano o inglese secondo la lingua del sistema.
La finestra del terminale resta aperta e mostra l'indirizzo del server: lasciala aperta mentre lavori.
Dalla 1.9.46 la finestra dice lo stato coi colori: in testa Server acceso in verde o Server spento in rosso; accanto a ogni installazione (motore gratuito, riconoscimento oggetto) Installato in verde, Non installato in arancio, Installazione in corso · 45% con la barra mentre lavora, e Problema: … in rosso se qualcosa va storto, col tasto Dettagli che apre il registro di quella installazione. Nel diario e nella scheda Registro le righe sono colorate allo stesso modo: rosso gli errori, arancio quello che manca, verde quello che è andato.
Con il pacchetto .deb (Debian, Ubuntu e derivate):
$ sudo apt install ./photo3d-server_1.0.0_amd64.deb
$ sudo systemctl enable --now photo3d
Il server parte da solo a ogni accensione. Per controllarlo:
$ systemctl status photo3d # sta girando?
$ journalctl -u photo3d -f # cosa sta facendo
Dove finiscono le foto. Il server usa il primo disco esterno che trova, altrimenti la cartella Immagini. Puoi cambiarla dalla finestra sul Mac, o dall'app per ogni singola sessione.
Volo del drone. La finestra ha anche il bottone Pianifica il volo…: apre nel browser il pianificatore dei voli del drone (griglie, anelli, tratte per batteria, file KMZ e KML), che gira dentro il server e i cui piani il telefono scarica con «Piano dal server». Vedi il capitolo 5b, Pianificare dal computer.
Scegli il motore di calcolo
Il server non calcola da solo: si appoggia a un motore fotogrammetrico. Te ne serve almeno uno.
| Motore | Costo | Quando conviene |
|---|---|---|
| Agisoft Metashape Pro | Licenza a pagamento | Oggetti e reperti: dà la scala col tocco, l'unione di due riprese e i risultati migliori sulle superfici difficili. |
| WebODM (NodeODM) | Gratuito | Rilievi da drone e topografia, o computer senza licenza. Su Linux con scheda NVIDIA va molto veloce. |
| Motore open (COLMAP + OpenMVS) | Gratuito | Oggetti e reperti senza licenza: si installa da solo dall'app, con maschere e scala col tocco. Sul Mac è più lento di Metashape (vedi la sezione dedicata più sotto). |
| PyArchInit Photogrammetry | Gratuito | Scavi, oggetti e voli senza licenza, georeferenziati coi target ArUco o coi GCP: modello, nuvola, DEM e ortofoto, e un progetto da aprire nell'app PyArchInit Photogrammetry (vedi più sotto). |
Metashape
Installalo nella posizione predefinita: il server lo trova da solo (/Applications su Mac, C:\Program Files\Agisoft su Windows, /opt/metashape-pro su Linux).
WebODM
Installa Docker Desktop (gratuito), poi incolla questo comando una volta sola nel terminale:
$ docker run -d -p 3000:3000 --name nodeodm \
--restart unless-stopped opendronemap/nodeodm
Da lì in poi il motore riparte da solo a ogni accensione. Con una scheda NVIDIA aggiungi --gpus all.
Motore gratuito per gli oggetti (COLMAP + OpenMVS)
Alternativa a Metashape che non costa niente. Si installa da sola: nell'app Mac, riquadro Motore gratuito, bottone Installa. Da terminale:
$ photo3d-server --installa-motore open
Pesa circa 220 MB su Mac, 145 su Windows, 670 su Linux.
Prima di partire per il campo, con la rete ancora buona:
$ photo3d-server --installa-motore open --solo-scarica
riempie la cache, così l'installazione vera funziona anche senza connessione.
Cosa sapere:
- sul Mac è da tre a cinque volte più lento di Metashape, perché OpenMVS lì gira solo su CPU; l'installazione automatica è CPU-only su ogni piattaforma, Windows compreso: i tempi tornano paragonabili solo installando a mano la build CUDA di OpenMVS, non con l'installer;
- per farlo: installa prima il motore nel modo normale (
--installa-motore open), poi scaricaOpenMVS_Windows_x64_CUDA.7zdalla release GitHub di OpenMVS v2.4.0 ed estrailo sopra…\Photo3D\engines\open\openmvs\, sostituendo i binari; infine aprimanifest.json(nella stessa cartellaopen) e metti a mano"cuda": true. Non rilanciare l'installazione dopo aver sostituito i binari: cancellerebbe di nuovo quella cartella e la riempirebbe con la build CPU, perdendo la sostituzione; - i Mac Intel non sono supportati (pycolmap pubblica solo la versione Apple Silicon);
- la scala funziona col tocco e con la stecca; i marker codificati no, quelli restano solo su Metashape;
- la fusione di due lati non è ancora disponibile su questo motore;
- durante la fase Mappe di profondità la barra di avanzamento riparte da zero più volte: sono le sottofasi interne di OpenMVS (stima, filtro, fusione), non un blocco;
- un primo ciclo completo su Apple Silicon (64 foto, preset veloce) ha richiesto circa dieci minuti.
Motore PyArchInit Photogrammetry (dalla 1.9.51)
Il motore libero di pyarchinit-photogrammetry, pensato per lo scavo: allinea le foto, georeferenzia coi target ArUco/AprilTag o coi GCP messi a mano, e fa nuvola, modello con texture, DEM e ortofoto. Si installa col bottone Installa nel riquadro Motore PyArchInit Photogrammetry (app Mac e finestra di Windows e Linux), oppure dal telefono al primo invio di una sessione che lo usa. Da terminale:
$ photo3d-server --installa-motore ppg
Cosa scarica dipende dal computer:
- Mac Apple Silicon e Linux (x86_64): il pacchetto di PyPI in una cartella a parte, circa 400 MB. Se l'app PyArchInit Photogrammetry è già in Applicazioni (dal suo DMG), il server usa quella e non installa niente;
- Windows, anche ARM: lo zip dell'app dall'ultimo rilascio su GitHub, controllato con lo sha256 che GitHub pubblica (250 MB per ARM, 480 per x64);
- Mac Intel e Linux ARM: non disponibile.
Cosa sapere:
- i target riconosciuti sono gli ArUco/AprilTag (quelli che stampa il motore con
ppg markers sheet), non i target circolari di Metashape; funzionano anche i GCP messi a mano nella pagina GCP, la scala col tocco e la stecca; - le maschere non le usa: scegliendolo, il telefono le spegne;
- DEM e ortofoto escono solo se la sessione è georeferenziata (almeno tre punti) o in scala;
- nella cartella
metashapedella sessione c'è ancheppg_project.ppg: si apre nell'app PyArchInit Photogrammetry per sezioni, unità stratigrafiche, pulizia e pubblicazione nel database PyArchInit; - prova sul Mac (Apple Silicon): 28 foto con 8 target, tutte allineate, errore sui target 0,7 mm, dieci secondi col preset veloce.
Installa l'app sul telefono
- iPhone e iPad: accetta l'invito che ricevi via mail, installa TestFlight dall'App Store e da lì installa Photo3D.
- Android: copia sul telefono il file Photo3D.apk e aprilo; Android chiederà una volta di consentire l'installazione da questa origine.
Al primo avvio concedi Fotocamera e Rete locale: senza il permesso di rete locale l'app non vede il computer.
Collega l'app al server
Telefono e computer devono stare sulla stessa rete Wi-Fi. Di norma non devi fare nulla: l'app trova il server da sola e lo mostra in cima alla schermata.
Se non lo trova (succede sulle reti di hotel e uffici, che bloccano la ricerca automatica):
- Apri Impostazioni nell'app (l'ingranaggio) e scegli Manuale.
- Inquadra il QR mostrato dalla finestra sul Mac: porta con sé indirizzo, porta e — se l'hai attivata — la parola d'ordine. In alternativa scrivi a mano l'indirizzo che il server mostra all'avvio (esempio:
172.16.13.84) e la porta8765.
Scatta le foto
Premi +, dai un nome alla sessione, scegli la qualità e il motore, poi Scatta foto. Puoi anche importarle dalla galleria (le HEIC vengono convertite da sole).
- Gira attorno all'oggetto con uno scatto ogni 10–15 gradi: circa 30 foto per giro.
- Ogni foto deve sovrapporsi almeno al 60% con la precedente.
- Fai due o tre giri ad altezze diverse: dall'alto, di tre quarti, di lato.
- Luce uniforme, niente ombre nette e niente flash. L'oggetto deve stare fermo.
- Metti nell'inquadratura una stecca metrica: servirà per le misure reali.
Foto da drone
Vola con DJI Fly usando i waypoint con scatto a intervallo, poi porta le foto sul
tablet — con Quick Transfer o infilando la scheda nel lettore — e usa Aggiungi da File o
scheda SD: puoi scegliere l'intera cartella DCIM, senza passare dal rullino.
Photo3D non comanda il drone: il volo si fa con l'app del produttore. (Alcuni DJI, fra cui Mini 3/4 Pro e la linea Enterprise, sarebbero pilotabili da app di terze parti tramite il Mobile SDK v5, ma solo su Android e col telefono collegato al telecomando.)
Lo zoom resta a 1× per tutta la sessione, e non è un limite: la fotogrammetria richiede la stessa focale in ogni scatto. Per riempire l'inquadratura, avvicinati.
Volare col drone (app Android)
Con un telefono Android Photo3D può pilotare i droni DJI supportati dal Mobile SDK v5: Mini 3, Mini 3 Pro, Mini 4 Pro, Mavic 3 Enterprise / 3T / 3M, Matrice 30, 4E/4T, 300 e 350, e i Parrot Anafi, Anafi USA e Anafi Ai (questi anche dall'iPhone, vedi più sotto). I consumer più recenti (Mini 5 Pro, Air 3 e 3S, Mavic 3 e 4 Pro) non si pilotano dall'app, ma volano lo stesso piano da DJI Fly: vedi «Col telecomando con lo schermo».
Quali droni
Photo3D usa il Mobile SDK v5 di DJI, che è l'unico modo per far pilotare un drone da un'app di terze parti. Questi sono i modelli che lo supportano:
| Modello | Tipo | Note per il rilievo |
|---|---|---|
| DJI Mini 3 | Consumer | Leggero, sotto i 250 g |
| DJI Mini 3 Pro | Consumer | Sensore 1/1.3", buon dettaglio |
| DJI Mini 4 Pro | Consumer | Il più conveniente per lo scavo: 1/1.3", sotto i 250 g |
| DJI Mavic 3 Enterprise (3E) | Enterprise | Sensore 4/3, otturatore meccanico, RTK opzionale: il migliore per la mappatura |
| DJI Mavic 3 Thermal (3T) | Enterprise | Termica + grandangolo |
| DJI Mavic 3 Multispectral (3M) | Enterprise | Multispettrale, per analisi del suolo e della vegetazione |
| DJI Matrice 30 / 30T | Enterprise | Robusto, resiste a vento e pioggia |
| DJI Matrice 4E / 4T | Enterprise | Generazione recente per mappatura |
| DJI Matrice 4D / 4TD | Enterprise / Dock | Voli automatici da stazione |
| DJI Matrice 300 RTK / 350 RTK | Enterprise | Con camere intercambiabili (P1, H20): precisione centimetrica |
| DJI Matrice 400 | Enterprise | Il più grande della serie |
| Parrot Anafi, Anafi USA, Anafi Ai | Parrot | Con GroundSDK, da Android e da iPhone: telefono sul Wi‑Fi del drone o sullo SkyController |
Non tutti i DJI recenti sono pilotabili da app esterne. Restano fuori, per scelta di DJI, Air 3 e Air 3S, Mavic 3 (Classic, Pro), Mavic 4 Pro, Mini 5 Pro, Neo, Flip e Avata 2, e anche i telecomandi con schermo integrato (RC 2, RC Pro), che non accettano app di terze parti. Quelli che hanno i waypoint in DJI Fly volano però il piano di Photo3D lo stesso: Mini 4 Pro, Mini 5 Pro, Air 3, Air 3S, Mavic 3 / Classic / Pro e Mavic 4 Pro. Si esporta il KMZ e lo si copia nel telecomando (vedi Col telecomando con lo schermo); il pianificatore e l'app hanno il profilo camera di ciascuno. Senza waypoint restano Mini 3 e Mini 3 Pro (che si pilotano solo dall'app), Neo, Flip e Avata 2: con questi si vola a mano e si importano le foto dalla scheda.
Collegare il telefono al telecomando
Il telefono non parla col drone: parla col telecomando, che gli fa da ponte. Serve quindi il cavo, non il Wi-Fi.
- Metti il telefono nella pinza del telecomando (RC-N2 o RC-N3 per il Mini 4 Pro; con i telecomandi che hanno lo schermo, tipo RC 2, l'app di terze parti non si può installare).
- Collega il cavo dati USB‑C ↔ USB‑C fornito da DJI, dalla porta del telecomando a quella del telefono. Deve essere un cavo dati: quelli da sola ricarica non funzionano e non danno alcun messaggio d'errore.
- Accendi prima il telecomando, poi il drone, e aspetta che si aggancino (schermo del telecomando o LED fissi).
- Chiudi DJI Fly: due app non possono usare il telecomando insieme. Se Android propone «Apri DJI Fly?», rispondi di no.
- Quando colleghi il cavo (o accendi il telecomando) Android chiede «Aprire Photo3D per gestire…?», oppure mostra l'elenco delle app che sanno usare il telecomando: scegli Photo3D e spunta Usa sempre. Poi apri una sessione → Drone. Se la richiesta non compare, stacca e ricollega il cavo con Photo3D aperta; se ancora niente, il cavo è da sola ricarica.
In cima alla schermata leggi lo stato: Registrazione con DJI… mentre l'app si autentica (la prima volta il telefono deve avere internet, Wi‑Fi o dati), poi il modello del drone e la batteria quando è collegato. Se resta «Collega il telefono al telecomando», rivedi cavo e punto 4. Se invece leggi «Telecomando collegato, ma il drone non risponde», il drone è spento o il telecomando non è associato: un telecomando nuovo, come l'RC-N3, va associato la prima volta in DJI Fly («…» → Controllo → Riassocia all'aeromobile, poi 4 secondi sul tasto di accensione del drone, finché fa due bip).
Nella schermata Drone lo schermo si mette in orizzontale da solo, come sta il telefono nella pinza del telecomando, anche se la rotazione automatica è spenta: mappa e video a sinistra, comandi a destra. Uscendo dalla schermata il telefono torna a girare come prima.
Disegnare l'area da rilevare
- Spostare: trascina la mappa finché il sito è al centro (la spunta «Sposta la griglia col centro della mappa» tiene agganciata la griglia; toglila per bloccarla e guardarti intorno).
- Ingrandire o rimpicciolire: il cursore Area, da 20 a 300 m di lato. Il pizzico a due dita cambia solo lo zoom della mappa, non l'area.
- Ruotare: il cursore Direzione delle strisciate (0–90°). Conviene allinearle al lato lungo dello scavo o della trincea: meno virate, meno batteria, copertura più regolare.
- Satellite o mappa: il pulsante in alto a destra. Il satellite serve a riconoscere il terreno, la mappa a orientarsi con strade e edifici.
Disegnare l'area a mano
Se il sito non è un quadrato — una trincea stretta, un saggio irregolare, una spiaggia — tocca Disegna l'area e poi gli angoli sulla mappa: la griglia riempie solo quello che hai racchiuso, senza sprecare batteria sul resto. Togli punto corregge l'ultimo tocco, Fine chiude il poligono (servono almeno tre angoli), Cancella l'area torna al quadrato col cursore.
Area disegnata e rotazione lavorano insieme. Se ruoti la direzione delle strisciate, l'area resta quella che hai disegnato: ruotano soltanto le passate al suo interno, e scatti, minuti e percorso si ricalcolano di conseguenza. Su una trincea stretta conviene provare entrambi i versi: allineando le strisciate al lato lungo si fanno meno virate, allineandole al lato corto si copre meglio una forma irregolare.
Anelli, percorsi e terreno, disegnati sul telefono
Dalla 1.9.43 la schermata Drone disegna anche quello che prima si faceva solo sul computer. Il piano è fatto di blocchi (la riga di chip sopra la mappa, con Aggiungi blocco), ognuno coi suoi parametri, e si volano uno alla volta come i blocchi che arrivano dal server.
- Griglia: quella di sempre, sul quadrato attorno al centro o sull'area disegnata.
- Anello: un giro di 36 vertici attorno a un centro, con la camera che guarda il centro (Raggio col cursore o nel campo). Il centro segue la mappa finché non lo fermi con Segna il centro sulla mappa.
- Percorso: tocchi i punti in ordine (Disegna il percorso, poi Fine); Chiuso torna al primo punto, Verso il centro fa guardare la camera dentro invece che in avanti. Serve per un muro, una strada, il bordo di un tell.
- Segue il terreno: la spunta scarica le quote del suolo (le stesse tegole aperte del computer: serve internet in quel momento, non il Mac) e da lì ogni punto del blocco vola alla stessa distanza dal suolo. La griglia delle quote resta col piano; se lo sposti fuori da quella scaricata la riga sotto lo dice e Scarica il terreno la rifà. Senza rete il blocco vola a quota fissa, e lo si legge.
I piani restano col progetto. Ogni progetto ricorda i suoi: quello disegnato (blocchi, camera, terreno) e il file importato o scaricato. Riaprendo il progetto li ritrovi; Togli questo blocco e Togli il piano dal telefono li tolgono. Con Salva sul computer il piano disegnato va sul server nel formato del pianificatore: lo ritrovi nella pagina web, lo modifichi lì (punti speciali, target, tratte per batteria) e lo scarichi da qualunque telefono con Piano dal server. Se un blocco segue il terreno ma il telefono non aveva rete, le quote le fa il computer al salvataggio.
Senza rete e con il computer spento (dalla 1.9.44). Sul campo si lavora lo stesso, e si sincronizza dopo:
- Salva sul computer a computer spento non fallisce: il piano resta sul telefono segnato «da mandare» (la riga Il piano aspetta il computer) e parte da solo appena l'app vede il server: all'apertura dell'app o della schermata Drone, o quando il Mac compare in rete.
- Segue il terreno senza internet: la spunta resta accesa, il blocco vola a quota fissa e lo dice, e le quote si scaricano da sole ogni mezzo minuto appena la rete torna. Salvando sul computer, le quote mancanti le fa il Mac.
- Prepara la zona per lavorare senza rete (sotto la mappa), da fare a casa o dove c'è rete: tiene sul telefono la mappa satellitare fino allo zoom 18 per 1,5 km attorno al centro e le quote del terreno per 5 km. Da lì disegno, terreno e volo vanno anche senza niente.
Importare o esportare il piano (KML, KMZ, GeoJSON)
Il piano si può preparare fuori dall'app, nel GIS o in Google Earth, e portarlo dentro con Importa piano. L'app legge:
- KML e GeoJSON: ogni traccia diventa un percorso da volare (le sue svolte sono i
waypoint), ogni poligono diventa l'area della griglia. Quota, inclinazione della camera e
velocità si leggono dal file quando ci sono (
quota 110 m, camera -45gradinella descrizione, o gli attributiquota_m,camera_gradi,velocita_msdel GeoJSON). Una traccia chiusa è un anello: si vola col muso verso il centro. - KMZ di DJI, cioè il file dei waypoint di DJI Fly o di un'altra app di volo: si ricostruiscono punti, quota, velocità e inclinazione.
Con più tracce nel file compaiono i blocchi come pulsanti sopra la mappa: si vola un
blocco alla volta, e i campi quota, velocità e inclinazione prendono i valori del blocco (si
possono correggere). Esporta KMZ scrive un KMZ per ogni tratta (vedi sotto) più un KML con
tutti i percorsi, e li condivide. Il KMZ è scritto come lo scrive DJI Fly per il Mini 4 Pro: si
può copiare nella cartella dei waypoint di DJI Fly
(Android/data/dji.go.v5/files/waypoint/<cartella>/<cartella>.kmz, al posto
di una missione salvata apposta) e volarlo da lì se il telefono non può pilotare, oppure aprirlo
in Google Earth e in QGIS.
Pianificare dal computer
Sullo schermo grande si lavora meglio: l'app del server ha il bottone Pianifica il
volo… (su Mac nella sezione «Volo del drone», su Windows e Linux nella finestra) che apre
il pianificatore nel browser, all'indirizzo http://127.0.0.1:8765/piano. Sulla
mappa satellitare si aggiungono blocchi: una griglia (clicca gli angoli
dell'area, poi Fine; i punti si trascinano, col tasto destro si tolgono), un anello
(centro e raggio, camera verso il centro), un percorso a mano (i punti cliccati nell'ordine
di volo: una strada, o il contorno del tell chiuso ad anello, con la camera verso il centro o
verso un punto di mira scelto sulla mappa) o un percorso importato da KML, KMZ o GeoJSON,
anche solo come poligono dell'area disegnato in QGIS. Per ogni blocco si regolano quota, camera,
sovrapposizioni, direzione delle strisciate, velocità e modo di scatto, e si leggono subito
scatti, minuti, batterie, tratte, GSD e cadenza della camera; in fondo il totale del piano. Ogni
blocco ha un interruttore: spento resta nel piano ma non conta nei totali, non finisce nei
file e non arriva al telefono, così tieni pronti i blocchi «se avanza tempo». I conti sono gli
stessi dell'app Android.
Dove sono porta la mappa dove si trova il computer (il browser chiede il permesso; funziona
sull'indirizzo 127.0.0.1, non su quello di rete in chiaro), «Vai a» accetta le
coordinate scritte. Nuovo ricomincia da un piano vuoto (la pagina altrimenti riapre l'ultimo lasciato sullo
schermo); Salva sul server mette il piano nella cartella piani dentro la cartella
delle foto, con KML, GeoJSON e lo zip dei KMZ (uno per tratta). Sul telefono, nella schermata
Drone, Piano dal server lo scarica e lo apre come un file importato: i blocchi compaiono
come pulsanti e si vola uno alla volta. Il piano caricato, da file o dal server, resta sul
telefono: riaprendo l'app lo ritrovi com'era, finché non premi Dimentica il piano accanto ai
blocchi. Esporta scarica gli stessi file per Google
Earth, QGIS o la cartella dei waypoint di DJI Fly, e la scheda delle tratte: Excel delle tratte è un foglio con
una riga per tratta (quota, camera, velocità, sovrapposizioni, direzione, scatto, waypoint, scatti, minuti, batterie,
GSD, decollo), i totali per blocco e per piano, tutti i waypoint, e un foglio per tratta con la mappa della sola
sua rotta sulla foto satellitare (decollo H, primo e ultimo punto, scatti, scala e numeri). Scheda HTML è la
stessa scheda in una sola pagina con le mappe dentro, che si apre ovunque e si stampa; Mappe delle tratte è lo
zip delle sole immagini, una per tratta, da mostrare a chi vola. Le mappe usano le stesse foto satellitari del
pianificatore, quindi servono la rete e qualche secondo.
Progetta il volo: dagli obiettivi al piano (e l'AI, se la vuoi)
Nel pianificatore, sopra «Copia in DJI Fly», c'è il riquadro Progetta il volo: invece di scegliere a mano quota e sovrapposizioni, dici che cosa vuoi ottenere e il programma calcola il resto, spiegando ogni scelta. Disegna l'area, scegli l'obiettivo dal menu — ortofoto (centimetri per pixel), modello del terreno (DEM) (centimetri di cella: il GSD viene più fine, perché una cella pulita vuole due o tre pixel per lato), modello 3D completo (nadirale più due passate oblique incrociate a 45°, che vedono le pareti verticali), ispezione ravvicinata, ricognizione veloce o GSD a mano — scrivi il valore e premi Progetta il volo. Escono i blocchi pronti e l'elenco dei perché: quanto GSD serve, a che quota viene con quella camera, come sono orientate le strisciate, quante foto, minuti e batterie. Se il dettaglio chiesto richiederebbe di volare sopra i 120 m la quota si ferma lì e te lo dice, col GSD che ne viene davvero.
Quote del terreno scarica le quote dell'area e mostra minima, massima, dislivello, pendenza ed ettari. Vengono dalle tegole aperte di AWS (Terrain Tiles, Copernicus/SRTM, circa 30 m): gratuite, senza nessuna chiave, uguali su Mac, Windows e Linux; dove il dato ha un buco si riprova da solo con un altro livello di dettaglio.
Vedere le quote sulla mappa. Premendo Quote del terreno compare il rilievo colorato (verde in basso, bianco in cima, ritagliato sull'area) con le isoipse: passandoci sopra si legge la quota, una curva è più marcata ogni cinque, e la legenda dice quota minima, massima e ogni quanti metri passa una curva. Serve a controllare che le quote siano vere prima di fidarsene per volare.
Le quote da dove. Il menu «Quote da» sceglie la sorgente: le quote libere coprono il mondo a ~30 m, ma appena hai elaborato un volo del sito compare anche il tuo DEM, alla risoluzione del rilievo — centimetri invece di decine di metri. Dove il tuo DEM non arriva si torna alle quote libere, allineate allo scarto misurato dove le due sorgenti si sovrappongono. E con Dettaglio delle quote si sceglie quanto fitto leggerle (~15, ~8 o ~4 m di maglia).
Segui il terreno dà a ogni waypoint la sua quota: il drone resta alla stessa distanza dal suolo, quindi il dettaglio non cambia dove il terreno sale — su un tell è la differenza fra un'ortofoto uniforme e una che si sgrana in cima. Le quote sono riferite al decollo, come vuole il file di DJI, e restano fra 10 e 120 m. Finiscono nel KMZ, nel KML e nel GeoJSON, e l'app Android le ritrova: anche spezzando il volo in tratte, o riprendendo dopo il cambio batteria, ogni punto vola alla sua quota.
Con l'AI. Con la spunta con l'AI scrivi a parole tue che cosa ti serve («un
DEM a 4 cm e un'ortofoto ad alta risoluzione del tell, il terreno è mosso»): Claude legge area,
quote e camera e propone obiettivo, risoluzione, sovrapposizioni e se conviene seguire il
terreno, con la spiegazione e le avvertenze. I numeri li rifà comunque il programma, e
le sue scelte restano dentro limiti ragionevoli: il piano è volabile anche se l'AI sbaglia, e
senza AI il progettista funziona lo stesso. La chiave Anthropic si registra una volta
sola e resta sul computer, in ~/.photo3d/anthropic_key (su Windows
C:\Users\<nome>\.photo3d\anthropic_key), fuori dal repository: la pagina
non la rimostra mai, ne vedi solo le ultime quattro lettere, e Dimentica la chiave la
cancella. Vale anche la variabile d'ambiente ANTHROPIC_API_KEY.
La voce e i suoni. Con la spunta voce e suoni (accesa di serie) il telefono dice le cose che contano mentre tu guardi il drone: «Decollo. Punto di casa registrato» — oppure l'avviso che il punto di casa non c'è ancora, e senza quello il ritorno non sa dove andare —, «Rientro al punto di decollo», «Atterrato», «Tratta finita», la batteria alle soglie (50, 30, 25, 20…), i satelliti pochi, la posizione che non arriva e il motivo di un'interruzione. A ogni scatto si sente il rumore dell'otturatore.
Simulare il volo, sullo schermo e col drone a terra
Nel pianificatore, sotto i blocchi, c'è la Simulazione del volo: Decollo sulla mappa mette il punto di partenza (H, trascinabile; se manca si parte dal primo punto del piano), Simula fa volare il drone a tempo accelerato (da 1× a 300×), tratta per tratta: decollo, andata al primo punto, la rotta alla velocità effettiva con la sosta alle svolte, gli scatti che si accendono sulla mappa, il rientro, il cambio batteria. La riga sotto dice tratta, fase, cronometro, scatti fatti e quanta batteria stima di consumare quella tratta, andata e ritorno compresi: se supera il 100%, accorcia i minuti per batteria o sposta il decollo più vicino.
Il video della simulazione. Con la spunta registra il video accanto a Simula, la simulazione viene registrata: la mappa con le tegole, le rotte, gli scatti che si accendono, i punti di decollo, il drone e la riga di stato in basso. A fine volo (o con Ferma) compare Scarica il video: MP4 dove il browser lo sa scrivere (Chrome, Safari), altrimenti WebM, e se sul server c'è ffmpeg il bottone MP4 lo converte lì. È il file da mandare a chi vuole vedere il volo prima che avvenga. Il video ha la dimensione della mappa sullo schermo: allarga la finestra prima di registrare, e a 30× un volo di un'ora dura due minuti.
Spostarsi fra una batteria e l'altra. Ogni tratta è un volo a sé: il file non contiene il punto di decollo, il drone parte da dove sei, va dritto al primo waypoint della tratta e a fine tratta torna al punto da cui è decollato quella volta. Partire da sud e poi spostarsi a nord per le tratte a nord accorcia andata e ritorno e migliora il segnale. Un'attenzione sola: le quote sono relative al punto di decollo. Se decolli da un punto più alto o più basso del precedente, tutta la tratta si sposta di quel tanto: dalla cima di un tell il drone vola più alto sulla piana (più sovrapposizione, un po' meno dettaglio), dalla piana dopo aver iniziato dalla cima vola più basso sopra il tell, e sugli obliqui a 40-50 m può diventare pericoloso. Tutti i decolli di un blocco dallo stesso livello di terreno. Sotto la simulazione, Decollo per tratta dà a ogni tratta il suo punto (un click sulla mappa, il marcatore H1, H2… si trascina): la simulazione e la stima di batteria partono da lì, e il KML esportato segna i punti di decollo, così sul campo sai dove metterti. Ottimizza i decolli li calcola da solo: per ogni tratta il punto a metà fra primo e ultimo waypoint, dove andata e ritorno sommati sono più corti, e le tratte con punti vicini (entro 150 m) condividono il decollo, così ci si sposta di rado, e i punti stanno fuori dagli anelli, che girano attorno al rilievo: un decollo sul tell avrebbe le quote sballate; il messaggio dice quanti punti sono usciti e quanti chilometri si risparmiano. È una proposta sulla sola distanza: controlla che siano posti dove puoi stare, allo stesso livello del terreno, e trascinali se serve; Togli tutti torna all'H generale.
Il simulatore di DJI non c'è per il Mini 4 Pro. DJI Assistant 2 (Consumer Drones Series), anche su Mac, per il Mini 4 Pro fa solo aggiornamento firmware, dati Flysafe ed esportazione dei log: il Simulator, nelle note di rilascio, compare solo per Mavic 2, Air 2, Air 2S e Mini 1. Quindi il KMZ si prova così:
- A terra, eliche tolte. Drone e telecomando accesi, telefono collegato, Photo3D → Drone, Prepara la tratta 1: se il drone accetta il file il messaggio dice «Piano caricato». Un rifiuto qui vuol dire file da sistemare. Non premere Decolla a terra. DJI ha segnalazioni di file accettati al caricamento e rifiutati all'avvio, quindi questo controllo non basta.
- In campo, una tratta corta. Griglia di 60 m di lato sopra un prato, quota 40 m, scatto a intervallo, una tratta sola. Controlla nell'ordine: il decollo e l'andata al primo punto; le strisciate; il messaggio «Camera: scatto ogni N s» e la spia di scatto sul drone; Ferma a metà, il rientro, Riprendi da dove ha lasciato e che riparta dalla strisciata giusta; a fine tratta la proposta della tratta 2.
- Le foto. Riprendi le foto dal drone e guarda che ci siano quante ne diceva la stima e che i geotag disegnino le strisciate.
Se il passo 2 fallisce all'avvio, il ripiego è pronto: Esporta KMZ, copia il file nella cartella dei waypoint di DJI Fly e vola da lì, con lo scatto a tempo impostato a mano nella camera.
Punti speciali: una foto da vicino, una panoramica, un video
In ogni blocco del pianificatore (passo 4) c'è + Punto speciale: si clicca sulla mappa il punto in cui il drone deve fare qualcosa di diverso dal rilievo.
- Foto di dettaglio: scende, fotografa, risale. È quello che serve per un target, uno scavo, un'iscrizione: da 12 m un target da 20 cm si legge benissimo, da 60 m è una macchia.
- Panoramica (foto da cucire): un giro di foto col muso verso l'esterno, 8 di serie (da 4 a 16), da montare poi con un programma di stitching. Il Mini 4 Pro in missione non ha un «modo panorama»: il giro è un piccolo anello di waypoint, un metro e mezzo di raggio.
- Panoramica a video: un giro lento (cinque metri di raggio, un metro al secondo) con la ripresa che parte e si ferma da sola.
- Avvia il video / Ferma il video: su due waypoint della rotta, per filmare un tratto.
Agganciato o libero. Cliccando vicino a un waypoint (entro una dozzina di metri) il punto si aggancia alla rotta: il drone lo fa passando di lì. Altrove resta libero: i punti liberi si visitano tutti alla fine del blocco, dal più vicino, così il rilievo si vola intero e senza deviazioni. La spunta «sul waypoint» cambia l'uno nell'altro.
La discesa si sceglie in due modi: a metri dal suolo («portati a 12 m da terra»: usa le quote del terreno, che la pagina misura da sola la prima volta anche se il blocco vola a quota fissa; sul telefono questa quota segue il punto in cui decolli davvero) oppure a metri sul decollo, la quota che leggi sul telecomando, decisa da te.
In tutti e due i casi la discesa è verticale: il drone arriva sopra il punto alla quota del volo, scende, fa quel che deve, risale e solo allora riparte. Non scende mai sotto i cinque metri dal suolo (se il terreno si conosce) né sotto i cinque metri sopra il decollo; se la quota chiesta lo porterebbe più giù viene alzata, e sotto il punto lo leggi in rosso. Sotto ogni punto c'è scritto quel che succederà davvero: «sul waypoint 12 · scende a 23 m sul decollo (12 m dal suolo)».
Batterie e riprese. Un punto speciale non si spezza fra due batterie, e dopo un Ferma non si riparte mai dal suo punto basso: si torna al suo primo waypoint, in quota, e lo si rifà.
Le foto, a tempo o per punto. Scattando per punto la foto del punto speciale è un'azione del file, come tutte le altre. Scattando a tempo la fa lo stesso scatto a tempo: il drone si ferma sul punto un intervallo abbondante, e almeno uno scatto cade lì (un comando di scatto con la camera «a intervallo» farebbe partire una raffica).
Il video ferma le foto. Dall'app Android la camera passa in video arrivando sul punto e torna da sola allo scatto del rilievo quando la ripresa finisce. Col telecomando con lo schermo (DJI Fly) lo scatto a tempo va riavviato a mano dopo il video: meglio mettere i video in un blocco a parte, o in fondo.
Da provare prima. Le azioni sono scritte come le scrive DJI Fly, ma panoramica e video in missione sul Mini 4 Pro vanno visti volare una volta, in un campo libero e con una discesa prudente (30 m), prima di fidarsene sul sito. Litchi, QGroundControl e Parrot ricevono il solo rilievo.
I target a terra: dal file del GNSS ai GCP, senza cliccare le foto
Un GCP è un punto di cui conosci le coordinate perché le hai misurate. Quindi dove stanno i target lo sai prima di volare: il drone non li deve cercare, ci deve andare.
- Stampa i target codificati di Metashape (Tools → Markers → Print Markers, circolari a 12 bit), più grandi che puoi. A spanne, coi pixel del Mini 4 Pro: un A4 da 10 m, un A3 da 15. Provalo prima di partire: fotografa un target da quella distanza e guarda se Metashape lo riconosce (Tools → Markers → Detect Markers). Mettili a terra e misurali col GNSS, segnando per ognuno il numero del target.
- Nel pianificatore, passo 4, Importa il file dei target: un CSV con nome,
coordinate e quota. Va bene in gradi o in UTM (WGS84), con o senza intestazione, con la
virgola o col punto, con l'est prima del nord o il contrario: l'ordine si capisce dai numeri
e dal sito, e se resta un dubbio te lo dice. Il numero del target si legge dal nome
(
T12,target 3,GCP_07). - Su ogni target nasce un punto speciale: alla fine del blocco il drone li visita uno a uno e scende a scaletta — da 60 m fotografa a 36, 22, 13 e 10 m dal suolo. Una foto sola da dieci metri, sei volte più fine del rilievo, faticherebbe ad agganciarsi alle altre, e un target visto in una foto sola non ha una posizione.
- Elaborando con Metashape non devi fare niente: se le foto sono state scattate sopra i target di un piano salvato, il server li usa da solo. Dopo l'allineamento riconosce i target codificati, li abbina alle coordinate per numero, passa il progetto nel tuo sistema (UTM), mette da parte il GPS del drone, ottimizza l'allineamento e scrive nel registro l'errore su ogni target. Ne servono almeno tre.
Cinque target costano un paio di minuti di volo. Con WebODM i target codificati non si riconoscono: lì i GCP si danno a mano, dalla pagina dei GCP (passo 7).
Quota, sovrapposizioni, scatto e minuti di volo
La quota decide tutto: raddoppiandola, ogni foto copre il doppio del terreno, quindi gli scatti calano in fretta — ma cala anche il dettaglio. Le sovrapposizioni (80% avanti, 65% laterale; 70% per un rilievo topografico) sono i valori consigliati per la fotogrammetria. Sotto i campi l'app dice scatti, minuti, batterie, GSD e come scatterà la camera.
Come si scatta. Due modi:
- Scatto a intervallo (consigliato): i waypoint sono solo le svolte e la camera scatta da sola a tempo; l'app la accende al primo waypoint e la spegne a fine tratta. La camera DJI accetta intervalli fissi (2, 3, 5, 7, 10 s…): l'app sceglie il più corto che regge il passo fra le foto e, se serve, abbassa la velocità. Esempio: a 110 m con l'80% il passo è 23,6 m; a 5 m/s servirebbero 4,7 s, la camera dà 5 s, si vola a 4,7 m/s. A 48 MP l'intervallo minimo sale a 5 s.
- Uno scatto per punto: un waypoint per ogni foto, con l'azione di scatto dentro il file. È il modo che DJI Fly capisce senza toccare la camera, ma pesa: un centinaio di waypoint per missione, quindi più tratte.
| Area | Quota | Impronta | Scatti | Volo | Scatto | Dettaglio (12 MP) |
|---|---|---|---|---|---|---|
| 50×50 m | 30 m | 43 m | 24 | ~2 min | 2 s a 3,2 m/s | ~1,1 cm/px |
| 100×100 m | 30 m | 43 m | 112 | ~5 min | 2 s a 3,2 m/s | ~1,1 cm/px |
| 100×100 m | 50 m | 72 m | 36 | ~3 min | 3 s a 3,6 m/s | ~1,8 cm/px |
| 150×150 m | 30 m | 43 m | 230 | ~10 min | 2 s a 3,2 m/s | ~1,1 cm/px |
| 150×150 m | 50 m | 72 m | 84 | ~6 min | 3 s a 3,6 m/s | ~1,8 cm/px |
| 200×200 m | 30 m | 43 m | 403 | ~16 min | 2 s a 3,2 m/s | ~1,1 cm/px |
| 200×200 m | 50 m | 72 m | 152 | ~9 min | 3 s a 3,6 m/s | ~1,8 cm/px |
| 300×300 m | 60 m | 86 m | 230 | ~14 min | 3 s a 4,3 m/s | ~2,1 cm/px |
| 600×600 m | 110 m | 158 m | 275 | ~26 min | 5 s a 4,7 m/s | ~3,9 cm/px |
Valori per il Mini 4 Pro a 12 MP con le sovrapposizioni consigliate e 5 m/s richiesti; a 48 MP il dettaglio raddoppia (0,5 cm/px a 30 m, 1,95 a 110 m) e l'intervallo minimo sale a 5 s. Per un'area di scavo 30–40 m di quota bastano; per un tell si sale a 90–110 m, sempre sotto i 120 m dal terreno, e l'app avvisa se si sfora.
Far volare, una batteria alla volta
Un volo lungo non sta in una batteria. Con Minuti per batteria (18 per il Mini 4 Pro: 34 nominali, ma serve margine per andata, rientro e vento) l'app spezza il percorso in tratte al capo di una strisciata, ciascuna sotto i 100 waypoint. Sopra ai pulsanti leggi «Tratta 2 di 4 · punti 9–17 · 14 min», con le frecce per scegliere quale caricare.
- Prepara la tratta N: il KMZ della tratta si genera, passa il controllo formale di DJI e si carica sul drone (vedi la percentuale di invio).
- Decolla: il drone va al primo punto, vola la tratta scattando e a fine tratta rientra da solo. L'app passa alla tratta successiva: cambia la batteria, Prepara, Decolla.
- Ferma interrompe in qualunque momento; i comandi del telecomando restano sempre prioritari. Al decollo si apre da sola la Vista di volo: il video della camera a tutto schermo, sopra i dati (batteria, quota e distanza dal punto di decollo, velocità, satelliti, tempo di volo), sotto i comandi sempre visibili: Ferma, Torna a casa (come il tasto del telecomando) e Mappa, che mostra il drone sulla rotta con i punti già volati. Chiudi torna alla schermata, il pulsante Vista di volo la riapre, e lo schermo resta acceso finché è aperta. In volo «Punto X di N» avanza da solo, dedotto dalla posizione del drone lungo la rotta, perché l'indice mandato dal drone non sempre arriva; la mappa insegue il drone con la spunta «Segui il drone»; i comandi della vista di volo dicono lì stesso com'è andata, così se il drone rifiuta il rientro ne leggi il motivo. Dopo un Ferma, Riprendi da dove ha lasciato compare sempre: se il punto raggiunto non si conosce, riparte dall'inizio della tratta.
- Riprendi da dove ha lasciato: se il drone rientra prima della fine (batteria bassa, vento, un tuo Ferma), l'app ricorda l'ultimo punto toccato e dov'era. Al tocco costruisce il KMZ di quel che resta, arretrando di 20 m per non lasciare buchi, lo carica e riparte. L'avanzamento resta salvato anche chiudendo l'app: riaprendo la sessione trovi «Volo interrotto al punto 12 della tratta 2: puoi riprendere da lì».
Sulla mappa la tratta scelta è marcata, la parte già volata diventa verde, il pallino arancione è il centro verso cui guarda la camera negli anelli, quello verde è il drone.
Prova tutto prima di partire, con una tratta corta sopra casa: che il drone accetti il KMZ, che la camera scatti a tempo, che a fine tratta l'app proponga la seguente e che «Riprendi» riparta dal punto giusto. Se il drone rifiuta il file dell'app, esporta il KMZ e volalo da DJI Fly, dove dopo il cambio batteria si sceglie a mano da quale waypoint ripartire (l'app te lo dice).
I Parrot: Anafi, Anafi USA, Anafi Ai
Con i Parrot l'app pilota davvero, su Android e su iPhone, perché Parrot ha un SDK aperto (GroundSDK). Il telefono si mette sul Wi‑Fi del drone (Anafi) o si collega allo SkyController col cavo; l'app trova il drone da sola e in cima alla schermata compaiono modello e batteria. Poi tutto va come coi DJI: Prepara la tratta scrive il piano di volo nel formato di Parrot (decollo, velocità, camera inclinata, foto ogni tot metri in GPS-lapse o una per punto, i waypoint col muso lungo la rotta o verso il punto di mira, rientro) e lo carica sul drone; Decolla lo avvia; Ferma interrompe e fa rientrare il drone; Riprendi da dove ha lasciato rifà quel che resta della tratta dopo il cambio batteria. Le foto le scatta il drone da solo, a distanza, quindi non c'è nessun Timed Shot da impostare, e restano sulla sua scheda: si importano con Aggiungi da File o scheda SD. Sull'iPhone la sezione Parrot della schermata Drone fa le stesse cose, tratta per tratta, col piano preso dal server. Niente immagine della camera nell'app e niente scarico delle foto via radio: quelli restano dei DJI.
Prima volta anche qui con una tratta corta sopra un prato: il caricamento del piano, il decollo, la foto ogni tot metri (la spia della camera), Ferma a metà con il rientro, Riprendi.
Col telecomando con lo schermo: il KMZ in DJI Fly
Con il DJI RC 2 (o RC Pro) Photo3D non può pilotare, perché quei telecomandi non accettano app di terze parti. Il KMZ però è scritto come lo scrive DJI Fly stessa, quindi si carica lì e si vola da lì. Vale anche con l'RC‑N3 se preferisci DJI Fly.
Con quali droni. Con tutti quelli che hanno i waypoint in DJI Fly: Mini 4 Pro, Mini 5 Pro, Air 3, Air 3S, Mavic 3 / Classic / Pro e Mavic 4 Pro (non Mini 3 e Mini 3 Pro, Neo, Flip, Avata 2, che i waypoint non li hanno). Nel pianificatore e nell'app scegli il profilo del tuo drone (gruppo «solo con DJI Fly»): passo fra gli scatti, velocità, cadenza e GSD sono i suoi, il file è lo stesso per tutti. Dentro c'è il codice 68 del Mini 4 Pro: provato sul Mini 4 Pro, riferito funzionante su Mini 5 Pro e Mavic 3 Pro, dato per buono sugli altri; se DJI Fly non mostra la missione, è quel codice da cambiare. Sui droni con più camere (Air 3 e 3S, Mavic 3 Pro, Mavic 4 Pro) il file non sceglie l'obiettivo: prima di partire metti la camera grandangolare (la principale) e, con lo scatto a intervallo, avvia il Timed Shot a mano. Anche qui, prima volta con una tratta corta sopra un prato.
Col telecomando senza schermo (RC‑N2, RC‑N3). Cambia solo dove sta la cartella,
perché a volare è sempre DJI Fly, sul telefono. Su Android la cartella è la stessa
dell'RC 2, Android/data/dji.go.v5/files/waypoint/<cartella>/<cartella>.kmz:
la raggiungi dal computer col cavo, come col telecomando; sul telefono stesso, da Android 11 in
poi, solo con un gestore di file che passi da Shizuku (per esempio FV File Explorer), perché le
app non entrano nei dati delle altre. Su iPhone e iPad si usa l'app File: Sul mio
iPhone → DJI Fly → wayline_mission → cartella; metti il KMZ in iCloud Drive o in File,
incollalo nella cartella della missione fittizia, copia il nome del file originale, cancellalo
e rinomina il nuovo con quel nome. Da DJI Fly 1.17 le missioni si possono anche caricare sul
cloud DJI, e si ritrovano sull'altro dispositivo.
- Esporta il piano. Scegli il modo di scatto adatto a DJI Fly: uno scatto per punto (lo scatto sta nel file e DJI Fly lo esegue da sola; ogni tratta resta sotto i 100 waypoint, quindi più file), oppure scatto a intervallo (file leggeri con le sole svolte, ma lo scatto a tempo lo imposti tu nella camera di DJI Fly, Timed Shot, con l'intervallo che il piano indica). Poi Esporta KMZ: uno zip con un KMZ per tratta.
- Crea i contenitori in DJI Fly. Sul telecomando apri il volo con waypoint, disegna
una missione qualsiasi con due punti e salvala: DJI Fly crea una cartella con un nome del tipo
550E8400-E29B-…e dentro un file.kmzcon lo stesso nome. Serve una missione fittizia per ogni tratta: DJI Fly elenca solo le missioni che ha creato lei, una per cartella e con un solo file dentro, e non cerca cartelle nuove. Una cartella aggiunta a mano con un nome inventato non compare nella libreria: provato sull'RC 2 con una cartella dal nome inventato e un KMZ valido dentro, DJI Fly l'ha ignorata (e FlyPath e Litchi Utilities, infatti, possono solo sostituire missioni esistenti). Per il piano di dodici tratte, dodici missioni fittizie; falle tutte prima, a casa, che ciascuna richiede un minuto. Con meno missioni si può riusare la stessa cartella, ma tra una tratta e l'altra bisogna ricollegare il telecomando al computer. - Sostituisci i file. Collega il telecomando (o il telefono) al computer con
l'USB‑C. Nel pianificatore il pannello Copia in DJI Fly fa il lavoro: Cerca il
dispositivo trova la cartella dei waypoint (su Windows il telecomando o il telefono
collegati via USB, su Linux il dispositivo montato, ovunque una scheda SD o un percorso che
incolli), elenca le missioni fittizie con data e numero di punti, assegna una tratta a
ciascuna e Copia nel dispositivo scrive ogni KMZ al posto del file della missione, col
nome giusto. Se il dispositivo non si vede come cartella (su Mac l'RC 2 e i telefoni Android
non si montano: servono iDroid, OpenMTP o Android File Transfer), incolla i
nomi delle cartelle create da DJI Fly nella casella Nomi delle cartelle, uno per riga: ogni
tratta prende la prima libera, la tendina di ogni tratta propone solo i nomi non ancora assegnati
alle altre, e un nome usato due volte viene segnato in rosso. Poi Scarica le cartelle
pronte: uno zip con
<cartella>/<cartella>.kmz, da trascinare dentrowaypoint/sostituendo le cartelle omonime. Attenzione: la cartellawaypointche iDroid apre nel Finder sta inLibrary/Containers/com.leonboettger.idroid/Data/tmp/ed è una copia temporanea sul Mac: incollare quel percorso in «Copia nel dispositivo» non scrive sul telecomando, e il pianificatore lo rifiuta; sul Mac rifiuta ogni percorso fuori da/Volumes, perché una cartellawaypointscaricata sul disco è anch'essa una copia e scriverci mischia i file. Nello zip c'è anche la cartellamap_preview, con un'anteprima per tratta (map_preview/<cartella>/<cartella>.jpg, 1920×1080 come quelle di DJI Fly): la mappa della tratta con numero e nome in grande. Trascina anche quelle, dentrowaypoint/map_preview/, sostituendo le omonime: il nome della missione resta quello dato da DJI Fly (sta nel suo database e non si può scrivere da fuori), ma nella libreria la riconosci dall'immagine. Copia nel dispositivo le scrive da sola. Le missioni in DJI Fly non si rinominano: il nome è l'ora in cui le hai create. Il pannello la legge dal file di ogni missione fittizia e la mostra accanto alla tratta («in DJI Fly: 08/09/2026 08:01:35»); l'abbinamento resta nel piano e finisce nella scheda Excel e HTML (colonne «Missione DJI Fly» e «Cartella DJI Fly») e sulle mappe delle tratte, così in campo sai quale missione lanciare. Il KMZ scritto al posto della fittizia conserva la sua ora di creazione, quindi il nome in DJI Fly non cambia. Sul Mac la copia temporanea di iDroid viene elencata da sola, segnata «solo per i nomi»: serve a questo, non a copiare. A mano, il percorso èAndroid/data/dji.go.v5/files/waypoint/<cartella>/: sostituisci il.kmzcon quello della tratta, rinominato col nome della cartella. - Vola. Riapri DJI Fly: la libreria delle missioni mostra le rotte importate. Controlla quota e velocità e parti; a fine tratta il drone rientra, cambi batteria e lanci la seguente. Se una tratta si interrompe a metà, DJI Fly fa scegliere da quale waypoint ripartire: segnati l'ultimo raggiunto, perché atterrando il conteggio si azzera. La missione si può anche ritoccare e risalvare in DJI Fly, o sincronizzare col cloud: il file ha i punti anche nel template che DJI Fly rilegge in quei casi.
- Le foto arrivano dalla scheda: in Photo3D usa Aggiungi da File o scheda SD.
DJI Fly può disegnare le rotte un po' storte in anteprima, ma le vola bene. Anche qui, prima di partire, una tratta corta sopra un prato.
Gli altri droni: QGroundControl, Parrot, Litchi
Il pianificatore scrive anche i piani per chi non parla il KMZ di DJI, sempre un file per tratta, con le quote sopra il decollo e lo scatto a distanza (una foto ogni tot metri, che non dipende dalla velocità). Nel menu del drone c'è il gruppo «Altri droni», con i profili camera di Autel EVO II Pro e Lite+, Parrot Anafi e Anafi Ai, Skydio 2, DJI Mavic 2 Enterprise Advanced e Phantom 4 Multispectral: quota, passo fra gli scatti e GSD escono giusti anche se poi si vola con l'app del produttore.
- QGroundControl (.plan): i droni ArduPilot e PX4, cioè i droni aperti da
rilievo e gli autocostruiti. Si apre in QGroundControl o Mission Planner, si controllano
quota e camera, si carica sul drone. Lo scatto lo comanda l'autopilota
(
DO_SET_CAM_TRIGG_DIST): la camera deve essere collegata a lui. - Parrot (.mavlink): Anafi, Anafi USA e Anafi Ai, nel dialetto di GroundSDK, per chi preferisce volare da FreeFlight 7 (si condivide il file della singola tratta, che si apre nel Flight Plan) o da QGroundControl. Con Photo3D su Android o iPhone il file non serve: l'app li pilota direttamente, vedi «I Parrot».
- Litchi (.csv): i DJI senza waypoint in DJI Fly (Mini 2 e SE, Air 2 e 2S, Mavic 2, Phantom 4), che Litchi vola su iOS e Android. Si importa il CSV nel Mission Hub (flylitchi.com/hub), si salva, e la missione compare nell'app. Camera interpolata all'inclinazione voluta o puntata al punto di mira, foto ogni tot metri.
- Autel (EVO II V3, Enterprise): Autel Explorer importa un KML, che il pianificatore già scrive; quote e azioni si rifiniscono nell'app. Skydio: niente importazione, solo il profilo camera per fare i conti e volare con la sua app.
- DJI Mavic 2 Enterprise Advanced e Phantom 4 Multispectral: l'app Android non li pilota (il Mobile SDK v5 non li conosce) e DJI Fly non li vola. Il profilo serve a scegliere quota, sovrapposizione e GSD; il volo si fa con DJI Pilot (M2EA) o DJI GS Pro su iPad (P4M), come missione di mappatura sull'area esportata col pulsante «Area per DJI Pilot / GS Pro (sperimentale)»: un KML per ogni griglia accesa, col solo contorno. Le strisciate le calcola l'app DJI, quindi quota, sovrapposizioni e camera vanno rimesse a mano: i valori del piano sono nella descrizione dell'area. Sperimentale: non è ancora provato in volo con le due app. Il P4M ha una camera RGB da 2 MP: va bene per gli indici della vegetazione, poco per un modello 3D di dettaglio.
Dall'iPhone: la schermata Drone
L'app iOS non pilota (il Mobile SDK di DJI è solo Android), ma dall'aeroplanino in alto fa tutto il resto, e con i Parrot pilota (sezione Parrot: Prepara, Decolla, Ferma, Riprendi, tratta per tratta). Piano dal server prende il piano disegnato nel pianificatore e ne mostra le tratte; File per l'app di volo manda al foglio di condivisione il KMZ, il piano QGroundControl, il MAVLink di Parrot o il CSV di Litchi, tutte le tratte in uno zip o la singola tratta dal pulsante sulla sua riga (per FreeFlight 7 serve la singola tratta). Copia in DJI Fly è la versione iPhone del comando del pianificatore: si sceglie una volta la cartella Sul mio iPhone → DJI Fly → wayline_mission nell'app File, l'app elenca le missioni salvate lì con la data, assegna una tratta a ciascuna e scrive i KMZ al posto loro, col nome giusto. Poi si riapre DJI Fly.
Oppure vola come vuoi
Il piano è facoltativo: vola a mano con DJI Fly e scatta a tuo giudizio (utile per pareti di taglio, strutture verticali, dettagli). Poi chiudi DJI Fly, apri Photo3D e usa Riprendi le foto dal drone: la scheda si scarica dentro la sessione, senza lettore e senza passare dal rullino.
Su iPhone e iPad il pilotaggio non è possibile: DJI pubblica il Mobile SDK v5 solo per Android (per iOS resta la versione 4, ferma al 2022 e senza i droni recenti). Su iPad si vola con DJI Fly e si importa dalla scheda con Aggiungi da File o scheda SD.
Isola l'oggetto (facoltativo)
Serve quando vuoi solo il reperto, senza tavolo e sfondo. Nella scheda della sessione tocca una foto e poi tocca l'oggetto: il computer lo riconosce in tutte le altre foto e le mostra con un contorno giallo, così vedi subito cosa terrà.
Nei rilievi di scavo o da drone lascia perdere. Lì l'oggetto è il terreno: senza tocco non viene fatta nessuna maschera, ed è giusto così.
Su Windows e Linux il riconoscimento si installa a parte. L'eseguibile non lo porta dentro (torch
pesa centinaia di MB): nella finestra del server, riquadro Riconoscimento oggetto (SAM2), premi
Scarica e installa (circa 500 MB) col server avviato. Il server scarica uv, un Python suo,
torch (la versione senza CUDA: va su qualunque PC) e i pesi di SAM2 in una cartella a parte
(%LOCALAPPDATA%\Photo3D\engines\sam2 su Windows, ~/.photo3d/engines/sam2 su Linux),
come fa per il motore gratuito; la percentuale e la barra stanno accanto al tasto, il dettaglio riga per riga
nella scheda Registro (voce Installazione · riconoscimento oggetto), e un problema compare in rosso
col tasto Dettagli. Si installa una cosa alla volta. Serve internet una volta sola;
da lì le maschere funzionano come sul Mac. Senza schermo: photo3d-server --installa-motore sam2.
Sul Mac non serve: l'app li scarica da sé alla prima apertura.
Dai la misura reale
Un modello senza riferimenti non ha dimensioni. Tre modi, nella sezione Scala metrica (con Metashape):
- Tocca la barra su una foto — scegli la foto dove la stecca si vede meglio, ingrandisci fino a 16×, tocca i due estremi e scrivi quanti millimetri sono. È il modo più preciso.
- Trova la stecca da solo — accendi l'interruttore e indica la lunghezza della stecca.
- Target codificati — se li stampi da Metashape, basta indicare la distanza fra due target.
Topografia: i punti di controllo (GCP)
Per un rilievo in coordinate reali usa Punti di controllo (GCP): scegli la foto, ingrandisci, tocca il punto a terra e scrivi Est, Nord e Quota. Funziona con entrambi i motori. Con le foto da drone la georeferenziazione avviene già col GPS.
Dal computer o da Android: la pagina dei GCP. Per i voli col drone è la via più comoda:
nella finestra del server Punti di controllo (GCP)… (o http://<il-server>:8765/gcp),
e nell'app Android il tasto Punti di controllo (GCP) dentro la sessione, appena le foto
sono arrivate al server. Dal computer la pagina chiede per prima cosa su quale sessione
lavorare (l'elenco è quello delle sessioni sul computer, dalla più recente; in alto a destra si
cambia); da Android si apre già su quella che stavi guardando. Le foto restano sul computer:
vale anche per un progetto già elaborato.
È la stessa pagina, in tre passi:
- I punti misurati: importa il CSV del GNSS (lo stesso dei target: gradi o UTM, qualunque ordine di colonne), premi Usa i target del piano se il piano salvato li ha già, o scrivili.
- Segnali sulle foto: scegli un punto e poi una foto. Le foto sono in ordine di distanza dal punto (dal GPS scritto dentro), in verde quelle che quasi certamente lo inquadrano. Ingrandisci — rotella o due dita: oltre il doppio della grandezza vera si vedono i pixel — e tocca il centro del segnale; le frecce lo spostano di un pixel alla volta. Ogni punto va segnato su almeno due foto, meglio tre o quattro; ne servono almeno tre.
- Salva, oppure Salva e rielabora. Riaprendo la pagina ritrovi tutto.
Coi GCP il progetto passa nel tuo sistema di coordinate e, da tre punti in su, il GPS delle foto viene messo da parte: quello di un drone senza RTK sbaglia di metri, e la quota di decine.
Invia ed elabora
Premi Invia al Mac. Il caricamento prosegue anche a schermo bloccato e riprende da dove si era interrotto. Finito l'invio, l'elaborazione parte da sola e nella stessa schermata vedi la fase e la percentuale.
Tempi indicativi: un reperto con 100 foto in qualità media richiede dai 20 ai 40 minuti; un volo di drone con 180 foto può arrivare a un'ora. Puoi chiudere l'app: il lavoro è sul computer.
Le sessioni che stanno sul computer. Un'elaborazione fatta da un altro telefono — o da questo, prima di cambiarlo o di reinstallare l'app — si riprende dal computer: su iPhone Sessioni sul Mac, su Android Dal computer, in alto nell'elenco. Toccane una e ce l'hai anche lì: stato, modello, punti di controllo, condivisione, e Rielabora sul computer per rilanciarla (dopo aver segnato i GCP, per esempio). Le foto restano sul computer: sul telefono non tornano, e non servono.
Guarda il modello e prendi le misure
A lavoro finito compare Vedi modello 3D: il modello si gira con le dita e lo sfondo si cambia col selettore colore. La prima apertura scarica il modello (con la barra di avanzamento); dopo è immediato.
Vedere il modello su Android e da browser
Nell'app Android, a elaborazione finita, c'è Vedi il modello: il modello si apre a
schermo pieno, si gira col dito e si ingrandisce con due dita, con Mesh, Nuvola
(i punti colorati), Sfondo e Ricentra. La pagina la serve il computer
(http://<server>:8765/modello?sessione=<id>), quindi si apre anche da
un browser qualsiasi sulla stessa rete — comodo per mostrare il risultato a qualcuno senza
installargli niente. Le librerie 3D viaggiano dentro il server: sul campo, senza Internet,
funziona lo stesso. Sezioni e profili restano per ora solo sull'iPhone.
Il modello del terreno e l'ortofoto (voli col drone)
Quando le foto hanno le coordinate, l'elaborazione produce anche — sia con Metashape sia
con WebODM — dem.tif (il modello del terreno) e orthophoto.tif (la vista
dall'alto raddrizzata e in scala), accanto al modello nella cartella della sessione. Si aprono
in QGIS, e si scaricano dal server con
/api/sessions/<id>/raster/dem.tif. Su un oggetto ripreso da vicino non
vengono creati: un vaso non ha un modello del terreno.
Sezioni e profili
- Tocca l'icona forbici.
- Gira il modello finché lo vedi come vuoi disegnarlo, poi tocca due punti.
- Scegli il taglio: Come lo vedo per il profilo di un vaso o di un coccio; Lungo la linea per la sezione di un terreno.
La sezione riporta larghezza, altezza e lunghezza della linea (il righello in alto le accende e le spegne). Con Aggiungi alla tavola ogni sezione prende una lettera — A–A1, B–B1 — che compare anche sul modello, dove hai tagliato; la tavola si riordina e si condivide come un'unica immagine.
Unisci due riprese dello stesso oggetto
Per avere anche il fondo, fotografa l'oggetto in due posizioni (dritto e capovolto) come due sessioni separate, elaborale entrambe, poi in una delle due tocca Unisci con un'altra sessione….
- Allinea le posizioni (consigliato): funziona anche su superfici scure e uniformi.
- Solo maschere: per oggetti molto ricchi di dettagli.
Nasce una nuova sessione con tutte le foto e un modello unico. Se le due metà non si agganciano, l'app te lo dice invece di consegnare un risultato sbagliato: servono più foto di raccordo che inquadrino le stesse zone in entrambe le posizioni.
Condividi il risultato
- Condividi modello (OBJ): un pacchetto zip con geometria e texture, apribile in Blender, MeshLab, CloudCompare.
- Sezioni e tavole: immagini pronte per la relazione.
- Sul computer, nella cartella della sessione, trovi anche la nuvola di punti (
.plyo.lazgeoreferenziata) per QGIS e CloudCompare.
Le sessioni fatte da altri dispositivi si aprono dall'icona disco con onde nella lista: mostra tutte le elaborazioni presenti sul computer e con un tocco le porta anche sul tuo telefono.
Lavorare da fuori casa
In rete locale non serve altro. Per usare l'app da un'altra rete o in 4G, il computer apre un collegamento sicuro (HTTPS) e l'app usa una parola d'ordine, il token.
Sul Mac: due interruttori
Nella finestra di Photo3D Server, sezione Accesso da fuori casa:
- Accendi Chiedi una parola d'ordine (token): viene creata sul momento e mostrata accanto, col bottone per copiarla. Riavvia il server perché la applichi.
- Scegli Cloudflare (subito) — nessun account, indirizzo nuovo a ogni avvio — oppure Tailscale (indirizzo fisso), e premi Apri al pubblico. Su Windows e Linux
cloudflaredsi scarica da solo la prima volta (circa 60 MB) e il collegamento parte appena è pronto; Tailscale invece va installato e collegato al tuo account. - Quando compare l'indirizzo
https://…col lucchetto verde, sei online. Chiudi lo spegne.
Il QR nella finestra si aggiorna da solo: inquadrandolo, l'app riceve insieme l'indirizzo pubblico e la parola d'ordine.
Su Windows e Linux: un comando
$ scripts/tunnel.sh # stampa indirizzo e parola d'ordine
$ scripts/tailscale.sh # indirizzo che non cambia mai
Indirizzo che non cambia mai, anche con Cloudflare: se in ~/.cloudflared/ c'è la configurazione di un tunnel con nome (config-photo3d.yml), sia il bottone dell'app sia scripts/tunnel.sh la usano da soli e l'indirizzo resta sempre lo stesso (per esempio https://photo3d.pyarchinit.com) invece del trycloudflare.com casuale. Si prepara una volta sola con cloudflared tunnel login, tunnel create photo3d e il record DNS del sottodominio.
Tunnel sempre acceso, anche dopo un riavvio: su macOS un LaunchAgent utente (~/Library/LaunchAgents/com.enzo.photo3d.tunnel.plist, con KeepAlive) avvia il tunnel al login e lo rilancia se cade — l'indirizzo fisso non dipende né dall'app né da un terminale aperto. Diario in ~/Library/Logs/photo3d-tunnel.log; per fermarlo: launchctl bootout gui/$(id -u)/com.enzo.photo3d.tunnel. Su Linux l'equivalente è pronto in scripts/photo3d-tunnel.service (istruzioni nell'intestazione del file); su Windows tunnel.ps1 riconosce da solo la config del tunnel con nome.
Tasto destro su tunnel.ps1 → Esegui con PowerShell: scarica da solo quello che serve e stampa indirizzo e parola d'ordine. Per la sola parola d'ordine: genera-token.ps1.
Nell'app: Impostazioni → Manuale, indirizzo https://… e parola d'ordine nel campo Token — oppure, più semplice, inquadra il QR.
La parola d'ordine vale sempre. Finché è accesa, il server rifiuta le richieste che non la portano, anche in casa: mettila su tutti i dispositivi che usi, o spegnila dallo stesso interruttore quando lavori solo in locale.
Se qualcosa non va
I casi che capitano davvero, con il rimedio in una riga.
"Nessun Mac trovato sulla rete"
Controlla nell'ordine: il telefono è in Wi-Fi e non in 4G; il permesso Rete locale è acceso nelle impostazioni del telefono; il server è avviato. Se resta così, la rete blocca la ricerca automatica: metti l'indirizzo a mano (Impostazioni → Manuale).
L'app trovava il server, ora dà errore 401
È accesa la parola d'ordine. Inquadra di nuovo il QR dalla finestra del Mac (la porta con sé), oppure copiala dalla sezione Accesso da fuori casa e incollala in Impostazioni → Token. Se il telefono ha una versione vecchia dell'app che non ha quel campo, aggiornala oppure spegni l'interruttore mentre lavori in casa.
Il caricamento delle foto è lentissimo
Colpa della Wi-Fi condivisa. Usa l'hotspot del telefono collegando il computer alla rete del telefono, oppure il cavo. L'invio prosegue anche a schermo bloccato: lascialo lavorare.
L'elaborazione fallisce: "poche foto allineate"
Le foto non si legano tra loro. Rifai gli scatti più ravvicinati (ogni 10–15°), con luce costante, senza sfocature e senza cambiare zoom. Superfici lucide, nere o senza dettaglio sono le più difficili: opacizzale o aggiungi riferimenti attorno.
Il contorno giallo prende anche pezzi di sfondo
Tocca l'oggetto su una foto più chiara e ravvicinata: quel tocco è il riferimento per tutte le altre. Se il rilievo è un terreno, spegni del tutto le maschere.
Le misure della sezione sembrano sbagliate (0,99 · 1,00…)
Il modello non è in scala: quei numeri sono unità arbitrarie. Imposta la scala metrica e rilancia l'elaborazione con Applica la scala.
Il profilo del vaso esce come un anello
Stai guardando il pezzo dall'alto: il taglio passa per il diametro. Gira il modello di lato (orlo in alto), tocca i due estremi della sagoma e usa Come lo vedo.
"Le due posizioni non si agganciano"
Le due riprese non hanno abbastanza zone in comune. Aggiungi foto di raccordo che inquadrino le stesse parti dell'oggetto in entrambe le posizioni, e riprova con Allinea le posizioni.
Con WebODM non parte niente
Il motore non è acceso. Apri Docker Desktop e verifica che il contenitore nodeodm sia in esecuzione; se manca, rilancia il comando del passo 02.
Il modello nel visore sembra un'immagine ferma
Trascina con un dito per ruotare e usa due dita per lo zoom; se hai attivato le forbici, il primo tocco piazza un punto invece di girare. Tocca di nuovo le forbici per uscire.
macOS: "app di sviluppatore non identificato"
Stai aprendo una copia vecchia. Usa il DMG firmato e trascina l'app in Applicazioni: quello si apre senza avvisi.
«Il punto di decollo è a … km dal volo» (in rosso, nel pianificatore)
Il decollo è rimasto da un altro piano: hai disegnato un'area nuova senza premere Nuovo. Per le quote che seguono il terreno il server lo ignora da solo (parte dal primo waypoint), ma va tolto con Togli quel decollo e rimesso al passo 6. Prima di questa correzione un piano così usciva con tutte le quote a 500 m: riaprilo e risalvalo, si sistema da solo.
In volo qualcosa non torna (contatore fermo, quota che non si vede, scatti non contati)
A ogni missione l'app scrive una scatola nera: un CSV con quel che manda il drone e quel che decide l'app, secondo per secondo. Arriva al computer con le foto (cartella della sessione, registri/), oppure nella schermata Drone Condividi il registro dell'ultimo volo. Mandalo insieme alla descrizione di quel che hai visto.
Cambio altezza o sovrapposizione sul telefono e il risultato resta uguale
Dalla 1.9.39 valgono anche sui piani che seguono il terreno: cambiando l'altezza tutte le quote si spostano di altrettanto, cambiando la sovrapposizione i punti si rifanno sul terreno che il piano porta con sé, e sotto i campi c'è scritto che cosa è successo. Solo se il blocco ha punti speciali restano quelle del piano: si cambiano dal pianificatore.
Android: non trovo come cancellare
Un oggetto o un volo: tieni premuto sulla riga nell'elenco, o Elimina in alto dentro la sessione (sparisce dal telefono; quel che è sul computer resta). Il piano importato: Togli il piano dal telefono; un blocco disegnato: Togli questo blocco. Un piano sul server: Piano dal server → la ✕ accanto al nome.
Android: «Salva sul computer» dice che il piano aspetta il computer
È normale a computer spento o fuori dalla sua rete: il piano è sul telefono e parte da solo appena l'app vede il server (accendi il Mac sulla stessa rete, o riapri l'app). Se il Mac è acceso e non parte: parola d'ordine (errore 401) o telefono che non lo vede (semaforo nella prima schermata).
Android: «Segue il terreno» resta a quota fissa
Mancano le quote: serve internet in quel momento, oppure la zona preparata prima con Prepara la zona per lavorare senza rete. L'app riprova da sola ogni mezzo minuto; salvando sul computer le quote le fa il Mac.
macOS: premo Avvia e il server non parte
Se salvi su un disco esterno, macOS deve autorizzare l'app: Impostazioni di Sistema → Privacy e sicurezza → File e cartelle (o Unità esterne) → attiva Photo3DServer. Succede dopo ogni aggiornamento dell'app.
macOS: «Il server è uscito con codice 3»
La porta è ancora di un server precedente rimasto appeso (succedeva cambiando cartella). Dalla 1.9.42 l'app lo chiude da sola: premi di nuovo Avvia. Con una versione prima: nel Terminale lsof -ti tcp:8765 | xargs kill, poi Avvia.
Windows/Linux: «SAM2 non incluso» o le maschere non partono
Dalla 1.9.45 si installa dalla finestra del server: Riconoscimento oggetto (SAM2) → Scarica e installa, col server avviato e con internet (circa 500 MB, una volta). Se fallisce, la ragione è nella scheda Registro; riprovando riparte da dove era (uv e i pesi già scaricati restano).
Linux: il servizio non parte
Guarda il motivo con journalctl -u photo3d -f. Quasi sempre è la porta occupata da un altro server già avviato.