• Non ci sono risultati.

3.V-Rep 3.1.ChecosaèV-Rep?

N/A
N/A
Protected

Academic year: 2021

Condividi "3.V-Rep 3.1.ChecosaèV-Rep?"

Copied!
14
0
0

Testo completo

(1)

3. V-Rep

La simulazione ricopre nella ricerca un ruolo fondamentale. Solamente negli ultimi anni si è osservata una sua applicazione, in continua crescita, anche nell’ambito robotico. In questo modo si ha la possibilità di creare e testare modelli matematici e algoritmi prima della validazione fisica su robot reali. In ambito robotico la simulazione consente di aver accesso ad un parco virtualmente infinito di robot, sensori e dispositivi di ogni genere.

Esistono differenti simulatori propriamente creati per la robotica, oppure provenienti da un altro settore e poi adattati. Appartenenti alla prima categoria possiamo citare V-Rep, Stage/Player [26], Gazebo [27], USAR-Sim e WeBots [28]. Mentre per la seconda ad esempio MORSE creato con il supporto delle librerie di Blender, un simulatore utilizzato per l’ani-mazione grafica e cinematografica. Oppure OGRE. La loro peculiarità è quella di avere alle spalle un motore di rendering grafico particolarmente potente che incorpora una libreria per la simulazione della fisica molto evoluta e accurata.

3.1. Che cosa è V-Rep?

La piattaforma virtuale di esperimento del robot (V-Rep) [29] è un simulatore sviluppato da Coppelia Robotics con l’obiettivo di simulare sistemi di automazioni industriali. V-REP (Figura 3.1) è disponibile in quattro licenze: Player (gratuito), Pro Edu (gratuito per l’istru-zione), Eval Pro (gratuito per uso non commerciale) e Pro (per uso commerciale). All’inizio del 2013 V-Rep è stato rilasciato open-source per scopi non commerciali. Nel marzo 2010 è uscita la prima versione pubblica, e nel mese di agosto 2012 è stata rilasciata l’integrazione con ROS.

Figura 3.1.: Che cosa è V-Rep?

V-Rep può essere visto come un simulatore ibrido, infatti combina cinematica e dinamica, al fine di ottenere le migliori prestazioni in vari scenari simulati. Un motore fisico rende una simulazione molto realistica in V-Rep. Come ad esempio gravità e l’attrito dell’oggetto si comportano come nel mondo reale. Possono essere testati diversi tipi di robot in ambiente

(2)

simulato riducendo significativamente il tempo ed i costi di sviluppo. V-Rep può essere usato come applicazione autonoma o può essere incastonato facilmente in altre applicazione. Inoltre V-Rep integra al suo interno un interpretatore del linguaggio Lua, questo lo rende estremamente versatile. In questo modo gli utenti posso sviluppare il codice facilmente direttamente nella scena del simulatore.

Figura 3.2.: V-Rep Framework

3.2. Caratteristiche di V-Rep

V-Rep ha un ambiente di sviluppo integrato e si basa su un sistema di controllo distribuito (Figura 3.2). Ogni modello può essere controllato tramite uno script incorporato, un plu-gin, un nodo ROS o una chiamata API da un client remoto. I controller possono essere implementati in C/C ++, Python, Lua, Matlab e Urbi. In seguito elenchiamo alcune delle applicazioni di V-Rep:

• Simulazione di sistemi di automazione di fabbrica • Monitoraggio remoto

• Controllo hardware

• Prototipizzazione e verifica rapide • Monitoraggio sicuro

• Rapido sviluppo algoritmi

• Connessione tra educazione e robotica • Presentazione prodotti

(3)

3.3 Architettura V-Rep

Il simulatore è disponibile per sistemi Windows, Linux e MacOS, inoltre è possibile sfruttare l’integrazione con ROS. In questo modo gli algoritmi implementati possono essere facilmente e velocemente trasferiti dal robot simulato al robot reale. La documentazione è molto buona, copre tutti gli aspetti del simulatore. Inoltre sono presenti alcuni tutorial che aiutano l’utente a comprendere meglio le caratteristiche più complesse. Dall’inizio del 2013, sul sito ufficiale è stato aperto un forum che consente agli utenti di richiedere assistenza, effettuare il rapporto dei bug e richiedere nuove funzionalità.

Il simulatore viene rilasciato con molti modelli: persone, robot umanoidi, animali simili a robot, robot e robot industriali con ruote. V-Rep ha molte caratteristiche avanzate come il rilevamento e la misurazione delle distanze minime tra gli oggetti in tempo reale, la simu-lazione di tagli e incisioni su superfici, sensori di prossimità di funzionamento e la visione, pianificazione del percorso e la registrazione e la visualizzazione dei dati di collisione.

V-Rep attualmente supporta tre diversi motori fisici: Bullet physics library [30], Open Dynamics Engine [31] e the Vortex Dynamics engine [32]. La ragione di questa diversità a sostegno motore fisico è che la simulazione della fisica è un compito complesso, che può essere realizzato con vari gradi di precisione, velocità, o con il supporto di caratteristiche diverse. Vortex Dynamics è un motore fisico per la produzione di simulazioni di fisica ad alta fedeltà. Vortex è utilizzato principalmente in applicazioni industriali e di ricerca ad alte prestazioni/precisione. Il plugin Vortex default per V-REP è un prodotto commerciale, e la sua versione gratuita supporta attualmente simulazione durante 20 secondi. Il motore Vortex è attualmente supportato su Windows e Linux 32/64. V-Rep può essere usato come applicazione autonoma ed include anche un controllo PID incorporato per un giunto motore abilitato.

3.3. Architettura V-Rep

V-Rep è stato progettato intorno un’architettura versatile. Infatti possiede diverse funzioni relativamente indipendenti tra loro, che possono essere attivate o disattivate su richiesta. Per esempio in uno scenario di simulazione in cui un robot industriale deve prendere delle scatole e spostarle in un’altra posizione; V-Rep calcola la dinamica per afferrare e trattenere le scatole ed esegue una simulazione cinematica per le altre parti del ciclo quando gli effetti dinamici sono trascurabili. Questo approccio permette di calcolare il movimento del robot industriale in modo rapido e preciso. Questo non sarebbe stato possibile nel caso l’ambiente fosse stato simulato interamente utilizzando le librerie dinamiche.

3.3.1. Scene Objects

Una scena di simulazione V-Rep contiene diversi oggetti di scena oppure di oggetti elementari che vengono assemblati in una gerarchia ad albero. I seguenti oggetti di scena sono supportati in V-Rep:

Joints: sono elementi che collegano due o più oggetti di scena insieme. Possono essere prismatici, rotoidali, a vite o sferici. Essi possono operare in diverse modalità (force/torque mode, inverse kinematics mode or hybrid).

Shapes: possono essere, ad esempio, forme piane, cubiche, sferiche, cilindriche che possono essere elaborate in seguito.

Paths: oggetto che definisce un percorso o una traiettoria nello spazio.

Cameras: permettono di ottenere una particolare vista dello scenario per poterla regi-strare.

(4)

Dummies: sono "punti di orientamento", o sistemi di riferimento, che possono essere utilizzati per vari compiti.

Proximity Sensors: permettono di eseguire un calcolo della distanza minima esatta entro un dato volume di rilevamento (Figura 3.3).

Vision Sensors: sono sensori simili alle camere, ma consentono di estrarre delle infor-mazioni su un’immagine complessa (colore, dimensione dell’oggetto, mappe di profondità). Sono presenti una serie di filtri per elaborare le immagini ed è possibile combinarli tra loro.

Force Sensors: sono collegamenti rigidi tra le forme, in grado di registrare le forze applicate e le coppie.

Mills: sono volumi convessi personalizzabili che possono essere utilizzati per simulare operazioni di taglio sulla superfici (fresatura, taglio laser, ecc).

Graphs: sono oggetti di scena in grado di registrare e visualizzare i dati si simulazione.

Mirrors: possono agire come specchi e riflettono immagini/luce.

3.3.2. Proximity Sensors

V-REP offre un modo molto potente ed efficace per simulare sensori di prossimità. I Sensori di prossimità disponibili sono 6 (Figura 3.3):

• Ray-type: ideali per una semplice modellazione di un sensore di prossimità o per la modellazione di un laser range finder. Sono i sensori di prossimità più veloci.

• Randomized ray-type: funziona come un sensore a raggi, ma spazzola casualmente un volume cono. Ha un aspetto simile a quello del sensore di prossimità cono-tipo. • Pyramid-type: ideali per semplice modellazione di un sensore di prossimità con un

volume di rilevamento che è rettangolare. Sono molto veloci.

• Cylinder-type: ideali per semplice modellazione di un sensore di prossimità con un volume di rilevamento che è rotoidale. Sono molto veloci.

• Disk-type: consente appunto modellazione di un sensore di prossimità con un vo-lume di rilevamento rotoidale-scansione. A seconda della modalità di precisione e funzionamento selezionata, possono essere un po ’più di calcolo intensivo.

• Cone-type: permette una migliore e più precisa modellazione dei sensori di prossimi-tà. A seconda della modalità di precisione possono richiedere un calcolo intenso.

Figura 3.3.: Sensori di prossimità in V-Rep

I sensori di prossimità effettuano un calcolo esatto sulla distanza tra il punto di rilevamento (piccola sfera rossa in Figura 3.4) e qualsiasi entità rilevabile che interferisce con il suo volume di rilevamento. Ogni sensore di prossimità restituirà la distanza minima rilevata.

(5)

3.3 Architettura V-Rep

Figura 3.4.: V-Rep come lavorano i sensori di prossimità

Le impostazioni del volume ed i parametri dei sensori di prossimità (Figura 3.5) possono essere configurati per ottenere un modello più realistico. In questo modo è possibile creare volumi di rilevazione molto sofisticati combinando più tipi di sensori diversi.

Figura 3.5.: V-Rep volume dei sensori di prossimità

Oltre a questi tipi di sensori di prossimità presentati, è possibile etichettare il sensore con una selle seguenti tipologie: ultrasuoni, infrarossi, laser, induttivi e capacitivi. Questa impostazione non ha alcun effetto diretto sul modo in cui il sensore di prossimità funziona, ma sarà possibile scartare alcune entità dal riconoscimento che non sono state etichettate come rilevabili per esempio dal sensore ad ultrasuoni oppure rilevabili dal sensore laser etc. Attualmente sono disponibili altri sensori di prossimità commerciali (Figura 3.6) come il laser scanner Hokuyo URG04LX, il laser range finder Mesa SR4000 e l’altro scanner laser Sick S300 e TiM310 Sick.

(6)

Figura 3.6.: V-REP Sensori di prossimità commerciali

3.3.3. Vision Sensors

V-Rep, inoltre, offre un altro tipo di sensori: i sensori di visione. I sensori di visione sono in grado di rilevare le entità renderizzabili. Le caratteristiche principali dei sensori di visione sono che un sensore di visione ha una risoluzione fissa, il contenuto delle immagini di un sensore di visione può essere passato attraverso un filtro di elaborazione. Un sensore di visione richiede generalmente più tempo di CPU rispetto alle camere. I sensori di visione disponibili possono essere di due tipi a seconda del tipo di proiezione (Figura 3.7):

• Orthographic projection-type: la proiezione di tipo ortogonale è rettangolare. Essi sono particolarmente adatti per la distanza ravvicinata.

• Perspective projection-type: la proiezione prospettica è di tipo trapezoidale.

Figura 3.7.: V-Rep sensori di visione orthographic e perspective

I sensori di visione possono essere utilizzati in vari modi e risultano essere molto flessibili. Infatti possono essere utilizzati per visualizzare le immagini fisse o in movimento da un programma esterno o da un plugin. I plugin possono anche fornire algoritmi personalizzati per elaborare le immagini. Per elaborare le immagini conviene utilizzare i filtri incorporati su V-Rep che possono essere combinati in modo molto flessibile.

Attualmente sono disponibili altri sensori di visione commerciali (Figura 3.8): come la camera per la rilevazione delle regioni di un oggetto, il sensore di visione DVS128, il modello Kinect della Microsoft. Inoltre solo sotto Windows (per il momento) è possibile interfacciare V-Rep con un sensore Kinect reale.

(7)

3.4 Meccanismo di controllo di V-Rep

Figura 3.8.: V-Rep sensori di visione commerciali

3.3.4. Moduli di Calcolo

V-Rep ha diversi moduli di calcolo che possono operare direttamente su uno o più oggetti della scena. Di seguito sono riportati i principali moduli di calcolo di presenti:

Forward and inverse kinematics module: permette di calcolare la cinematica diretta ed inversa di un qualsiasi tipo di meccanismo (ramificato, chiuso, ridondante, contenente cicli annidati, ecc). Il modulo si basa sul calcolo dei minimi quadrati pseudoinversa smorzato.

Dynamics or physics module: consente di simulare le interazioni tra gli oggetti per-mettendo a questi di cadere, di scontrarsi, di rimbalzare ,ma anche a un manipolatore di afferrare gli oggetti, su un nastro trasportatore o ad un veicolo di rotolare in modo realistico su terreni irregolari.

Path planning module: esegue calcoli di pianificazione del percorso per gli oggetti in 2-6 dimensioni. Permette di risolvere problemi con vincoli olonomi e non;

Motion planning module: Modulo di pianificazione del movimento del V-REP con-sente la gestione di attività di pianificazione di movimento per catene cinematiche.

Collision detection module: il modulo consente di monitorare, registrare e visualizzare le collisioni che potrebbero verificarsi tra qualsiasi entità;

Minimum distance calculation module: permette il calcolo della distanza minima veloci tra qualsiasi forma (convessa, concava, aperto, chiuso, ecc) o un insieme di forme. Il modulo utilizza le stesse strutture dati del modulo di rilevamento delle collisioni. Ottimiz-zazione supplementare è anche realizzato con una tecnica di memorizOttimiz-zazione nella cache di coerenza temporale.

A differenza di molti altri pacchetti software di simulazione, V-Rep non è un simulatore di dinamica pura, infatti, può essere visto come un simulatore ibrido che combina cinematica e dinamica al fine di ottenere le migliori prestazioni per i vari scenari di simulazione.

3.4. Meccanismo di controllo di V-Rep

V-REP offre vari modi per controllare le simulazioni e la personalizzazione del simulatore stesso (Figura 3.9). V-Rep è avvolto da una in una libreria di funzioni ed è in attesa di una applicazione client. L’applicazione client predefinita presente in V-Rep è abbastanza semplice e si occupa di caricare i moduli di estensione, di registrare le callback di un evento, inoltra l’evento ai moduli di estensione caricati e gestisce il ciclo dell’applicazione. V-Rep permette all’utente di scegliere tra diverse tecniche di programmazione anche simultaneamente:

(8)

Figura 3.9.: V-Rep meccanismo di controllo

Embedded scripts: Questa rappresenta la caratteristica più potente e distintiva di V-Rep. Il ciclo della simulazione ha inizio a partire da un semplice script Lua chiamato main. Lo script main gestisce le funzionalità generali ed è responsabile delle chiamate degli script figli. Uno script figlio, a differenza dello script main, è associato a un oggetto specifico nella scena simulazione, e gestisce una particolare parte della simulazione. Questo script è parte integrante del suo oggetto e verrà duplicata e serializzato insieme ad esso.

Add-ons: Allo stesso modo di uno script incorporato, gli add-ons sono supportati in V-Rep tramite script Lua. Possono essere utilizzati come funzioni autonome (comodo per scrivere importatori/esportatori).

Plugins: I plugins sono utilizzati in V-Rep come un comodo strumento di personalizza-zione del simulatore. Essi possono registrarsi comandi personalizzati Lua e consente l’ese-cuzione di funzioni di callback veloci all’interno di un embedded script. I plugins possono anche estendere le funzionalità di un particolare modello di simulazione o di un oggetto.

Remote API clients: L’interfaccia API remota in V-Rep consente l’interazione tra V-Rep e un soggetto esterno tramite la comunicazione via socket.

ROS nodes: V-Rep può essere controllato mediante nodi ROS. Infatti è possibile chia-mare comandi di V-Rep tramite i servizi ROS, leggere ed inviare dati da V-Rep su ROS.

3.4.1. Integrazione con ROS

L’integrazione tra ROS e V-Rep è supportata grazie ad un plugin rilasciato assieme al si-mulatore. Per poterlo utilizzare è necessario installarlo e dopo averlo compilato si ottiene la libreria che consente la comunicazione con ROS. Il plugin è composto da una serie di package:

• vrep_common: questo package viene utilizzato per generare i servizi e lo streaming di messaggi necessari per implementare le funzioni API di V-Rep. In questo modo le altre applicazioni possono comunicare con V-Rep tramite ROS in modo conveniente.

(9)

3.5 URDF e V-Rep

• vrep_plugin: questo package una volta compilato fornisce la libreria usata per inte-ragire con ROS.

V-Rep può agire come un normale nodo ROS, così altri nodo possono comunicare con V-Rep nei seguenti modi:

• mediante i ROS services offerti dal nodo V-Rep

• mediante la pubblicazione/sottoiscrizione basata su topics

3.5. URDF e V-Rep

URDF (Unified Robot Description Format) è un formato XML usato in ROS per la rap-presentazioni di modelli di robot. La descrizione del modello consiste nella definizione di due insiemi: l’insieme dei link e l’insieme dei joint. Un link descrive le caratteristiche di un corpo rigido dotato di inerzia (ad esempio un braccio o un piede) mentre un joint descrive la cinematica e la dinamica di un giunto. I link vengono inoltre usati per collegare tra loro i vari giunti.

Figura 3.10.: Esempio di modello di un robot in URDF

Un joint (Figura 3.10) viene definito specificando due attributi obbligatori e una serie di elementi, alcuni dei quali facoltativi. Gli attributi sono: name che specifica il nome univoco del joint e type che specifica il tipo di giunto; attualmente sono disponibili cinque tipi di joint.

• revolute: definisce un giunto a cerniera che ruota lungo un’asse con un intervallo di movimento limitato specificato da un limite inferiore e da un limite superiore;

(10)

• prismatic: specifica un giunto scorrevole lungo un’asse con un intervallo limitato di movimento specificato da un limite inferiore e superiore.

• fixed: non definisce propriamente un giunto poichè tutti i gradi di libertà di questo giunto sono bloccati.

• planar: questo tipo di giunto si muove perpendicolare rispetto all’asse specificato. Per importare un modello di un robot scritto in URDF su V-Rep è sufficiente utilizzare il plugin (Figura 3.11) presente su V-Rep che si occupa di importare i modelli in URDF. L’importazione è immediata ed il modello importato può essere salvato nel formato utilizzato dal simulatore V-Rep. Purtroppo però l’importatore URDF presente su V-Rep non consente di importare le texture del robot.

Figura 3.11.: V-Rep plugin per importare modello robot in URDF

3.6. Importazione dei modelli 3D su V-Rep

Per lo sviluppo di un ambiente di simulazione realistico sono necessari dei modelli 3d di buona qualità come per esempio quelli offerti da Sketchup [33]. Per riuscire ad importare un modello 3d su V-Rep si possono usare vari formati come collada (.dae), autodesk 3ds (.3ds), autocad (.dxf), oppure in formato .stl e in formato wavefront (.obj). Purtroppo dopo una serie di prove ci siamo resi conto che l’unico modo per importare i modelli 3d assieme alle texture su V-Rep è quello di utilizzare il modello 3d in formato wavefront. A seguito di vari crash durante la fase di importazione di modelli 3d in wavefront su V-Rep siamo andati a studiare le cause di questo problema. Abbiamo scoperto che il simulatore V-Rep effettua una serie di test preliminari sulle forme prima che queste vengano effettivamente importate. Questo implica un tempo non trascurabile per importare il modello. Inoltre abbiamo capito che i vari crash sono dovuti al fatto che per ogni singolo gruppo di forme presenti nel file .obj vengono create altrettante forme sul modello V-Rep. Se queste forme risultano essere superiori a 2000, il simulatore V-Rep, oltre ad impiegare un molto tempo, richiede di terminare il processo manualmente. Per risolvere questo problema abbiamo seguito varie strade, inizialmente abbiamo modificato l’importatore su V-Rep in modo che in fase di importazione tutte le forme venissero raggruppante tutte in una. Un alternativa è quella di utilizzare dei software esterni come Blender [34], MeshLab [35], Autodesk 3ds [36] o Sketchup per suddividere il modello in più file con un minor numero di forme, ed importare successivamente le varie parti che compongono il modello iniziale. Oltre ai modelli offerti da Sketchup si sono rese utile le texture presenti in cgtexture [37].

(11)

3.7 V-Rep Implementazione

3.7. V-Rep Implementazione

Per validare gli algoritmi di assistenza abbiamo deciso inizialmente di utilizzare il simula-tore V-Rep ed il modello di robot youBot della Kuka. Il motivo di questa scelta è dovuto dalla volontà di procedere, nel caso gli algoritmi sviluppati dessero dei buoni risultati, agli esperimenti sul robot youBot reale. Inoltre abbiamo preparato il modello della macchina de-molitrice (sezione 1.1) sul simulatore V-Rep per verificare, in futuro, gli algoritmi sviluppati prima in simulazione e poi sulla macchina reale.

3.7.1. Scena youBot

Per testare gli algoritmi implementati è necessario preparare il modello del robot e la scena (Figura 3.12) sul simulatore V-Rep. Il modello dello youBot presente sul simulatore è stato modificato per poterlo controllare attraverso ROS. Inoltre lo stack di navigazione di ROS necessità di una serie di informazioni provenienti dal robot. In particolare il robot deve inviare le informazioni odometriche, le informazioni relative all’ambiente, le trasformazioni dei sistemi di riferimento usati.

Figura 3.12.: Implementazione della scena per il modello youBot su V-Rep

Il modello dello youBot, già presente su V-Rep, è stato modificato mediante per integrare il simulatore e lo stack di navigazione. La scena è stata gestità mediante una serie di embedded scripts appositamente creati per gestire il robot, i sensori, i dati odometrici e per guidare il veicolo da ROS. Lo sviluppo della scena ha coinvolto:

• implementazione della comunicazione con ROS

• costruzione della gerarchia dei frame e l’invio su ROS mediante /tf • gestione dei sensori laser e kinect per la comunicazione con ROS • invio segnale odometria su ROS

3.7.2. Modello Brokk

Come ulteriore sviluppo è stato creato il modello della macchina demolitrice della Brokk sul simulatore V-Rep per una futura l’analisi degli algoritmi di assistenza implementati in modo da ricreare un ambiente virtuale il più possibile vicino a quello reale.

(12)

Figura 3.13.: Mesh della macchina da lavoro importata su V-Rep

Esistono vari linguaggi per descrivere un modello di un robot come per esempio il linguag-gio URDF usato su ROS. Inizialmente abbiamo cercato di creare il modello del robot della Brokk mediante il linguaggio URDF in modo da garantire una maggiore portabilità tra i va-ri software. Purtroppo attualmente V-Rep non supporta l’importazione di modelli di robot scritti in URDF comprensivi di texture. Si è quindi reso necessario sviluppare il modello del robot direttamente su V-Rep. Il lavoro inizia dalla mesh della Brokk (Figura 3.13) che deve essere importata assieme alle texture su V-Rep.

Figura 3.14.: Suddivisione delle mesh della macchina da lavoro

Una volta importata il modello con le texture su V-Rep è necessario preparare le mesh (Figura 3.14) per la simulazione dinamica. Il lavoro ha coinvolto:

• definizione del modello dinamico della macchina

• inserimento dei giunti, configurazione e implementazione del codice per la loro gestione • definizione della cinematica inversa del braccio

• implmentare la comunicazione con ROS

(13)

3.7 V-Rep Implementazione

In seguito vengono mostrate le varie fasi(Figura 3.15,Figura 3.16,Figura 3.17,Figura 3.18) per la costruzione del modello della macchina da lavoro:

Figura 3.15.: Definizione del modello dinamico della base mobile della macchina da lavoro

Figura 3.16.: Implemendatione del modello dinamico del braccio e della cinematica inversa su V-Rep

(14)

Riferimenti

Documenti correlati

La presente dichiarazione deve essere corredate da fotocopia, non autenticata, di documento di identità in corso di validità, del sottoscrittore.In caso di ATI

Interludio: risposta di un sistema lineare a reticoli sinusoidali e Trasformata di Fourier. Trasformata

• La corteccia visiva primaria è la prima stazione del sistema visivo in cui compaiono cellule che ricevono informazione da entrambi gli occhi (cellule binoculari). • Ogni cellula

I fronti d'onda delle onde luminose contengono, nella loro forma e struttura, un'informazione che il nostro sistema visivo elabora per restituirci la nostra visione del mondo:

Nelle ultime 2 colonne rosso e verde indicano il superamento, o meno, della soglia di saturazione del 40% per l’area medica e del 30% per le terapie intensive (dati

N.B.: Il sopralluogo dovrà essere effettuato dal legale rappresentante o direttore tecnico dell’impresa munito di valido documento

N.B.: Il sopralluogo dovrà essere effettuato dal legale rappresentante o direttore tecnico dell’impresa munito di valido documento

Nel foro di sondaggio, all'estrazione delle aste, e stato rilevato il livello della superficie di falda; essa e risultata essere posta ad una profondità di circa 1.5 m dal