Vous êtes sur la page 1sur 21

Software Engineering in Robotics Introductions

Henrik I. Christensen hic@cc.gatech.edu

OUTLINE

Welcome Objectives of the course Structure of the course Material for the course Wrap-Up

WELCOME

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)

Software Engineering

Programming vs Software Engineering Software Engineering

Systematic approach to analysis, development, operations and maintenance Most systems are highly complex Expectations are often poorly defined Quality is often a major challenge Essential to consider all aspects up-front

Motivation

Software Engineering - Phases


Requirements analysis Systems Modeling Functional Modeling Implementation Evaluation Deployment Maintenance Documentation

Life Cycle Models


Waterfall Model Prototyping Model Iterative Enhancement Model Spiral Life Cycle Model Agile Software Development Object Oriented Model

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

Waterfall Model

Pros

Cons

Easy to explain Clearly staged Easy to plan and schedule Clear Deliverables / milestones

Assumes a linear project progression All requirements up-front Iterations are only implicit

Prototyping life cycle model

Pros

Cons

Direct user involvement Good fit to user expectations Errors detected early Solution as user buy in

Often a patched design Management of complexity is non-trivial

Iterative enhancement cycle model

Pro

Cons

User buy-in with clear deliverables Clearly defined phases / team efficiency

Complex management Code reuse not obvious

Spiral cycle model

Pro

Cons

Clear division of activities Explicit deliverables

Has potential to be costly Could be slow to implement

Agile Development Model

Phases

Philosophy

Model Implementation incl unit testing Perform objective testing Transition Deployment Version Management Context

Staff is competent Simplicity Agility Focus on high-value Tool independence

Object Oriented Model


System Analysis System Design Object Design Implementation Evaluation and Benchmarking A little more details in lecture 3 (stay tuned)

Considerations/Comparison

Agility Driven

Plan Driven

Formal Design

Low criticality Experienced sw team Dynamic requirements Small team Highly dynamic environment

High criticality Junior sw team Mostly stable requirements Large team Structured process

Extremely critical Experienced sw team Limited features Features can be modeled Extreme quality

What makes robotics special


Physical changes to the world The systems are typically multi-objective

Requires careful consideration of architecture/data flow


Two different interaction models Example systems vs components (robots)

Interaction with physical world and users

Component based design with different requirements

Creates disparate requirements in a systems engineering Emergent behavior Multi-threaded execution / complexity

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

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

Material for the course


Computer running Windows XP / 7 Microsoft Visual Studio 2008/2010 Express 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

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

Acknowledgement

This series of lectures has been developed with the generous support from the Microsoft Corporation under the project Software Engineering in Robotics Contract # 113873. The support is gratefully acknowledged.

Vous aimerez peut-être aussi