HUMANOIDS’06
Lightweight ConcurrencyA Distributed Platform for Creating Robotics Applications
Presented byAndreas HeilAlexander Brändle Date04th December 2006
Microsoft Research Overview
Redmond
Silicon ValleySan Francisco
CambridgeBeijing
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
Microsoft & Robotics
Systems
• PC Ecosystem (desktop, web, mobile, home)
• XP, XP Embedded, CE (real-time)
Development environment and tools
• Programming IDE• Debugging and Optimization
Existing applicable Technologies
• Speech• Real-time Communications• Infrastructure
Experience Groups
Microsoft Research
• Enabling Technologies• Human Robot Interaction• Personal Robotics• Educational Robotics• Programming Environments
Microsoft Robotics Groups
• Microsoft Robotics GroupRedmond
• Center for Innovative RoboticsCarnegie Mellon University
• External Research OfficeCambridge
Humanoids – where are we?
2005 2007
2010 2015
2020
1 Filtering unnecessary Information2 Household Devices (Microwave, Fridge)3 Learning about new Environments by giving a Tour to it, after that it can re-give that tour.
Rea
l vac
uu
m c
lean
er
Ro
bo
t w
ith
inte
gra
ted
Co
mm
un
icat
ion
Cap
abili
ties
1
Ro
bo
t lo
adin
g D
ish
was
her
2
Tou
rgu
ide3
Ro
bo
t ad
apti
ng
to
ind
ivid
ual
Nee
ds
Ro
bo
t h
elp
ing
han
dic
app
ed P
eop
le
Co
mp
anio
n f
or
eld
erly
Peo
ple
Gam
ing
Ro
bo
ts
Iro
nin
g R
ob
ot
Pro
acti
ve R
ob
ots
Ro
bo
ts u
nd
erst
and
ing
hu
man
Act
ivit
ies
24h
Ass
ista
nt
* EURON Workshop 2005
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) based on the
Concurrency and Coordination Runtime (CCR) 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
Existing Open Software Platform
• Robotics Hardware manufacturers (OEM)• Robotics Hardware Distributors• Robotics Software Developers (ISVs)• Robotics curriculum/Educational Agencies• Community Platforms
CoroWare Inc, KUKA Robot Group, Robosoft, RoboticsConnection, White Box Robotics Inc, fischertechnik, LEGO Group, MobileRobots Inc., Parallax Inc. and Phidgets Inc., ScatterWeb, …
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.
Technology LibrariesRobot Models
Device Services(OEM, ISV, IRV)
Applications and Tools
Robotic Application
Runtime
Authoring Tools
Microsoft Visual Studio
Runtime Environment
Service Based Architecture
Vision Knowledge
Body Arm
Communication
Motion
Sensors
Internal perception
Network perception
Services
• Can be used to abstract hardware
• Can be composed and provide aggregated functionality (sensor fusion, for example)
• Are inherently remotable and participate in distributed operations
• Restartable and mobile (state transfer)
• Must be inherently asynchronous
Service Based Architecture
Handlers
State
Port
Service
Vision Knowledge
Body Arm
Communication
Motion
Sensors
Internal perception
Network perception
Services are the basic building blocks
• Structured state
• Behavior
• Partner services
• Contracts
Message
Service
Service
Service
Service
Node
http://
dssp.tcp://
Service Based Architecture
Vision Knowledge
Body Arm
Communication
Motion
Sensors
Internal perception
Network perception
Nodes
• Services run within an execution context called a ‘node’
• Nodes expose http and SOAP/TCP endpoints
• 3,000 – 50,000 Messages/s
Robotics Application
An application is a composition of loosely-coupled services concurrently executing across scopes • Interactions described using service contacts• Components are networked• Provides isolation between components
> Reliability – ability to restart independently, replaceable/updatable> Parallelism
Application Boundary
Service
Main Port
Main Port
Service
State
Code
Private Port
State
Code
Service
Main Port
State
Code
Service
Main Port
Private Port
State
Code
H/WH/W
UI
Service
Main Port
Private Port
State
Code
* Example: Model car + sensors
Simulation Capabilities
• High-End Graphics Support • Easy programmable simulation environment
• Ageia PhysX Engine• Hardware support • SDK free available
• Simulated Services • Manufacturer support
• Simulated Camera View• Generic service
Community Work: KHR1
* L. Lessieux, http://www.lessieux.com/mywiki/index.php?title=Microsoft_Robotics_SDK_Work
• Why is Microsoft not developing their own robot?
• Microsoft Robotics Studio> Free for personal & academic use> Available as CTP (November CTP)> 30,000 downloads since May ‘06> Improved visualization> Package based deployment> Increasing adaption by HW manufacturers> Final version end of Dec 2006> CCR / DSS maybe available as
separate DL> http://msdn.microsoft.com/robotics/
> Multiple languages: C#, C++, VB, Python, VPL
> Designed to support multicore / multiprocessor / multimachine
> Good News: Hard real time support in future (Win CE)
> No humanoids yet
Outlook
Thank you for your attention.
Backup
Robotics Studio Architecture
Orchestration Application
Decentralized System Services
Con
cu
rren
cy
an
d
Coord
inati
on
R
un
tim
e Activation Discovery
Diagnostics
Terminal
Storage
UX
Robotic Services
Robot Model
Vis/Sim
Services
Device 1
Device 2
…
Device Services
Vision
SLAM
…
Library Services
Messaging Transport
Signal Processing
Hardware Abstraction Layer
HA
LS
PL
Serv
ice
sO
rch
estr
ati
on
Layered and Distributed Application
Behavior Control Layer
Orchestration Layer
Services Layer
Signal Processing Layer
Hardware Abstraction Layer
“Learns” and begins to favors specific behavioral characteristics. Interacts with the orchestration layer
to achieve the favored patterns.
Defines and facilitates communication patterns that coordinate information processing amongst lower
level services.
Provides functionality abstraction, computational encapsulation, failure isolation, distributed and concurrent execution, via software services .
Executes algorithms that require near real-time computation and deterministic time control.
Directly interfaces with the physical robotics hardware - Sensors and Actuators.
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
Motor Encoder
Drive
Steering Servo
Trajectory
Pose
Wheel Base Geometry
Rob
ot
Mod
el
Serv
ices
Robot Model Service
Authoring Environment
Visual Studio
Robot Package
Tool B
ox
Robot Model Designer Code Generator
Application Designer
Service Contract Designer
Debugging services
Packag
es
IDE
Deployment Designer Code Downloader
Visualization and Simulation
Standalone & Visual Studio integrated
Scales with programmer skill• Helps beginners with drag/drop
programming
• Assists advanced developer with service orchestration
• Conceptually consistent with conventional programming languages
• Context based toolbox
Support Rapid Application Development via visual programming, simulation and visualization.
Supports programming of distributed scenarios Extensible to support other hardware
Top Related