Search

Custom Search

Saturday, May 30, 2009

KePIX : InSiDE mY MinD

Control System Design
For experimental purpose, i used personal computer with specification as follows: AMD Athlon(TM) XP 1800+1.53 GHz processors, 128 Mb RAM, Microsoft Windows XP Professional Version 2002 operation system, and Borland C++ Builder Professional Version 4.0 IDE. Overall design, control system divide into two main control system design, as follows: navigation control system design and navigation control system software design. Navigation control system architecture for this mobot hierarchical divide into two mobot functional operation which representing navigation behavior. For this experiment, mobot control behavior based on fuzzy control system. This behavior consist of obstacle avoidance behavior and goal seeking behavior. Obstacle avoidance behavior has higher priority than goal seeking behavior.



Obstacle Avoidance Behavior-Based Fuzzy Inference System Design
Distance crisp value between mobot and surrounding objects measure ultrasonic sensor circuit for distance measurement which used to build fuzzy membership function.



Inside fuzzyfication unit, each fuzzy membership function input formed with triangle and trapezium type membership function. There are three fuzzy membership function for each input membership function represent near distance (ZE) which distance between 0 to 15 cm, medium distance (PM) which distance between 13 to 40 cm, and long distance (PB) which distance between 30 to 50 cm.





For fuzzy membership function output also formed with triangle and trapezium type membership function. There are five fuzzy membership function for each steering angle membership function represent positive big direction angle (PB) which angle between 40 degree to 90 degree, positive medium (PM) which angle between 7.5 degree to 65 degree, zero angle (ZE) which angle between -15 degree to 15 degree, negative medium (NM) which angle between -65 degree to -7.5 degree, and negative big (NB) which angle between -90 degree to -40 degree. And then three fuzzy membership function for each velocity membership function represent low velocity (ZE) which step between 0 to 6, medium velocity (PM) which step between 3 to 13, and high velocity (PB) which step between 11 to 20.




Approximation method for rule base arangesemen was an approximation from a expert knowledge (driver) which is trying to avoid obstacle intuitively. Rule base could write into proposition consist of three anteseden and two consequences. Overall rule base formed from all total 27 combination fuzzy membership function input that are:

1. IF Left: PB, AND Front: PB, AND Right: PB, THEN Angle: ZE, AND Velocity: PB

2. IF Left: ZE, AND Front: PB, AND Right: PB, THEN Angle: PB, AND Velocity: PM

3. IF Left: PM, AND Front: PB, AND Right: PB, THEN Angle: ZE, AND Velocity: PB

4. IF Left: PB, AND Front: PB, AND Right: ZE, THEN Angle: NB, AND Velocity: PM

5. IF Left: PB, AND Front: PB, AND Right: PM, THEN Angle: ZE, AND Velocity: PB

6. IF Left: ZE, AND Front: PM, AND Right: PB, THEN Angle: PM, AND Velocity: PM

7. IF Left: PB, AND Front: PM, AND Right: ZE, THEN Angle: PM, AND Velocity: PM

8. IF Left: ZE, AND Front: ZE, AND Right: PB, THEN Angle: PB, AND Velocity: ZE

9. IF Left: PB, AND Front: ZE, AND Right: ZE, THEN Angle: NB, AND Velocity: ZE

10. IF Left: ZE, AND Front: ZE, AND Right: ZE, THEN Angle: PB, AND Velocity: ZE

11. IF Left: PM, AND Front: ZE, AND Right: ZE, THEN Angle: NB, AND Velocity: ZE

12. IF Left: ZE, AND Front: ZE, AND Right: PM, THEN Angle: PB, AND Velocity: ZE

13. IF Left: ZE, AND Front: PM, AND Right: ZE, THEN Angle: ZE, AND Velocity: ZE

14. IF Left: ZE, AND Front: PB, AND Right: ZE, THEN Angle: PM, AND Velocity: ZE

15. IF Left: PM, AND Front: ZE, AND Right: PM, THEN Angle: PB, AND Velocity: ZE

16. IF Left: PB, AND Front: ZE, AND Right: PB, THEN Angle: NB, AND Velocity: PM

17. IF Left: PM, AND Front: PM, AND Right: PB, THEN Angle: PM, AND Velocity: PM

18. IF Left: PB, AND Front: PM, AND Right: PM, THEN Angle: NM, AND Velocity: PM

19. IF Left: PM, AND Front: PM, AND Right: PM, THEN Angle: NM, AND Velocity: PM

20. IF Left: PM, AND Front: PB, AND Right: PM, THEN Angle: ZE, AND Velocity: PM

21. IF Left: PB, AND Front: PM, AND Right: PB, THEN Angle: ZE, AND Velocity: PM

22. IF Left: PB, AND Front: ZE, AND Right: PM, THEN Angle: NB, AND Velocity: PM

23. IF Left: PM, AND Front: PM, AND Right: ZE, THEN Angle: PM, AND Velocity: ZE

24. IF Left: PM, AND Front: PB, AND Right: ZE, THEN Angle: NB, AND Velocity: ZE

25. IF Left: ZE, AND Front: PM, AND Right: PM, THEN Angle: ZE, AND Velocity: PM

26. IF Left: ZE, AND Front: PB, AND Right: PM, THEN Angle: PM, AND Velocity: PM

27. IF Left: PM, AND Front: ZE, AND Right: PB, THEN Angle: PB, AND Velocity: PM

Rule base has been optimized by eliminating each rule which its function can be replaced by other rule. Rule base function number 23 can be replaced by rule base function number 7. And so number 24 to 4, 25 to 6, 26 to 2, then 27 to 15. Finally after eliminate 5 rule from the origin rule for OBSFIS, the result as follows:

1. IF Left: PB, AND Front: PB, AND Right: PB, THEN Angle: ZE, AND Velocity: PB

2. IF Left: ZE, AND Front: PB, AND Right: PB, THEN Angle: PB, AND Velocity: PM

3. IF Left: PM, AND Front: PB, AND Right: PB, THEN Angle: ZE, AND Velocity: PB

4. IF Left: PB, AND Front: PB, AND Right: ZE, THEN Angle: NB, AND Velocity: PM

5. IF Left: PB, AND Front: PB, AND Right: PM, THEN Angle: ZE, AND Velocity: PB

6. IF Left: ZE, AND Front: PM, AND Right: PB, THEN Angle: PM, AND Velocity: PM

7. IF Left: PB, AND Front: PM, AND Right: ZE, THEN Angle: PM, AND Velocity: PM

8. IF Left: ZE, AND Front: ZE, AND Right: PB, THEN Angle: PB, AND Velocity: ZE

9. IF Left: PB, AND Front: ZE, AND Right: ZE, THEN Angle: NB, AND Velocity: ZE

10. IF Left: ZE, AND Front: ZE, AND Right: ZE, THEN Angle: PB, AND Velocity: ZE

11. IF Left: PM, AND Front: ZE, AND Right: ZE, THEN Angle: NB, AND Velocity: ZE

12. IF Left: ZE, AND Front: ZE, AND Right: PM, THEN Angle: PB, AND Velocity: ZE

13. IF Left: ZE, AND Front: PM, AND Right: ZE, THEN Angle: ZE, AND Velocity: ZE

14. IF Left: ZE, AND Front: PB, AND Right: ZE, THEN Angle: PM, AND Velocity: ZE

15. IF Left: PM, AND Front: ZE, AND Right: PM, THEN Angle: PB, AND Velocity: ZE

16. IF Left: PB, AND Front: ZE, AND Right: PB, THEN Angle: NB, AND Velocity: PM

17. IF Left: PM, AND Front: PM, AND Right: PB, THEN Angle: PM, AND Velocity: PM

18. IF Left: PB, AND Front: PM, AND Right: PM, THEN Angle: NM, AND Velocity: PM

19. IF Left: PM, AND Front: PM, AND Right: PM, THEN Angle: NM, AND Velocity: PM

20. IF Left: PM, AND Front: PB, AND Right: PM, THEN Angle: ZE, AND Velocity: PM

21. IF Left: PB, AND Front: PM, AND Right: PB, THEN Angle: ZE, AND Velocity: PM

22. IF Left: PB, AND Front: ZE, AND Right: PM, THEN Angle: NB, AND Velocity: PM

Fuzzy inference engine collected all IF-THEN rule into OBSFIS rule base, then doing subroutine as follows:
1. Aggregation, to find and collect the apropriate rule with linguistic value from left, front, and right distance object which resulted from fuzzyfication process.
2. Activation, to temporary inference the value of membership degrees that has been resulted from aggregation process. In this process using product (*) or MIN operator.
3. Accumulation, inference value from inference engine, resulted from the sum each activation value. In this process using MAX operation.
After inference process, defuzzyfication process must be execute to mapping the fuzzy value from inference engine to the crisp value. In this defuzzyficztion process, using center of gravity (COG) method.