Вы находитесь на странице: 1из 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 serviceoriented 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

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

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

Example mobile manipulation


MSRS used as glue for robot system

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

Synchronous Tasks - Good

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

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

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

Вам также может понравиться