MSRS - Critique on its Usability via a Path Planning Algorithm Implementation George Markou & Ioannis Refanidis University of Macedonia Greece Microsoft Robotics (1/2) • Microsoft Robotics Studio (MSRS) 1.0 – Originally available in late 2006 • MSRS 1.5 Refresh – Available in late 2007 – Version we used to implement our experiments • Microsoft Robotics Developer Studio (MRDS) 2008 – Current version (Since April 2008) 13 April 2015 AIAI 2009 2/13 Microsoft Robotics (2/2) Features include: – Microsoft Visual Simulation Environment (VSE) • 3D physics-based virtual environments • User can create / import 3-dimensional meshes into MSRS’ simulation environment – Support for multiple programming languages • C#, C++, VB.NET, Iron Python • Visual Programming Language (VPL) – Built-in support for multiple robots • LEGO MINDSTORMS NXT, iRobot Create, MobileRobots Pioneer P3DX, etc. – Concurrency and Coordination Runtime (CCR) • “manages asynchronous operations, exploits parallel hardware and deals with concurrency and partial failure” 13 April 2015 AIAI 2009 3/13 Related Work What others say: – Lots of technological solutions to common robotic field problems : e.g. VPL & concurrency control &efficient distributed message passing. (Jackson J, 2007) – Usefulness in academic environment: • • Link between language syntax already known to students and unfamiliar robotics semantics Satisfied with the available features of the program and its support (Workman K & Elzer S, 2009)) – Will force other platforms to develop their competitive products so as to offer similar capabilities (Tick J, 2006) – Evident limitations: e.g. integration with low level processors (Jackson J, 2007) – Usefulness in high school environment: • Main disadvantage: Visual programming language used requires detailed knowledge of an imperative programming language (Tsai W T et al., 2007) Our critique? 13 April 2015 AIAI 2009 4/13 Robotics Platforms Comparison MSRS 1.5 MobileRobots Skilligent Orocos Player Project Urbi/ Webots Open Source No No No Yes Yes Parts of Urbi Free of Charge Express Edition No No Yes Yes No Windows/ Linux Yes/ No Yes/ Yes Yes/ Yes No/ Yes No/ Yes Yes/ Yes Other OS No No No No Yes Yes Distributed Services Yes No Yes No Limited Yes Drag-and-Drop IDE Yes No No No No Yes Object Recognition No No Yes No No No Localization No Yes Yes No No No Learning/ Social Interaction No No Yes No No No Simulation Environment Yes Yes No No Yes Yes Reusable Service Blocks Yes Yes Yes Yes No Yes Real-Time No No No Yes No No 13 April 2015 AIAI 2009 5/13 Maze Domain (1/2) • Simulated Maze – Originally created using MSRS 1.5 Refresh – Migrated to MRDS 2008 • Creating very realistic environment: not suited for novices – Professional examples: see SimplySim (www.simplysim.net) 13 April 2015 AIAI 2009 6/13 Maze Domain (1/2) • Our environment – Simpler – Based on the “MazeSimulator” project (Trevor Taylor http://www.promrds.com/Downloads.htm) – Gridworld of size 7×7 – Nodes can randomly alternate their status between blocked & unblocked (abstraction of the Robocup Rescue Simulator Competition http://www.robocuprescue.org) 13 April 2015 AIAI 2009 7/13 Maze Domain (2/2) • Robot – Pioneer 3DX with mounted Sick Laser Range Finder (LRF) LM200 • Movement of the robot: – Moves in a straight line for a distance equal to the length of a node. – Decides, based on the planning algorithm, if a turn is necessary – Executes the turn (in angles which are multiple of 90°) • Using LRF, the robot builds a tri-color map of the environment – White color: Free space – Black color : Laser hit an obstacle – Grey color: Non explored part of the maze 13 April 2015 AIAI 2009 8/13 Implementation • Implemented the backwards version of the Lifelong Planning algorithm (LPA*) (Koenig et al., 2004) – Combination of heuristic (A*) & incremental algorithm (DynamicSWSF-FP) – Able to repeatedly find a shortest path between two given vertexes in a dynamic environment • Dynamic Environment: Blocking / unblocking a maximum of two nodes. • Use of C# 13 April 2015 AIAI 2009 9/13 Critique (1/2) Why not VPL? • • • • Preference towards languages related to our previous knowledge (in our case C#) Diagrams tend to become exceedingly large as program’s complexity increases Limited support for arbitrary user-defined data types Built-in support: – – – Control flow: “if statements” Collection of items: lists Recursion and arrays are not natively supported Why VPL? • Graphical “drag-and-drop” programming – • • Best suited for novice users Creation of a program by “orchestrating activities” == connecting activity blocks Most useful as a tool, especially if one is not familiar with MSRS’ environment – Easily create the skeleton of a basic program by wiring activities to each other & automatically generating C# code through it 13 April 2015 AIAI 2009 10/13 Critique (2/2) • CCR: – Handles the required messaging and orchestration efficiently – Instead of writing complex code to coordinate sensors & motors functioning simultaneously • Simulation environment – Served our functional needs – Aesthetically appealing • MSRS 1.5 Refresh: Extensive features & capabilities • Potentially establish it as the field’s standard • Major advantage: Vast economical & commercial support a company like Microsoft can provide for it Several minor or major difficulties • Major: Unexpected termination depending on the machine it was executed on • Most attributed to small life cycle of the product migration to MRDS resolved them • Such problems could discourage researchers/educators from relying on it 13 April 2015 AIAI 2009 11/13 Future Work • Different environment – Induce changes to it more than once – Coordinate MSRS’s services to communicate automatically every time a change occurs • More efficient, semi-quantitative evaluation – Develop structured questionnaire – Ask two groups of students to fill them out – Each of them will implement a similar robotics project in MSRS & another robotic platform 13 April 2015 AIAI 2009 12/13 Thank you! • Comments? Questions? • Contact us at: gmarkou/ yrefanid@uom.gr 13 April 2015 AIAI 2009 13/13