You are on page 1of 22

Microsoft Robotics Studio

Kinnar Shah
Microsoft Certified Technology Specialist
Microsoft Student Partner
Introduction to Robotics
What is a Robot?
• To qualify as a robot, a machine must be able
to
– Sensing and perception: get information from its
surroundings
– Carry out different tasks: Locomotion or
manipulation, do something physical–such as
move or manipulate objects
– Re-programmable: can do different things
– Function autonomously and/or interact with
human beings
Types of Robots
• Classification by motions
– Fixed
– Moveable
• Classification by mechanical structure
– Cartesian
– Cylindrical
– Spherical
– Parallel
– Articulated
– SCARA
• Autonomous or Semi-autonomous
• Servicing humans or machines
Why Robots?
• Application in 4D environments
– Dangerous
– Dirty
– Dull
– Difficult
• 4A tasks
– Automation
– Augmentation
– Assistance
– Autonomous
Architecture of Robotic System
• Perceive – Sensors (Touch, Light, Ultrasonic, etc)
• Make Decisions – Orchestrate (Computation)
• Take Action – Actuators
• Interact – User Interface and Communication
• Power Unit

Motor Bumper
(Sensor)

Message Box Infrared Detector


Orchestrator
(Actuator) (Sensor)

Bumper
Motor (Sensor)
Basic Requirements
• Sensors (IR, Ultrasonic, Pressure, Touch, Light)
– CD drives, Old remote control, printers
• Controller
– Microprocessor, A/D and D/A converter, Mux/Demux
• Motors
– Stepper Motors (Servos), Geared Motor
– Old printers, 5 ¼ Floppy drives, CD drives
• Wheels
– Toys
• Power System
– Rechargeable Batteries or AC-DC converter, Voltage Regulator
• Base
– Wood, Aluminum, Plastic or Acrylic
Controlling Robots

Connected operation
(remote execution on PC)

Disconnected
autonomous operation
(with optional networked monitoring)

Distributed execution
(execution across compute units)
Programming your Robot
Robotics Application Development
• Challenges
– Too much complexity/too many resources required
– Limited tools and technologies
– Difficulties in sharing
– Development when access to robot is limited
– Difficult to build distributed applications that span across
multiple compute units
• Requirements
– Deal with inputs from multiple sensors concurrently
– Coordinating asynchronous device input
– Monitoring/Interacting with running system
– Re-use of components across hardware platforms and
devices (Scalability and Extensibility)
Microsoft Robotics Studio
Microsoft Robotics Studio

Runtime Authoring Tools Services and Samples


 Concurrency  Simulation Tool  Samples and tutorials
 Services infrastructure  Visual Programming  Robot services
Language  Robot models
 Technology services

• A new application development platform for the robotics


community, designed to address some of the common
challenges facing those developing robot applications
– Authoring
– Concurrency and distribution
– Code reuse and reliability
– Scalability and Extensibility
Microsoft Robotics Studio
Key runtime features

• Concurrency and coordination runtime


– Makes writing and managing asynchronous processes
easy
– Avoids need to understand manual threading,
semaphores, etc.
• Decentralized system services
– Makes state observable, easily accessible
– Provides for reusability and failure tolerance
– Supports remote/distributed execution
– Makes the programming model scalable
Microsoft Robotics Studio
Services – the basic building block

• Can have “partners”


• Provide aggregated,
compositional functionality
– Sensor fusion Port
– Motor drive FIFO
• Inherently distributed Service
and asynchronous Handlers

State
Microsoft Robotics Studio
Interaction through the browser

UI service Joystick service Robot


Motor
services
Sensor
services

Robotics Studio
Runtime

• Service state observable at all


levels of the application
• Services are capable of providing
rich representation of data
Microsoft Robotics Studio
Authoring tools

• Web browser based programming/control


– Scripting (e.g., JScript)
– Windows Gadgets
• Supported by multiple
programming languages
– Microsoft Visual Studio and VS Express
(e.g., C#, VB.Net)
– Microsoft Iron Python
– 3rd party languages
Microsoft Robotics Studio
Authoring tools
• Visual Programming Tool
– Dataflow editing
• Simple connections
• Building blocks
• Model checking
• Code generation
– Dashboards
– Robot models
– Novice to expert
Microsoft Robotics Studio
Authoring tools

• Simulation visualization tool


– High resolution 3D rendering
• Visual and physics views
– High performance physics engine
• PhysX™ supplied by Ageia Technology
• Optional hardware acceleration
– Makes technology accessible
– Enables fast prototyping
and debugging
– Extensible by code or data
Microsoft Robotics Studio
Services and samples
• Lots of tutorials
– VB.Net, C#, JScript
– Basic input and output
– Autonomous navigation
• Support for many robotic platforms
– LEGO® Mindstorms® RCX
– LEGO® Mindstorms® NXT
– fischertechnik®
– MobileRobots Pioneer P3™
– Phidgets
– Kondo KHR-1
– Lynxmotion Lynx-6 Robotic Arm
– Parallax BOEBot BASIC Stamp robot
• Support for
– GPS Devices
– Video Capture (Webcam)
– Text-to-Speech (using Microsoft Speech SDK)
Microsoft Robotics Studio
Community

• Robotics Developer Center website


– www.msdn.microsoft.com/robotics
• Downloads
• Bug reporting
• Blogs (http://blogs.msdn.com/MSRoboticsStudio)
• Newsgroups
• Channel 9 videos and wiki
– MSRS 3.0 is available for download
– A License-Key is needed for Install
Getting Started - Tips
• Download the Microsoft Robotics Studio
• Learn Programming and/or Learn Electronics
• Start off small
• Start with a kit if you have no experience (Lego,
Phidgets)
• Enter a contest (College or others)
• Learn from others mistakes
• Ask lots of questions
• Share your experiences with others (Forums,
Discussions Groups)
• Don’t give up
Q&A
Connect
www.kinnarshah.in
kinnarshah@live.com
© 2009 Microsoft Corporation. All rights reserved.
Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.
Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft,
and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

You might also like