Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Robot exploration algorithm

Tags:

I'm trying to devise an algorithm for a robot trying to find the flag(positioned at unknown location), which is located in a world containing obstacles. Robot's mission is to capture the flag and bring it to his home base(which represents his starting position). Robot, at each step, sees only a limited neighbourhood (he does not know how the world looks in advance), but he has an unlimited memory to store already visited cells.

I'm looking for any suggestions about how to do this in an efficient manner. Especially the first part; namely getting to the flag.

enter image description here

like image 297
ark Avatar asked Mar 19 '11 11:03

ark


People also ask

What algorithms is used in robots?

Planning algorithms for teams of robots fall into two categories: centralized algorithms, in which a single computer makes decisions for the whole team, and decentralized algorithms, in which each robot makes its own decisions based on local observations.

What is Exploration problem in AI?

In robotics, the exploration problem deals with the use of a robot to maximize the knowledge over a particular area. The exploration problem arises in robotic mapping and search & rescue situations, where an environment might be dangerous or inaccessible to humans.

Which algorithm is used for shortest path finding in robotics?

Dijkstra's algorithm is a classic algorithm for finding the shortest path between two points due to its optimisation capability.

What are the 3 types of robots?

There are three types of robotic systems – the manipulation robotic system, the mobile robotic system and the data acquisition and control robotic system. The manipulation robot system is the most commonly used in the manufacturing industry.


1 Answers

A simple Breadth First Search/Depth First Search will work, albeit slowly. Be sure to prevent the bot from checking paths that have the same square multiple times, as this will cause these algorithms to run much longer in standard cases, and indefinitely in the case of the flag being unable to be reached.

A* is the more elegant approach, especially if you know the location of the flag relative to yourself. Wikipedia, as per usual, does a decent job with explaining it. The classic heuristic to use is the manning distance (number of moves assuming no obstacles) to the destination.

These algorithms are useful for the return trip - not so much the "finding the flag" part.


Edit: These approaches involve creating objects that represents squares on your map, and creating "paths" or series of square to hit (or steps to take). Once you build a framework for representing your square, the problem of what kind of search to use becomes a much less daunting task.

This class will need to be able to get a list of adjacent squares and know if it is traversable.

Considering that you don't have all information, try just treating unexplored tiles as traversable, and recomputing if you find they aren't.


Edit: As for seaching an unknown area for an unknown object...

You can use something like Pledge's algorithm until you've found the boundaries of your space, recording all information as you go. Then go have a look at all unseen squares using your favorite drift/pathfinding algorithm. If, at any point long the way, you see the flag, stop what you're doing and use your favorite pathfinding algorithm to go home.

like image 103
T.K. Avatar answered Oct 22 '22 02:10

T.K.