question

Gabriel Morgante avatar image
1 Like"
Gabriel Morgante asked Joerg Vogel commented

Crane collision logic with Agent System

Hello guys.

I've been trying to get the new agent system to work with cranes for a while but no success so far. I hope someone can help me solve this issue.

What I need is basically what used to work before the update, which is: If one crane with higher priority comes to certain distance the crane with less priority goes away. Including if it is performing a travel task. Using a priority label I could change the priority value on load/unload tasks and it worked great.

But now they removed the collision menu and the new Agent System doesn't seem to have been made with cranes in mind. At first sight it looks simples to just use social behavior and create a repel rule but it doesn't work on cranes, it makes the whole structure of the crane move away, not the moving part.

So I've been trying to make it work with Proximity Detection, sending a message to the crane that needs to move and with that message make it go away by process flow. It seems promising but I'm struggling with the preemption of the travel task.

i've attached a model with one of my tryouts. I would really appreciate any help on the matter.

Thanks!

Crane col agent system.fsm

FlexSim 21.0.2
flexsim 21.0.2agent modulecollision avoidancecranescollision problem
· 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.

Afonso Teberga avatar image
4 Likes"
Afonso Teberga answered Felix Möhlmann commented

Hi @Gabriel Morgante, as Jörg suggested, you can get and adjust the crane collision logic available in previous versions of FlexSim. I believe the easiest and fastest solution at the moment would be to use this logic directly as a trigger in the agent proximity system. So you don't need to define a preemption logic using processflow.

The following model uses this strategy. If it is applicable to your case, you can copy the proximity trigger.

crane collision with agent system.fsm

You may change the following parameters, which are mostly the same as those from the previous version.

The only additional parameter is collisionradius. While the agent system proximity radius defines a detection sphere (or cylinder), the collision radius defines the minimum desired distance between cranes within the proximity radius and along the chosen axis. For your case, with that logic, I think the proximity radius should be approx. half the distance between both crane rails (~15m) and the collision radius = 5m (considering the value you've already chosen). The crane will move apart if the distance along the chosen axis is less than the collision radius. Clearly, it is not a completely efficient solution in terms of logic processing, but it should work. Perhaps other colleagues can suggest alternatives.

It is important to follow the instructions provided at how to avoid colision in cranes.

I also changed your model according to this suggestion:

crane-col-agent-system.fsm

Sucesso em seu modelo!


· 10
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
0 Likes"
Joerg Vogel answered Gabriel Morgante commented

Probably you can start with this thread robot collision. A crane is special construct, because the Taskexecuter is just the hook. But a collision occurs between bridges first. Maybe you are able to place the involved objects to be a part of the drawsurrogate node, which represent the bridge node. Those components are objects nodes in a tree structure of the drawsurrogate node.

· 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.