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

Multi-goal TA #47

Open
stark710 opened this issue Mar 28, 2023 · 7 comments
Open

Multi-goal TA #47

stark710 opened this issue Mar 28, 2023 · 7 comments

Comments

@stark710
Copy link

Does this support multi-goal task allocation? That is, one robot visiting multiple goal locations?

@whoenig
Copy link
Owner

whoenig commented Mar 29, 2023

Not out of the box.

@stark710
Copy link
Author

Okay, any directions on where to look to add code to support this? I am working on a course project for this, Any help is appreciated. Thanks!

@whoenig
Copy link
Owner

whoenig commented Apr 1, 2023

In a TSP fashion, or each robot just having a fixed sequence of goal locations?

@kaushikbalasundar
Copy link

Each robot having a fixed sequence of goal locations - so we can call our multi-goal low level planner to execute a sequence of goals.

@whoenig
Copy link
Owner

whoenig commented Apr 11, 2023

If the input is a fixed sequence of goal locations for one robot and the task assignment portion is just to identify which robot should execute which fixed sequence, then you just need to change the state space of the existing A* planner (adding a discrete variable, which tells you which goal state is next).

If the input is a set of goals, which need to be visited at least once, then you need to change the task assignment to solve the TSP problem, in addition to the multi-label A* search mentioned above. How to do that highly depends on your problem size, since TSPs are NP-hard. For very small problems, an enumeration and ordering of the n! permutations might be feasible, while for more realistic settings one might need to rely on a approximate solver. In that case, the main challenge would be to find an incremental solver, which can produce a second-best solution.

@kaushikbalasundar
Copy link

Thank you for the advice. This really helps.

As for the first case with fixed goal sequences, can the current code-base support tasks with multiple fixed goals?

@whoenig
Copy link
Owner

whoenig commented Apr 11, 2023

Everything is templated, including tasks. In this case, I believe you can keep the current tasks (to be Locations in the example, https://github.com/whoenig/libMultiRobotPlanning/blob/main/example/cbs_ta.cpp#L506), with the interpretation that the Location is the first goal of your multi-goal sequence. Then, the only required change is to update the Low-Level Search (which is also templated, so you can add an additional discrete state keeping track of the next goal index).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants