question

Lam0012 avatar image
0 Likes"
Lam0012 asked Lam0012 commented

AMR double deep task assignment

Hello, I am trying to pick the inner container for the double deep layer. May I know how to make it? I want to call another robot to transport the rack at the front. This rack will be loaded by another robot and will be deliver to its original position by travelling 1 round path. So that the inner rack can be take out. But I don't know how to call another robot by a robot. Thank you.

AMR double deep .fsm

FlexSim 21.1.5
amrdouble deep
amr-double-deep.fsm (189.5 KiB)
· 2
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Joerg Vogel avatar image Joerg Vogel commented ·
Hello @Lam0012, I am not convinced, that in reality an involved robot is calling another robot to assist him. I think it is more a control unit that manages both robots, because how should a plc know that a product is blocked by another product. This said, you will dispatch first a tasksequence to redirect the blocking product and simultaneously a tasksequence to let wait a second robot in near distance. When blocking product is away, you let a waiting robot finishing his transport job.
0 Likes 0 ·
Lam0012 avatar image Lam0012 Joerg Vogel commented ·
Thanks for your advice. I will try it.
0 Likes 0 ·

1 Answer

Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered Lam0012 commented

To "acquire" a second robot you can utilize the same structure that the stations use: The first robot's token pushes itself to the cart request list so it can be pulled by another available cart. You just need to differentiate between the cases of the cart pulling a station's token or a robot's token. This could be done by using a shared label with different values that identify the token as either belonging to a station of a robot.

If a robot's token is pulled, the pulling token doesn't initiate any actions by itself but simply waits until the other token (the one of the first robot) is done with the synchronized sequence of tasks. The attached model contains an example of this. (The case of acquiring a second robot only keeps the robots occupied for some time without actually doing anything. The model is only meant to demonstrate how to use a second robot)

1674724905503.png

Other things you will have to think about to get the process to work:

- How to identify if the item is placed in a middle slot that might be blocked (the attached model uses slot labels for this)

- How to check whether the item is actually blocked
- Possibly by keeping a reference of each neighbouring slot for the middle slots

- How to determine where the second robot is taking the blocking item (easiert solution might be temporary waiting spots at the side of the grid, so they can't block other robots while they wait for the actual request to be fulfilled)

amr-double-deep_mockup.fsm


· 3
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Lam0012 avatar image Lam0012 commented ·

Thank you for your help. But I still cannot fix the problem that you have mentioned.

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Lam0012 commented ·

I updated the model to also contain an example of how to check if a slot is actually blocked or not. The code in the script window is executed once at the start of the simulation (see top left corner of AMR Process Flow). It writes references to the two neighbouring slots onto labels for each middle slot (slots where the "TwoDeep" label is 1).

These references are then used to check if the neighbouring slots contain items in the Decide activity marked orange.

amr-double-deep-mockup-2.fsm

0 Likes 0 ·
Lam0012 avatar image Lam0012 Felix Möhlmann commented ·
That's great, it's really helpful. Thank you.
0 Likes 0 ·