HomeQuestions?InformationRecar online

About the bookAbout the book

Distributed Adaptive Control

The Distributed Control Architecture (DAC) discussed in Chapter 5 of the book, demonstrates the use of a neural network architecture to perform the task of obstacle avoidance during navigation. The original version was implemented on a real Khepera robot. The simulation below recreates the performance of the actual robot using the same control architecture.

The DAC Control Architecture

The DAC Control Architecture is a neural network with three layers: the proximity layer, the collision layer and the motor action layer as shown in the figure below. Each proximity sensor is connected to a node in the proximity layer. Each collision sensor is connected to a node in the Collision layer. The nodes of the proximity layer have continuous sigmoid activation functions and are connected uni-directionally to the nodes of the collision layer. The nodes of the collision layer have binary activation and have hardwired connections to the motor layer.

Using Hebbian learning as the robot runs, the network will strengthen the connections between the collision layer nodes and proximity layer nodes which are active at the same time. As the network trains the robot will learn to avoid obstacles as the proximity sensors will activate the collision layer nodes and in effect "predict" collisions before they can occur, so the robot can turn away.



(For a more detailed explanation refer to pages 152-162 in the book).

Go ahead, Start the Simulation!

In the JAVA based simulator the performance of the real Khepera robot is simulated. The Khepera robot used 8 eight IR sensors for detecting objects. The simulated robot also has eight such sensors which can be seen indicated as rays extending from the robots center. The length of these rays indicate the sensor range. The green polygons are objects which can be detected by these sensors.

Whats going on..

When the simulation begins the weights of the connections between the proximity and collision layer are initialized with small random values around 0.0. The robot moves forward according to its hardwired motor reflex until it collides with an obstacle. Every collision is an opportunity for the network to train. When a collision occurs, collision and proximity sensors are activated at the same time and the network reinforces the connections between these layers. Over time the proximity sensors alone can predict collisions so it is observed that the robot stops colliding into obstacles altogether and successfully avoids them each time.

A similar experiment can be done with light sources placed along the walls. In such an environment the robot will learn to associate walls with light sources.

To gain a further understanding of how these behaviors are performed you can view

Implementation issues

The source code has been implemented and tested on the Khepera robot without any particular problems.

Copyright 1999 Dimitrios Lambrinos..
Do you have any comments about this site? Please drop us a line at lambri@ifi.unizh.ch

Examples

The teamThe team

ContactContact