DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:'...

33
DODICH: caso d'uso e introduzione alla navigazione autonoma. Convegno finale DODICH 26 Gennaio 2015 CIRVE 9 Centro Interdipar>mentale per la Ricerca in Vi>coltura ed Enologia Dr. Ing. Nicolò Boscolo nicolo.boscolo@it9robo>cs.it

Transcript of DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:'...

Page 1: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

DODICH:'caso'd'uso'e'introduzione'alla'

navigazione'autonoma.'

Convegno'finale'DODICH''26'Gennaio'2015'

CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi>coltura'ed'Enologia'

Dr.'Ing.'Nicolò'Boscolo'nicolo.boscolo@it9robo>cs.it'

Page 2: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Chi'sono?'Ing.'Nicolò'Boscolo,'R&D'presso'IT+Robo>cs'

IT+Robo>cs'Spin9off'fondata'nel'2005'

IAS9Lab'Università'di'Padova'

Visual'inspec>on'Sistemi'real9>me''

Visual9guided'robo>cs'

Robo>cs'simula>ons'

Page 3: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Sommario'1.  Cosa'significa'navigazione'autonoma?'2.  Odometria'3.  Extended'Kalman'Filter'4.  Monte'Carlo'Localiza>on'5.  SLAM'

Page 4: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Cosa'significa'navigazione'autonoma'

•  La' navigazione' autonoma' è' il' compiere' da' parte' di' un'mezzo'con'mobilità'un'percorso'senza'nessun'controllo'da'parte'di'un'operatore.'

•  La'navigazione'in'DODICH'è'2D'con'supporto''•  La'navigazione'3D'è'quella'compiuta'da'quadrico_eri'•  Due'>pi'di' informazioni'necessarie:'posizione'a?uale'del'

veicolo'e'mappa'

Page 5: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Robot'e'posizione:'odometria'•  E’' la'misura' di' quanto' un' robot' ha' traslato' e' ruotato'

rispe_o'all’istante'precedente'•  Posizione'delle'ruote'(encoder)'e'modello'matema>co'•  Il'robot'non'dovrebbe'avere'un'errore'di'più'di'2'cm'per'

ogni' metro' di' traslazione' e' 2°' per' ogni' 45°' compiu>' in'rotazione.'

•  Sensori'di'misura:'laser''

Page 6: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Odometria'e'laser:'problemi'•  La' parte' difficile' sui' da>' odometrici' e' da>'laser'è'quella'di'o_enere'il'giusto'tempismo.'

•  I' da>' laser' a' un' certo' tempo' t' verranno'scarta>' se' i' da>' odometrici' vengono'recupera>' solo' in' un' istante' temporale'successivo.'

•  Per' validare' le' osservazioni' effe_uate' con' il'laser'e'associarle'ai'da>'dell’odometria' si' fa'affidamento'a'metodi'prediBvi.'

Page 7: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

EKF:'Extended'Kalman'Filter'

•  K'a'pedice' indica' l’insieme'di' informazioni' rela>ve'allo' stato'K9esimo.' Nel' nostro' caso' lo' possiamo' pensare' come' un' tempo'discreto:''k=1'significa'1ms,'k=2'significa'2ms.'

•  OBBIETTIVO:' s>mare' il' valore' dell’insieme' dei' segnali' laser' e'dell’odometria'X'per' il'K'a_uale'avendo'conoscenza'dell’istante'precedente'KK1.'

•  K' maiuscolo' è' il' centro' di' tu?a' la' formula' ed' è' chiamato'"Kalman' Gain"' e' indica' quanto' consideriamo' buone' le'misurazioni'a_uali'e'lo'stato'precedente.'

•  L’unico'componente'sconosciuto'è'proprio'il'Kalman'Gain,'non'è'semplice'farlo'ma'abbiamo'tuk'gli'strumen>'per'farlo.'

•  Solitamente'si'parte'da'0,5'e'poi'si'ado_ano'diverse'tecniche'per'aggiornare'questo'valore.'

Page 8: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Monte'Carlo'LocalizaRon'1'•  Conosciuta'anche'come'par>cle'filter'localiza>on,'è'un'algoritmo'di'localizzazione'per'robot'mobili'

•  Data' una' mappa' dell'ambiente,' l'algoritmo'calcola' la'posizione'e' l'orientamento'di'un'robot'rispe_o' all’ambiente' stesso' (differente' da'odometria)'

•  L'algoritmo' u>lizza' un' parRcle' filter' per'rappresentare'la'distribuzione'degli'sta>'possibili.'

•  Ogni'parRcella'(par>cle)'rappresenta'un'possibile'stato,'cioè'un'ipotesi'di'cui'il'robot'è.'

Page 9: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

ParRcle:'rappresentazione'dello'stato'•  Ogni' parRcella' rappresenta' un' possibile' stato' del'robot.'

•  Nel' caso' di' un' robot' che' si' muove' su' due'dimensioni,' la' par>cella' sarà'una' tupla' rotazione'e'traslazione'del'robot.'

•  Il' livello'di' fedeltà'della'posizione'del' robot' è'data'da'una'distribuzione'di'probabilità'sullo'spazio'dove'il'robot'può'muoversi'

•  Regioni' nello' spazio' di' stato' con' molte' par>celle'corrispondono' ad' una' maggiore' probabilità' che' il'robot'sarà'lì'

•  Questo' funziona' solo' se' l'ambiente' è' sta>ca' e' non'cambia' con' il' tempo.' (derivazione' da' proprietà' di'Markov)'

Page 10: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Aggiornamento'dei'daR'dai'sensori'•  Per'ogni'par>cella,' il'robot'calcola'con'quale'probabilità' i' segnali' rileva>' dai' sensori'possano' essere' effekvamente'percepi>' con'il'robot'in'quella'posizione.'

•  Si' assegna' un' peso' per' ogni' par>cella'proporzionalmente'alla'sua'probabilità.'

•  Poi ,' s i' agg iungono' con' una' certa'distribuzione'nuove'par>celle.' (più'par>celle'dove'c’è'più'probabilità'che'sia'il'robot)'

Page 11: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Monte'Carlo'LocalizaRon'2'•  L'algoritmo' inizia' >picamente' con' una' distribuzione' casuale'

uniforme' par>celle' sulla' mappa,' cioè' il' robot' non' ha'informazioni' su' dove' si' trova' e' si' assume' che' la' stessa'probabilità'di'essere'in'qualsiasi'punto'dello'spazio.''

•  Ogni' volta' che' il' robot' si' muove' il' par>cle' filter' sposta' le'parRcelle'in'modo'da'predire'il'nuovo'stato'dopo'il'movimento.''

•  Ogni' volta' che' il' robot' si' muove' e' percepisce' qualcosa,' le'probabilità'delle'par>celle'viene'aggiornata.'

•  Ogni'par>cella'con>ene'una'descrizione'completa'di'un'possibile'stato'futuro.'Quando'il'robot'rileva'l'ambiente,'si'scarta'par>celle'incoeren>'con'questa'osservazione,'e'genera'più'par>celle'vicine'a'quelle'che'appaiono'coeren>.'

•  Alla'fine,'auspicabilmente'maggior'parRcelle'convergere'in'cui'il'robot'è'in'realtà.'

Page 12: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Robot'con'movimenR'1D'

Page 13: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Inizio'L'algoritmo' inizializza' con' una' distribuzione'uniforme'delle'par>celle.' Il' robot' considera' la'stessa' probabilità' di' essere' in' qualsiasi' punto'dello' spazio' lungo' il' corridoio,' anche' se' è'fisicamente'alla'prima'porta.'

Page 14: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Aggiornamento'daR'sensori'Il' robot'rileva'una'porta.'Si'assegna'un'peso'a'ciascuna' delle' par>celle.' Le' par>celle' che'potrebbero' dare' questa' le_ura' ricevono' un'peso'maggiore.'

Page 15: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Ricampionamento'Il'robot'genera'una'serie'di'nuove'par>celle,'la'maggior' parte' di' esse' saranno' a_orno' alle'par>celle' preceden>' con' più' peso.' Si' ri>ene'ora' che' il' robot' sia' di' fronte' ad' una' delle' tre'porte.'

Page 16: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Aggiornamento'della'posizione'Il'robot'si'muove'di'certa'distanza'verso'destra.'Tu_e'le'par>celle'si'muovono'anche'a'destra,'e'viene' applicato' un' po' 'di' rumore.' Il' robot' è'fisicamente'tra'la'seconda'e'la'terza'porta.'

Page 17: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Aggiornamento'daR'sensori'Il' robot' non' rileva' una' porta.' Si' assegna' un'peso' a' ciascuna' delle' par>celle.' Le' par>celle'che' potrebbero' dare' questa' le_ura' ricevono'un'peso'maggiore.'

Page 18: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Ricampionamento'Il' robot' genera' una' serie' di' nuove' par>celle,'con' la' maggior' parte' di' esse' a_orno' alle'par>celle'preceden>'con'più'peso.'Ora'il'robot'crede'di'essere'in'una'delle'due'posizioni.'

Page 19: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Aggiornamento'della'posizione'Il'robot'si'muove'di'una'certa'distanza'verso'sinistra.'Tu_e'le'par>celle'tendono'a'spostarsi'verso'sinistra,'e'viene'applicato'un'po''di'rumore.'Il'robot'è'fisicamente'alla'seconda'porta.'

Page 20: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Aggiornamento'daR'sensori'Il'robot'rileva'una'porta.'Si'assegna'un'peso'a'ciascuna' delle' par>celle.' Le' par>celle' che'potrebbero' dare' questa' le_ura' ricevono' un'peso'maggiore.'

Page 21: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Ricampionamento'Il'robot'genera'una'serie'di'nuove'par>celle,'la'maggior'parte'di'esse'verrà'generato'a_orno'alle'par>celle'preceden>'con'più'peso.'Il'robot'si'è'localizzato'corre?amente.'

Page 22: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Monte'Carlo'LocalizaRon'

Video!'

Page 23: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Come'costruire'la'mappa?'SLAM'SLAM:'Simultaneous'Localiza>on'And'Mapping'

SLAM'è'formata'da'molteplici'moduli:'1.  Landmark'extrac>on'2.  Data'associa>on'3.  State'es>ma>on'4.  State'update'5.  Landmark'update''

Page 24: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Landmarks'•  Cara_eris>che' che' posso' essere' facilmente'riosservate'e'dis>nte'dall'ambiente.'

•  Sono'u>lizzate'dal'robot'per'scoprire'dove'si'trova.'

•  Un' modo' per' immaginare' come' questo'funziona' per' il' robot' è' di' immaginare' se'stessi'bendaR.'

•  Sonar' e' scanner' laser' sono' per' il' robot' la'sensazione'del'ta_o.'

Page 25: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Landmarks'extracRon'•  Quando' abbiamo' deciso' che' cosa' usare'come' punR' di' riferimento' (landmarks)' per'un' robot' dovrebbe' u>lizzare,' è' necessario'essere' in' grado' di' percepirli' tramite' input'sensoriali'(in'modo'affidabile).'

•  Esistono' diversi' modi' per' l'estrazione' di'landmarks'a'seconda'della'sensoris>ca'

•  Ci' focalizzeremo' su' algoritmi' di' landmarks'extrac>on' per' scanner' laser:' Spikes' e'RANSAC.'

Page 26: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Spike'landmarks'•  La' Spike' landmarks' extrac>on' usa' la'differenza'di'valore'tra' le' le_ure'per'trovare'pun>'di'riferimento.'

•  Essi'sono'iden>fica>'trovando'quei'valori'che''nell'intervallo' di' una' scansione' laser'differiscono' di' più' di' una' certa' quan>tà,' ad'esempio'0,5'metri'

•  Ques>' landmark' si' basano' sul' fa_o' che' il'paesaggio'cambi'molto'tra'due'raggi'laser.'

•  Algoritmo' non' è' efficace' in' ambienR' con'contorni'troppo'lisci.'

Page 27: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Spikes'Landmarks'

Page 28: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

RANSAC'•  RANSAC' (Random' Sampling' Consensus)' è' un' metodo' che' può'

essere'u>lizzato'per'estrarre'linee'da'scansione'laser.'•  Le'linee'saranno'poi'usate'a'loro'volta'come'pun>'di'riferimento.'•  Funziona' bene' in' ambien>' interni' (e' non' solo!!)' dove' le' linee'

re_e'sono'spesso'osservate'da'scansioni'laser'delle'pare>'(filari).'•  RANSAC'trova'le'linee'prendendo'un'campione'di'le?ure'laser'e,'

approssimando' tramite' il'metodo'dei'minimi'quadraR,' trova' la're_a'di'regressione'che'a_raversa'queste'le_ure.'

•  Una'volta'fa_o'questo'RANSAC'controlla'quante'le?ure'laser'si'trovano' vicino' a' questa' re?a' di' regressione.' Se' il' numero' è'sopra'una' soglia'possiamo' supporre' con' sicurezza' che'abbiamo'visto'una'linea'(e'quindi'visto'un'segmento'di'muro).'La'soglia'è'chiamata'consensus.'

Page 29: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

RANSAC'

Page 30: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Data'AssociaRon'•  Il'problema'della'data'associa>on'è'rela>vo'alla'ri9osservazione'dei'landmarks.'

•  In'pra>ca'possono'verificarsi'i'seguen>'problemi'in'associazione'da>:'–  Potrebbe'non'essere'possibile'ri9osservare'i'landmarks'ad'ogni'passo.''

–  Si'potrebbe'erroneamente'associare'un'punto'di'riferimento'ad'un'altro'visto'in'precedenza.'

•  Per'ovviare'al'problema'la'prima'regola'da'seguire''è'che'in'realtà'non'consideriamo'un'landmark'come'u>le'fino'a'che'non'è'stato'osservato'N'volte.'(Valida>on'gate)'

Page 31: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Simultaneous'LocalizaRon'And'Mapping'

Video!'

Page 32: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Domande,'dubbi,'curiosità'?'

Page 33: DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' · DODICH:' caso'd'uso'e'introduzione'alla' navigazione'autonoma.' Convegno'finale'DODICH'' 26'Gennaio'2015' CIRVE'9'Centro'Interdipar>mentale'per'la'Ricerca'in'Vi

Grazie'per'la'partecipazione!'nicolo.boscolo@it9robo>cs.it'

'