Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
25 views

Software Engineering in Robotics - Lecture4

robo446895

Uploaded by

Balaji Rajendran
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Software Engineering in Robotics - Lecture4

robo446895

Uploaded by

Balaji Rajendran
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Software Engineering in Robotics

Introduction to Robotics Developer Studio (RDS)


Henrik I. Christensen hic@cc.gatech.edu

Outline

What is Robotics Developer Studio?


A bit of history / background
Overview of RDS
Decentralized Service Services
Concurrent and Coordination Runtime
Visual Programming Language
Visual Simulation Environment
Examples and the lay of the land.
Summary

Microsoft Robotics Developer Studio

Microsoft has a strong tradition for office/desktop


applications. More recently also on mobile devices
Has had a limited impact on industrial software
system for manufacturing
MS Windows is a reference platform for computer use
Using a windows like GUI makes sense for many
applications
MS has also a strong expertise in interface
technologies
How can MS core technologies be used for design of
robot systems?
RDS is a proposal from MS for a toolkit to design robot
systems

Microsoft Robotics Developer Studio

A fully integrated package for robot software


engineering
Includes facilities for

Design of software modules


Communication protocols
Methods for easy process monitoring
Simulation of systems
Distribution of systems across multiple hosts
Rapid prototyping
Significant number of standard components for IO,
control, basic processing, and interfaces

Programming support in C#, VB and VPL

A bit of history

Software architectures is an old problem in


robotics
Has similarities to distributed system design
The telecom industry tried to standardize this
with the Foundation for Intelligent Physical
Agents (FIPA), which is a standard by now,
largely implemented in Java.
Microsoft has a strong communications
framework with .NET
Designed a communications / synthesis
framework on top to allow high volume data
intensive applications
The system was CCR/DSS and has been used

Overview of RDS
Applications

DSS

Services

CCR

.NET

Hardware

VPL

VSE

PhysX

Decentralized Software Services (DSS)

DSS provides the structure and the plumbing


for building services
Services are composed to build applications
A service consists of components:

Contracts Messages you can exchange


Internal State Status information to control
operation
Behavior The operations the service can perform
and typically implemented as handlers
Execution Context The relation the service has
with other services and the initial state

Decentralized Software Services

Services communicate using DSS protocol


referred to as DSSP
The communication is based on the
Representational State Transfer (REST) model
The communication model is similar to SOAP
Simple Object Access Protocol.

DSSP only enable operations on the state

Services are orchestrated (combined) into


applications

See later

Representational State Transfer (REST)

Originally developed w. HTTP/1.1 protocol


World is composed of clients and servers
Clients generates requests
Servers receive requests and generate
responses
Responses enable transfer of data / resources
Clients are at rest or in transition between
states
REST architectures are based on a set of
constraints that define principles for design

REST constraints

Client Server

Stateless

Clients cannot tell if they are directly tied to a server

Code on Demand

Clients may cache responses

Layered System

Servers do not store information about client states

Cacheable

Clear separation by uniform interface

Servers may offload by code to clients (Applets, )

Uniform Interface

Definition of a uniform interface to decouple/simplify

REST Interfaces

A REST service relies on a uniform interface


Identification of resources

Manipulation of resources through requests

Resources are identified in requests


Example could be URI
Responses are adequate to identify/modify server
data if needed and allowed

Self-descriptive message format

Internet media type (formerly known as MIME)

Uniform Resource Identifier

Best known from URLs


A unique string to identify a resource
A URI is composed of a scheme, syntax and protocol
<schema> : <hierarchical name> [? <query>][#
<fragment>]
Schema

Name

http, file, ftp, mailto, ldap, nntp, samba, urn


www.cc.gatech.edu/~hic/Georgia-HomePage
Animal:Ferret:Nose

Query

Index.php?Robot

Decentralized Software Services

There are several services to support


deployment and orchestration
Services are orchestrated through an
application manifest

RDS includes a manifest editor

Manifests defines the services to be deployed


DssHost processes manifests and launches
applications
Easy generation of manifests for applications

The status of an application can be monitoring


through the web typically
http://localhost:50000

DSS basic status screen

Concurrency and Coordination Runtime


(CCR)

Provides basic communication and


concurrency support
Uses message passing as a basis
Communicates using ports
Messages are posted to ports
Receivers de-queue messages from ports
Arbiters handle message
coordination/synchronization
Tasks are queued to process data
Dispatcher launches handlers to execute tasks

CCR Structure
PortSe
t

PortSe
t

PortSe
t

Receiv
er

Receiv
er

Receiv
er

Arbiter
Task Queue
Dispatcher

Visual Programming Language (VPL)

Visual Simulation Environment (VSE)

C# vs Java
Concept

C#

Java

Virtual Machine

CLR

JVM

Name Space

namespace / using

package / import

Attributes

[attribute]

@annotation

Base class

Base

super

Abstract objects

Abstract

abstract

Sealed Objects

Sealed

final

Replacement
methods

New keyword

NA

Constants

const / readonly

final static

Generics

Class<type>

class<type>

Installation

Install a version of Microsoft Visual Studio

Express is OK (use the C# version)


Preferably the 2008 version (supported locally and
easier to use)
If you use the 2010 version note the need to
downgrade .NET to 3.1 (www.microsoft.com/net)

Download the latest version (R3) from


http://www.microsoft.com/robotics
You might also want the ProMRDS software
package available from downloads at
http://www.promrds.com/

A first simulation

Run simulation apartment / robot simulate to


play around.

There are quite a few good simulations to get


started
Will discuss the features more in next lecture

Running a DSS service

Start DSS Command Prompt setup


environment

Or in reallife

DssHost /p:50000 /t:50001

Access browser http://localhost:50000

DssHost /?

Check services,

Start a basic service to show an example

Our first software service

Lets create a dummy service

DssNewService /service:BasicExample

Could also be created directly in Visual Studio


In our example

BasicExample
Check the files created in the BasicExample
Directory

BasicExampleTypes.cs
BasicExample.cs
BasicExample.manifest.xml

Walk through the files to see the basic structure of


an empty service

Acknowledgement

This series of lectures has been developed


with generous support from the Microsoft
Corporation as part of the project Software
Engineering in Robotics Contract # 113873.
The support is gratefully acknowledged.

You might also like