
Embedded Robotics (Thomas Braunl, 2 ed, 2006)
.pdf
Neural Controller
19.5 Neural Controller
Control of mobile robots produces tangible actions from sensor inputs. A controller for a robot receives input from its sensors, processes the data using relevant logic, and sends appropriate signals to the actuators. For most large tasks, the ideal mapping from input to action is not clearly specified nor readily apparent. Such tasks require a control program that must be carefully designed and tested in the robot’s operational environment. The creation of these control programs is an ongoing concern in robotics as the range of viable application domains expands, increasing the complexity of tasks expected of autonomous robots.
A number of questions need to be answered before the feed-forward ANN in Figure 19.4 can be implemented. Among them are:
How can the success of the network be measured?
The robot should perform a collision-free left-wall following.
How can the training be performed?
In simulation or on the real robot.
What is the desired motor output for each situation?
The motor function that drives the robot close to the wall on the left-hand side and avoids collisions.
Neural networks have been successfully used to mediate directly between sensors and actuators to perform certain tasks. Past research has focused on using neural net controllers to learn individual behaviors. Vershure developed a working set of behaviors by employing a neural net controller to drive a set of motors from collision detection, range finding, and target detection sensors [Vershure et al. 1995]. The on-line learning rule of the neural net was designed to emulate the action of Pavlovian classical conditioning. The resulting controller associated actions beneficial to task performance with positive feedback.
Adaptive logic networks (ALNs), a variation of NNs that only use boolean operations for computation, were successfully employed in simulation by Kube et al. to perform simple cooperative group behaviors [Kube, Zhang, Wang 1993]. The advantage of the ALN representation is that it is easily mappable directly to hardware once the controller has reached a suitable working state.
In Chapter 22 an implementation of a neural controller is described that is used as an arbitrator or selector of a number of behaviors. Instead of applying a learning method like backpropagation shown in Section 19.3, a genetic algorithm is used to evolve a neural network that satisfies the requirements.
289








Example Evolution
Robot action
Controller
Complex schema
Primitive schema |
|
Primitive schema |
|
Primitive schema |
|
|
|
|
|
|
|
|
|
|
|
|
|
Sensor schema |
|
Sensor schema |
|
Sensor schema |
|||
|
|
|
|
|
|
|
|
Figure 20.6: Schema hierarchy
Behavior [Harvey, Husbands, Cliff 1993] used a genetic algorithm to evolve a robot selection neural net controller to perform the tasks of wandering and maximizing the enclosed polygonal area of a path within a closed space. The controller used sensors as its inputs and was directly coupled to the driving mechanism of the robot. A similar approach was taken in [Venkitachalam 2002] but the outputs of the neural network were used to control schema weightings. The neural network produces dynamic schema weightings in response to input from percep-
tual schemas.
20.4 Example Evolution
In this section we demonstrate a simple walk-through example. We will approach the problem of manually solving a basic optimization problem using a genetic algorithm, and suggest how to solve the same problem using a computer program. The fitness function we wish to optimize is a simple quadratic formula (Figure 20.7):
f(x) = – (x – 6)2 for 0 d x d 31
Using a genetic algorithm to search a solvable equation with a small search space like this is inefficient and not advised for reasons stated earlier in this chapter. In this particular example, the genetic algorithm is not significantly more efficient than a random search, and possibly worse. Rather, this problem has been chosen because its relatively small size allows us to examine the workings of the genetic algorithm.
297
