merschformann / RAWSim-O

A simulation framework for Robotic Mobile Fulfillment Systems
GNU General Public License v3.0
189 stars 65 forks source link

Question about FAR algorithm to handle the path finding issue in the referenced paper #15

Open Phymin opened 4 months ago

Phymin commented 4 months ago

Hi,

First I'd like to say this project is amazing, it's completed and with good design, the source code is easy to follow even I am not familiar with C# language. After I read the referenced paper, I have a small question to ask: From the paper, the WHCA* algorithm can handle the following issue (see the picture below) by itself. So can the FAR algorithm handle this issue without evade strategy? Or it should handle the issue with evade strategy and deadlock handler? Because I'm not familiar with C# and I don't find a way to test this with the GUI simulator, could you provide some explaination here? Thanks image

merschformann commented 4 months ago

Hey! Always happy if it is helpful.

FAR should not be able to handle the situation without additional deadlock handling. Unfortunately, it became a little rough to test just the path planning algorithms without everything else in the simulation going on. However, with some clever design you should be able to edit a .xinst file with a layout to test your questions. It's tedious though without the missing editor. There are some ways by holding down ctrl and drawing rectangles in the UI to remove waypoints, etc. and do fine tuning in the XML though (admittedly not a great experience).

Phymin commented 4 months ago

Got it, thanks for your explaination, I will give it a try.

Phymin commented 4 months ago

Hi merschformann,

I am trying to simulate the path finding situtation in the paper based on the current layout, but modified the code a little bit, see the picture below: Robot0 will move to pod 77 and Robot1 will move to pod 73. Snipaste_2024-02-29_09-10-56 I have tested both FAR and WHCAv method, but it seems that the FAR method can't handle this situtation, you can see the simulation videos below, the first one is FAR method, and the second one is WHCAv method. Could you provide some explaination about their very different behavior? Thanks

https://github.com/merschformann/RAWSim-O/assets/9857420/0ccaf60b-f51a-42ea-9fa2-a479c49fccb5

https://github.com/merschformann/RAWSim-O/assets/9857420/6b9b5b32-6055-4ab5-941b-4c994113e952

merschformann commented 3 months ago

Yeah, like I mentioned the implementation / this version of FAR is quite limited in what it can cope with. The layout itself needs to have some characteristics to reduce these effects (the default layout has that to some extent). I need to dig into the code again to give more detailed pointers. Can you provide the code and input files you used?

Phymin commented 3 months ago

Hi, thanks for you feedback, you can use the code forked from your repository: https://github.com/Phymin/RAWSim-O.git, and checkout the commit of : 82da3c696c14600c575557b84079d4c2d930ce2b

For the layout I don't change much, you can cofigure it according to the following picture: image

Thanks for your time.

merschformann commented 3 weeks ago

Sorry for dropping the ball on this. I am still planning to look into this more deeply, but can't find the time right now. :grimacing:

Phymin commented 3 weeks ago

Ok, take your time.