Fuzzy Logic in Robotic Programming

DOI : 10.17577/IJERTCONV3IS18001

Download Full-Text PDF Cite this Publication

Text Only Version

Fuzzy Logic in Robotic Programming

Sakshi Sivarama Krishna

Assistant Professor, Dept. of CSE, KMM ITS

Tirupati, India

J S Ananda Kumar

Assistant Professor Dept. of MCA, KMM IPS

Tirupati, India

Prof. E. Madhusudhan Reddy, Sha Shib College of Engineering, Bangalore

Abstract Computers define everything in binary, a simple 0 or 1. Its either on, or off. But the world is not black and white, and not everything is simply true or false. Humans operate much better when fuzzily describing things, instead of simply using black and white for everything. To not have that range of descriptions would really hamper our descriptive abilities. If robots are to ever out-perform humans, they need this ability too. If a robot can only make decisions based on two extremes, its actions will also be two extremes. If suppose our sensors give us values right between both extremes, our robot would become very jerky bouncing between the extremes. Fuzzy Logic is inherently robust since it does not require precise, noise-free inputs. Any number of inputs can be processed and outputs generated. Fuzzy logic is not limited to a few feedback inputs and one or two control outputs, nor is it necessary to measure or compute rate-of-change parameters in order for it to be implemented. Any sensor data that provides some indication of a system's actions and reactions is sufficient. This allows the sensors to be inexpensive and imprecise thus keeping the overall system cost and complexity low. Fuzzy logic can control nonlinear systems that would be difficult or impossible to model as case- based. Fuzzy controllers are far simpler than knowledge- based systems. This paper is a review on the role of fuzzy logic in robotic programming. This paper also quotes the emerging trends in robotics programming. In this paper state-of-the-art fuzzy logic solutions are presented and their pros and cons are discussed in detail based on extensive experimentation.

Keywords Fuzzy, Robotics, Fuzzy controller, Fuzzification, Robotic programming.


    Programming robots involves the monitoring and manipulation of multiple processes that often occur at the same time. For instance, a robot can be moving, (one process) and at the same time one of the robot's sensors can be collecting information about the environment. These two processes need to occur concurrently. The development of robot programming concepts is almost as old as the development of robot manipulators itself. As the ultimate goal of industrial robotics has been the development of sophisticated production machines with the hope to reduce costs in manufacturing areas like material handling, welding, spray-painting and assembly, tremendous efforts have been undertaken by the international robotics community to design user-friendly and at the same time powerful programming methods. The evolution reaches from early control concepts on the hardware level via point-to-point and simple motion level languages to motion-oriented structured robot programming languages.

    As the complexity of a system increases, it becomes more difficult and eventually impossible to make a precise statement about its behavior, eventually arriving at a point of complexity where the fuzzy logic method born in humans is the only way to get at the problem. Fuzzy logic is not the wave of the future. There are already hundreds of millions of dollars of successful, fuzzy logic based commercial products, everything from self-focusing cameras to washing machines that adjust themselves according to how dirty the clothes are, automobile engine controls, anti-lock braking systems, color-film developing systems, subway control systems and computer programs trading successfully in the financial markets. Fuzzy logic is the way the human brain works, and we can mimic this in machines so they will perform somewhat like humans. Fuzzy logic makes use of human common sense. This common sense is either applied from what seems reasonable, for a new system, or from experience, for a system that has previously had a human operator. As the robotic modeling and programming reflect the human behavior which may or may not certain in all the cases, the idea behind the Fuzzy approach helps a lot in robotic programming.

    The rest of this paper is organized as follows: First, basics of Fuzzy logic are discussed. Next, the evolution of robotic technology is given, followed by the introduction on robotic programming as well as the discussion on the role of fuzzy logic in robotic programming. Finally the emerging trends in robotic programming are focused.


    Fuzzy set theory, originally developed by Lotfi Zadeh in the 1960s, has become a popular tool for control applications in recent years (Zadeh, 1965).Fuzzy control has been used extensively in applications such as servomotor and process control. One of its main benefits is that it can incorporate a human beings expert knowledge about how to control a system, without that a person need to have a mathematical description of the problem. A fuzzy set may be represented by a mathematical formulation known as a membership function. That is, associated with a given linguistic variable (e.g. speed) are linguistic values or fuzzy subsets (e.g. slow, fast, etc.) expressed as membership functions which represent uncertainty, vagueness, or imprecision in values of the linguistic variable. These functions assign a numerical degree of membership to a crisp (precise) number. More precisely, over a given universe of discourse (relevant numerical

    range) X, the membership function of a fuzzy set, denoted by (x), maps elements x X into a numerical value in the closed unit interval, i.e. (x): X [0, 1].

    Implementation of a fuzzy controller requires assigning membership functions for inputs and outputs. Inputs to a fuzzy controller are usually measured variables, associated with the state of the controlled plant, that are fuzzified (assigned membership values) before being processed by an inference engine. The heart of the controller inference engine is a set of if-then rules whose antecedents and consequences are made up of linguistic variables and associated fuzzy membership functions. Consequences from fired rules are numerically aggregated by fuzzy set union and then collapsed (defuzzified) to yield a single crisp output as the control signal for the plant.

    Put as simply as possible, a fuzzy expert system is an expert system that uses fuzzy logic instead of Boolean logic. In other words, a fuzzy expert system is a collection of membership functions and rules that are used to reason about data. Unlike conventional expert systems, which are mainly symbolic reasoning engines, fuzzy expert systems are oriented toward numerical processing.

    The rules in a fuzzy expert system are usually of a form similar to the following:

    if x is low and y is high then z = medium

    where x and y are input variables (names for know data values), z is an output variable (a name for a data value to be computed), low is a membership function (fuzzy subset) defined on x, high is a membership function defined on y, and medium is a membership function defined on z. The part of the rule between the "if" and "then" is the rule's

    _premise_ or _antecedent_. This is a fuzzy logic expression that describes to what degree the rule is applicable. The part of the rule following the "then" is the rule's

    _conclusion_ or _consequent_. This part of the rule assigns a membership function to each of one or more output variables. Most tools for working with fuzy expert systems allow more than one conclusion per rule.

  3. EVOLUTION OF ROBOTIC TECHNOLOGY The popular vision of robots has been shaped by science

    fiction, but in reality a robot is simply an automated device. These automated devices have been around, in myth and reality for thousands of years. The history of robots began long before the term was coined in 1921.

    The earliest robotic technology existed in the myths and creations of ancient Greece. The history of robots contains amazing feats of both invention and imagination. From the mythological "Golden Servants" of Hephaestus to the functioning mechanical bird created by Archytas of Tarentum, the ancient Greeks had amazing insight into the future of robotic technology. Scientists are already beginning to think seriously about the new ethical problems posed by current developments in robotics. Experts in South Korea said they were drawing up an ethical code to prevent humans abusing robots, and vice versa. And, a group of leading roboticists called the European Robotics Network (Euron) has even started lobbying governments for legislation. At the top of their

    list of concerns is safety. Robots were once confined to specialist applications in industry and the military, where users received extensive training on their use, but they are increasingly being used by ordinary people Robot vacuum cleaners and lawn mowers are already in many homes, and robotic toys are increasingly popular with children. As these robots become more intelligent, it will become harder to decide who is responsible if they injure someone.


    A characteristic feature of robot programming is, that usually it is dealing with two different worlds, (ref. to Fig. 1): (1) The real physical world to be manipulated, and (2) abstract models representing this world in a functional or descriptive manner by pro-grams and data. In the simplest case, these models are pure imagination of the programmers; in high level programming languages, e.g. it may consist of CAD data. In any case, commands based on some model are causing robots to change the state of the real world as well as the world model itself. During a sequence of actions both worlds have to be kept consistent to each other. This can be ensured by integrating internal robot sensors as well as external sensors like force/torque and vision sensors. Already in the early seventies research groups started to focus on so-called task-oriented robot programming languages.

    Figure 1: General robot programming paradigm.

    Many robots in the literature have used fuzzy logic (Song & Tay, 1992), (Khatib, 1986), (Yan et al., 1994) etc. Computer simulations by Ishikawa feature a mobile robot that navigates using a planned path and fuzzy logic. Fuzzy logic is used to keep the robot on the path, except when the danger of collision arises. In this case, a fuzzy controller for obstacle avoidance takes over. Konolige, et al. use fuzzy control in conjunction with modelling and planning techniques to provide reactive guidance of their robot. Sonar is used by robot to construct a cellular map of its environment. As the robotic modelling has to deal with major uncertainty it is inevitable to keep track of fuzzy valued data in preparing programs for robot controlling. Therefore fuzzy logic plays a vital role in robotics. A conventional programmable logic controller monitors the process variable (the pressure, temperature, speed, etc., that we want to control). If it is too high, a decrease signal is sent out. If it is too low, an increase signal is sent

    out. This is effective up to a point. But, consider how much more effective a control system would be if we use a computer to calculate the rate of change of the process variable in addition to how far away it is from the set point. If the control system acts on both these inputs, we have a better control system. And, that could be just the beginning; we can have a large number of inputs all being analysed according to common sense and experience rules for their contribution to the averaged crisp output controlling the system.

    Further, whereas conventional control systems are usually smooth and linear in performance, we sometimes encounter aberrations or discontinuous conditions, something that does not make good scientific sense and cannot be predicted by a formula, but it's there. If this happens, the fuzzy logic method helps us visualize a solution, put the solution in words and translate to "If – Then" statements, thereby obtaining the desired result. That is a very difficult thing to do with conventional programmable logic controllers (known as PLC's).PLC's are programmable, but are far more limited than the program control available from a very simple BASIC program in a personal computer. Fuzzy logic control is not based on mathematical formulas. This is a good thing, because, as easy as it might seem, it is difficult to impossible to write formulas that do what nature does. This is why novices using fuzzy logic can beat Ph.D. mathematicians using formulas. Fuzzy logic control makes use of human common sense. This common sense is either applied from what seems reasonable, for a new system, or from experience, for a system that has previously had a human operator.


Robots are complex machines and significant technical knowledge and skill are needed to control them. While simpler robots exist, for example the Roomba vacuuming robot from iRobot [2003], in these cases the robots are specifically designed for a single application and the control method reflects this simplicity. The Roomba robot's control panel allows a user to select different room sizes and to start the vacuuming process with a single button push. However, most robots do not have simple interfaces and are not targeted at a single, simple function such as vacuuming floors. Most robots have complex interfaces; usually involving a text based programming language with few high level abstractions. While the average user will not want to program their robot at a low level, a system is needed that provides the required level of user control over the robot's tasks.

Robots are becoming more powerful, with more sensors, more intelligence, and cheaper components. As a result robots are moving out of controlled industrial environments and into uncontrolled service environments such as homes, hospitals, and workplaces where they perform tasks ranging from delivery services to entertainment. It is this increase in the exposure of robots to unskilled people that requires robots to become easier to program and manage. Robotics touches on all aspects of mechanical, electrical,

and software engineering. Thats what makes robotics such a great systems discipline and why the ability to manage a robotics development team is applicable to so many high- tech commercial settings. Robotics entered in every aspect of the human activity robotic programming has to cover broad areas including

Service and healthcare Consumer and education Security and defense Industry and manufacturing Research and academics

Design and development and many amore.

To bring the reality in all the broad areas it is obligatory to deal with uncertainty. The only mean in automating the future world is robotic programming. To reduce ambiguity in robotic programming the better choice is to go for integration of fuzzy logic in robotic programming. This integration can provide low complex, less expensive and higher end features. If our application is of a more demanding, complex or commercial nature, it should be suggested to refer to Fuzzy Thinking.


Robotics becomes the inseparable with other fields of technological development. There are many contexts that have to deal with indecision. Fuzzy logic is becoming inevitable ingredient in robotic programming environment. The right use of these coordinating fields certainly gives better olutions for

many a problems relating to diverse fields of science and technology.


I would like to thank our college faculty for their incredible support.


  1. Homaifar, A. and McCormick, E., "Simultaneous Design of Membership Functions and Rule Sets for Fuzzy Controllers Using Genetic Algorithms", IEEE Transactions on Fuzzy Systems, Vol. 3, No. 2, 1995, pp. 129-139.

  2. Lee, C., Fuzzy Logic in Control Systems: Fuzzy Logic Controller, Part I, IEEE Transactions on Systems, Man & Cybernetics, Vol. 20, No. 2, 1990, pp. 404-418.

  3. Zadeh, L. D. (1965). Fuzzy Sets, Information and Control, No 8, pp. 338-365. (2002) The IEEE website. [Online]. Available: http://www.ieee.org/

  4. Song, K.Y. & Tai, J. C. (1992). Fuzzy navigation of a mobile robot, Proceedings of the 1992.IEEE/RSJ Intern. Conference on Intelligent Robots and Systems, Raleigh, North Carolina, USA.

  5. Khatib, O. (1986). Real-time obstacle avoidance for manipulators and mobile robots, International Journal of Robotics Research, Vol. 5, No.1, pp. 90-98.

  6. Mamdani, E.H.; Folger, T.A. & Gaines, R.R. (1981). Fuzzy reasoning and its spplications, Academic Press, London.

  7. Yan, I.; Ryan, M., & Power, I. (1994). Using Logic Towards Intelligent Systems, Prentice Hall, New York.

  8. Van der Rhee, F. (1990). Knowledge based fuzzy control system,

IEEE Transactions on Automatic Control, Vol. 35, No.2.


C. Blume, W. Jakob: Programmiersprachen für Industrieroboter. Vogel-Verlag , 1983.


R. Popplestone, A. Ambler, I. Bellos: An Interpreter for a Language De-scribing Assemblies. Artificial Intelligence, Vol. 14,


P. G. Ránky, C. Y. Ho: Robot Modelling Control and

No. 1, 1980.

Applications with Software. IFS Ltd./Springer, 1985.


T. Lozano-Pérez, P. H. Winston: LAMA: A Language For


L. Lieberman, M. Wesley: AUTOPASS: An Automatic Programming System for Computer Controlled Mechanical

Automatic Mechanical Assembly. International Joint. Artificial Intelligence,1987.

Assembly. IBM J. Res. Dev. Vol. 21, No. 4, 1977.

Leave a Reply

Your email address will not be published.