Question regarding depalletizing. when I set my layers to depalletize it always tries to remove the layer first before unloading parts, if I deselect the top layer then it does not off load the final layer. This is a pick and place application where I am unloading parts from a fixture (basket) then moving this basket “layer” out of the way to be stacked else where in the cell by the depalletizing process with layers.
How do I get it to not pick up the first layer until after it unloads the parts but still pick up the last layer?
Another question: Scenario: Cobot is depalletizing my parts, it goes to next position but there is no part present. Is there a way to say “no part detected move to next location on the pattern”???
Can’t help with the first issue but the 2nd one is doable, at least with Robotiq grippers that I use.
There is a Grip Check feature that you can use to detect if the gripper has something in it. I use this and then generate a popup saying something like No Part Detected or something.
Thank you for the help! I have used the Robotiq grippers in the past and this function was available however I am currently using a Schunk Pneumatic gripper to be able to handle my specific work piece needs.
I am able to still do some sort of grip check through sensors in the gripper or tooling force check at the work piece so that is no issue. My concerns becomes after in this case “if grip check fails” how do I have it skip the rest of the routine from there and simply go to the next point in the grid? This is going to be for a lights out situation so I am avoiding having the machine down waiting on a pop up to say “OK”, even if a pop up comes up what happens next? Is there an IF f(x) I could write for this or something easier in the program like Loop? ie; grip check NOK, Acknowledge, skip position, move to next position (or home?) and continue to next part location.
1/ If you want to remove separator from the bottom of the pallet only, you can use “Action after palletizing” sequence.
2/ If your gripper provides feedback on the workpiece is either detected or not, you can build your logic with that. For example you can place your deppalet command in the Loop one time command and play with the variable as i show in the below picture:
Hope it helps
Thank you Kaha! I will give this a try today! quick question, when it loops will it go back to the failed location in the pallet program or move to the next, I assume I would need to select the “remember last location” in the pallet wizard.
Thank you everyone on the UR forum for help thus far, my depalletizing project is coming along nicely. I have now reached another critical point in the process where I need some guidance.
Scenario: When meeting full production a pallet of 10 baskets (these are my layers) are to be loaded into the process. (I have written the program for the full stack) sometimes production is unable to keep up thus creating smaller stacks, lets say 6 baskets, and will need to be pushed into the cell.
Question: is it possible to set a Pop Up or command before running the program to change the number of layers in the program. For example something like an HMI where the operator can simply select 6 or 10 or however many baskets there are without opening a different program each time? I can automate around this using Pallet lifts and sensors however the idea to me of having the UR is being able to accommodate such tasks.
Thanks in advance for any help.
You can use the Assignment node (Advanced tree) to set variable values manually.
So if you have pallet layers set in a variable you can do it.
Add an Assignment node then select the variable that has the layers value then select A whole number. When you run it it will pop up the box below where you can set the number you need.
Thank you for the advice, however I am slightly lost. I set my program up using the depalletizing template, does this set layers as a variable automatically? if so how would I go about doing this step. I will mess with it more in the morning to try and figure it out but I do not recall the layers “separators” as they are called in the program being a variable?
I only use one layer on my pallets but it should be the same for multiple:
In my Layers node I have Layer_1 named Grid_Pattern_1. I believe that is the variable name that would be used.
In the Assignment node you select that variable and set the input as “A whole number”.
When the program reaches that Assignment node it will pop up the dialog asking for a number.
Hope this helps.
Hello everyone, I have finally got to the next step of my depalletizing program and have been able to set my layers up with a user interface for the operator to select the number of baskets (layers) and the program runs smoothly.
The next challenge. I am using Schunk Pneumatic Grippers and have installed two prox. sensors on them with digital inputs set to acknowledge the gear is pick up or not. My issue comes that for example there is no gear to pick up, action fails, how do I write the program to say go to next position in the pallet to look for another gear. See my attached image, where the pop up is I want an action to go back to approach and skip to next position.
You could put the whole depalletizing routine into a loop that runs as long as digital_in = false (no item is picked up). Even if there is no item the loop local item counter variable will count up making the robot move to the next possible pick up location until a part is found.