310 likes | 444 Views
R.O.M.P Robot Orientation Mapping Project. Michael Lazar: Project Manager. Sean Hogan: Lead Designer. Peri Subrahmanya: Lead Designer. Joe Hackstadt: Lead Programmer. Sean Williams: Documentation & Testing. Clients. Dr. Jerry Weinberg Associate Professor
E N D
R.O.M.PRobot Orientation Mapping Project Michael Lazar: Project Manager Sean Hogan: Lead Designer Peri Subrahmanya: Lead Designer Joe Hackstadt: Lead Programmer Sean Williams: Documentation & Testing Team Evolution
Clients Dr. Jerry Weinberg Associate Professor Andrew Lamonica Instructional Specialist Team Evolution
Equipment Marvin (Test Robot) Taz Team Evolution
Problem • Where is Taz? • Users need to know where they are! • Users need to know where they can go! • Flexibility • More controls to facilitate better user experience Team Evolution
Existing System Team Evolution
Solution • Orientation • Develop a mapping feature to go on the existing web interface, that allows intuitive orientation of the robot and it’s location within it’s environment • Flexibility • Develop intuitive camera controls to allow panning, tilting, and zooming of the robot camera to the existing web interface, while keeping camera bearing and robot heading orientation Team Evolution
Users • School Children • For education and entertainment • Prospective Students • Show an interesting aspect of computer science • School of Engineering • Promote the University, and the School of Engineering Team Evolution
Functional Requirements • Provide controls to allow the camera pan, tilt, and zoom to the existing web interface • Provide mapping feature to the existing web interface • Run on existing framework (Java) Team Evolution
Non-Functional Requirements • Camera Controls • Provide good feedback of control response • Provide good ‘mapping’ of control to function • Mapping • Provide enough detail to gain orientation • Assist in robot navigation • Misc. • Develop robust and modular designs • Use efficient coding techniques • Users must have internet connection of 56Kbps+ • Support all Java 1.1 capable browsers Team Evolution
Prototype Team Evolution
Existing Architecture Web Browser • Applet • Generates and updates user interface User Person wanting to control robot • Middle Man • Coordinates communication request among all applets and the client • Manages user time slices • Client • Interprets and relays high-level commands from Middle Man to low-level P2OS server • Contains and uses grid map Robot Robot to be controlled • P2OS • Directly Controls Robot Hardware Team Evolution
Mapping Subsystem - How does Taz navigate? • Digital map of EB 1st Floor • Series of nodes and edges • Laser localization used to identify Taz’s location Team Evolution
Mapping Subsystem - How can we locate Taz? { X coor (mm), Y coor (mm), theta ( º ) } + Y + X - X - Y Origin (0,0) Team Evolution
Mapping Subsystem • Representing the Map • Create accurately scaled EB floor plan • Identify scale (mm/pixel) • Identify the origin on our map image • Shade permitted area • Representing the Robot • Arrow shape indicates direction Team Evolution
Mapping Subsystem Mapping Classes Map Class • Image mapImage • double scaleFactor • int originOffset • int zoomLevel • plotRobot(x,y,θ) • zoomMap(+/-) • update(robot) Robot Class • Image robotImage • float xPos, yPos • float theta • update(x,y,θ) • getPosition( ) Team Evolution
Control Applet Robot Object Connection Handler 1. Update Robot Position Plot robot If command contains position information 2. Update Map Map Canvas Receivecommand from middle man Send commandsto middle man Middle Man Server Robot Server Retrieve position information from robot Team Evolution
Camera Control Design Team Evolution
Existing Architecture Web Browser Applet | Middleman Interface Java Middleman | Client Interface C++ / Aria Client | P2OS Interface Robot | P2OS Interface User Person wanting to control robot Applet Generates and updates user interface User | Applet Interface Middle Man Coordinates communication request among all applets and the client Manages user time slices Client Interprets and relays high-level commands from Middle Man to low-level P2OS server Contains and uses grid map Robot Robot to be controlled P2OS Directly Controls Robot Hardware Team Evolution
Architecture Modifications • Applet • Generates and updates user interface • Middle Man • Coordinates communication request among all applets and the client • Manages user time slices • Client • Interprets and relays high-level commands from Middle Man to low-level P2OS server • Contains and uses grid map • P2OS • Directly Controls Robot Hardware Camera Control • Control Implementation • Communication (via connHandler) • Implementation of new commands • Validation of new commands Mapping • Communication (via connHandler) • Polling for position information • Localization feedback Team Evolution
Robot Control Panel Prototype 1 Prototype 2 Prototype 3 ROBT TURN LEFT CAM PAN LEFT X, Y, Theta Integration Into Existing System Movement Controls Connection Handler Middleman Server Camera Controls Mapping Team Evolution
Control and Mapping implementation Control and Mapping interface Evolutionary Delivery Team Evolution
Middleman Modification Subproject Control Subproject Mapping Subproject Detailed Design Detailed Design Detailed Design Coding and Debugging Coding and Debugging Coding and Debugging Subsystem Testing Subsystem Testing Subsystem Testing Integration Testing Develop a version Deliver the Version Incorporate Feedback Customer Feedback Final Release Evolutionary Delivery Subprojects Team Evolution
Dr. Weinberg Upper Management/Client Dr. Blythe Upper Management Andrew Lamonica Client Mike Lazar Project Manager Peri Subrahmanya Lead Designer/Web Administrator Sean Hogan Lead Designer Joe Hackstadt Lead Programmer Sean Williams Documentation/Testing Organization Chart Team Evolution
Project Risks Impact (weeks) Risk exposure (weeks) Risk Probability Difficult learning curve Incompatibility with Aria Poor scheduling Unforeseen dependencies Personnel Problems 40% 50% 15% 20% 10% 3 1 1-2 1 0.5 1.2 0.5 0.15 – 0.3 0.2 0.05 Team Evolution
Risk Management • Difficult learning curve • Reading Java and graphics books • Reading the existing code • Working with Andrew Lamonica • Incompatibility with Aria • Working with Andrew Lamonica • Code that works with Saphria Team Evolution
Risk Management (contd.) • Overly optimistic scheduling • Built in buffer time throughout • Buffer time at end • Unforeseen dependencies • Adequate buffer time scheduled • Personnel problems • Follow conflict resolution plan Team Evolution
Stakeholders • Team Evolution • CS Department • School of Engineering • Client (Dr. Weinberg) • Upper Management (Dr. Weinberg, Dr Blythe) Team Evolution
Development Tools • Eclipse • Aria • Visual Source Safe • MS Project Professional • MS Word 2002 • Macromedia Dreamweaver 2004 Team Evolution
Project Status • Camera control design complete • Mapping design complete • Documentation complete • Working Java prototype Team Evolution
Questions Team Evolution