the ire project
DESCRIPTION
The IRE Project. Interactive Robot Environment 600.646 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 - PowerPoint PPT PresentationTRANSCRIPT
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