Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Agents need to be able to navigate with blocks attached to them. #36

Closed
lucweytingh opened this issue May 22, 2020 · 9 comments
Closed
Assignees
Labels
enhancement New feature or request

Comments

@lucweytingh
Copy link
Collaborator

As of now, agents do not know how to path-find with blocks attached. It would be great if there is a general solution to this problem.

@lucweytingh lucweytingh added the enhancement New feature or request label May 22, 2020
@lucweytingh lucweytingh self-assigned this May 22, 2020
@lucweytingh lucweytingh moved this from To do to In progress in Multi Agent Programming Contest May 22, 2020
@lucweytingh lucweytingh moved this from In progress to To do in Multi Agent Programming Contest May 22, 2020
@lucweytingh lucweytingh moved this from To do to In progress in Multi Agent Programming Contest May 22, 2020
@gsileno
Copy link
Collaborator

gsileno commented May 22, 2020 via email

@lucweytingh
Copy link
Collaborator Author

A rough solution would be to make the planning on a coarser map, decreasing the definition so that an agent plus blocks count as a full position.

I agree with this theoretically. The only downside to this solution, however, is that we would have to search the entire map for obstacles and expand the obstacles in the direction of attached blocks for an agent. This could be computationally intensive.

Another possibility could be to only path plan normally, but when computing the transition costs to a certain node, the nodes relative to that node corresponding with the relative block attachments could be checked.

i.e. (simplified)

def transition_cost(from, to):
    for node in [from, to] + relative_attached:
        if node is obstacle:
            return inf

    return 1

@lucweytingh
Copy link
Collaborator Author

As it turns out, checking the neighbours for every possible next node is very computationally intensive too. Perhaps I could instead only check the final path for 'if it is possible' and turn if it is not.

@gsileno
Copy link
Collaborator

gsileno commented May 22, 2020 via email

@DanielPerezJensen
Copy link
Owner

This may also make it harder to merge the Graphs as @dorian4840 is working on, since each agent with blocks attached must have it's own graph where these issues are taken into account.

@gsileno
Copy link
Collaborator

gsileno commented May 22, 2020 via email

@lucweytingh
Copy link
Collaborator Author

I understand what you meant, this solution somewhat looks like what you suggested: https://harablog.wordpress.com/2009/01/29/clearance-based-pathfinding/.

@gsileno
Copy link
Collaborator

gsileno commented May 23, 2020 via email

@gsileno
Copy link
Collaborator

gsileno commented May 23, 2020 via email

Multi Agent Programming Contest automation moved this from In progress to Done May 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

No branches or pull requests

3 participants