210 likes | 380 Views
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
E N D
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 • 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