question

Del B3 avatar image
0 Likes"
Del B3 asked Jeanette F commented

How to make robots pick, exchange, deposit & then move ?

Hello Flexsim Forum,


Im looking to simulate a robot in a work cell, however this robot has end of arm tooling that allows it to exchange finished goods with to be processed goods by using two different sides of its tooling. I've attached a basic drawing to picture what the tooling looks like. When making movements, the robot will pick an unprocessed item, move to the next process, exchange tooling to pick the finished good, rotate tooling again, then place the original unprocessed item. Physically the pick & deposit location in the processes are the same position.

Items arrive in the model from 2 different sources & must go through the following steps (burn off, cooling, dial table press) before being placed on a balancing lane where other work not in the scope of this model will occur.

However the robot functions as the transport of items within this cell but uses priority logic to decide what moves to make instead of always using sequential movements. I will need the flexibility to change the priority based on controls team feedback to optimize the movements within the cell.

For now the main priorities are as follows (Dial table, burn, cooling). In the instance of the dial table, once the dial table process finishes, the robot should grab a finished cooled item, grab the dial table part, place the cooled part, then move the finished dial table part to the balance line.


How do I simulate the robot pick//place behavior & include priorities for it's movements?

Pick Exchange Deposit Robot Model.fsm


FlexSim 18.1.2
flexsim 18.1.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.

1 Answer

Jeanette F avatar image
0 Likes"
Jeanette F answered Jeanette F commented

Hello @Del B3,

The priorities can be set on each object and the preemption set to preempt only. The higher the priority number the sooner it will be accomplished. I set the Dial table to 3, Burn to 2, and Cooling to 1. The Preempt makes it to where the robot will be interrupted to do a task of a higher priority and will resume the lower priority task afterward.

To have the robot pick in the specific order you describe above a process flow was necessary. In the process flow I created, the token represents the Dial Table processor in a way. It cycles through the process flow checking on certain circumstances to make sure it has the robot execute the correct sequence of events. Please note that for every Create TS activity there is a preempt priority set for each that corresponds to what I said before.

I did make the assumption that you would want the Dial Table unloaded even if their was not an item done cooling to load into the Dial Table.

pick-exchange-deposit-robot-model_3.fsm


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

Del B3 avatar image Del B3 commented ·

Thank you @Jeanette F for the help & updated model! In regards to how priorities can be changed, I noticed that changing the 3D object priority effects the robot task executor. However, if I wanted to say run experiments in order to see the effect of changing the priority, is there a way to assign a variable to the priority for each of the 3D objects?

If not, is the better way to go about this expanding the process flow logic by pushing all task sequences to a list & then executing after filtering on the list?

0 Likes 0 ·
Jeanette F avatar image Jeanette F ♦♦ Del B3 commented ·

Hello @Del B3,

I don't know of a way to assign variables for the priorities within the objects. I know you could do it for the Create TS priority. I would create a Global Table that the Create TS reference for their priorities. The Experimenter can then change the values in the Table. If you were to go this route, then you would probably want to make the Burn table a process flow as well so you can change its priority.

I think your suggestion of putting the task sequences into a list sounds like a great idea.

0 Likes 0 ·
1619478577219.png (24.6 KiB)
1619478591655.png (5.7 KiB)