Author Topic: Optimized Fuzzy Logic Training of Neural Networks for Autonomous Robotics Applic  (Read 3864 times)

0 Members and 1 Guest are viewing this topic.

IJSER Content Writer

  • Sr. Member
  • ****
  • Posts: 327
  • Karma: +0/-1
    • View Profile
Author : Ammar A. Alzaydi, Kartik Vamaraju, Prasenjit Mukherjee, Jeffery Gerchynski
International Journal of Scientific & Engineering Research Volume 2, Issue 10, October-2011
ISSN 2229-5518
Download Full Paper : PDF

Abstractó Many different neural network and fuzzy logic related solutions have been proposed for the problem of autonomous vehicle navigation in an unknown environment. One central problem impacting the success of neural network based solutions is the problem of properly training neural networks. In this paper, an autonomous vehicle controlled by a feed-forward neural network is trained in real time using a fuzzy logic based trainer and the standard back-propagation learning algorithm. The experimental results presented demonstrate the feasibility of real time training using a constrained hardware platform. They also show the impact of racetrack complexity on the training process as well as the impact of the neural network size on the learning speed and error convergence during the training process. The results are then used to develop an optimization procedure that is used to determine the optimal neural network size for the given problem domain and experimental platform.

Index Termsó Autonomous, Autonomous navigation, Autonomous robotics, Fuzzy logic, Navigation, Neural network, Real-time training 

1   INTRODUCTION                                                                      
Designing an autonomous vehicle for navigation in an un-known environment is a challenging problem that en-compasses many complex tasks such as obstacle avoidance and path planning. The complex dynamics of vehicle control and the unknown nature of the environment being navigated limit the feasibility of many theoretical methods for autonomous vehicle navigation. Many intelligent methods have been developed involving fuzzy logic and neural networks to solve problems related to autonomous navigation. Fuzzy logic based systems, such as [1], [2], utilize a semantic rule base consisting of IF {antecedent} THEN {consequent} rules that govern the actions of the vehicle based on fuzzified sensory data. These systems do not necessarily require advanced modelling of vehicle dynamics yet can provide control that is more tolerant to sensory error. Fuzzy logic based systems suffer from the ina-bility to adapt to unforeseen scenarios due to the static na-ture of their fuzzy rule base. Alternatively, neural network based methods overcome this barrier through the use of learning algorithms. Fuzzy-neural networks merge the advantages of both fuzzy logic and neural networks together to create a potentially superior implementation [3], [4]. But while fuzzy-neural networks appear to represent an ideal solution to the problem of autonomous navigation in an un-known environment, there remain to be significant practical barriers preventing widespread adoption.
All methods that involve neural networks suffer from the problem of generating relevant, useful training data and implementing viable learning algorithms for real-time usage. Many different learning algorithms have been used to train neural networks [5], [6], [7]. These methods however have limited viability in training scenarios in which the vehicle must learn fast to respond to unknown obstacles using a limited supply of online training data. Regardless of the exact training algorithm used, there is still the problem of constructing a viable set of training data. It is highly difficult and impractical for an expert to generate the poten-tially thousands of input-output data vectors necessary to train the neural network, and while methods exist for ensuring useful training data [8], [9], these methods are difficult to apply to an arbitrary scenario.

One solution to the problem of providing viable training data is to create a fuzzy logic trainer that supplies the neces-sary data to train the neural network that is driving the vehicle [10]. In this scenario, a vehicle is controlled by a neural network with randomized weights and is placed within a racetrack. As the vehicle navigates the racetrack the fuzzy logic trainer generates data that is used to train the neural network using the standard back-propagation learn-ing algorithm. The neural network is trained in real time as it navigates through a racetrack. Since the ideal output used to train the neural network is provided entirely by the fuzzy logic trainer, the pattern recognition behaviour of the neural network results in the neural network approximating the fuzzy logic trainer performance. The mathematical error between fuzzy logic trainer and the neural network results in differences in the navigational performance that lead to competitive, if not superior navigational performance by the neural network. The level of noise in the training data also tends to reduce the probability of the back-propagation algorithm converging to local minima. The problem of generating an optimal training data set is therefore equivalent to creating a viable racetrack. The success of training a neural network in this scenario is directly compa-rable to training a neural network in any type of en-vironment in which the neural network must learn fast with a limited amount of training data.
In this paper, this training process is investigated experi-mentally by implementing a fuzzy logic trainer on a robot vehicle controlled by an untrained neural network. A feed-forward neural network with a single hidden layer is used to control the steering angle and speed of the vehicle. The goal of this paper is to experimentally determine the feasibility of real-time training of a neural network for autonomous navigation, as well as to determine the optimal number of neurons for the hidden layer for the given experimental design. The process used to select the optimal number of neurons is motivated primarily by experimental results as opposed to other theoretically based methods. This process is not specific to autonomous navigation and can be applied to other applications as well. In addition, results are presented demonstrating the effect of additional neurons in the hidden layer with respect to both training efficiency and overall driving speed. The successful implementation of real time training using this experimental platform should scale easily as the complexity of implemented systems increase, and therefore the experimental results should be directly applicable to real time training scenarios involving different neural network topologies and hardware implementations.

A robot vehicle was built to navigate indoor racetracks. A single Hokuyo URG-04LX laser range-finder (Lidar) was used to supply sensory data to two Atmega1280 based microcontrollers. These microcontrollers communicated to a single steering servo motor and to a Sabretooth 2x10 motor controller to move the vehicle. The fuzzy logic and neural network implementations were designed for real time autonomous navigation even when constrained by the significant computational limitations imposed by the 8-bit microcontrollers.
The fuzzy logic trainer and neural networks were imple-mented on the two microcontrollers. One microcontroller was used as an interface to the sensor, and used the fuzzy logic trainer and neural networks to generate control packets for steering angle and speed. The control packets from the first microcontroller were sent to the second microcontroller, which acted as an interface to the steering servo motor and the speed motor. The purpose of using two different mi-crocontrollers was to allow for easy expansion with additional sensors, since there would be a greater availability of processing power and input/output ports. The fuzzy logic trainer and neural networks were implemented on the same microcontroller mainly for simplicity in data transmission; there was a minimal performance difference if the neural network was shifted to the second microcontroller.

Read More: Click here...