Julio R avatar image
Julio R asked Jason Lightfoot commented

How to avoid colision in cranes?

I have a problem with cranes that only move in one axis inside a pathway, but cannot overlap in the model. I tried using the collision module inside the cranes but I haven’t been successful.

I don’t mind if this is achieved by agv or any other mean of transportation, but it must be two in the same pathway and not crossing each other or getting on top of one another.

The origins and destinations are crossed, and restricting these for the transports is not an option (eliminating crossed flows)

I attach my model, that is not working properly right now.

Thank you,

Choose One
crane movementpathscollisions
· 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 ·

Can you explain how the crane should behave, if there is happening a collision? Maybe you have to define areas which a crane allocates and then send the other crane to another area or dispatch to the second crane a transport task that doesn't interfere with the first crane.

0 Likes 0 ·
Julio R avatar image Julio R commented ·

@Jörg Vogel It´s having collisions because of crossed paths, but I want these paths to be croosed and the two cranes not crossing each other. What I was thinking was more a scenario where one crane kind of pushes the other until it reaches its destination if necessary. I´ll send another model where there are more chances of collisions.


Thank you!

0 Likes 0 ·
pregunta.fsm (24.1 KiB)

1 Answer

anthony.johnson avatar image
anthony.johnson answered Jason Lightfoot commented

Here are my suggestions:

1. Take the cranes off the network. The crane collision logic pick option uses crane offset travel, which does not use travel networks, and travel networks actually get in the way.

2. Set all accelerations/decelerations to 0 on the crane. This will allow the cranes to get out of each others way in proper time.

3. Increase the lift radius on the cranes to a very large value. This makes it so the cranes will never have to take time to lift, i.e. they will immediately travel horizontally when they need to get out of each others way.

Admittedly the crane collision pick option is somewhat simplistic, but given those changes it does work. For a more complex scenario I would suggest using process flow to handle it (we hope to someday make a process flow template for crane collision avoidance). You could have a resource whose "resources" are an array of numbers, each number representing a location range in the model. The cranes would get tasks and then allocate the numbers associated with getting to the location. Then there would need to be some logic for getting out of the way when you can't allocate what you need. It would definitely be more complicated to implement, but if that is the requirement, process flow would likely be the way to go.


· 11
5 |100000

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

Julio R avatar image Julio R commented ·

Thank you @anthony.johnson,

The problem with that solution is I have my origins and my destinations opposed in the layout, I´ve been trying to use agv too, but I need they only move only in an axis. I first though of cranes because I saw a similar answer here, but maybe AGVs is the way to go.

This is a more realistic model of what I need, but without collisions and the task executers crossing each other:


0 Likes 0 ·
example21.fsm (27.9 KiB)
anthony.johnson avatar image anthony.johnson ♦♦ Julio R commented ·

Again, I'd say don't use a travel network, either AGV or regular travel network. Those just complicate the issue because they have their own allocation schemes that might interfere with what you are trying to do. Another option is to use the asrsvehicle object. The asrs vehicle only travels on one axis. I've attached a model that uses the asrsvehicle object with the crane collision logic. collisionavoidingcranes.fsm

3 Likes 3 ·
Julio R avatar image Julio R anthony.johnson ♦♦ commented ·

Thanks a lot!!, that's exactly what I was looking for. I think now I understand the avoid collision option much better

0 Likes 0 ·
Show more comments
BargainMan avatar image BargainMan commented ·

Hey,bro,i want to know if u don't use Agent Systems .So how did you achieve collision avoidance for cranes.I downloaded your model and couldn't find a way to implement this idea. Can you help me solve it? Thank you and look forward to your reply.

0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦ BargainMan commented ·
If you use a process flow to implement the system Anthony described then it's probably easiest to push movement jobs to a list like the AGV templates use, and then construct the movement tasks from each pulled job and book linear ranges.
1 Like 1 ·
Joerg Vogel avatar image Joerg Vogel BargainMan commented ·

n agent system is a newer feature not available then!

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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