The project computes path planning for a "nearly" point robot. It is nearly because the robot does actually have a radius, but this only serves to make the obstacles slightly larger. A point robot was choosen to keep the problem simple in order to evaluate the effectiveness of Alife techniques. The project could easily be extended to other types of path planning. It is worth noting that because of the structure of the symbot agents, the symbots actually solve a non-holonomic planning problem because they have a control system.
In order to evaluate the performance of the Alife techniques, the project includes an implementation of a randomized planner for comparison purposes.
For this problem, the world is a two dimensional grid of size 10 x 10. Obstacles and the initial and goal positions are randomly generated on the board. The objective is for the planner to navigate from the initial to the goal.
Two planners are implemented. A simple randomized planner and a symbot planner.
The randomized planner is implemented based on the methods used for randomized potential field planning presented in class. An adhoc potential field function is generated by summing both an attractive field and a repulsive field. All planning is done using this summed field. The descend algorithm uses 20 samples, and the planning algorithm generates at most 20 random paths before backtracking.
The symbot planner runs a symbot simulation on symbots generated off-line
and loaded into the simulator. The symbots are generated off-line using
a seperate program that shares code with the visual path planning program.
The final symbots evoled in the project where created using population size 100, 5 boards per generation, and 1024 generations. 12 runs were executed in parallel on seperate CPUs.
In order to assist symbot evolution, the number of obstacles is scaled with based on the generation number. A run starts with 0 obstacles, and then gradually adds obstacles at higher generations.
The structure of the symbot control system for this project has been extended from the original symbot work. The symbots in this project have the equivalent of a 4 state machine deciding which of 3 neural networks to use.
The logic looks similar to this
if trapped if near obstacle use net B else use net C else if near obstacle use net B else use net ABy "trapped", it is meant that the symbot has wandered into a local minima. In the future, the design should probably be extended to use a net D instead of B when avoiding obstacles in a trapped state.
This is promising since the symbots actually solve a harder problem. (They are non-holonomic) The symbots can also be used in dynamic environments and can be used with sensor uncertainty. Symbots can be very easily extended to solve much harder navigation problems.
A symbot can do all this with no change in the current model because the symbot is already a purely reactive entity. The symbot has no knowledge about the state of the world except for what its sensors detect locally. It also retains no information about the world as it is moving through it. A symbot only reacts to the local area of its world based on its current state.
Many of the symbots evolved into creatures that behaved similar to other path planning algorithms. For example some symbots evolved to walk toward the goal until they hit an object and then randomly go in another direction. Many symbots also discovered that walking along the edge of the environment could quickly get them to the goal. Some symbots evolved into a algorithm similar to BUG2. They would go toward the goal until they hit and object, then follow the object outline around until they got "around the edge" of the object.
There were some cases in which the symbots failed. For example some evolved symbots can get "stuck" between objects. This is an area that I have been investigating, but I did not have time to find a complete solution.
Symbots also still have some problems with local minima. This is due both to an imperfect detection function and to the inability for evolution to zero in on this ability. Because the random boards were completely random, many times local minima did not exist or did not exist as a large trap for a symbot. Since the boards did not require symbots to evolve trap evasion, they nearly ignored it all together.
I believe that further work should be performed to expand on the promising
results of this project. This project has shown that Alife techniques
can be used to solve path planning problems. There are now many more
questions to answer: How well can they solve the problem?, What types
of problems should Alife be used on?, Are there any problems Alife could
solve that other techniques cannot?
Example of a simple randomized solution.
Example of a difficult randomized solution. The solver gets stuck in the local minima and has to go through a large number of iterations to find a random walk out.
This is another example of a randomized plan. The randomized walk produces
a plan that must be smoothed before using with a real robot.
Here is another example. In this example, the symbot decided
to follow the border of the environment.
In this example the symbot gets trapped in a local minima and then
navigates out.