Sei sulla pagina 1di 1

PropostediTesisuROS

Introduzione
ROS (Robot Operating System) un (meta)sistema operativo per robot sviluppato principalmente da
WillowGarage(http://www.willowgarage.com/),macondiverseistituzionieprivatichecollaboranograzie
alsuosistemadisviluppofederativo.L'architetturamodularebasatasuungrafoconsentedisvilupparei
singoli nodi in maniera indipendente e la comunicazione avviene tramite interfacce comuni (topics) di
scambio messaggi. Ci rende possibile l'interazione tra i singoli nodi e servizi, anche in ambiente
distribuito.

ROS fornisce servizi e librerie di basso come di alto livello, ad esempio l'astrazione dell'hardware e il
controllodeisingolidispositivi,maanchel'implementazionedialgoritmidilivellopielevato,peresempio
perilmapping,lalocalizzazione,lavisioneeloslam.Inoltreforniscedeipotentistrumentidivisualizzazione
deidati.Nonunsistemaoperativorealtimemapuessereintegratoconcodicerealtime.Sebbenesia
previsto il supporto per altri sistemi, al momento quello meglio supportato ufficialmente Ubuntu. I
linguaggidiprogrammazioneprincipalisonoC++ePython,mastannosviluppandorapidamentelibreriein
Lisp,Octave(unpacchettotipoMatlab,maopensource)eJava.

ROSorganizzatoinstacksepackages.

Ipackagessonol'unitprincipalediorganizzazionedelsoftwareinROS.Unpackagedisolitocontienetutti
glielementi(eseguibilideinodi,librerie,dati)cheutileorganizzarelogicamenteinsieme.Adesempioun
packageperleimmaginichiamatoimage_viewcontieneiprogrammipervederelesingoleimmagini,per
vedereglistreamdaunatelecameramonoepervederlidallastereocamera.

Gli stack invece sono collezioni di package che forniscono funzionalit aggregate: sempre nel caso di
image_view, esso contenuto in uno stack chiamato image_pipeline dove ci sono altri package
chiamati camera_calibration (calibrazione della videocamera), image_proc (processing di
immaginimono),stereo_image_proc(processingdiimmaginistereo),etc.

Obbiettivo
Lobbiettivo della tesi la creazione di un nostro stack, ad esempio chiamato polito_apps o
labrob_apps o come ci pare (date un'occhiata ahttp://www.ros.org/wiki/StackList, alcuni stack sono
mantenutidagruppidiricercadiuniversitterze,comeadesempioua_apps).Inquestostackpotremmo
creare(utilizzandolarisorsatesisti)ipackagecheciconsentanodifarelestessecosechefacciamogi:path
planning, slam con particle filters, task allocation, visione omnidirezionale, etc., in modo da ipotizzare
anche di migrare (non necessariamente a titolo definitivo) a ROS. Ci infatti avrebbe il vantaggio che ci
consentirebbedilavoraresuunsoftwarevitaleericcodipotenzialit,moltoflessibile,nonch(selecose
funzionanobene)diacquisireunacertavisibilitperilnostrogruppo.

Perquantoriguardaleproposteditesi,quindi,sitratterebbedi:

individuarecandidatichenonsispaventinoalleparoleC++eLinux
implementareunpackageapartiredalnostrocodicegiesistente:ciconsisterebbenellostudio
degli algoritmi gi implementati e funzionanti in Player (http://playerstage.sourceforge.net/) e
nellalororeimplementazionecomepackagediROS.Questoprocessodovrebbeessereabbastanza
agevoledatal'affinitarchitetturaletraPlayereROSeilfattocheentrambiutilizzanoilC++.