Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Software Development Methodology for Robotic and Embedded Systems (from drawing to coding) Presented by Iwan Setiawan for Robot and Technology Fair (01-12-09)-"— Presentation transcript:

1 Software Development Methodology for Robotic and Embedded Systems (from drawing to coding) Presented by Iwan Setiawan for Robot and Technology Fair (01-12-09)- Mechanical Engineering of Undip http://iwan.blog.undip.ac.id setiaone.iwan@gmail.com

2 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

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

4 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

5 Robotic Software Characteristics Multitasking, concurrent, real time software illustration

6 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)

7 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 ?

8 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

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

10 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 (http://www.ima.umn.edu/~arnold/disasters/ariane.html) 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.

11 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

12 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

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

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

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

16 Steps in software development Do task decomposition Picture :

17 Steps in software development Implementation and scheduling Testing !

18 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

19 Context diagram

20 Dataflow diagram Divide and Conquer !

21 Statechart for Smartwheel

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

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

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

25 Think state and transition

26 Result

27 How to code? Please visit my blog: http://iwan.blog.undip.ac.id Thank you for your attention…


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

Similar presentations


Ads by Google