-
Notifications
You must be signed in to change notification settings - Fork 221
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
There may be infinite loop if there is no way from start point to goal point #44
Comments
For A*, the algorithm is correct. For CBS (and related variants), you are correct that they do not terminate if no solution exist. This is also the case in the original papers. Termination can be achieved by using CBS+SIPP at the low-level, or by first checking if a solution exists using suboptimal solvers (not implemented here). |
Hi, |
I don't have example code ready, but you essentially just replace the low-level planner template from Astar to SIPP. When I tried it a few years back, it was slightly slower than regular CBS. |
I assume aside from replacing the low-level search to Sipp, converting constraints of high level to safe interval of the cell is also needed, right? |
Correct (to both questions). If you get it working it would be nice if you share it. I remember having implemented it before with this library, but it doesn't seem to be in any of the branches. |
Thanks. Will pull the request once I make it works. One more question comes with setting the safe intervals from constraints for an agent. |
I don't think having SIPP at the low level can terminate the CBS for unsolvable instances. Can you elaborate more on it? |
您好!
您发送的邮件已收到。谢谢。
祝您生活愉快!
|
The issue with regular CBS is that it searches in space-time and has no reason to terminate as it can always add additional wait actions to try another solution. An upper bound on time fixes this. SIPP also explicitly contains an upper-bound, as you now plan over space and time intervals (rather than space-time). |
But as far as I understand, converting the regular CBS vertex/edge constraints to a time interval makes no difference, as SIPP will still add wait actions and find the same solution as A*. I have tried https://github.com/Jiaoyang-Li/CBSH2-RTC which supports CBS-SIPP, but it does not terminate for unsolvable instances. |
libMultiRobotPlanning/include/libMultiRobotPlanning/a_star.hpp
Line 85 in b01a527
I think it could have infinite loop if no way from start point to goal point since there is an additional parameter(time) in State. And when you add a State to the set and queue, timestep may be different for same (x,y) so the set won't have any effort.
Correct me if I'm wrong.
The text was updated successfully, but these errors were encountered: