Types de problématiques Système d’exploitation Quel CPU? Quelles fonctionnalités? Temps-réel? Stacks réseaux? Plateforme Applicative Interfaces graphiques? Architectures des composants?
Le système d’exploitation date
Systèmes d’exploitations Monolithique / General Purpose Hardware sur étagère Facilité de développement Rapidité de développement La taille peut être un problème Drivers et flexibilité de l’OS Monolithique/ Spécialisé Hardware sur étagère/ Hardware custom Rapidité de développement pour des verticaux spécifiques (APIs) Support Hardware/Driver Modulaire/ Spécialisé Nécessite du développement BSP/Driver Modularité = flexibilité (taille, fonctionnalité) Image maîtrisée et vérouillée
Windows Embedded Point of Service Dedicated servers Consumer Robotics Portable media Industrial Automation Telematics Thin Client Industrial Automation Medical Entertainment Thin Client Office Automation ATM / Kiosk Kiosks Entertainment Personal Navigation Dedicated servers Point of Service
Le .NET MicroFramework
La plateforme applicative date
Robotics Developer Studio Application Robotique Orchestration Contrôle Capteurs Actuateurs Services de référence Services Services d’édition Simulation Visualisation Capteurs Actuateurs Algorithmes ... Runtime Decentralized Software Services Concurrency and Coordination Diagnostics Monitoring Activation Découverte UX Stockage
Managed Extensibility Framework Stéphanie Hertrich
Les idées pour la suite Lync 2010 (ou Messenger) Avec le SDK Lync, on peut connecter le robot à une infra de communications unifiées Reactive Extensions (Rx) « LINQ to events » L’asynchronisme à la portée de tous Kinect et OpenNI !! Windows Azure (le VM Role pour MSRDS / et le reste) F# Les langages fonctionnels sont particulièrements adaptés à la robotique
Microsoft Regional Director .Net du Servo au Cerveau Nicolas CLERC CEO/CTO QuidMind nclerc@quidmind.com Microsoft Regional Director
Nicolas CLERC nclerc@quidmind.com Architecte logiciel et expert technique reconnu par Microsoft, les Microsoft Regional Director ont pour rôle de vous accompagner à la mise en œuvre des technologies et outils Microsoft, dans le cadre de migrations applicatives, de démarrages de projets ou de prototypages, aussi bien au niveau stratégique et décisionnaire qu’au sein de vos équipes de production. Regional Director depuis 10ans et créateur de la société d’expertise logicielle QuidMind, Nicolas CLERC est formateur officiel au sein du programme Microsoft Metro (Windows Azure, Silverlight, Unified Communication, …). www.quidmind.com www.theregion.com Silverlight Coaching R & D Accompagnement stratégique Azure Sensor & MultiTouch WPF AppFabric RIA Services VSTO Windows Phone 7 WCF Innovation Architecture SOA & architecture distribuée Confidentialité Veille technologique Sécurité
Agenda Le Robot Le pilotage La télécommande Retour d’information
Un robot vert ? CLOud RObot FEELing CloRoFeel
Le Robot CloRoFeel
Hardware Une carte PC s.o.c sous Windows XP allégé : Roboard RB110 Classe x486, 256Mo RAM, 1Ghz USB, I²C, RJ45, Jtag, SPI, RS232/485 CMOS/TTL, FTDI 10*ADC, 16(24)*PWM bidirectionnel SD Card (4Go) MiniPci (VGA/Wifi) 4 servos à rotation continue pour le déplacement (PWM) 1 servo 180° pour l’orientation de la camera (PWM) Un compas et un accéléromètre (I²C) Un afficheur LCD TTL 2lignes Une webcam (USB) Une clé wifi (USB) Prévu : senseur de contact , sonar à ultrason (ADC) Alimentations dissociées servo / électronique Le tout sur chassis « Custom »
Logiciels OS : Windows XP Pro allégé Installation sur SD Card via cle USB Boot sur SD Card (simulation IDE) Librairie native d’accès aux périphériques intégrés I²C, PWM, ADC Librairie d’interopérabilité .Net Applicatif et services interne CloRoFeel .NET 4 Visual Studio 2010 Windows Azure Logiciel Client Clorofeel Une application Windows Phone 7 (Clorofeel Remote) Une application Silverlight 4 (Clorofeel Viewer)
Architecture « POC » WCF WCF CloRoFeel Main Service CloRoFeel WebCam Grabber RoboIO_dotNet RoboIo Lib .Net 4 Windows XP Pro allégée Roboard RB110 PWM USB
Les contraintes CloRoFeel Ressource limitée de Clorofeel Pilotage du robot à distance À partir d’un Windows Phone 7 Mais ouverture vers d’autre plateforme Accessibilité lointaine Au delà de la portée directe d’un émetteur/récepteur embarqué Éloignement géographique potentiellement important et non connu par avance, Possibilité de pilotage multiple Facilité de mise en œuvre
CloRoFeel et AppFabric Les fonctionnalités de pilotage sont exposé sous forme d’un service WCF Utilisable localement : connexion directe entre la télecommande et le robot Temps de réponse et réactivité amélioré Accessible à distance : exposition du service de pilotage via Azure AppFabric Sécurisation : pas d’accès directe au robot, pas d’ouverture de port IP au niveau réseau en entrée. Gestion de la configuration par code ou par paramétrage (App.Config)
Fonctionnalité d’interconnexion d’application Bus applicatif Relai de service Basé sur WCF Intégration optimale avec WCF (.Net) Binding .Net, TCP, sérialisation binaire Mais interopérable http/https, SOAP, REST, … Permet d’exposer un service local et le rendre accessible Y compris ceux isolés (derrière un firewall, une box non ouverte, …)
Le service de pilotage Interface Simple Intégration d’une sécurité basique (!=hacking de Robot ) Définition de la vitesse droite et gauche Position de la caméra
Architecture logicielle CloRoFeel Remote AppFabric CloRoFeel Main service
DEMO Service de Pilotage Exposition sur Azure App Fabric Utilisation du programme de test
CloRoFeel Remote Application Windows Phone 7 MultiTouch Transmet au service exposé sur AppFabric les directives de pilotage du Robot Vitesse droite Vitesse gauche Positionnement de la camera
DEMO Pilotage avec CloRoFeel Remote
CloRoFeel et la vidéo Consommation de temps cpu pour l’acquisition Consommation de temps CPU et de bande passante pour la transmission Utilisation d’un service de diffusion de la vidéo Service WCF hébergé dans Azure Fait office de tampon : CloRoFeel upload une seule fois l’image, le service la diffuse autant de fois que nécessaire Le nombre de viewer n’a aucun impact sur CloRoFeel Une méthode d’upload d’image sécurisé (token) Une méthode de download d’image Viewer intégré à Clorofeel Remote Viewer web Silverlight 4
Architecture logicielle CloRoFeel Remote CloRoFeel webCam Grabber Video Service Web viewer
Demo CloroFeel Remote avec la vidéo Viewer Silverlight
Architecture logicielle CloRoFeel Remote AppFabric CloRoFeel Main service CloRoFeel webCam Grabber Video Service Web viewer
Verdict : Robot & Cloud Permet de simplifier l’accès à un dispositif embarqué Multi-technologie et interopérable ‘Transparent’ Externalisation de traitement couteux, évolutivité, souplesse et puissance disponible Technologie de développement maitrisée de bout en bout MAIS des contraintes spécifiques Délai de propagation Fiabilité des réseaux d’interconnexion Pas de « temps réel » ni timing garanti
Verdict : Robot & Cloud DONC Continuer à utiliser l’intelligence locale pour les comportements « temps réel » sans pour autant négliger l’apport de services et fonctionnalités moins « embarqués » Sélectionner un matériel avec un OS adaptés aux besoins mais ouvert Windows ‘light’, Windows Embedded, Windows CE, MicroFramework Camera avec logique de compression embarqué Déporter les comportements évolués, non temps réel ou nécessitant de la puissance de calcul/stockage dans le cloud Mémorisation, Analyse, … Partage et capitalisation
MSDN et TechNet : l’essentiel des ressources techniques à portée de clic Portail administration et infrastructure pour informaticiens Portail de ressources technique pour développeurs http://technet.com http://msdn.com
Le « Cloud » by Microsoft Azure est la plateforme de « cloud computing » Microsoft Basé sur Windows 2008 R2 64bit, Hyper-V, Framework .NET , WCF, … SQL Serveur 2008, … Packaged Software Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime Votre responsabilité Infrastructure (as a Service) Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime Géré par le fournisseur Votre responsabilité Platform (as a Service) Géré par le fournisseur Votre responsabilité Storage Servers Networking O/S Middleware Virtualization Applications Runtime Data Software (as a Service) Géré par le fournisseur Storage Servers Networking O/S Middleware Virtualization Applications Runtime Data
Localisation des datacenters Amérique du Nord Europe Asie - Pacifique N. Europe N. Central – U.S. W. Europe S. Central – U.S. E. Asia S.E. Asia