Lightweight Concurrency

20
HUMANOIDS’06 Lightweight Concurrency A Distributed Platform for Creating Robotics Applications Presented by Andreas Heil Alexander Brändle Date 04 th December 2006

description

Invited talk held at the IEEE conference Hummanoids'06 in Genoa, Italy about Microsoft's recently released preview of the Microsoft Robotics Studio. Including a scalable runtime architecture supporting 8-bit up to 32-bit technologies with multi-core processors, the system provides access to simple touch sensors up to complex laser range finders. A 3D visual simulation environment and open architecture allows easy integration and simulation of newly constructed hardware platforms. While a wide variety of commercial and academic robots are already integrated within the Robotics Studio, there is a lack of humanoid platforms, yet. In this talk we will discuss the design of the software platform and the requirements to be met to integrate humanoid robots in the future.

Transcript of Lightweight Concurrency

Page 1: Lightweight Concurrency

HUMANOIDS’06

Lightweight ConcurrencyA Distributed Platform for Creating Robotics Applications

Presented byAndreas HeilAlexander Brändle Date04th December 2006

Page 2: Lightweight Concurrency

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

Page 3: Lightweight Concurrency

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

Page 4: Lightweight Concurrency

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

Page 5: Lightweight Concurrency

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

Page 6: Lightweight Concurrency

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

Page 7: Lightweight Concurrency

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

Page 8: Lightweight Concurrency

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

Page 9: Lightweight Concurrency

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

Page 10: Lightweight Concurrency

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

Page 11: Lightweight Concurrency

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

Page 12: Lightweight Concurrency

Community Work: KHR1

* L. Lessieux, http://www.lessieux.com/mywiki/index.php?title=Microsoft_Robotics_SDK_Work

Page 13: Lightweight Concurrency

• 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

Page 14: Lightweight Concurrency

Thank you for your attention.

Page 15: Lightweight Concurrency

Backup

Page 16: Lightweight Concurrency

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

Page 17: Lightweight Concurrency

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.

Page 18: Lightweight Concurrency

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

Page 19: Lightweight Concurrency

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

Page 20: Lightweight Concurrency