The IRE Project Interactive Robot Environment 600.646 Spring 2004.

Slides:



Advertisements
Similar presentations
How to enter the world of Python Programming for ArcGIS Or, a funny thing happened on the way from an ESRI conference By Katherine Paybins WVAGP Membership.
Advertisements

Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Tahir Nawaz Visual Programming C# Week 2. What is C#? C# (pronounced "C sharp") is an object- oriented language that is used to build applications for.
COP4020 Programming Languages
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Process-oriented System Automation Executable Process Modeling & Process Automation.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Digital Image Processing Lecture3: Introduction to MATLAB.
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
October 30, 2008 Extensible Workflow Management for Simmod ESUG32, Frankfurt, Oct 30, 2008 Alexander Scharnweber (DLR) October 30, 2008 Slide 1 > Extensible.
Linux Operations and Administration
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
1 TclGlobus ITR2003 Meeting Argonne National Laboratory May 10 th, 2004 Kent Blackburn LIGO-G E.
ERC Center for Computer Integrated Surgical Systems & Technology1 A Review of Two Robot Control Language Papers to Define our Scope Presented by: Andy.
© R. A. LaMora 2004 Towards an Open-Architecture, [sort-of] Open-Source Software System for Modern Hospitals Andrew LaMora Surgery for Engineers 2004 A.
VTK: The Visualization Toolkit Part I: Overview and object models March 28, 2001.
Designing For Testability. Incorporate design features that facilitate testing Include features to: –Support test automation at all levels (unit, integration,
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Smart Digital Valve Control Simulator May April 25, 2001 Client: Client: Fisher Controls Intl. Inc. Contacts: Contacts: Patrick Ryan and Jeff Seyller.
System Design: Designing the User Interface Dr. Dania Bilal IS582 Spring 2009.
Business Unit or Product Name © 2007 IBM Corporation Introduction of Autotest Qing Lin.
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
SPACE TELESCOPE SCIENCE INSTITUTE Operated for NASA by AURA COS Pipeline Language(s) We plan to develop CALCOS using Python and C Another programming language?
Pegasus Status Update April April 2001 Karl Schopmeyer.
Parallel Interactive Computing with PyTrilinos and IPython Bill Spotz, SNL (Brian Granger, Tech-X Corporation) November 8, 2007 Trilinos Users Group Meeting.
Integrated Development Environment (IDE)
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Computational Methods of Scientific Programming Lecturers Thomas A Herring, Room A, Chris Hill, Room ,
CSE 425: Object-Oriented Programming I Object-Oriented Programming A design method as well as a programming paradigm –For example, CRC cards, noun-verb.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Interfaces to External EDA Tools Debussy Denali SWIFT™ Course 12.
PVSSProxy The first piece of the MACS procedure framework (ProShell) Angela Brett.
Copyright © CISST ERC, 2005 NSF Engineering Research Center for Computer Integrated Surgical Systems and Technology The CISST Software Package Peter Kazanzides.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
1 CSE1340 Class 4. 2 Objectives Write a simple computer program in Java Use Swing components to build the GUI Use proper naming conventions for classes.
The EDGeS project receives Community research funding 1 Porting Applications to the EDGeS Infrastructure A comparison of the available methods, APIs, and.
CITA 342 Section 2 Visual Programming. Allows the use of visual expressions (such as graphics, drawings, or animation) in the process of programming.
Java Beans. Definitions A reusable software component that can be manipulated visually in a ‘builder tool’. (from JavaBean Specification) The JavaBeans.
Copyright © CISST ERC, 2005 NSF Engineering Research Center for Computer Integrated Surgical Systems and Technology Development of Open Source Software.
TCL TK. Tcl/Tk C functions can become Tcl commands that are invoked interactively Tk = scriptable, portable user interface –Windows, X (Unix), MacOS,
Mantid Stakeholder Review Nick Draper 01/11/2007.
 Programming - the process of creating computer programs.
00/XXXX 1 Data Processing in PRISM Introduction. COCO (CDMS Overloaded for CF Objects) What is it. Why is COCO written in Python. Implementation Data Operations.
Pipeline Execution Environment Laboratory of NeuroImaging UCLA.
Copyright © Curt Hill Operating Systems An Introductory Overview.
DnD vs Labview. How Dnd can substitute Labview in LHC control system, what needs to be done. Timofei B. Bolshakov, James F. Patrick.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Jython Environment For Students (JES) Final Presentation Team 3 David Raines Claire Bailey Jason Ergle Josh Sklare July 16,
Linux & UNIX OS Overview Fort Collins, CO Copyright © XTR Systems, LLC Overview of the Linux & UNIX Operating Systems Instructor: Joseph DiVerdi, Ph.D.,
Innovation Intelligence ® 1 Chapter 2: The HyperWorks Desktop Environment.
CST 1101 Problem Solving Using Computers
Before You Begin Nahla Abuel-ola /WIT.
Pipeline Execution Environment
Lecture 1 Runtime environments.
Object-Orientated Programming
How to enter the world of Python Programming for ArcGIS
The Object-Oriented Thought Process Chapter 05
- The Robot Operating System
Welcome to E-Prime E-Prime refers to the Experimenter’s Prime (best) development studio for the creation of computerized behavioral research. E-Prime is.
CIS16 Application Development Programming with Visual Basic
Software - Operating Systems
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

The IRE Project Interactive Robot Environment Spring 2004

The Project: Description of Problem/Solution Currently difficult to debug robots –Interaction is via MFC dialogs only –Configuration/action is via many nested menus No explicit technology to integrate the various systems Solution: –Create an interactive scripting shell –Allow integration by scripting –Provide convenient debugging env. with this shell

The Project: Who Dr. Peter Kazanzides (mentor/MRC expert) Andy LaMora Chris Abidin Anton Deguet (CIS library consultant) Ankur Kapoor (Robot/MRC consultant)

The Project: Features Co-exists with a C++ application Command shell –Works standalone (perhaps in a GUI ala Matlab) –Can be invoked from within an executing program Workspace environment –IRE allows developer to save data and state to persistent files, which can be re-loaded –Error logs and Event logs are viewable separately, and can be queried –Exception handling Safety –“hot-keys” to “kill” hardware power Extensible!!!! –C++ developers expose functionality for use by IRE

The Project: Goals Develop Python-based programming environment to permit easy prototyping and debugging of the multi-modal ERC technologies, which will: –Create a virtual workspace for interacting with integrated systems and persisting data and state –Create a command shell feature to allow debugging/development from within executing C++ applications –Be extensible –Be Open-Source Implement a “real” tracker-robot integration task

The Plan: Overview Discovery & Design: February Prototyping: February-March Alpha/Beta Releases: Late March/April Implementation: April Release: May

The Plan: Discovery & Design Academic/Industrial Literature Review –Who’s done this before, and how’d they do it? User interviews (Dr.s K and T, Ming Li, Ankur Kapoor, etc) Interview Method: –How do you do what you do –Why do you do it that way –What annoys you the most –What current features do you appreciate the most –What do you wish you could do instead?

The Plan: Discovery & Design Resource Discovery: Hardware –Robots –Trackers –Haptic Devices –Cameras Resource Discovery: Software –Robot control library (MRC) –Tracker Library (cisTracker) –Data Object library (cisVecs & co.) –Numerical Library (cisNumerical) –AND: Are these libs sufficient to meet our functionality needs? E.g. Serialization!

The Plan: Discovery & Design Design of Interactive Language: –Functionally similar to IBM AML –Create native data objects? –Create native methods for …? Logging Saving workspace state TBD –Special syntax for logic control (prob. not)?

The Plan: Discovery & Design Technology Discovery/Selection –C++ Control-layer applications –SWIG Wrappering technology –CMake builds projects, and with Swig automatically wraps objects –Python elegant object orientated application and scripting language –TCL interpreted scripting language, used with Slicer, cumbersome –CVS Repository code maintenance/version control

The Plan: Overview Discovery & Design: February Prototyping: February-March Alpha/Beta Releases: Late March/April Implementation: April Release: May

The Plan: Prototyping Wrapping Experiments –What happens to pointers? –Do we get copies where we expect references? –*Can* we wrap everything we need? (again, serialization) Command Shell Experiments –Can we “pause” a program and “drop” into a Python command shell? –Does the shell “see” the data and state environment that we expect? Interface Tools –Can we construct a workspace in Python, do some windowing, etc –Error vs. Event log viewers

The Plan: Overview Discovery & Design: February Prototyping: February-March Alpha/Beta Releases: Late March/April Implementation: April Release: May

The Plan: Alpha/Beta Releases Alpha: –GUI works on Linux, at least –We can “drop” to a command shell –We can save workspace variables (if not yet the whole space) –We have integrated a data lib (cisVecs?) and some portion of cisTracker –“Gut-check”: prospective expert users try it out

The Plan: Alpha/Beta Releases Beta Release: –Command Shell syntax is complete –GUI (if exists) is operational –Integrated with cisTracker –IRE is demonstrated to work with MRC (if not yet controlling a robot) –Peer review –End-user test period

The Plan: Overview Discovery & Design: February Prototyping: February-March Alpha/Beta Releases: Late March/April Implementation: April Release: May

The Plan: Implementation Help documentation complete Extendibility method complete and ready for publishing New instance in CVS repository Undergoing integration with robot to perform a “real” task User license details underway

The Plan: Overview Discovery & Design: February Prototyping: February-March Alpha/Beta Releases: Late March/April Implementation: April Release: May

The Plan: Release All documentation available online System available for use by ERC and public Demonstrate integration with a robot

The Schedule/Progress Weeks 1-2: Discovery and user interviews –Read literature (Python) –Establish bounds on functionality –Complete technology selections –Begin experimentation (prototyping) –Settle design of GUI/workspace environment Weeks 3-5: Programming –Wrap libraries/test –Modify existing libs if/as necessary –Command syntax development underway –GUI/workspace development underway

The Schedule/Progress: Week 5: Milestones –GUI frame complete, –workspace environment commands complete –Wrapping “impossibilities” rectified or handled Week 7: Alpha Release/review –cisTracker integration underway, nearly complete Week 9-10: Beta Release Week 10+: Implementation Mid-may: Release