laser scanning con Rhinoceros 3d
"errando con precisione"
Last updated on 20 oct 2014
 Copyright 2014 franco Slomp
Rhino v5 ha molti comandi  e metodi utili per chi lavora con i dati dei laser scanner ( ed in genere con la nuvole di punti). Ed ha due ambienti di scripting per realizzare dei programmetti da far girare durante la sessione di lavoro (VBscript e Python):Ognuno ha i suoi vantaggi ( e svantaggi) .
Python non ha implementato tutti i metodi di VBs , ma ha una gestione delle liste ( array) molto piu' semplice ( almeno per me) .
A seconda delle situazioni scelgo l'ambiente che piu' mi piace.
Minimalia sulle nuvole di punti :
Scripts per elaborare  nuvole di punti con Rhino 3d
Da molti anni uso Rhino  per elaborare i dati provenienti dai laser scanners ( ed in genere da strumenti di rilievo). Il lavoro di restituzione e preparazione dei dati da consegnare al cliente e' spesso lungo e noioso. Col tempo ho messo a punto qualche script per facilitarmi il lavoro. Li metto pian piano a disposizione nella speranza che cresca il numero dei clienti che vuole solo le nuvole di punti semilavorate per elaborarle in proprio, finalizzando il risultato alla propria' utilita'. Il cliente risparmia ( molto)  e noi evitiamo le tediose lavorazioni a valle.
Questi scripts sono semplici sequenze di operazioni. Sono stati scritti in fretta e grossolanamente da persone con scarse competenze di programmazione (noi) . Non sono particolarmente efficienti, ordinati o ben commentati , ma funzionano, e noi li usiamo con profitto.

Franco Slomp
Normalmente gli scanner raccolgono punti in maniera ordinata ( per righe e colonne) : Ne risulta una  matrice di dati detta "grid". Per ogni punto si raccolgono le coordinate ( di solito X,Y,Z)  e la riflettanza ( cioe' la percentuale di energia che viene riflessa dall'ostacolo ) Con un procedimento fotografico ogni punto puo' essere colorato in RGB.
La riflettanza e' rappresentata da un numero decimale fra 0 e 1 oppure da un'intero fra 0 e 255. Il colore da una terna R, G, B di interi fra 0 e 255

Il formato "grid" e' importante soprattutto nelle fasi iniziali di filtraggio dei dati. Visto che i punti sono ben incasellati e' relativamente facile capire se un punto e' isolato o e' vicino ad uno spigolo, esaminando i suoi vicini nella griglia, che si individuano immediatamente operando sugli indici della matrice.

Lo scanner registra i punti riferendoli al centro dello strumento. Le varie scansioni sono registrate l'una sull'altra utilizzando targets, punti omologhi, coordinate note etc. Le rototraslazioni necessarie per mettere le nuvole al loro posto sono definite da "matrici di rototraslazione" di 4 righe x 4 colonne : ecco un esempio:
 
-0.1326360467 -0.9911647539 -0.0003312993 4.038
0.9911646579 -0.1326362038 0.0005083189 9.595
-0.0005477700 -0.0002609508 0.9999998159 0.202
0.0000000000 0.0000000000 0.0000000000 1.0000000000
Il lavoro di filtraggio, pulizia , registrazione delle nuvole e' fatto di solito da chi ha fatto le scansioni, utilizzando appositi softwares legati allo scanner. Per queste persone e' importante avere sempre a disposizione la "grid" con la matrice di rototraslazione a parte, da applicare dopo il filtraggio, quando serve.

ESPORTAZIONE: le nuvole ripulite possono essere esportate come lunghe liste di punti colorate . Esse possono essere riferite al centro dello strumento( con matrice a parte) oppure con le coordinate gia' modificate dall'applicazione della matrice:
Le singole righe di ogni file possono essere simili a queste:

XYZRGB
356.789 456.888 -67.865  250 10 21  ( un punto un po rossiccio: molto R)

XYZI
356.789 456.888 -67.865 0.250 (riflettanza (0-1)bassa: grigio scuro)
356.789 456.888 -67.865 64      (riflettanza (0-255) bassa: grigio scuro)

XYZ
356.789 456.888 -67.865 ( non c'e' colore, Rhino puo' importare direttamente)

Di solito a questo punto si  e' perso l'arrangiamento a "grid" ed i suoi vantaggi , ma il formato e' leggibile facilmente da tutti


SCRIPTS :


Girano con Rhinoceros v5, ma generalmente non con Rh v4

100.43-ImportColoredPointClouds_En.py  


script Python:Rh5 importa le nuvole di punti , ma non il colore: Questo script  importa in Rhino uno o piu' file ascii con punti colorati: Una Box iniziale spiega il funzionamento..
Home
di piu'
Home
download test clouds

Vb-script per Rh5: applica a uno o piu' oggetti la rototraslazione descritta in un file di testo
51d_apply_matrix.rvb

di piu'