Tuesday, June 4, 2019

Fuzzy Logic Control of a Mobile Robot

Fuzzy Logic Control of a Mobile Robot countermandIn this report the development of mobile zombie victimisation logy inference trunk is presented. The mobile zombi has three inputs and two outputs. The three inputs atomic number 18 proximity measures of the wall and the two outputs are turning rate and speed of the mobile robot. The mobile robot is developed to follow the tracking means and rescind collision with the obstacle.ContentsOverview and Introduction arousal and Output digresssAppendixConstruction and transaction of the rulesMATLAB code for control taskCritical evaluationOverviewIn the low gear of the development of the mobile robot, the virtual robot must be used for the development hence kiks robot is considered. The fuzzy inference system is designed by using MATLAB and implemented on a robot which is kiks robot. The kiks robot is setup by installing the kiks software and the related files are extracted and executed on MATLAB. therefore(prenominal) the FIS is designed by coding and deciding the inputs and outputs for the kiks. The turning rate and speed of the robot is defined as per the rules of the parameters for robot movement and to avoid collision with the obstacles.The locomote involved areDefining initiation of discourseDeciding the fuzzy setsDefine membership functionsThe fuzzy interference system used is mamdani FIS which involvesFuzzification of input variables conventionalism evaluationAggregation of rule outputDE fuzzificationIntroductionThe fuzzy control systems are rule based or knowledge based system which contains solicitation of IF-THEN rules. The advantage of fuzzy system is it is wide usage in performing variety of computational and measurements.The advantages of using fuzzy system in navigation system areCapabilities of handling uncertain and non-precise information.Real time operationEasy combinations and execution of various deportments.Develop perception based strategies.Better and easy implementation.The anat omical structure of fuzzy system depends on two important parameters which are identifying the universe of discourse and defining correct membership function. The reason for using mamdani over sugeno is because it uses fuzzy terms defined by the shape of the membership function. The mamdani type fuzzy system is better to choose for more human like behaviour of the robot which entails a substantial computational burden.The building of the autonomous mobile robot involves few main considerations which are, cart track tracking, avoidance of the obstacle and behaviour co-ordination. The definition of universe of discourse and membership function and combination of rules are important for smooth movement and better outcome of the robot. Path tracking involves navigation of the desired path which is computed and defined by human operator tracking walls or obstacles. The difficulties of path tracking deals with incomplete perception of environment, inaccurate measurements and sensor fusio n. Avoidance of obstacle using fuzzy logic involves avoiding the unforeseen or dynamic obstacles while it tracking a path or moving towards a target. Fuzzy logic for behaviour co-ordination is used to improve the total performance of the navigation system.The infrared sensor with 6 sensors for the forward direction and 2 sensors for the backward direction. In this phase of readiness robot, I have used 2 sensors for right, 2 for left hand and 2 for front sensing. The sensor input is noun used slow, fast, medium. The fuzzy variables are adjectives that modify the variable, left right medright slowright slowleft. In the mamdani type of fuzzy system, the fuzzifier performs measuring of the input variables, scale mapping and fuzzification. The number of membership function defines the shapes of the initial inputs defined by the user. It holds a value of 0 and 1 which indicates the degree of belonging of the quantity to a fuzzy set.Input and Output ranges.Input Membership functionInput rangeLeftFar, Intermediate, Close0 21FrontFar, Intermediate, Close0 21RightFar, Intermediate, Close0 21Output Membership functionOutput rangeTurning rateSlowright, slowleft, medright, left, right, front.0 200SpeedVeryslow, slow, medium, fast, veryfast.0 200Input range for a sensor is 10bits and the input value for sensor is 1024, the sensors are grouped into 2 and wherein each one variable defined by 1024(210) i.e. 2048 so that divided by 100 is 21, hence the input range is 0 21. The input is taken left, right, front with 2 sensors each. The membership function for them is defined far, intermediate, close for the robot to sense the obstacle. The outputs are turn and speed, where in turn has membership functions slowright, slowleft, medright, right, left, front for the robot to turn to a direction when the robot is nearing the robot. The range of the speed is considered as 0 200 as the robot movement was meant to be faster compared to when the speed was in the range 0 100 because th e robot must cover more distance in less(prenominal) time and better speed. The membership function for speed is taken as slow, veryslow, fast, veryfast, medium as the robot should move in contrastive direction with different speed so that the robot follows the path and is not disturbed by sudden obstacle. The combination of the membership functions are rules for the robot to follow to follow the path and along with that to avoid obstacles and give smoother movement.Appendix 1a. Movement of robot in arena1 1b. Monitored simulation of arena1 2a. Movement of robot in arena2 2b. Monitored simulation of arena2.Construction and performance of fuzzy rules.If (left is far) and (front is far) and (right is far) and then (turn is medright)(speed is fast) (1)If (left is far) and (front is far) and (right is intermediate) then (turn is front)(speed is medium) (1)If (left is far) and (front is far) and (right is close) then (turn is slowleft)(speed is medium) (1)If (left is far) and (front i s intermediate) and (right is far) then (turn is medright)(speed is fast) (1)If (left is far) and (front is intermediate) and (right is intermediate) then (turn is front)(speed is medium) (1)If (left is far) and (front is intermediate) and (right is close) then (turn is slowleft)(speed is very_slow) (1)If (left is far) and (front is close) and (right is far) then (turn is medright)(speed is very_slow) (1)If (left is far) and (front is close) and (right is intermediate) then (turn is slowleft)(speed is very_slow) (1)If (left is far) and (front is close) and (right is close) then (turn is slowright)(speed is very_slow) (1)If (left is intermediate) and (front is far) and (right is far) then (turn is right)(speed is fast) (1)If (left is intermediate) and (front is far) and (right is intermediate) then (turn is front)(speed is fast) (1)If (left is intermediate) and (front is far) and (right is close) then (turn is slowleft)(speed is slow) (1)If (left is intermediate) and (front is interm ediate) and (right is far) then (turn is medright)(speed is very_slow) (1)If (left is intermediate) and (front is intermediate) and (right is intermediate) then (turn is front)(speed is medium) (1)If (left is intermediate) and (front is intermediate) and (right is close) then (turn is slowleft)(speed is fast) (1)If (left is intermediate) and (front is intermediate) and (right is far) then (turn is slowleft)(speed is slow) (1)If (left is intermediate) and (front is close) and (right is intermediate) then (turn is slowright)(speed is very_slow) (1)If (left is intermediate) and (front is close) and (right is close) then (turn is slowright)(speed is very_slow) (1)If (left is close) and (front is far) and (right is far) then (turn is medright)(speed is slow) (1)If (left is close) and (front is far) and (right is intermediate) then (turn is front)(speed is medium) (1)If (left is close) and (front is far) and (right is close) then (turn is slowleft)(speed is veryfast) (1)If (left is close) and (front is intermediate) and (right is far) then (turn is right)(speed is fast) (1)If (left is close) and (front is intermediate) and (right is intermediate) then (turn is front)(speed is medium) (1)If (left is close) and (front is intermediate) and (right is close) then (turn is slowleft)(speed is medium) (1)If (left is close) and (front is close) and (right is far) then (turn is slowright)(speed is very_slow) (1)If (left is close) and (front is close) and (right is intermediate) then (turn is slowright)(speed is very_slow) (1)If (left is close) and (front is close) and (right is close) then (turn is slowleft)(speed is very_slow) (1)If (left is far) and (front is far) and (right is far) then (turn is slowright)(speed is fast) (1)If (left is far) and (front is intermediate) and (right is far) then (turn is slowright)(speed is fast) (1)If (left is far) and (front is close) and (right is far) then (turn is slowright)(speed is medium) (1)If (left is far) and (front is close) and (r ight is intermediate) then (turn is slowright)(speed is slow) (1)If (left is far) and (front is close) and (right is close) then (turn is slowright)(speed is fast) (1)If (left is intermediate) and (front is close) and (right is close) then (turn is slowright)(speed is very_slow) (1)If (left is intermediate) and (front is far) and (right is close) then (turn is slowright)(speed is very_slow) (1)If (left is intermediate) and (front is intermediate) and (right is close) then (turn is slowright)(speed is fast) (1)If (left is close) and (front is far) and (right is far) then (turn is slowright)(speed is far) (1)If (left is close) and (front is intermediate) and (right is intermediate) then (turn is slowright)(speed is far) (1)If (left is close) and (front is close) and (right is close) then (turn is slowright)(speed is slow) (1)If (left is close) and (front is close) and (right is close) then (turn is slowright)(speed is veryfast) (1)MATLAB Code to implement the control task% -% (c) 2000 -2004 Theodor behave % http//www.tstorm.se% Modified by Lily Meng 16th September 2009% -function FIS_navigate(port, baud rate,time)% FIS_navigate(port,baud,time)% port = serial port to communicate with (port simulated robot, port=0 == real robot% baud = baud rate% time = time to run behaviourif nargin

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.