Software Development Methodology for Robotic and Embedded Systems (from drawing to coding) Presented by Iwan Setiawan for Robot and Technology Fair (01-12-09)-

Slides:



Advertisements
Similar presentations
Project Title Here IEEE UCSD Overview Robo-Magellan is a robotics competition emphasizing autonomous navigation and obstacle avoidance over varied, outdoor.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Chapter 8: Central Processing Unit
Introduction to Robotics Lecture One Robotics Club -Arjun Bhasin.
1 ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
Sensor Network Platforms and Tools
The Bioloid Robot Project Presenters: Michael Gouzenfeld Alexey Serafimov Supervisor: Ido Cohen Winter Department of Electrical Engineering.
1 Introduction to modeling Process modelling. 2 Where are we? #TitleDate 1Introduction ORM modeling Relational modeling
Bastien DURAND Karen GODARY-DEJEAN – Lionel LAPIERRE Robin PASSAMA – Didier CRESTANI 27 Janvier 2011 ConecsSdf Architecture de contrôle adaptative : une.
©Ian Sommerville 2000CS 365 Ariane 5 launcher failureSlide 1 The Ariane 5 Launcher Failure June 4th 1996 Total failure of the Ariane 5 launcher on its.
Engineering H193 - Team Project Gateway Engineering Education Coalition P. 1 Spring Quarter 2008 Robot Programming Tips Week 4 Day 2 By Matt Gates and.
CSE Design Lab – Milestone 2 James Hopkins Dave Festa Dennis O’Flaherty Karl Schwirz.
PROCESS MODELING Transform Description. A model is a representation of reality. Just as a picture is worth a thousand words, most models are pictorial.
ARIANE 5 FAILURE ► BACKGROUND:- ► European space agency’s re-useable launch vehicle. ► Ariane-4 was a major success ► Ariane -5 was developed for the larger.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Chapter 9 Using Data Flow Diagrams
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
A Navigation System for Increasing the Autonomy and the Security of Powered Wheelchairs S. Fioretti, T. Leo, and S.Longhi yhseo, AIMM lab.
Lesson-21Process Modeling Define systems modeling and differentiate between logical and physical system models. Define process modeling and explain its.
Chuang-Hue Moh Spring Embodied Intelligence: Final Project.
EMBEDDED SOFTWARE Team victorious Team Victorious.
©Ian Sommerville 2004Software Engineering Case Studies Slide 1 The Ariane 5 Launcher Failure June 4th 1996 Total failure of the Ariane 5 launcher on its.
Design and Implementation of Metallic Waste Collection Robot
What is it? A mobile robotics system controls a manned or partially manned vehicle-car, submarine, space vehicle | Website for Students.
June 12, 2001 Jeong-Su Han An Autonomous Vehicle for People with Motor Disabilities by G. Bourhis, O.Horn, O.Habert and A. Pruski Paper Review.
0 Deterministic Replay for Real- time Software Systems Alice Lee Safety, Reliability & Quality Assurance Office JSC, NASA Yann-Hang.
Fuzzy control of a mobile robot Implementation using a MATLAB-based rapid prototyping system.
Chapter 10 Architectural Design
An Introduction to Real time Systems by Dr. Amin Danial Asham.
AGV / ASRS April 12 th, 2005 Student Names: Trevor Skipp and Albert Chung Instructor: A. A Arroyo University of Florida Department of Electrical and Computer.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
PLC introduction1 Discrete Event Control Concept Representation DEC controller design DEC controller implementation.
Real Time & Embedded Systems Lecture 1: Real Time Systems Software (RTSS) RTSS: the software half of the Real Time & Embedded Systems unit What do we mean.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 16 System Architecture and Design II.
The Ariane 5 Launcher Failure June 4th 1996 Total failure of the Ariane 5 launcher on its maiden flight.
Internet Addresses. Universal Identifiers Universal Communication Service - Communication system which allows any host to communicate with any other host.
Mobile controlling robot. What is a Robot ? “A re-programmable, multifunctional manipulator designed to move material, parts, tools, or specialized devices.
Internet Model. Interfaces Between Layers The passing of the data and network information down through the layers of the sending device and back up.
Requirement Engineering. Review of Last Lecture Problems with requirement Requirement Engineering –Inception (Set of Questions) –Elicitation (Collaborative.
SOFTWARE DESIGN.
VHDL IE- CSE. What do you understand by VHDL??  VHDL stands for VHSIC (Very High Speed Integrated Circuits) Hardware Description Language.
MECHATRONICS PRESETATION BY ANGSHUMAN DEBRAJ & HRISHIKESH MEHTA.
1 Introduction to Software Engineering Lecture 1.
10-Sep Fall 2001: copyright ©T. Pearce, D. Hutchinson, L. Marshall Sept Recall Objective: understand computers at machine level interested.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Modeling as a Design Technique Chapter 2 Part 1: Modeling Concepts Object-Oriented Modeling and Design Byung-Hyun Ha
1 CMPT 275 High Level Design Phase Modularization.
1 Model Checking of Robotic Control Systems Presenting: Sebastian Scherer Authors: Sebastian Scherer, Flavio Lerda, and Edmund M. Clarke.
3/5/2009Computer systems1 Using Data flow Diagrams Computer System: 1. Input 2. Data Processing 3. Output.
The Project-Sony Self-governing Observer with Navigation by Yourself Student: Clion Jean-Baptiste Supervisor: Dr Christophe Meudec Presentation.
CS223: Software Engineering
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
CSCI 3428: Software Engineering Tami Meredith Chapter 1 Why Software Engineering.
Object and Class Structuring Chapter 9 Part of Analysis Modeling Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Topic 10Summer Ariane 5 Some slides based on talk from Sommerville.
A PRESENTATION ON EMBEDDED SYSTEM
Automation as the Subject of Mechanical Engineer’s interest
Problem Solving How do we attack a large problem?
How SCADA Systems Work?.
Fault Tolerant Computing
Ariane 5 Software error Integer overflow.
Software Design Mr. Manoj Kumar Kar.
FORMAL SYSTEM DEVELOPMENT METHODOLOGIES
Automation Topics: Elements of an Automated System
Introduction to Systems Analysis and Design
CS 501: Software Engineering Fall 1999
Introduction To software engineering
Discrete Controller Synthesis
Presentation transcript:

Software Development Methodology for Robotic and Embedded Systems (from drawing to coding) Presented by Iwan Setiawan for Robot and Technology Fair ( )- Mechanical Engineering of Undip

Facts Around Software for Robotic Highly Complex (Multi fields):  Mobile robot -> Navigation problem (where Am I, Where am I going, how should I get there), Sensor fusion, Trajectory, Control, Artificial intelligence, etc.  Human : naturally navigate by landmark  How about robot navigation? -using landmark -dead reckoning -beacon, etc

Facts Around Software for Robotic  Manipulator ->Stability problem, Trajectory, Sensor fusion, Artificial intelligence, etc.  Humanoid : More problem…more complicated

Robotic Software Characteristics  Multitasking and concurrent : Tasks executed concurrently  Reactive and Transformative (Hybrid) : have interaction with environment continuously  Real Time : Correctness not just depend on logical but temporal either  Deal with diversity in sensor and actuator characteristic (timing, signal..) : Ultrasound, MEM gyro, MEM accelerometer, encoder, infrared, camera, servo drive, motor DC, etc, etc

Robotic Software Characteristics Multitasking, concurrent, real time software illustration

To Develop Software for such kind of Problem, What should we do ?  We should use Software infrastructure -a kind of RTOS -real time operating system for scheduling purpose (remember robotic or embedded software is multitasking).  Commercial RTOS (ex. Vxwork), but cost..?, porting.. ?  Home made RTOS. but reliability..?, porting.. ?  Alternative : Create Scheduler using timer (it’s the simple one)

To develop Software for such kind of Problem, What should we do ?  We should use a kind of method (or methodology) for specification and design  We should realized the importance of Software models (a kind of system representation): -Functional model -Behavioral model -Structural Model All Model must be pictures, why ?

All Models must be pictures, why ?  Everybody like Pictures  Pictures is easy to understand  Pictures is comprehend  Picture is easy to discuss Remember the old adage: One picture is Worth a thousand of words

But in the other side….  We trained to think procedurally (ex. using flowchart) : function, algorithm  we usually have a view that software is all about program, not a system  we tempted to coding directly : trial by fix  The application usually built using down up manner in bare hardware (ex. microcontroller)  The infrastructure usually used is mixing between pooling and interrupt (background and foreground)  And many more..

What Software methodology offer?  Guidance to reach goal in consistent way : (1)System requirement (specification), (2)design, (3)implementation  Getting reliable software  Freeing from bugs The Report of Software bug ( On 4 June 1996, the maiden flight of the Ariane 5 launcher ended in a failure. Only about 40 seconds after initiation of the flight sequence, at an altitude of about 3700 m, the launcher veered off its flight path, broke up and exploded. The failure of the Ariane 501 was caused by the complete loss of guidance and attitude information 37 seconds after start of the main engine ignition sequence (30 seconds after lift-off). This loss of information was due to specification and design errors in the software of the inertial reference system. The internal SRI* software exception was caused during execution of a data conversion from 64-bit floating point to 16-bit signed integer value(max 32,767 ). The floating point number which was converted had a value greater than what could be represented by a 16-bit signed integer.

What models we should know?  Functional models : figure out functional aspect of software  Behavioral models: figure out behavioral aspect of software  Structural models: figure out of structural aspect of software (not too necessary) Robotic software is a kind of real time software: it is very complex one System have many aspect and view to be represented

Steps in software development Draw functional view and do decomposition (creative) Add behavioral view (creative) Identification concurrent task (creative) Coding (not creative) and implementation using scheduling In structural way….. Thinking Drawing Coding

Steps in software development Step 1. Draw functional view Context Diagram: Show outside device: Input, output Show data flow direction Abstract process/activity Picture :

Steps in software development Do decomposition (more detail)-> dataflow diagram Need more decomposition? Level 1 DFD Level 0 DFD

Steps in software development Add behavior view (control activity) Picture :

Steps in software development Do task decomposition Picture :

Steps in software development Implementation and scheduling Testing !

Case studies : Smart wheelchairs system Capability (Functional specification):  manual joystick  Obstacle avoidance (cooperative control)  Anti collision  Dead reckoning  Vision for object identification Prototype: This project is get full financial support from Lemlit UNDIP via Hibah Bersaing Project 2009

Context diagram

Dataflow diagram Divide and Conquer !

Statechart for Smartwheel

Software Development Alternative: Using Statechart Highly reactive system Manufacturing Control: PLC Communication Protocol Pneumatic control Robotic Automotive control, ATM, lift, conveyor etc..

Software Development Alternative: Using Statechart Think State (or mode )and transition

Software Development Alternative Using Statechart case study : line follower Mobot Steps: Draw context diagram Think state and transition and draw statechart Coding (software implementation)

Think state and transition

Result

How to code? Please visit my blog: Thank you for your attention…