Programmazione.it v6.2
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Chat Forum
Robotics Studio, un IDE per sviluppare applicazioni di controllo per i robot
Scritto da Paolo De Nictolis il 27-06-2006 ore 01:42
Intel Software
Attirati dall'articolo di presentazione su Technology News, Elijah Baley, Daneel Olivaw ed io - i primi due protagonisti, umano e robotico, del ciclo dei robot di Asimov - abbiamo dato un'occhiata alla CTP (Community Technology Preview) di Microsoft Robotics Studio, l'IDE presentato martedì scorso alla RoboBusiness Conference 2006, con l'intenzione di cavalcare il mercato della robotica. Sul sito indicato sono presenti le demo di terze parti presentate alla conferenza, oltre ad una nutrita serie di tutorial.

Con Robotics Studio si possono generare servizi modulari per pilotare l'hardware dei sensori/attuatori attraverso interfacce Web o classiche applicazioni Win32. Il motore di simulazione PhysX, licenziato dalla AGEIA nella versione 2.4.2, offre un ambiente di simulazione 3D (potete vederne qualche spettacolare esempio), installato purtroppo solo su Windows XP (l'altra piattaforma supportata è Windows 2003 Server), ove richiede l'installazione della versione datata aprile 2006 delle DirectX.

Robotics Studio usa una libreria concorrente basata su .NET, che semplifica lo sviluppo di applicazioni asincrone, ed un'architettura di messaggistica modulare orientata ai servizi, basata sul modello REST, usata per determinare lo stato dei sensori/attuatori tramite browser.

Quest'architettura assicura la possibilità di sviluppo con qualsiasi linguaggio compatibile, ma quelli supportati da Microsoft sono: C#, VB.NET, JScript ed il nuovissimo IronPython.

Il file di setup pesa circa 25 MB, e la CTP può essere installata anche con la Visual C# 2005 Express Edition gratuita. Il setup non presenta alcuna difficoltà ma, come ricordato, se volete usufruire del motore 3D di AGEIA dovrete scaricare l'ultima versione delle DirectX: un download da 12 MB e passa.

Troverete tutti i file del prodotto in una cartella sotto la root del vostro disco fisso; in particolare nella bin, oltre agli Assembly, sono forniti i quattro DSS tools a linea di comando per creare e gestire i nodi DSS (vedi oltre), nella cartella documentation abbiamo la versione attuale dell'help, mentre le altre cartelle ospitano numerosi esempi. E' probabile che, come me, Elijah e soprattutto Daneel, siano attirati dalle spettacolari simulazioni della sottocartella samplesSimulationTutorials: basta lanciare in esecuzione il Microsoft Robotics Studio Command Prompt da Start | Programmi, e digitare devenv, seguito dal nome del file di progetto di uno degli esempi (per es. SimulationTutorial1.csproj), per poi premere il magnifico F5. Il rendering è ottimo anche su una modesta scheda grafica come la mia ATI Mobility Radeon X300.

I servizi del runtime sono forniti dai DSS (Decentralized System Services), che implementano lo scambio di messaggi asincroni fra nodi DSS; un meccanismo di isolamento garantisce l'affidabilità ed il parallelismo dei componenti in un sistema distribuito. I componenti dei DSS sono tre: il Common Concurrency Runtime (CCR), una libreria di costrutti di programmazione usati per coordinare le operazioni fra applicazioni sviluppate con Robotics Studio, il WSAP (Web Services Application Protocol), ed i servizi core di attivazione, discovery, persistenza, debugging e diagnostica. Per motivi prestazionali, la comunicazione con le porte esposte dai Web Services viene gestita da delegates C#, invece di usare thread del sistema operativo.

Per far partire un nodo DSS useremo l'utility dsshost.exe da riga di comando, specificando una porta per ricevere le richieste HTTP come parametro; potremo poi collegarci dal browser al nodo DSS, digitando http://localhost:numero_porta. Lo sviluppo di un'infrastruttura di servizi avviene in maniera mista: i servizi vengono creati e fatti partire dal Microsoft Robotics Studio Command Prompt, mentre il codice di integrazione viene scritto in Visual Studio. In generale, per utilizzare un servizio sono richiesti tre step: aggiungere un riferimento all'assembly che contiene il proxy del servizio da contattare (per es. RoboticsCommon.Proxy.dll per i sensori di contatto), inserire nel codice una direttiva using per il servizio, e creare una porta per la comunicazione con il servizio.

Verrà automaticamente generato un file manifesto XML, che contiene anche il riferimento al contratto del servizio. Si scrive poi il codice per far partire il servizio, che contiene anche il metodo per le sottoscrizioni, e si procede implementando gli handler per gli eventi. Per l'apprendimento, oltre alla Development Guide nell'Help, è anche disponibile una serie di tutorial, le consuete demo (corredate da intervista al team di sviluppo) su Channel 9, e ci si può rivolgere con fiducia al blog ed al newsgroup della Community.
Precedente: Firma digitale dei documenti PDF usando iTextSharp
Successiva: La modalità headless di Java
Intervento di Filippo Fadda a.k.a. dedalo del 27-06-2006 ore 01:43, San donato milanese (MI)
Duca
Duca

(1805 interventi)
Iscritto il 03-04-2001
Bell'articolo. Io voglio il LEGO MINDSTORM però, chi me lo regala per Natale?
Intervento di Nicola Troggio a.k.a. nicocpp del 28-06-2006 ore 09:54
Plebeo
Plebeo

(44 interventi)
Iscritto il 09-04-2001
Articolo molto interessante, ma mi associo a Fadda perché anch'io voglio il Lego Mindstorms!
Dovrebbe essere giunto a conclusione il lavoro di Steve Hassenplug, David Shilling, Ralph Hempel, John Barnes, cominciato nel settembre 2004 per la creazione del nuovo robot Lego. Sarà commercializzato tra non molto - si parlava entro agosto 2006 negli Stati Uniti e per Natale anche qui da noi - il nuovo gioiellino tecnologico presentato a Las Vegas il 4 gennaio scorso.
Il prezzo dovrebbe aggirarsi sui 249 dollari a cofezione.
Qesto intervento vuole essere un invito a qualche appassionato per tenerci informati e a Programmazione.it di dedicare un'attenzione particolare a questo prodotto se è vero che alle spalle della scrivania di Soren Lund, direttore dell'area laboratorio di ricerca Lego Mindstorms, c'è scritto: "Faremo per la robotica quello che iPod ha fatto per la musica".
C'è da crederci.
Intervento di Paolo De Nictolis a.k.a. natasha del 28-06-2006 ore 10:22, Tramutola (PZ)
Duca
Duca

(2068 interventi)
Iscritto il 23-05-2005
Citazione:
Qesto intervento vuole essere un invito a qualche appassionato per tenerci informati e a Programmazione.it di dedicare un'attenzione particolare a questo prodotto

E chi siamo noi per dire di no alle pressanti richieste dei lettori? Faremo praticamente TUTTA l'interfaccia .NET per Lego Mindstorms: http://msdn.microsoft.com/coding4fun/lego/default.aspx.
Ovviamente mica la faccio io che sono un modesto collaboratore, se la farà tutta nientepopodimenoche IL CONTE!!!!!
E tutte le volte che mi chiamerà per sapere come si fa un Add Reference in Visual Studio o una build condizionale, sfoggerò ovviamente il miglior repertorio di Cattivik: "Gnurant! Idiot! Ment' inferior'! Pivell'! Dilettant'! Fratell' minor' di James Goslìng!".
Copyright Programmazione.it™ 1999-2009. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.738 secondi. Sito ottimizzato per Mozilla Firefox. Powered by Kyron.