Go back!

Navigation via neural mapping

Chatziioannou Anastasios, 20130030026

Contact me

Take me straight to the mini-game!

Basic Q and A's

What knowledge is required to build the map?

Provided that the robot has located both the obstacles and its target, it can construct a neural map.

How will it construct such a map?

First, an estimate of the grid/map is created (see Fig. 1a).
Then, using mathematic formulas, starting from the most desirable point, we calculate the "desirability" of every single spot on the grid/map.
The illustration in Fig. 1b shows the result of this procedure (dense lines means desirable areas, sparser-lined areas are avoided).
Note that the map is builded the same way energy flows (like a wave).

So, how does a robot navigate through neural mapping?

The robot will start building its path starting from its current location, and then gradually it will find its way by choosing the neighbouring block with the highest desirability.
The path will ultimately end to the final - most desirable point, which is its target.

Fig. 1 : From Robot Navigation with a Polar Neural Map, by M. Lagoudakis, A. Maida, 1999

So what did YOU do?

I created a robot which consists of a head and a tail, similar to snake.
I also created a square grid which contains randomly generated obstacles.
I placed the snakebot onto the grid, while granting to it a sonar sensor and an X-ray sensor. (The sonar bounces through the walls, the x-ray can see through)
The sensor is placed onto the snakebot's head and spins around in 360°.
The radar will print any findings, creating an estimated map of the area.
As we can see, the x-rays are a pretty comfortable tool, but a sonar is what we would most likely use in real life.

Animation 1 : Using the sonar to find obstacles and food.

Animation 2 : Using the x-rays to find obstacles and food.

How does your robot navigate?

My robot: a) Wants to eat its food, b) Wants to avoid the walls.
It chooses its next move by selecting the most desirable block next to it.
If the wereabouts of the "food" are unknown, then all the blocks are as desirable (making it move randomly was actually a lot harder!)
The desirability is printed using color code i created : bright red is the worst spot, bright blue is the best spot. The target is in cyan. Grey means can't decide.

Animation 3 : Using the map to find the food.

But the map seems different than the one on the paper..

Yes, indeed, the map on the paper simulates the "energy flow" we discussed earlier. This enables the robot to avoid obstacles really efficiently.
In a latter version, this feature must be implemented.

Why is it a priority?

The current implementation has a slight problem, which was solved with a workaround.
As you can see in Animation 4, when there is an obstacle between the snakebot and the food, the robot will move repeatitively in 2 locations.
I taught the snake to watch for repeatitive movement and avoid the place where it happens. (avoid the place means decrease its desirability!)

Animation 4 : Navigating to the food.

So what's next? Is it over?

The limits are only one's imagination!
Additive White Gaussian or Meyer noise on the sensor, energy levels (where the food is the battery, just like the e-puck contest) and many many more features can be added!

Wow! Looking forward to it! Can I try it?

Sure you can! You can do it here.
Use the PLAYER mode to move with the arrows or the SUPER EASY mode for a smoother experience.
Have fun! :)

Report | Presentation