45
CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Embed Size (px)

Citation preview

Page 1: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

CS 425December 17, 2008

Shaun MartinBrian Pritchett

Team ACME Final Presentation

Page 2: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

AgendaProject DefinitionProject PlanHigh Level DesignPrototype Demonstration

Page 3: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Project Definition

Page 4: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Team IntroductionClients

Dr. Jerry Weinberg, Computer ScienceDr. Ryan Krauss, Mechanical EngineeringDr. George Engel, Electrical Engineering

Page 5: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Team IntroductionShaun Martin

Planning ManagerCustomer Interface

ManagerProcess ManagerQuality ManagerDocumentation

Lead

Brian PritchettDesign ManagerImplementation

ManagerTesting ManagerSupport ManagerLead Web Design

Page 6: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Team IntroductionMechanical Engineering Team

Lukas PirokKevin DossKaci BacksLance Labonte

Electrical Engineering TeamGreg EddingsJason Tennyson

Page 7: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Problem DefinitionDevelop an autonomous golf cart to

compete in the DARPA Mini Grand Challenge.Navigate pathway on college campusSmall and inexpensive short-range vehiclesMaximum speed: 5 mph

Develop an autonomous vehicle to be used for Human Robot Interaction (HRI) research.Possible User Interface

Page 8: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

The ChallengeRobot will travel a 7 to 8 foot path with

6 checkpoints.The robot must stop within 2 feet on an

obstacle.The final checkpoint is on an unpaved

path that the robot must navigate.The total distance of travel will be no

longer than 0.5 miles.There will be no markers, lines, or

beacons to indicate the path.

Page 9: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

The ChallengeA robot that stops for more than 60

seconds when not waiting for an obstacle to be removed will be considered “brain dead.”

No human contact with the robot is allowed.

Robots will also be judged on how it interacts with the crowd.

Page 10: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Contest Rules1.) Must be powered by batteries (no

combustibles).2.) May be constructed from anything that

does not interfere with rule 1.3.) Must stay between 1 and 5 mph.4.) Must be able to transport 1 gallon of water.5.) Must have a clearly labeled stop button or

switch.6.) Should be in the 25-75 lb range.

Page 11: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Contest Rules7.) Max size is 216 feet cubed (6 x 6 x 6).8.) No communication between the robot and

an outside device is allowed, except for GPS.

9.) Communication between devices that are part of

the robot is allowed.10.) The robot must be a single entity.11.) Robots are ground robots. No aerial

robots are allowed.

Page 12: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Current Design - Overview

GPSGPS (2) (2)-waypoint navigationwaypoint navigation-intelligent redundancyintelligent redundancy

Camera(s)Camera(s)-path findingpath finding-trajectory planningtrajectory planning-obstacle avoidanceobstacle avoidance

SonarsSonars (4) (4)-obstacle avoidanceobstacle avoidance-trajectory planningtrajectory planning-II22C busC bus

DC MotorDC Motor-steering position controlsteering position control-gear reduction for torquegear reduction for torque-II22C busC bus

Linear ActuatorLinear Actuator-braking position controlbraking position control-II22C busC bus

Quadrature EncodersQuadrature Encoders (2) (2)-velocity controlvelocity control-steering position controlsteering position control-II22C busC bus

Page 13: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Who are the Users?Team ACMEProfessors & students pursuing research in

HRIBystanders during demonstrations

Page 14: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Software RequirementsMust be able to run on Windows machineDesired programming language is C++OpenCV for Image ProcessingUse APIs developed by ECE team

Page 15: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

System FunctionalityInterface with GPS units for navigationLaser for obstacle avoidanceMulti-threaded applicationImage ProcessingUser Interface for HRI research

Page 16: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Requirements AnalysisInterviews with Dr. Weinberg

What needs to be done this year?Phone conferences with Ross Mead

What sections of code need to be improved?Review of existing code

Page 17: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Project Plan

Page 18: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Software Process - Scrum

Page 19: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Pre-Game PhaseTwo sub-phases:

PlanningHigh level design /

ArchitectureDeliverables:

Product backlogCoding /

Documentation Standards

Design Documents

Page 20: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Development PhaseImplements iterative cycles called “Sprints”Sprints consist of:

Sprint planning meetingDetailed designImplementationTestingReview

Page 21: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Post-Game PhaseFinal phase of ScrumSub-phases:

System testingFinal Release

Deliverables:Final DocumentationWorking Product

Page 22: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

RolesScrum Master / Product Owner

Project managerInteracts with customerMaintains product backlog

Scrum TeamPrimary concerns: sprints

CustomerSynonymous with client

ManagementDr. Blythe and Dr. Fujinoki

Page 23: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Software Engineering MethodsVersion Control

SubversionReview

Required with ScrumRanges from informal “desk checks” to

inspection reviewsDependent on importance of current sprint

Page 24: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Software ToolsTortoiseSVN

Free version control system that integrates within the Windows shell

Microsoft ProjectProject management software to assist teams in

assigning tasks, managing resources, and assigning workloads

Microsoft Visual Studio 2008Primary IDE used for development

OpenCVOpen-source cross-platform computer vision

library

Page 25: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Testing PlanUnit Testing

Individual modules will be tested by developer during sprint

Integration TestingCompleted sprint product tested with current

working productSystem Testing

Fully developed system tested during post-game phase

Final testing session prior to final release

Page 26: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Estimation MethodWideband Delphi Estimation

Requires that a work breakdown structure be implemented prior to using this estimation method

Work breakdown structure for our project will be the product backlog list

Kickoff meeting which correlates to our sprint planning meetings.Specific tasks are selectedMake individual estimations

Worst case, best case, average case are logged. Estimate is the average

Page 27: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Project TimelineTask Duration Start FinishOrange Cone Interaction 12 days 12/1/2008 12/15/2008 Sprint Planning Meeting 1 day 12/1/2008 12/1/2008 Detailed Design 3 days 12/2/2008 12/4/2008 Implementation 5 days 12/5/2008 12/11/2008 Unit Testing 2 days 12/12/2008 12/14/2008 Sprint Review Meeting 1 day 12/15/2008 12/15/2008Sprint Completed 0 days 12/15/2008 12/15/2008Integration Testing 4 days 12/16/2008 12/19/2008Obstacle Avoidance 12 days 1/12/2009 1/26/2009 Sprint Planning Meeting 1 day 1/12/2009 1/12/2009 Detailed Design 3 days 1/13/2009 1/15/2009 Implementation 5 days 1/16/2009 1/22/2009 Unit Testing 2 days 1/23/2009 1/25/2009 Sprint Review Meeting 1 day 1/26/2009 1/26/2009Sprint Completed 0 days 1/26/2009 1/26/2009Integration Testing 4 days 1/27/2009 1/30/2009Velocity Control 12 days 2/2/2009 2/16/2009 Sprint Planning Meeting 1 day 2/2/2009 2/2/2009 Detailed Design 3 days 2/3/2009 2/5/2009 Implementation 5 days 2/6/2009 2/12/2009 Unit Testing 2 days 2/13/2009 2/15/2009 Sprint Review Meeting 1 day 2/16/2009 2/16/2009Sprint Completed 0 days 2/16/2009 2/16/2009Integration Testing 4 days 2/17/2009 2/20/2009

Page 28: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Project TimelineEmergency Shutoff 12 days 2/23/2009 3/9/2009 Sprint Planning Meeting 1 day 2/23/2009 2/23/2009 Detailed Design 3 days 2/24/2009 2/26/2009 Implementation 5 days 2/27/2009 3/5/2009 Unit Testing 2 days 3/6/2009 3/8/2009 Sprint Review Meeting 1 day 3/9/2009 3/9/2009Sprint Completed 0 days 3/9/2009 3/9/2009Integration Testing 4 days 3/10/2009 3/13/2009Crowd Interaction System 12 days 3/16/2009 3/30/2009 Sprint Planning Meeting 1 day 3/16/2009 3/16/2009 Detailed Design 3 days 3/17/2009 3/19/2009 Implementation 5 days 3/20/2009 3/26/2009 Unit Testing 2 days 3/27/2009 3/29/2009 Sprint Review Meeting 1 day 3/30/2009 3/30/2009Sprint Completed 0 days 3/30/2009 3/30/2009Integration Testing 4 days 3/31/2009 4/3/2009Remote Drive System 12 days 4/6/2009 4/20/2009 Sprint Planning Meeting 1 day 4/6/2009 4/6/2009 Detailed Design 3 days 4/7/2009 4/9/2009 Implementation 5 days 4/10/2009 4/16/2009 Unit Testing 2 days 4/17/2009 4/19/2009 Sprint Review Meeting 1 day 4/20/2009 4/20/2009Sprint Completed 0 days 4/20/2009 4/20/2009Integration Testing 4 days 4/21/2009 4/24/2009System Testing 17 days 4/6/2009 4/27/2009

Page 29: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Project Timeline – Sample Sprint

Page 30: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Risk AnalysisRisk Likelihood Cost Plan

Temporary loss of team member

10% 7 days -redistribute roles

New contest rules 20% 3 days -revisit high level design-add new rules to product backlog list

Delays due to other teams 70% 7 days -consult client-work on tasks that are independent of other team-consult upper management-conduct team meeting

Interface with existing system

80% 7 days -study existing code prior to integration-consult last year’s team

Sensor failure 25% 3 days -debug code-check electrical system-consult ECE team

Steering failure 25% 3 days -consult ME team

Hardware failure 15% 2 days -consult teams-redesign if legacy hardware is needed

Page 31: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Coding and DocumentationName and

author(s) at top of each file.

A brief descriptionRequired files will

be listed.Above each

function prototype, a brief description of the function will be included.

Above each function definition, a more detailed description of the function will be included.

Inputs, outputs, and return types will be listed, including a brief description of how they will be used.

Page 32: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Coding Example//// ostream& <<(out, th)// Last modified: 14Feb2008//// Outputs the parameterized thread to the parameterized output file stream.//// Returns: the output file stream// Parameters:// out in/out the output files stream// th in/out the thread to output//ostream& operator <<(ostream &out, const Thread_t &th){ out << th.getName() << " [" << th.getID() << "]"; return out;} // <<(ostream &, const Thread_t &)

Page 33: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Conflict Resolution ProcedureThe group member with the issue will

present their problem to the other team member.

The two will attempt to come to an agreement.

If no agreement can be made, the group will approach upper management for a resolution.

Page 34: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Ethical ConsiderationsWe will do our best to produce solid code

that completes the project that is agreed upon between us and our client.

We will not take credit for code written by previous teams.

We will not take credit for code or work done by teams we are working with.

Page 35: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

High Level Design

Page 36: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

PEAS DescriptionPEAS – Performance, Environment,

Actuators, SensorsUsed to determine what type of agent will

be used, robot control system, and robot architectureAgent

TypePerformance Measure

Environment

Actuators

Sensors

Autonomous Golf Cart

Safe, successful navigation to desired waypoint following competition standards

Campus pathways, students, other traffic, various obstacles

Steering, accelerator, brakes, display

Camera, Sonar, Outdoor laser, GPS, motor sensors, keyboard

Page 37: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Task EnvironmentPartially observable

Sensors do not provide complete state of environment

StochasticHard to keep track

of all unobserved aspects

Next state cannot be determined based on current state

DynamicEnvironment is

constantly changingContinuous

Environment is constantly changing over time

Multi-agentSequential

Previous actions can impact current actions

Page 38: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Goal-based Agent

Page 39: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

High Level DesignRobot Control

Behavior-based Control SystemRobot exhibits many “behaviors”Allows for modularity and iterative development

Robot ArchitectureSubsumption Architecture

reactive robot architecture heavily associated with behavior-based robotics

Emulates concurrency

Page 40: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Finite State Machine Model

Page 41: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Subsumption Architecture Model

Page 42: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Current Product BacklogTask Priority

Orange Cone Interaction 1

Obstacle Avoidance 2

Velocity Control 3

Emergency Shutoff System 4

Flag System (demonstration or competition)

5

Crowd Interaction 6

Remote Drive 7

Improved User Interface 8

Page 43: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Current Product BacklogTask Priority

Orange Cone Interaction 1

Obstacle Avoidance 2

Velocity Control 3

Emergency Shutoff System 4

Flag System (demonstration or competition)

5

Crowd Interaction 6

Remote Drive 7

Improved User Interface 8

Page 44: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Prototype Demonstration

Page 45: CS 425 December 17, 2008 Shaun Martin Brian Pritchett Team ACME Final Presentation

Questions?