Robots Everywhere

2y ago
122 Views
2 Downloads
3.48 MB
51 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Allyson Cromer
Transcription

Robots everywhere:the next step after PCs ?with MSRS ?Bernhard MerkleCentral Unit Research & DevelopmentSoftware-EngineeringSICK-AG Waldkirchmailto: Bernhard.Merkle@sick.demailto: Bernhard.Merkle@gmail.comContact on linkedin.com or xing.comACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 1

Overview:– Robotics Definitions, Potentials, Challenges– Microsoft Robotics Studio (MSRS) MSRS Architecture Runtime– Distributed System Services, DSS– Concurrency and Coordination Runtime, CCR Authoring Tools– Development Tools,– Visual Programming Language VPL Services and Samples– Robot Services and Models– Documentation, Community– Other Robotics Toolkits Open Source, Lego (RIS/NXT), FischerTechnik, etc– DemosACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 2

Trial of Definition: A Robot is––––device,hard- and/or softwarewith the capability of sensingand (re-)acting–Has to react to the world ConcurrentParallelHave/Adopt someintelligenceACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 3

Highly Diverse Market ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 4

RoboCup (by 2050 we will lose against robots )RoboCup Soccer––––SimulationSmall sizeMiddle sizeHumanoidRoboCup Rescue– Simulation– Rescue RobotsACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 5

DARPA (05/07): autonomous vehicles http://pave.princeton.edu/main/ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 6

Robotics Market Potential / ChallengeEmerging service and consumer market–––––Remote assistance/presenceFacilities maintenanceSecurityEducationEntertainmentEmerging challenges––––Lack of : Japan Robotics AssociationACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 7

M aims with MSRS (M Robotics Studio)Usage– Primary market: Endconsumer / Personal-Robotics (2nd wave of PC)– Secondary market: concurrent programming (next “wave” of programming) CCR (will be) distributed separately Coordination with MS “Parallel Computing” Initiative(Parallel Extensions to .NET Framework CTP)Team–––––Tandy TrowerGeorge ChrysanthakopoulosHenrik F NielsenSmall team (approx. 15) of high educated staffKind of Startup in MicrosoftACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 8

Robotics: Shared Challenges Input from industry, hobbyists, academia, research, – Configuring sensors and actuators in running system– Coordinating sensors and actuators asynchronously– Starting and stopping components dynamically– Monitoring/Interacting/Debugging running system– Development when access to robot is limited– Span multiple compute units– Re-use of components across hardware platforms and devicesACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 9

What Microsoftlearned ––––––Too much complexityToo many resources requiredLack of reusability, choiceLimited tools and technologiesDifficulties in sharingTransference of skills/experienceintends ;-)––––Next Wave after PCs will be robots !?“A Robot in Every Home”, Bill Gates in ASBe(come) a market leader for Robotics SolutionsEstablish .NET Technology also in Industry ?ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 10

Microsoft Robotics StudioAddressing the ChallengesRuntime environment– Execute, monitor, and interact with robotics applicationsAuthoring environment– Write, orchestrate, and deploy robotics applicationsSimulation environment– Execute robotics applications using simulated hardware, physicalentities, and terrainACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 11

Microsoft Robotics Studio: High-level ArchitectureVisualStudioVPLOther.ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 12

Microsoft Robotics StudioA lightweigth concurrency and service oriented runtime– Handling sensor input / controlling actuators– Based on message passing– DSS facilitating tasks and basic servicesAuthoring/development tools––––Visual programming editor (VPL)Visual Studio IDE (.NET languages)Message debuggingSimulationLibraries and basic algorithms– Code samples– DocumentationACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 13

Microsoft Robotics StudioA development platform for the robotics community, supporting a widevariety of users, hardware, and application scenariosMicrosoft Robotics oring ToolsSimulation ToolVisual ProgrammingLanguageServices and SamplesTutorialsRobot servicesRobot modelsTechnology servicesACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 14

Microsoft Robotics StudioA development platform for the robotics community, supporting a widevariety of users, hardware, and application scenariosMicrosoft Robotics StudioRuntimeConcurrencyServicesinfrastructureACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 15

Application ModelBumper(Sensor)MotorMessage Box(Actuator)OrchestratorMotorInfrared Detector(Sensor)Bumper(Sensor)An application is a composition of loosely-coupled componentsconcurrently executing–––Orchestration is a servicePartnering and subscription (static, dynamic)Services are units of orchestrations (nested)ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 16

Service: simple abstraction for hard-/softwareService properties:–––––IdentitySturctured StateOperations and HandlersSupport dynamic discoveryDistributed and asynchronousService ContractPortServiceServiceHandlersUniform behaviour––––StateState retrieval / manipulationService creation / terminationEvent notificationRe-use (composition, aggregation)ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 17

DSSP: Decentralized Software Services ProtocolProtocol based service interaction– DSSP is a SOAP-base protocol for inter-service communication Based on HTTP (existing web infrastructure)Structured data manipulation,Event notificationTCP or HTTP for Intra-nodeopen / performsACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 18

DSSACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 19

The CCR (Concurrent Coordination Runtime)Asynchronous Programming model– A concurrency model without manual threading, locks,semaphores, etc. Based on message passing Focus on coordination primitives Sequential execution butwith no thread blocking, with no need for callback– Execution context for services Isolation from infrastructure Isolation from other servicesACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 20

Messages, Ports, and ArbitersMessages are sent to PortsPort int myPort new Port int () ;myPort.Post (42) ;PortFIFOPorts contain– A FIFO data-structure holding values in a port– A list of continuations that can be executedpending message arrivaland arbitration ServiceServiceArbiterA continuation is represented by a C# delegateCan either be named or nt common concurrency constructsStateand patterns like choicejoininterleaved calculations(batch, persistent, )ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 21

CCR PrimitivesSingle item receiver–Executes code when a message arrivesChoice arbiter–Chooses one receiver (join or single item) from many, across different ports,executes only first one with conditions met, discarding othersJoin expressions––Static join expressionsDynamic over a runtime specified number of ports and messagesInterleave arbiter–Teardown group, Concurrent Group, Exclusive GroupACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 22

Example: ReceivePort string port new Port string iter.Receive(stringPort, delegate(string s){Console.WriteLine("Received: " s);}));//Multiple ItemsPort String stringPort new Port String ();for (int i 0; i 50; i ) iter.MultipleItemReceive(stringPort, 10,delegate(String[] strings){ Msg("Ten strings {0}", String.Join(", ", strings)); }));ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 23

Example: ChoicePortSet int, string port new PortSet int, string ();Arbiter.Activate(Arbiter.Choice(port, MyIntHandler, MyStringHandler));void MyIntHandler(int i){Console.WriteLine("Received: " i);}void MyStringHandler(string s){Console.WriteLine("Received: " s);}ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 24

Example: JoinPort double balancePort new Port double ();Port int depositPort new Port int ();Arbiter.Activate(Arbiter.JoinedReceive int,double (true,depositPort, balancePort,delegate(int b, double d){balance.post(b d);}));ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 25

Example: Dynamic JoinPortSet Result,Exception resultsPort new PortSet int ();// parallel computation by posting requestsFor (int i 0;i N;i ){computePort.Post(new DoWork(someData,resultsPort));}// requests complete asynchronously with unknown number// of failures vs. ive(resultsPort,delegate (ICollection Result successes,ICollection Exception failures){foreach(Result r in results){ }});ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 26

Declarative Coordination for current)]public IEnumerator ITask GetHandler(Get get){get.ResponsePort.Post( state);yield usive)]public IEnumerator ITask UpdateHandler(Update update){state.CurrentResult update.Body.Value;update.ResponsePort.Post(new UpdateResponse());yield break;}ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 27

Declarative DataContract for Services[DataContract]public class ServiceState{private string member "This is my State!";[DataMember]public string Member{get { return member; }set { member value; }}private int ticks;[DataMember]public int Ticks{get { return ticks; }set { ticks value; }}}ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 28

Summary: Runtime EnvironmentDecentralized Software Services (DSS)––––Easy access: View, access component stateFlexibility: discover, start, stop servicesDistribuion: transperancy of service locationReusable, composable, scalableConcurrency and Coordination Runtime (CCR)– Ease of use: small, simple library, that avoids the complexityof manual threading, locks, semaphores, etc– Concurrency: coordination primitivesBased on asynchronouse message passing– Execution context: isolated from infrastructure, other servicesACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 29

Microsoft Robotics StudioA development platform for the robotics community, supporting a widevariety of users, hardware, and application scenariosMicrosoft Robotics StudioAuthoring ToolsSimulation ToolVisual ProgrammingLanguageACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 30

Authoring tools: develop/run a robot applicationWeb browser– Inspect/change service state– Run applications (e.g. JScript as language)Visual Programming Language (VPL)– Dataflow editing– Model and generate– Novice to expertVisual Stuido and .NET tools––––C#C /CLIIron PythonVisual BasicACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 31

Authoring toolsACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 32

Authoring toolsACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 33

Authoring toolsACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 34

Authoring toolsACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 35

Reasons for simulatorReasons:– Robotics hardware is expensive– Often a limited ressource (team)– Difficult to debug and reproducePros:––––Easy for prototypingLow barrier to entryStaged approachUseful for educationCons:– Incomplete model– Lack of noisy data– Accurate tuning ?ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 36

SimulatorACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 37

SimulatorACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 38

Simulator Architecture: Engine Service–––––––Implemented as a serviceMaintains world stateManages input devices3D rendering using XNAAgeia Physics SimulationGraphical User InterfaceEditor for modeling and debuggingUser Interface / GraphicsLibraryDisplayHardwareACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 39

Microsoft Robotics StudioA development platform for the robotics community, supporting a widevariety of users, hardware, and application scenariosMicrosoft Robotics StudioServices and SamplesTutorialsRobot servicesRobot modelsTechnology servicesACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 40

Supported Sensor: SICK LRFSICK LRF– Driver in MSRS 1.0/1.5– Now improved versionAdditional on roadmapACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 41

Supported Actuator: KUKA LBR3KUKA LBR3ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 42

Samples: KUKA Educational FrameworkKUKA EFACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 43

Samples: Maze SimulatorACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 44

Samples: SumoACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 45

Samples: RoboCupACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 46

MSRS history:First CTP June 2006, MSRS 1.0: December 2006– First release, include full runtime, parts of authoring, samplesMSRS 1.5: June 2007– Runtime (DSS,CRR) ported to .NET CF performace improvements– VPL Code Generation, deployment, Manifest Editor– Simulator UI, shadows, material editor– better documentation, new samples,– Updates/Bugfixes in Aug07 Nov07ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 47

Other Robotics Toolkits– OpenSource Open Dynamics Engine (ODE)SimbadTeamBotsKhepera IIGazeboCARMEN– Lego Mindstorms and Lego NXT Legos own development tool chain(RIS, NXGen) Extensions: firmware, OS, programming languages(lejos, nqc/nqx, etc)ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 48

ReferencesURL:– Websitehttp://www.microsoft.com/robotics– – Channel9 nnel9.MSRoboticsStudio– “A robot in every home” Bill Gateshttp://go.microsoft.com/?LinkID 5950849– Parallel programming with .NEThttp://blogs.msdn.com/pfxteam/– .aspxACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 49

ReferencesURL:– Ben Axelrodhttp://www.benaxelrod.com/MSRS/– Trevor Taylorhttp://sky.fit.qut.edu.au/ taylort2/– KUKA Educational educational framework/– DARPA Urban challenge, PAVE projecthttp://pave.princeton.edu/main/– IBM: Open source robotic toolkits, library/l-robotools/ACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 50

ReferencesBooks (in summer 2008)– Programming Microsoft Robotics Studio,Sara MorganMicrosoft Press– Professional Microsoft Robotics StudioKyle Johns, Trevor Taylor, (Martin Calsyn)WroxACCU 2008 Bernhard Merkle 03.04.2008Microsoft Robotics Studio / Page: 51

ACCU 2008 Bernhard Merkle 03.04.2008 Microsoft Robotics Studio / Page: 3 Trial of

Related Documents:

50 robots 100 robots 200 robots 1 robot Foraging Performance Over Time - Random Movement with Clustered Forage Items 0 10 20 30 40 50 60 70 80 90 100 Increasing Time % Completion 5 robots 10 robots 25 robots 50 robots 100 robots 200 robots 1 robot. COMP 4900A - Fall 2006 Chapter 11 - Multi-Robot Coordination 11-18

11) MEDICAL AND REHAB Medical and health-care robots include systems such as the da Vinci surgical robot and bionic prostheses TYPES OF MEDICAL AND HEALTHCARE ROBOTS Surgical robots Rehabilitation robots Bio-robots Telepresence robots Pharmacy automation Disinfection robots OPERATION ALERT !! The next slide shows

ment of various robots to replace human tasks [2]. There have also been many studies related to robots in the medical field. These in - clude surgical robots, rehabilitation robots, nursing assistant ro - bots, and hospital logistics robots [3]. Among these robots, surgi - cal robots have been actively used [4]. However, with the excep-

robot is an intelligent system that interacts with the physical environment through sensors and effects. We can distinguish different types of robots [7]: androids, robots built to mimic human behaviour and appearance; static robots, robots used in various factories and laboratories such as robot arms; mobile robots, robots

The most widespread applications of medical service robots right now are transporter robots and disinfection robots. Both types of robots offer immediate benefits for reduction of cross-infection, and improved operational efficiency. Transporter Robots: One of the huge challenges facing hospitals today is the shortage of medical staff.

tonomous guided vehicles, drones, medical robots, field/ agricultural robots, or others.11 To be sure, traditional industrial robots are the big-gest segment of the robotics market. . of most types of service robots is projected to decline by between 2 and 9 percent each year as well.24 Not all of the new robots are being deployed to sup- .

MEDICAL ROBOTS Ferromagnetic soft continuum robots Yoonho Kim1, German A. Parada1,2, Shengduo Liu1, Xuanhe Zhao1,3* Small-scale soft continuum robots capable of active steering and navigation in a remotely controllable manner hold great promise in diverse areas, particularly in medical applications. Existing continuum robots, however, are

all other robots, but the algorithm will not converge if some robots lose communication with other robots [10]. The task-assignment-based algorithms work well on solv-ing multi-robot formation problems if the number of robots is not large. The major limitation is they require the robots to know tasks in the global sense. Therefore, they are .