Software Engineering in Robotics - Lecture 1

  • 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.