The IRE Project Interactive Robot Environment 600.646 Spring 2004.

Post on 13-Jan-2016

216 views 1 download

Transcript of The IRE Project Interactive Robot Environment 600.646 Spring 2004.

The IRE Project

Interactive Robot Environment

600.646Spring 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