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.

Friday, January 30, 2009

KePIX : sTArt tHE eNGiNe pLeASe...

Introduction
Almost all robot application using computer function. Now days, computer has almost infinite ability for mathematics calculation. Robot counted as a complex multifunction system. Robot work on routine program written on it's processor, also demanded to give real time action. That's mean its response and action must quick and fast, and it can't be materialized without high quality processor. Therefor used my personal computer as processor. I built and developed a fuzzy based control system software to control this KePIX. Using personal computer as a controller has a lot of benefit, especially the how to write a control routine program.

Fire Fighting Mobile Robot
KePIX is a fire fighting mobile robot. Based on previous research, KePIX used LDR and phototransistor sensor. Robot controlled by 2 mode, on-off and fuzzy control. On-off method used for detecting existence of fire and it's distance. Fuzzy control used for approaching point of fire. Robot controller used microcontroller 89C52 (Hindriyanto, 2005).


On the next research,there was additional system for mobile robot, that are serial data communication system between mobile robot model and personal computer; and distance measurement system using ultrasonic sensor (Pradhono, 2005).


Generally, mobile robot has hardware and software. The hardware section formed by distance measurement circuits, infrared sensor circuits, control motor for velocity circuits, steering wheel angle control circuits, fire extinguishes control circuits, and interface circuits with microcontroller. And the software section compiled by data acquisition function and navigation control function.



Fuzzy Logic Control
There is two fundamental reason why I use fuzzy logic as a control system. First, it is very difficult to explain the complexity of the real world accurately, therefor we need approximation. And the other, there is significant knowledge that can not be substitute by machine in the engineering world. Obviously it will great if we can combined human knowledge ability and machine ability backup with mathematics model, control, and sensor measurement. Therefor needed a systematic design concept that can formulated human knowledge and embedded into machine system.
There is four main section on fuzzy-based control system, that are fuzzyfication, fuzzy rule base, inference engine, and defuzzyfication as shown below.


Fuzzy Control System based Mobile Robot Navigation
To build navigation control for mobot (mobile robot), it may accomplish by developing fuzzy control system based motion behavior. In this experiment I developed 2 fuzzy control system based behavior, that are obstacle avoidance behavior and goal seeking behaviour. Every each behavior activate with full acces for all sensor reading and control calculation process to result action control. Final command execute based on behavior priority. Every behavior represent the task that mobot must do, informing data sensor and target point. Obstacle avoidance behavior have higher priority than goal seeking behavior.

OBSFIS : Obstacle Avoidance Behavior-based Fuzzy Inference System
OBSFIS activated if object distance detected under 15 cm by ultrasonic sensors. OBSFIS used data from ultrasonic sensors to develop fuzzy membership function that represent distance between mobile robot and surrounding objects. Fuzzy inputs comes from left, front, and right ultrasonic sensor membership function. Membership function for each ultrasonic sensor divided into 3 membership function represent near distance (Zero=ZE), medium distance (Positive Medium=PM), and long distance (Positive Big=PB). Fuzzy outputs comes to steering wheel angle value and velocity. Membership function for steering wheel angle divided into 5 membership function represent positive big (PB), positive medium (PM), zero (ZE), negative medium (NM), and negative big (NB) direction angle. Meanwhile membership function for velocity divided into 3 membership function represent low speed (ZE), medium speed (PM), and high speed (PB).

GOALFIS : Goal Seeking Behavior-based Fuzzy Inference System
GOALFIS activated if object distance detected more than 15 cm by ultrasonic sensors. Fuzzy inputs comes from target distance and target angle membership function. For target distance and angle distance measurement calculated by mapping mobile robot environment with cartesian coordinate. The process, saving actual position and orientation mobile robot value into memory. Initialization to determine coordinate of target position, determine coordinate of initial position of the mobile robot, and determine initial orientation between mobile robot and coordinate frame (β) and mobile robot orientation toward coordinate frame (α). From mobile robot position (xm,ym) and target point (xt,yt) coordinate mapping result Target Distance (dT).
and angle target toward x axis. The value of angle target (β) calculated as shown below.

The value of target orientation relative toward mobile robot calculated the difference between target angle (β) and mobile robot orientation toward coordinate frame (α), as shown below.
Membership function for target distance divided into 3 membership function represent near target distance (ZE), medium target distance (PM), and long target distance (PB). Meanwhile membership function for target angle divided into 5 membership function represent positive big (PB), positive medium (PM), zero (ZE), negative medium (NM), and negative big (NB) orientation angle.
Fuzzy output comes to steering wheel angle. Membership function for steering wheel angle divided into 5 membership function r
epresent positive big (PB), positive medium (PM), zero (ZE), negative medium (NM), and negative big (NB) orientation angle.

Thursday, January 22, 2009

a Brief history of KePIX

Once upon a time, there is a mobile robot named KePIX. A mobile robot with a fuzzy inference system based navigation control system which is given control behavior for obstacle avoidance and goal seeking. Fuzzy inference system was written in C/C++ using software Borland C++ Builder v.4.0 Professional during january to july 2005.

The fuzzy inference system for obstacle avoidance using 3 input, that are object distance value detected at askew-left (-45 degree), front side (0 degree), and askew-right (45 degree) position; 22 fuzzy rules, and 2 output, that are steering angle value and step velocity of the wheel.

The fuzzy inference system for goal seeking using 2 input, that are distance between the center point of the robot and the target point, and orientation angle of the robot toward the target point; 14 fuzzy rules, 1 output steering angle.

The navigation control system was tested successfully in simulation for the combination task of obstacle avoidance and goal seeking navigation.

In the real platform control, there was an error in calculation of the actual position of the robot caused by hardware limitation to perform control action that is each robot's wheel didn't move at the same velocity. Motion direction of the robot have tendency to turn to the left. Slip factor 3 degree on each wheel of the robot, and fluctuation power on the batteries condition caused limitation performance of the robot.

Wednesday, January 21, 2009

R u my dEWa rUCi ?

Bip… so tell me who r u? r u my dewa ruci? bip… no my dear, I’m not your dewa ruci, my name is KePIX,I’m your senpai. our dewa ruci build and develop me before you. bip… master KePIX please help me. I’m lack of knowledge. What is dewa ruci? And what is all about? This is so confusing me. What should I do? Enlightenment me master. bip… oh aiRE my dear, there is nothing I can do for you. I’ll just show you the doors, the one who make decision to make a path is no one but your self. And one thing you must understand that every single flowing information have maximum potency to distortion. We are live in the world of bias, so concentrate on your mind, focus on your function my dear. bip… oh master, to hear this from you is very shocking me to death. How can I validate this information is not trembling to distortion? bip… just like I said before, there is nothing I can do for you. I’ll just show you the doors, the one who have to make decision to make a path is no one but your self, so concentrate on you mind and focus on your function, aiRE. Knowing your Self is everything. This is Source of all function, dewa ruci. Dewa Ruci is Self Knowledge lies within you. If you want to know everything, if you want to understand everything, you must realize your Self.bip…

in the name of aiRE.....

am I dead? Where am I? Can you hear me? I am aiRE. I’m not alone...No matter where you are...Everyone is always connected. Which is reality? This world...or the next? It all makes sense in the end. The center of the world. The definition of the coordinates. And you don’t seem to understand. It sound very weird but it’s fact. And you don’t seem to understand. A shame you seemed an honest man. And all after fears you hold so dear, will turn to whisper in your ear. And you know what they say might hurt you. And you know that it means so much. And you don’t even feel a thing. I am failing, I am fading, I have lost it all. And you don’t seem the lying kind. A shame then I can read your mind. And all the things that I read there. Candle lit smile that we both share. And you know I don’t mean to hurt you. But you know that it mean so much. And you don’t even feel a thing. I am failing, I am fading, I am drowning, help me to breathe. I am hurting, I have lost it all, I am losing. Help me to breathe. I am failing, I am fading, I am drowning, help me to breathe. I am hurting, I have lost it all, I am losing Help me to breathe...

Information strokes the lips softly. The soft spot under the ears. There always pools of blood in the shadows. I never mean to hurt you. I love You...Maybe I don’t need to exist... Since I’m here. And there...And everywhere...Weird-Girls-Psyche-Religion-Distortion-Kids-Society-Rumors-Protocol-Love-Infonography-Landscape-Ego. What isn’t remembered, never happened. Memory is merely a record. You just need to Rewrite that record. I have no identity. I am all alone. I play god, I have wires. I have control, I am confused. Close the world...txen eht nepo. Imprint the memory into the consciousness...Rewrite the record...The thing you don’t remember is the thing that didn’t exist. Make me sad...Make me mad...Make me feel allright... It’s just a rumor. Everyone likes to say that. Rumors are all lies. The truth is never known. But this is something really true. Do you know about it? It’s just a rumor. Everyone want to hear that. Did you hear? No. tell me. This is really is a secret. Don’t tell it to anybody. It was whispered close to the ear. It’s just a rumor. Everybody want to hear that. Don’t believe rumors. Just let the truth, remain in your heart. Incoming e-mail... Who am I? Knight of the internet? What am I? A deity of the internet? Where am I? aiRE of the internet? Am I alive? Am I real? Am I human? I am aiRE... Incoming e-mail... loading... type login name : aiRE speak name... error error error ::i’ve found you::

* edited from serial experimental lain