4. Hoy podemos conectarnos a casi cualquier tipo
de dispositivo
Este tipo de dispositivos son plataformas
minúsculas
Controles remotos o de dispositivos
Dispositivos de un solo uso
Dispositivos con un solo propósito
El procesador está allí simplemente para
controlar el dispositivo
Producción en alto volumen
No necesidad de un sistema operativo
5. Demo: USB Email Notifier
USB con un LED 6 colores
Precio al día de hoy: €6 (aprox.)
Incluye una aplicación que escanea nuestro
buzón de correo y muestra notificaciones
“luminosas” frente a eventos
New email: Green
Buzón lleno: Red
También muestra notificaciones de estado
con Live Messenger y Skype
Link: http://bit.ly/IBgZjL
6. USB Missile Launcher
Este es mucho más conocido
No hace falta presentación
Link: http://bit.ly/fhc3k1
10. Microsoft Robotics
Plataforma de desarrollo para robótica
Runtime liviano orientado a servicios
Plataforma extensible
LEGO Mindstorm NXT fishertechnik
Parallax Boe-Bot BASIC Stamp Robot iRobot Roomba
MobileRobots Pioneer P3 DX Trasxter Kondo KH-1
12. Microsoft Robotics
Visual
Programming
Simulation
Engine
Microsoft Robotics
13. MRDS - Simulation Engine
Retos a superar por Simulation Engine
Beneficios del Simulation Engine
El hardware es costoso, no está al alcance de
No es necesario hardware para comenzar
todos
Es posible prototipar y separar en módulos los
Los problemas de Hardware son de difícil solución
componentes de la simulación
El Hardware es “único” por lo que no se puede
Es posible utilizar la simulación con el robot
utilizar simultáneamente
23. Robotics Runtime
¿Cómo funciona una aplicación de robótica?
Actores
Orquestación
User Exp (UI)
Behavior
Sensores
Está compuesta por una serie de componentes
desacoplados que proveen:
“Orquestación” de los sensores y actores
Interacción con el usuario
Control de la lógica del proceso
25. Robotics Runtime
Los servicios con los bloques principales
Gestionan estados
Behavior
Respetan un contrato predefinido
Las operaciones
Administran los estados
Crean y destruyen nuevos servicios
Son las encargardas de gestionar las notificaciones
26. Orchestration Service
Laser Range Finder Service
Laser Range Finder Service
Camera Service
Camera Service
Bumper Service
Bumper Service
Drive Service
27. Microsoft Robotics
Necesidades en Robotics
Asíncrono
Concurrente
MultiCore/ManyCore
Poco
Distributed Computing acoplamiento
Descentralizado
…
28. Microsoft Robotics
Necesidades en Robotics
Runtime Authoring Tools Services
• Coordination and • Visual Simulation • Samples and
Concurrency library Runtime and Editor tutorials
(CCR)
• Visual Programming • Robot services
• Distributed Services Language (VPL)
• Robot models
Framework (DSS)
• Visual Studio
• Infrastructure
templates
services
34. CCR nos permite crear aplicaciones
escalables y concurrentes
Descomponiendo el trabajo en un conjunto de elementos heterogeneous
Permitiendo que la concurrencia se balance en base a los recursos disponibles
En pocas palabras tu decides QUÉ puede ser ejecutado en paralelo, CCR
decide CUÁNDO y DÓNDE puede ser ejecutado
IntroducciónMs lo anuncia el 20 de Junio de 2006 en la Robotics Business ConferenceCTP Agosto, Septiembre, Octubre, NoviembreRTM 13 Diciembre 2006 Plataforma de desarrollo de robots de End-to-End posee una herramienta para la generación de servicios que interactúan con piezas de hardware estos servicios son genéricos y pueden ser accedidos desde una interfaz web o win posee una herramienta para la simulación de aplicación en un entorno que soporta modelos 3D Utilizando the AGEIA PhysiscsTechnologyEl Runtime posee un engine para la ejecución concurrente de servicios (lo veremos mas adelante cuando tengamos que rotar un motor)Esto hace que la creación de aplicación asincronas sea mas facilSe puede acceder al estado de cualquier servicio a traves de una interfaz web para consultar su estado y para interactuar con el mismoVisual Studio y VS Express además de IronPhytonLa version RTM soporta interfaces para interactuar con LEGO Mindstorms, Irobot; aspiradoras inteligentes, ahora con bluetoothel mando de la XBox360
Boe-Bot Kit for Microsoft Robotics StudioUsing Microsoft Robotics Studio, you can easily program the Boe-Bot Parallax kit over Bluetooth and best of all, the Robotics Studio team has negotiated a 15% discount on the BoeBot. Cost: $178.77 after 15% discountGet it:Head over to ParallaxCode it: You can use Microsoft Robotics Studio which exposes services to control your Parallax Boe-Bot Kit using Bluetooth.iRobotRoombaBesides being a great way to vacuum your house, you can program your roomba to help you take over the world! I suggest making it bark like a dog and "attack" people that get too close to your Xbox.Cost: $229 or $339 depending on modelGet it:Roomba Red + RooTooth bundle, Roomba Discovery + RooTooth BundleCode it: You can use Microsoft Robotics Studio which includes built-in services for Roomba programming.LEGO Mindstorm NXTLEGO Mindstorms NXT is Lego’s newest release of their popular Mindstorms robotics and includes built-in three motor support and multiple sensor support including motion, touch, sound, and light. Heck, you may even be able to solve the most evil puzzle ever created.Cost: $249.99Get it:LEGO Mindstorms on Amazon.comCode it: You can use Microsoft Robotics Studio which includes built-in services for LEGO Mindstorms NXT programming. Or check out Mind Squall's .Net 2.0 library for remote controlling your NXT.
Hardware costoso, el LEGO cuesta mas de 200€Una parte importante del desarrollo y pruebas con elementos de robotica es la capacidad de emulacionEs diferente al desarrollo convencional (no hay Nunit :P)El equipo de Robotics, despues de investigar un poco, pensó que el punto de partida ideal para brindar capacidades de emulacion era un entorno de emulacion como el de los videojuegos; con base en visualizaciones realistasfisica aplicada a los objetos con restricciones basadas en el mundo realUtiliza AGEIA PhysxTechnologyManejado y renderizado con DirectXNo es necesario Hardware para comenzarSe pueden diseñar y coordinar proyectos interdisciplinarios para equipos distribuidos con roles diferentesEsto permite ajustar los valores de las variables que afectan al robot en tiempo real
Proyecto de ejemplo de Demo"C:\\Microsoft Robotics Studio (1.5)\\samples\\SimulationTutorials\\Tutorial1\\SimulationTutorial1.sln“Descomentar y explicar como se agregan entidadesprivate void PopulateWorld() { //AddSky(); //AddGround(); //AddBox(new Vector3(1, 1, 1)); //AddTexturedSphere(new Vector3(3, 1, 0)); }F1 - Hides help text. F2 - Toggles display/rendering of the physics primitive visualization. Useful for debugging your physics geometry. Camera Movement: A - Strafe Left (lateral move left) D - Strafe Right (lateral move right) W - Move Forward S - Move Backward Q - Move Up on the Y-axis (vertically) E - Move Down in the Y-axis (vertically) Proyecto 2"C:\\Microsoft Robotics Studio (1.5)\\samples\\SimulationTutorials\\Tutorial2\\SimulationTutorial2.sln"Referencias a The tutorial requires the following additional references: SimulatedBumper.Y2006.M05.Proxy SimulatedDifferentialDrive.2006.M06.Proxy SimulatedLRF.Y2006.M05.Proxy SimulatedWebcam.Y2006.M09.Proxy Para controlar el lego y el Bot grandeHay ademas un sensor laser en la mesa para controlar las distanciasMostrar y descomentar el siguiente código para mostrar como se puede montar una webcam sobre un robot (lina 108)//CreateService(// simwebcam.Contract.Identifier,// Microsoft.Robotics.Simulation.Partners.CreateEntityPartner(// "http://localhost" + cam1.State.Name)//);
En realidad el nombre es Microsoft Visual Programming LanguageEs un entorno de desarrollo visual basado en procesos “de datos”Esta pensado para nodesarrolladores, personas sin conocimientos de programación, pero con conocimientos basicos de conceptos como variables, flujos y logica.OJO, no está limitado para principiantes se pueden hacer app potentes con VPLPosee una toolbox con los componentes que se pueden utilizar en el proceso, y esta toolbox es extensibleNo se utiliza WWF, porque el engine de ejecución de VPL, para los procesos sincrónicos es parecido, pero tiene características propias de la programacion concurrente que no aplican a WWF
Lanzar VPLDemos en c:\\YoRobot\\Source\\MRDS\\Ejemplo de un simple hola MundoLoop con text to speechMovimiento de un Lego, configurar el “GenericDifferentialDrive” para que utilice la interfaz de acceso del LEGO.
Este es el esquema grafico principal de una aplicación robotica, compuesta por actires, sensores, y usuariosEs necesario una entidad que actue como un orquestador y que sea la encargada de