This document discusses Microsoft's work on developing a robotics software platform called Microsoft Robotics Studio. The platform aims to reduce complexity in robotics development by extending the PC and web ecosystem to robotics. It provides tools for authoring robotics applications across various hardware devices and platforms. Microsoft envisions this platform enabling a wide range of robotics applications from research to hobbyist to commercial use. The talk outlines Microsoft's vision and the key aspects of the Robotics Studio platform, including its concurrency model, services architecture, and development tools.
Boost PC performance: How more available memory can improve productivity
Vom PC zum Roboter
1. Vom PC zum Roboter
Fraunhofer IPA Technologieforum
17.10. 2006
Alexander Brändle
Andreas Heil
Microsoft Research Cambridge
1
2. Microsoft Research World Wide
Redmond
Cambridge
Beijing
San Francisco
Silicon Valley
Bangalore
6 Research Labs
3 Continents
700+ Researchers: computer scientists, mathematicians, social
scientists, architects and designers, computational scientists
55+ Areas of research
Significant impact on Microsoft Products
Strong partnership with leading universities worldwide
2
3. The Robotics Market Potential
Service and consumer markets just
emerging
Remote assistance/presence Worldw ide Robotics Market Grow th
Assistive
Facilities maintenance
Security
Education 70000000 Home
Entertainment 60000000
Mediacal/Welfare
Public Sector
50000000 Bio-Industrial
Market Size $1,000s
More applications are needed to Manufacturing
propel the market 40000000
30000000
A lack of reusability keeps robot 20000000
developers endlessly re-solving the 10000000
same software problems 0
1995 2000 2005 2010 2025
Concentrating on the mechanics of Year
robotics rather than the science of
robotics
Concurrency and complexity plague all Source: Japan Robotics Association
software engineering and especially
robotics
Development requires too much effort „A robot in every home …“
and knowledge
3
4. Apropos home - Apropos robot
New Requirements
Ultra Heterogeneity, Distributed environments, Dynamic Configuration, Context-Awareness,
Personalization, Extensibility, Reliability, Security, Privacy protection, Usability, Autonomy…
Autonomy…
Ubiquitous computing environments should be deployed incrementally.
Our living space is not a demonstration room.
We like to replace existing objects to new objects when necessary.
How can software infrastructures help to decrease the complexities?
What is a robot? Remote control? Autonomous?
Mobile? ? Intelligent?
Humanoid? Appliance?
4
5. Microsoft & Robotics
Experience Groups
Systems Microsoft Research
PC Ecosystem (desktop, web, Enabling technologies
mobile, home) Human Robot Interaction
XP, XP Embedded, CE (real- Personal Robotics
time) Educational Robotics
Development environment and Programming environments
tools
Microsoft Robotics Group
Programming IDE Microsoft Robotics Studio
Debugging and optimization
Center for innovative Robotics
Existing applicable (Carnegie Mellon University)
technologies
External Research Office
Speech SDK
Real-time Communications
SDK
RFID SDK
5
6. Working with Partners
Robotics hardware manufacturers (OEM)
Robotics hardware distributors
Robotics software developers (ISVs)
Robotics curriculum/educational agencies
CoroWare Inc, KUKA Robot Group, Robosoft, RoboticsConnection, White Box
Robotics Inc, fischertechnik, LEGO Group, MobileRobots Inc., Parallax Inc. and
Phidgets Inc., tbc …
Whitebox Video
Previews: ABB, InTouch Health, Lynxmotion Inc., RoboDynamics Corp., Senseta,
Trossen Robotics and Ugobe Inc., as well as with many leading universities and
research institutes, including Bryn Mawr College, Cornell University, Georgia Tech,
Korea Institute of Technology, Massachusetts Institute of Technology, Stanford
University, University of Pennsylvania, University of Pisa, University of Southern
California, and the University of Washington.
6
7. Adressing the needs
Develop a software development platform (SDK) that
Extends the PC and web ecosystem to robotics
Targets development of academic research, hobbyist, and commercial
applications for robotics
Supports a wide variety of robotics applications (e.g. remote presence,
security, maintenance, education, entertainment)
Support scenarios for single robots, multiple robots, and robots operating
with other computing technologies
Provides layered API and driver framework that
scales across multiple hardware devices and platforms
Is extensible; encourages third party Commercial
Hobby
hardware and software support Development
Academic
Hobby
Research
Hobby
Hobby
Education/
Hobby
Entertainment
7
8. Non-Goals
To mandate how robotics software be
constructed
The system is meant to be “ala carte”
8
9. The Microsoft Robotics Studio
A lightweight concurrency and services oriented
runtime
Handling of sensory input and controlling actuators
Based on synchronous message passing
Decentralized System Services (DSS) facilitating tasks and
basic services such as debugging, logging, monitoring,
security, discovery, and data persistence
Authoring/development tools
Visual programming editor
Simulation
Message debugging
Technology libraries and basic algorithms
Code samples and documentation
9
10. Development Model
Application model
Build complex systems from smaller,
simpler decentralized services
Application Model Distribution model
Applications are a collection of distributed
services
Distribution Discovery of functionality via contract and
Model categories,
Self-organizing
Interaction via Messaging
Programming model
Programming Coordination of messages
Model No manual creation of threads, locks,
Figure semaphores
10
11. Runtime Environment
Orchestration
Orchestration Application
Decentralized System Services Robotic Services Services
Concurrency and
Device Services Library Services
Coordination
Activation Discovery Robot Model
Runtime
Device 1 Vision
Services
Diagnostics Storage Vis/Sim Device 2 SLAM
… …
Terminal UX
Messaging Transport
Signal Processing
SPL
Hardware Abstraction Layer
HAL
11
12. Service Composition
Services aren’t just for devices
Services can be compose to form other services
Services can represent passive or non-existent devices.
Fused sensory data can be re-exposed as an independent service
Trajectory
Drive
Pose
Motor Encoder
Services
Steering Servo
Robot Model Service
Robot Model
Wheel Base Geometry
12
13. Runtime Services Demo
Autonomous operation & manual control (Pioneer 3)
Pioneer Onboard CPU Client CPU
Arcos Core Sick-LRF Drive By Wire
Joy Stick
Arcos
Bumper
Arcos Sonar
Arcos Motor
Runtime Environment Runtime Environment
SH2
Motors Sonar Array Bumper Array Speaker
13
16. Layered and Distributed Application
“Learns” and begins to favors specific behavioral
characteristics. Interacts with the orchestration layer
to achieve the favored patterns.
Behavior Control Layer
Defines and facilitates communication patterns that
coordinate information processing amongst lower
level services.
Orchestration Layer
Provides functionality abstraction, computational
encapsulation, failure isolation, distributed and
concurrent execution, via software services .
Services Layer
Executes algorithms that require near real-time
computation and deterministic time control.
Signal Processing Layer
Directly interfaces with the physical robotics
hardware - Sensors and Actuators.
Hardware Abstraction Layer
16
17. Summary
Robotics and home applications are merging
Complexity reducing software infrastrcutures are needed
Microsoft Robotics Studio
Extend/bridge PC/Web to robotics
Rich authoring/development tools
Enable third parties to participate and contribute
Current Status: CTP
Talk to us!
17
Editor's Notes
Slide might be replaced with logo slide
Anm.: Macht es Sinn zu sagen, was wo “geforscht wird”? Also, was werden WIR in MSRC in Zukunft machen
Anm.: - No low-level programming, keine Hardwarenahe Programmierung
Improved CCR and DSS Runtime We’ve made some significant improvements that has doubled message throughput within node (between services) and between nodes. XML footprint has been reduced by half. Peak message throughput on multiprocessor machines is now close to 90,000 SOAP messages per second, between services on the same node, and 2,500 messages between nodes (using TCP or HTTP, full serialization). A scalable, extensible runtime architecture that can span a wide variety of hardware and devices. The programming interface can be used to address robots using 8-bit or 16-bit processors as well as 32-bit systems with multi-core processors and devices from simple touch sensors to laser distance finding devices. A set of useful tools that make programming and debugging robot applications scenarios easier. These include a high quality visual simulation environment that uses for software physics supplied by the Ageia Technologies PhysX engine. A set of useful technology libraries services samples to help developers get started with writing robot applications.