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

Potential Bug on ECBS-TA #22

Open
Kei18 opened this issue Nov 20, 2020 · 3 comments
Open

Potential Bug on ECBS-TA #22

Kei18 opened this issue Nov 20, 2020 · 3 comments
Labels

Comments

@Kei18
Copy link

Kei18 commented Nov 20, 2020

Hi, I am currently studying MAPF topics. This awesome repo helps me a lot! I am interested in (E)CBS-TA, it is very impressive work.

When I tested ECBS-TA with unlabeled MAPF settings, I found that several agents seemed to collide. Could you check them?

Environment

OSX 10.15.7, cmake version 3.17.3, with the latest master repo

Example

case 1

./ecbs_ta -o output_random-32-32-20_30agents_1.yaml -i ../benchmark/random-32-32-20_30agents_1.yaml -w 1.05
python3 ../example/visualize.py ../benchmark/random-32-32-20_30agents_1.yaml output_random-32-32-20_30agents_1.yaml
  • collision: agent2 and agent17
  • The log of agent17 seems to be strange. It uses the same timestep (t=0) several times, e.g., the log starts with (x=26, y=15, t=0), (x=26, y=15, t=0) [...].

case 2

./ecbs_ta -o output_random-32-32-20_30agents_2.yaml -i ../benchmark/random-32-32-20_30agents_2.yaml -w 1.05
python3 ../example/visualize.py ../benchmark/random-32-32-20_30agents_2.yaml output_random-32-32-20_30agents_2.yaml
  • collision: agent22 and agent28, agent9 and agent28
  • The log of agent28 uses t=7 several times.

Thank you in advance for your time.

Kei

@whoenig whoenig added the bug label Nov 20, 2020
@whoenig
Copy link
Owner

whoenig commented Nov 20, 2020

Thanks for the detailed report, Kei! This is certainly a bug. From my initial investigation, it seems like the issue is just in writing the output file and not algorithmic. In particular, if I add the following to visualize.py:167, I get a collision-free output:

  # Sanity check of schedule
  for agent_name in schedule["schedule"]:
    agent = schedule["schedule"][agent_name]
    for t, item in enumerate(agent):
      if item["t"] != t:
        print("WARNING: t inconsistent", agent_name, item["t"], t)
        item["t"] = t

I hope that will unblock you, until I find time to fix the output itself properly.

Cheers,
Wolfgang

@Kei18
Copy link
Author

Kei18 commented Nov 20, 2020

Thank you for your quick response, Wolfgang! The code works fine as a temporary measure.

(This is irrelevant to the above bug)
I later want to use your implementations in my paper. Is it fine?

@whoenig
Copy link
Owner

whoenig commented Nov 20, 2020

Yes, of course - that's what the code is for. If you use ECBS-TA, it would be nice if you could cite my AAMAS paper. For all others, just cite the original algorithm papers and perhaps mention this repo in a footnote.

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

No branches or pull requests

2 participants