By exploring the mobile robot’s history, one thing is confirmed that obstacle avoidance and wall following robot is one of most important research area. This blog proposes a neural network control of a mobile robot that is able to guide the mobile robot (Khepera) through different arena with arbitrary obstacles. A neural network toolbox from Matlab is used to generate training data. The information on wall/obstacle distance is provided by infra-red proximity sensors and is used as an input to the FIS (Fuzzy Inference System). Same FIS is used in this project and available here: http://aakashfcmr.blogspot.co.uk/ The neural network is verified in simulation study by the KIKS simulator in three arenas and results of these simulations are described and well discussed.
Mobile robots are being used in many applications such as security, defense, control, industrial and many more. In this report, a very popular technique from the branch of intelligent control, an artificial neural network control is presented and applied on Khepera mobile robot. The overall aim is to enable robot to wonder about its environment, following wall on the left side whilst avoiding collisions with obstacles. An artificial neural network consists of neurons which are similar to the biological neurons in the brain. Each neuron receives number of inputs and creates only one output and these neurons are connected by weighted links passing signals from one neuron to another neuron. The following figure illustrates the neural network.
Architecture of the neural network |
A neural network is required to simulate robot. The fundamental design process of neural network includes seven steps. This report follows this process.
Neural Network Design Process |
Khepera can be placed in any environment or arena and has the capability to move without human intervention. This robot has 8 infrared proximity sensors which measures the distance from wall and obstacles.
Sensor Alignment |
From these sensors’ positions, three groups are created to generate input for the FIS. Group 1 is the combination of sensors 0 and 1, group two is the combination of sensors 2 and 3 and group 3 is the combination of sensors 4 and 5. In Matlab, this numbers are taken as 1 to 6 instead of 0 to 5. By having these three groups, three inputs are generated for the fuzzy controller. Group one is termed as LEFT which measures the values for left side of environment. Group two is termed as FRONT which measures the values for front side of environment. Group three is termed as RIGHT which measures the values for right side of environment. The output of this FIS is speed and turn rate which controls the movement of the robot.
The first step is to collect data. Two techniques are available for collecting data or generating the training set.
- Use the FIS to generate the output pair. In this case, the robot wanders around the arena and calculates the output from sensors’ input data.
- Use the FIS generate the training data by taking samples from the universe of discourse of the FIS.
The second method is implemented to generate training set data in this report. Overall, this function generates the matrix of normalized speed and normalized turn, which will be used to train the neural network. This process of generating training data might happen outside the framework of Neural Network Toolbox software, but this step is critical to the success of the design process.
The next step is to create and configure the neural network. A neural network toolbox is used to do this. Through the second method, input data and target data are generated. The next step is to train the neural network that is given here.
Neural Network Training |
Following properties are used while training the neural network in the Matlab:
Network Type: Feed-forward backprop
Training function: TRAINGDM
Adaption learning function: LEARNGDM
Performance function: MSE
Number of layers: two
Layer 1: Number of Neurons = 10; Transfer function = TANSIG
Layer 2: Transfer function = TANSIG
After training the neural network, .mat file was generated. This file was applied to the matlab code. The code reads the neural network and changes the normalized values of speed and turn rate to original values for robot simulation. The simulation results are displayed here.
Arena 1 |
Arena 2.1 |
Arena 2.2 |
Arena 3 |