Microsoft Robotics Studio Marco Petrucco [email protected] Microsoft Student Partner - Udine Microsoft Robotics Studio Una piattaforma di sviluppo per la robotica, che supporta varie tipologie di utenti, hardware e scenari applicativi Microsoft Robotics Studio Runtime Concurrency Services infrastructure Authoring Tools Simulation Tool Visual Programming Language Services and Samples Samples and tutorials Robot services Robot models Technology services Microsoft Robotics Studio Struttura di una tipica applicazione robotica: Bumper (Sensor) Motor Message Box (Actuator) Orchestrator Motor Infrared Detector (Sensor) Bumper (Sensor) Composta da componenti debolmente accopiati eseguiti concorrentemente: Gestione di sensori/attuatori Interfaccia utente Microsoft Robotics Studio In breve Robotics Studio usa una libreria concorrente basata su .NET Semplifica lo sviluppo di applicazioni asincrone Ha un'architettura di messaggistica modulare orientata ai servizi usata per determinare lo stato dei sensori/attuatori tramite browser. Microsoft Robotics Studio DSS (Decentralized System Services) Fornisce i servizi di runtime Scambio di messaggi asincroni fra i nodi Un meccanismo di isolamento garantisce: l'affidabilità il parallelismo dei componenti Microsoft Robotics Studio Componenti del DSS Common Concurrency Runtime (CCR) libreria di costrutti di programmazione usati per coordinare le operazioni fra applicazioni sviluppate con Robotics Studio Web Services Application Protocol (WSAP) Gestore dei Servizi Microsoft Robotics Studio I Servizi Un servizio Dispone di stati con proprietà definite Interagisce tramite scambio di messaggi Operazioni di base Recupero/manipulazione degli stati Notifica di eventi Port FIFO Service Handlers State Microsoft Robotics Studio Interazione UI service Joystick service Robot Motor services Sensor services Robotics Studio Runtime Lo stato dei servizi è osservabile a tutti i livelli dell'applicazione I servizi possono fornire una ricca rappresentazione dei dati Microsoft Robotics Studio Scenari di elaborazione Supporta l'elaborazione locale e distribuita Connected operation (esecuzione remota su PC) Disconnected autonomous operation (con monitoraggio opzionale via rete) Distributed execution (esecuzione distribuita tra le varie unità di elaborazione ) Microsoft Robotics Studio Adattabile ad un’ampia varietà di hardware Microsoft Robotics Studio Simulatore Simulazione Rendering 3D in XNA Motore fisico ad alte prestazioni PhysX™ by Ageia Technology Rapida prototipizzazione Debugging facilitato Aggiornabile Microsoft Robotics Studio Strumenti Controllo tramite Web browser Scripting (e.g., JScript) Windows Gadgets IDE e linguaggi di programmazione Microsoft Visual Studio and VS Express Microsoft C#, VB.Net, Iron Python, Jscript Microsoft Robotics Studio Programmazione visuale Visual Programming Tool Dataflow editing Simple connections Building blocks Model checking Code generation Per novizi ed esperti Microsoft Robotics Studio Tutorial ed esempi Decine di tutorial VB.Net, C#, JScript Basic input and output Autonomous navigation Supporto per LEGO® Mindstorms® RCX LEGO® Mindstorms® NXT Microsoft Robotics Studio Community Robotics Developer Center website www.msdn.microsoft.com/robotics Downloads Bug reporting Blogs Newsgroups Channel 9 videos and wiki