Top Banner
1 of 34 Programming and Simulating Robots with Microsoft Robotics Studio Ben Axelrod http://www.benaxelrod.com http://www.corobot.net
34

Programming and Simulating Robots with Microsoft Robotics Studio

Feb 09, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programming and Simulating Robots with Microsoft Robotics Studio

1 of 34

Programming and Simulating Robots with Microsoft Robotics Studio

Ben Axelrod

http://www.benaxelrod.com

http://www.corobot.net

Page 2: Programming and Simulating Robots with Microsoft Robotics Studio

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)

Page 3: Programming and Simulating Robots with Microsoft Robotics Studio

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

Page 4: Programming and Simulating Robots with Microsoft Robotics Studio

4 of 34

Implications of .NET• .NET is Microsoft’s new development

environment

• Choice of languages: C#, VB, C++, Python…

• Requires: Windows XP, CE, Vista

• Most robots will be “tethered”

eBox-2300

Page 5: Programming and Simulating Robots with Microsoft Robotics Studio

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

Page 6: Programming and Simulating Robots with Microsoft Robotics Studio

6 of 34

Simulator

Page 7: Programming and Simulating Robots with Microsoft Robotics Studio

7 of 34

Simulator

Page 8: Programming and Simulating Robots with Microsoft Robotics Studio

8 of 34

Simulator

Page 9: Programming and Simulating Robots with Microsoft Robotics Studio

9 of 34

What is a service• Separate state and behavior

Page 10: Programming and Simulating Robots with Microsoft Robotics Studio

10 of 34

Message transport

Page 11: Programming and Simulating Robots with Microsoft Robotics Studio

11 of 34

CCR

• Coordinating asynchronous tasks

Receive

Task

Page 12: Programming and Simulating Robots with Microsoft Robotics Studio

12 of 34

CCR

• Coordinating asynchronous tasks

Join

Task

Page 13: Programming and Simulating Robots with Microsoft Robotics Studio

13 of 34

CCR

• Coordinating asynchronous tasks

Choice

Task

Task

Page 14: Programming and Simulating Robots with Microsoft Robotics Studio

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

Page 15: Programming and Simulating Robots with Microsoft Robotics Studio

15 of 34

• MSRS used as ‘glue’ for robot system

Example – mobile manipulation

Page 16: Programming and Simulating Robots with Microsoft Robotics Studio

16 of 34

Example – mobile manipulation

Page 17: Programming and Simulating Robots with Microsoft Robotics Studio

17 of 34

Standard Hierarchy

Page 18: Programming and Simulating Robots with Microsoft Robotics Studio

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

Page 19: Programming and Simulating Robots with Microsoft Robotics Studio

19 of 34

Code

• Contract and class

Page 20: Programming and Simulating Robots with Microsoft Robotics Studio

20 of 34

Code

• Main port and message definitions

Page 21: Programming and Simulating Robots with Microsoft Robotics Studio

21 of 34

Code • Class

Page 22: Programming and Simulating Robots with Microsoft Robotics Studio

22 of 34

Code

• Message handlers part 1

Page 23: Programming and Simulating Robots with Microsoft Robotics Studio

23 of 34

Code

• Message handlers part 2

Page 24: Programming and Simulating Robots with Microsoft Robotics Studio

24 of 34

Code

• Callback

Page 25: Programming and Simulating Robots with Microsoft Robotics Studio

25 of 34

Usage

• Manifest

Page 26: Programming and Simulating Robots with Microsoft Robotics Studio

26 of 34

Usage• Contract directory

Page 27: Programming and Simulating Robots with Microsoft Robotics Studio

27 of 34

Usage

• XML state

Page 28: Programming and Simulating Robots with Microsoft Robotics Studio

28 of 34

Synchronous Tasks – Bad

Page 29: Programming and Simulating Robots with Microsoft Robotics Studio

29 of 34

Synchronous Tasks - Good

Page 30: Programming and Simulating Robots with Microsoft Robotics Studio

30 of 34

Why I Like It

• .NET is great

• CCR nice for asynchronous code

– MySpace uses it

• It’s 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

Page 31: Programming and Simulating Robots with Microsoft Robotics Studio

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

Page 32: Programming and Simulating Robots with Microsoft Robotics Studio

32 of 34

Competitors

ORCA (Toshiba)

CommercialPlatformiRobot AWARE

Open sourcePlatformCLARAty (NASA JPL)

Commercial or Free Saphira (Mobile Robotics)

Open Source & FreeDROS

Open sourcePlatformOpenJAUS

Open source & FreeMachine and robot

control librariesOROCOS

CommercialRobot learning add-onSkilligent

CommercialPlatformURBI

CommercialSimulation environmentWebots

Open Source & FreePlatformPlayer, Stage, Gazebo

TypePlatform

CommercialPlatformERSP (Evolution Robotics)

Commercial or Free PlatformMicrosoft Robotics Studio

http://www.linuxdevices.com/articles/AT5739475111.html

Page 33: Programming and Simulating Robots with Microsoft Robotics Studio

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 Studioby Sara Morgan

Professional Microsoft Robotics StudioBy Kyle Johns, Trevor Taylor

Page 34: Programming and Simulating Robots with Microsoft Robotics Studio

34 of 34

• RoboChamps: http://robochamps.com