You are on page 1of 34

1 of 34

Programming and Simulating Robots with


Microsoft Robotics Studio
Ben Axelrod
http://www.benaxelrod.com
http://www.corobot.net
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 service-
oriented architecture (for robotics)
CCR (Concurrency and Coordination Runtime)
Message oriented programming model
DSS (Decentralized System Services)
service oriented application model
Built on .NET
A physics based simulator
A visual programming language
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
Third party:
CoroWare CoroBot
Parallax Scribbler
Segway RMP
Robotics Connection Traxster + Stinger
Princeton PAVE UGC car
Sensors:
SICK LRF
Webcams
IP Webcams
Phidgets
MS GPS
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
R
e
c
e
iv
e
T
a
s
k
12 of 34
CCR
Coordinating asynchronous tasks
J
o
in
T
a
s
k
13 of 34
CCR
Coordinating asynchronous tasks
C
h
o
ic
e
T
a
s
k
T
a
s
k
14 of 34
Example mobile manipulation
GT Class Project
KUKA KR-5 sixx R650
Schunk PG-70 parallel
gripper
Segway RMP 200
SICK LMS 291
Objective: Serve coffee
15 of 34
MSRS used as glue for robot system
Example mobile manipulation
16 of 34
Example mobile manipulation
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
Synchronous Tasks Bad
29 of 34
Synchronous Tasks - Good
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
This is the direction robotics is going
One home computer controlling all robots
Everything now is off-board computation
31 of 34
Downsides
Steep learning curve
Lots of boiler-plate code
Can start services in many ways
Partnerships break down with large numbers
Requires a fairly fast computer
I want to put code on a Gumstix
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
32 of 34
Competitors
ORCA (Toshiba)
Commercial Platform iRobot AWARE
Open source Platform CLARAty (NASA JPL)
Commercial or Free Saphira (Mobile Robotics)
Open Source & Free DROS
Open source Platform OpenJAUS
Open source & Free
Machine and robot
control libraries
OROCOS
Commercial Robot learning add-on Skilligent
Commercial Platform URBI
Commercial Simulation environment Webots
Open Source & Free Platform Player, Stage, Gazebo
Type Platform
Commercial Platform ERSP (Evolution Robotics)
Commercial or Free Platform Microsoft Robotics Studio
http://www.linuxdevices.com/articles/AT5739475111.html
33 of 34
Resources
Microsoft Robotics
http://www.microsoft.com/robotics
The team Blog, product downloads and community-
support 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

You might also like