whoenig / libMultiRobotPlanning

Library with search algorithms for task and path planning for multi robot/agent systems
MIT License
840 stars 220 forks source link

Code questions #24

Closed Aceyli closed 3 years ago

Aceyli commented 3 years ago

Hello, I'm very interested in MAPF. I want to ask you, what editor does this code run in? This problem occurs when I run CBS. CPP in the vscode editor. I found a lot of solutions in Google, but I can't solve them. I hope I can get some suggestions from you. image

whoenig commented 3 years ago

I haven't tried it in VSCode, but it looks like you are trying to compile just a single file, rather than the project. Try opening the folder, make sure your CMake extension is installed, and compile the whole project using cmake.

Aceyli commented 3 years ago

I'm very glad to receive your reply. I want to ask you how to use cMake to run the whole project in your code?

whoenig @.***> 于2021年5月3日周一 下午11:32写道:

I haven't tried it in VSCode, but it looks like you are trying to compile just a single file, rather than the project. Try opening the folder, make sure your CMake extension is installed, and compile the whole project using cmake.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/whoenig/libMultiRobotPlanning/issues/24#issuecomment-831342632, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMBF57QTYVST6KXL5LVFZ7DTL26YNANCNFSM44ASBR4A .

Aceyli commented 3 years ago

I wanted to recompile the cbs.cpp file, but this problem occurred. I want to ask why? The cbs.cpp file obviously exists in the current directory.[image: image.png]

李伟科 @.***> 于2021年5月4日周二 上午9:47写道:

I'm very glad to receive your reply. I want to ask you how to use cMake to run the whole project in your code?

whoenig @.***> 于2021年5月3日周一 下午11:32写道:

I haven't tried it in VSCode, but it looks like you are trying to compile just a single file, rather than the project. Try opening the folder, make sure your CMake extension is installed, and compile the whole project using cmake.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/whoenig/libMultiRobotPlanning/issues/24#issuecomment-831342632, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMBF57QTYVST6KXL5LVFZ7DTL26YNANCNFSM44ASBR4A .

whoenig commented 3 years ago

The instruction on how to compile are part of the README. For help with VSCode, you may find support in another forum.

Aceyli commented 3 years ago

[image: image.png][image: image.png]I'm very sorry to disturb you for such a long time. "../ecbs -i ../benchmark/32x32_obst204/map_32by32_obst204_agents10_ex1.yaml -o output.yaml -w 1.3 "command line instruction to execute the given compiled file? I tried to modify the output of the ecbs.cpp file as shown in Figure 1 and Figure 2, but found that the printing results of the last two are the same. The reason for this phenomenon is that I input "./ecbs -i ../benchmark/32x32_obst204/map_32by32_obst204_agents10_ex1.yaml -o output.yaml -w 1.3" is always executing the pre-compiled file, rather than recompiling the ecbs.cpp file?

whoenig @.***> 于2021年5月5日周三 上午8:14写道:

The instruction on how to compile are part of the README. For help with VSCode, you may find support in another forum.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/whoenig/libMultiRobotPlanning/issues/24#issuecomment-832335777, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMBF57TPUC7V6FBX7EPWXTLTMCEXPANCNFSM44ASBR4A .

whoenig commented 3 years ago

You might need to get some more background in C++ (Bjarne Stroustrup wrote some good books). You are correct that the instructions in the README tell you how to a) compile, and b) execute the compiled binary. If you change your code, you always need to execute both a) and b) again.

Aceyli commented 3 years ago

I'm very glad to receive your reply. I would like to ask the "a_star.cpp" file in the code, what the map content should be to make it run, and what is the command to run the "a_star.cpp" file?

whoenig commented 3 years ago

An example map is here: https://github.com/whoenig/libMultiRobotPlanning/blob/master/test/map_3x3.txt

Aceyli commented 3 years ago

Thank you! And I want to know how to run the "a_star.cpp" example instance after getting the example that you said.

whoenig commented 3 years ago
./a_star --startX 0 --startY 0 --goalX 2 --goalY 1 -m ../test/map_3x3.txt -o output.yaml
3 4
Planning successful! Total cost: 3
0: (0,0)->Right(cost: 1)
1: (1,0)->Right(cost: 1)
2: (2,0)->Up(cost: 1)
3: (2,1)
Aceyli commented 3 years ago

Thank you for your quick response, Wolfgang! Sorry to bother you all the time. Now I have still the following questions: 1、When I run the instructions "./cbs -i ../benchmark/8x8_obst12/map_4by4_obst4_agents2_ex1.yaml -o output.yaml" and "map_4by4_obst4_agents2_ex1.yaml " as shown in the figure below, the paper says there will be six goal nodes, but in fact, why is there only one optimal solution for the output of the code? Is this optimal solution output based on what principle? image 2、As stated in your paper, when two agents in the root node conflict and two children nodes as shown on the left side of the figure below will be generated. However, the two children nodes are all the optimal solutions planned in the current state? I made a bold assumption on the right side of the figure below. When the two agents in the root node conflict, two children nodes that are not in the constraint tree mentioned in your paper will also be generated. The two children nodes seem to be the optimal solution. I wonder if there is any problem with my assumption? image

whoenig commented 3 years ago
  1. CBS generates one optimal solution. Ties may be broken arbitrarily in this case (e.g., depending on the internal order of the data structure). You could generate all optimal solutions by continuing the search until the cost changes (not implemented here).
  2. I am not sure which paper you refer to? The underlying optimality principle is that the low-level search always computes the optimal solution of the constrained problem. Your children on the right violate this principle. A bounded suboptimal variant (e.g., ECBS), could shortcut within the suboptimality bound though.
whoenig commented 3 years ago

Closing due to inactivity.