Professional Documents
Culture Documents
2 of 34
Agenda
What is it?
In a nutshell Supported hardware Simulator Architecture
Mobile Manipulator example Look at some code Running MSRS Downsides Demo (if time)
3 of 34
In a Nutshell
A distributed asynchronous serviceoriented architecture (for robotics) CCR (Concurrency and Coordination Runtime)
Message oriented programming model
4 of 34
Implications of .NET
.NET is Microsofts new development environment Choice of languages: C#, VB, C++, Python Requires: Windows XP, CE, Vista Most robots will be tethered
eBox-2300
5 of 34
Supported Hardware
Included with MSRS:
Lego RCX + NXT Parallax BOE Bot fischertechnik iRobot Create KHR-1 MobileRobots Pioneer P3DX
Sensors:
SICK LRF Webcams IP Webcams Phidgets MS GPS
Third party:
CoroWare CoroBot Parallax Scribbler Segway RMP Robotics Connection Traxster + Stinger Princeton PAVE UGC car
6 of 34
Simulator
7 of 34
Simulator
8 of 34
Simulator
9 of 34
What is a service
Separate state and behavior
10 of 34
Message transport
11 of 34
CCR
Coordinating asynchronous tasks
Task ve Recei
12 of 34
CCR
Coordinating asynchronous tasks
Task Join
13 of 34
CCR
Coordinating asynchronous tasks
Task
e Choic
Task
14 of 34
15 of 34
16 of 34
17 of 34
Standard Hierarchy
18 of 34
Code Example
Custom line sensor We want to build a MSRS service that:
Has some simple state Supports subscriptions Can be calibrated with a special message
19 of 34
Code
Contract and class
20 of 34
Code
Main port and message definitions
21 of 34
Code
Class
22 of 34
Code
Message handlers part 1
23 of 34
Code
Message handlers part 2
24 of 34
Code
Callback
25 of 34
Usage
Manifest
26 of 34
Usage
Contract directory
27 of 34
Usage
XML state
28 of 34
29 of 34
30 of 34
Why I Like It
.NET is great CCR nice for asynchronous code
MySpace uses it
Its Microsoft
MS on a robot is laughable
Kuka uses it
31 of 34
Downsides
Steep learning curve Lots of boiler-plate code Can start services in many ways
Partnerships break down with large numbers
Can be difficult to debug sometimes No contract inheritance Users must faithfully implement contracts Lots of pre-existing robotics code for Linux No distinction between in and out messages
Competitors
Platform CLARAty (NASA JPL) ERSP (Evolution Robotics) Microsoft Robotics Studio iRobot AWARE OROCOS Skilligent URBI Webots Player, Stage, Gazebo OpenJAUS Saphira (Mobile Robotics) ORCA (Toshiba) DROS Open Source & Free Platform Platform Platform Platform Machine and robot control libraries Robot learning add-on Platform Simulation environment Platform Platform Type Open source Commercial Commercial or Free Commercial Open source & Free Commercial Commercial Commercial Open Source & Free Open source Commercial or Free
32 of 34
http://www.linuxdevices.com/articles/AT5739475111.html
33 of 34
Resources
Microsoft Robotics
http://www.microsoft.com/robotics The team Blog, product downloads and communitysupport newsgroup are linked from this main page Wiki: http://channel9.msdn.microsoft.com
CoroWare, Inc.
Corporate: http://www.coroware.com ClassPack demo: http://support.coroware.com/forums
Programming Microsoft Robotics Studio by Sara Morgan Professional Microsoft Robotics Studio By Kyle Johns, Trevor Taylor
34 of 34
RoboChamps: http://robochamps.com