Upload
sanu222
View
227
Download
0
Embed Size (px)
Citation preview
7/28/2019 Software Engineering in Robotics - Lecture 1
1/21
Software Engineering in Robotics
Introductions
Henrik I. Christensen [email protected]
7/28/2019 Software Engineering in Robotics - Lecture 1
2/21
OUTLINE
Welcome Objectives of the course
Structure of the course
Material for the course
Wrap-Up
7/28/2019 Software Engineering in Robotics - Lecture 1
3/21
WELCOME
7/28/2019 Software Engineering in Robotics - Lecture 1
4/21
Objectives of the course
Introduction to basic software engineering Coverage of issues from design to deployment
Highlight some of the special issues for robotics
Discuss a broad set of methods as used in robotics
Design of a small system for robot navigation
Practical experience using software engineering with
Microsoft Robotics Developer Studio (RDS)
7/28/2019 Software Engineering in Robotics - Lecture 1
5/21
Software Engineering
Programming vs Software Engineering Software Engineering
Systematic approach to analysis, development,
operations and maintenance
Motivation Most systems are highly complex
Expectations are often poorly defined
Quality is often a major challenge
Essential to consider all aspects up-front
7/28/2019 Software Engineering in Robotics - Lecture 1
6/21
Software Engineering - Phases
Requirements analysis Systems Modeling
Functional Modeling
Implementation
Evaluation
Deployment
Maintenance
Documentation
7/28/2019 Software Engineering in Robotics - Lecture 1
7/21
Life Cycle Models
Waterfall Model Prototyping Model
Iterative Enhancement Model
Spiral Life Cycle Model
Agile Software Development
Object Oriented Model
7/28/2019 Software Engineering in Robotics - Lecture 1
8/21
Life Cycle Models - Aspects
Determination of system requirements Design of the system / architecture
Development of the software
Testing and Evaluation
Implementation and Maintenance
Error Distribution / Version Management
7/28/2019 Software Engineering in Robotics - Lecture 1
9/21
Waterfall Model
Pros Easy to explain
Clearly staged
Easy to plan and schedule
Clear Deliverables /milestones
Cons Assumes a linear project
progression
All requirements up-front
Iterations are only implicit
7/28/2019 Software Engineering in Robotics - Lecture 1
10/21
Prototyping life cycle model
Pros Direct user involvement
Good fit to user expectations
Errors detected early
Solution as user buy in
Cons Often a patched design
Management of complexity isnon-trivial
7/28/2019 Software Engineering in Robotics - Lecture 1
11/21
Iterative enhancement cycle model
Pro User buy-in with clear
deliverables
Clearly defined phases /team efficiency
Cons Complex management
Code reuse not obvious
7/28/2019 Software Engineering in Robotics - Lecture 1
12/21
Spiral cycle model
Pro Clear division of activities
Explicit deliverables
Cons Has potential to be costly
Could be slow toimplement
7/28/2019 Software Engineering in Robotics - Lecture 1
13/21
Agile Development Model
Phases Model
Implementation incl unit
testing
Perform objective testing Transition
Deployment
Version Management
Context
Philosophy Staff is competent
Simplicity
Agility
Focus on high-value Tool independence
7/28/2019 Software Engineering in Robotics - Lecture 1
14/21
Object Oriented Model
System Analysis System Design
Object Design
Implementation
Evaluation and Benchmarking
A little more details in lecture 3 (stay tuned)
7/28/2019 Software Engineering in Robotics - Lecture 1
15/21
Considerations/Comparison
Agility Driven Low criticality
Experienced sw
team
Dynamicrequirements
Small team
Highly dynamic
environment
Plan Driven High criticality
Junior sw team
Mostly stable
requirements Large team
Structured
process
Formal Design Extremely
critical
Experienced sw
team
Limited features
Features can be
modeled
Extreme quality
7/28/2019 Software Engineering in Robotics - Lecture 1
16/21
What makes robotics special
Physical changes to the world The systems are typically multi-objective
Requires careful consideration of architecture/data flow
Interaction with physical world and users
Two different interaction models
Component based design with different requirements
Example systems vs components (robots)
Creates disparate requirements in a systems
engineering
Emergent behavior
Multi-threaded execution / complexity
7/28/2019 Software Engineering in Robotics - Lecture 1
17/21
Structure of the course Internet to Robotics Motivation/Background
Software Engineering Tools Introduction to Robotics Developer Studio
Use of simulation for system development
Process / System Models
Inter Process Communications Data Flow Models
Common Control Structures
Hardware Integration Issues
Reference Architectures
Packaging and Deployment of Systems Integration of legacy code and use of libraries
Systems Evaluation and Benchmarking
Outlook and Summary
7/28/2019 Software Engineering in Robotics - Lecture 1
18/21
Exercises
Design of a robot navigation system Architecture of the system?
Simulation of the system using off-the-shelf
components
Service Design and Implementation Landmark Detection
Exploration & Navigation
Hardware Interface & Control
Testing and Evaluation
Deployment & Documentation
7/28/2019 Software Engineering in Robotics - Lecture 1
19/21
Material for the course
Computer running Windows XP / 7 Microsoft Visual Studio 2008/2010Express
Microsoft Robotics Developer Studio R3
Surveyor SRV-1 Robot (or similar)
Slides for all lectures available at CodePlex site
Example C# code available at CodePlex site
7/28/2019 Software Engineering in Robotics - Lecture 1
20/21
Summary
Introduction to the course A need to actively design a system
Exploration of software engineering for robotics
Requirements to Implementation and Evaluation
Coverage of most aspects
Discussion of methods
Objective to provide a sound basis for design
A basis for efficient use design of systems Exploration of use of RDS for robot systems
7/28/2019 Software Engineering in Robotics - Lecture 1
21/21
Acknowledgement
This series of lectures has been developed with thegenerous support from the Microsoft Corporation
under the project Software Engineering in Robotics
Contract # 113873. The support is gratefully
acknowledged.