hjpvandijk / Thesis_ARGoS

0 stars 0 forks source link

Dfls improvements #58

Closed hjpvandijk closed 1 week ago

hjpvandijk commented 1 week ago

Added:

Frontier blacklist

When a frontier is selected, we check if we’re getting closer and save the distance. When the distance doesn’t increase anymore, we check if white the same closest point multiple times This means we’re in a loop If the hit threshold is reached, we blacklist that frontier. We have a counter for each frontier (within a radius around it). If a frontier is blacklisted multiple times the counter increases. The chance of skipping the frontier when looking for ‘new’ frontiers increases with the count. If it is skipped, it can’t be selected as target. When a blacklisted frontier location is reached by the agent (even when it is not the target), we decrease the counter. So increasing the chance it is selected.

Wall following

When the free direction to the target > 89 degrees, we enter ‘wall following’ mode Save this location as the hit point Select a random direction (left or right) to follow the wall We follow the wall until the direction to the target is free again. If we hit the same hitpoint again, change wall following direction.

Disallow Frontier Switching Until Reached

Don’t allow switching to a new frontier until we have reached the frontier within a set threshold. This is necessary for blacklisting as it decides when we can again try (with a chance) to select a blacklisted frontier

https://mavlab.tudelft.nl/ant-insights-lead-to-robot-navigation-breakthrough/ Can be seen as inspired by nature as ants also take ‘snapshots’.

Walking state

When there is no frontier to be found within the search range, select a random location on the edge of the root box. Maybe force away from deployment site?

Separate frontiers

Make sure agents select different frontiers based on the last known location of other agents.

Close small areas

Mark areas that are too small for the agent to fit through based on surrounding occupied blocks as occupied