Issues with Palletizing Boxes with Varying Heights on UR10 CB3

Hi everyone,

I have a UR10 CB3 robot that palletizes cardboard boxes weighing around 5 kg. The boxes have a height tolerance of about 10-15 mm, and I’m facing issues during the palletizing process.

When I create the drop points on the pallet using smaller boxes, the robot collides when larger boxes are introduced due to the difference in height. On the other hand, if I set the points for the larger boxes, the smaller boxes are dropped from a height, causing them to fall improperly. This issue worsens as we go up each layer on the pallet, with a total of 5 layers.

I’ve tried dropping the box with a vertical offset and stopping upon detecting a force, but it hasn’t worked perfectly. Has anyone faced a similar problem and found a solution?

Thanks in advance for any help!

Hello Xavier,

I guess there’s a reason you don’t make two palletizing programs - one for each box?

If above is the case, then I would advise you to get used to using variables instead. It will give you many more options to work with when doing palletizing. :slight_smile:
Use counters for X, Y and Z directions and then multiply them with the box length, width and height to achieve new positions.
It might sound a little complicated if you have not worked in variables before, but I think that’s the right way to go.
You should read up on position variables (p[x,y,z,rx,ry,rz]) and waypoint variables.

I was able to fix the same issue using a home-made seek using force, it works well on the CB3 but not at all on our e-series UR10’s. You can try something like what I did, see below. It doesn’t move super-fast, but it works for our 20 seconds/box cycle time very easily.

    zPlaceForce=z+0.004  #z=calculated place position
    forceset=30   # Force set point
    sleep(0.02)
    zero_ftsensor()
    if(force()<forceset):
      while force()<forceset:
        zPlaceForce=zPlaceForce-0.003
        PlaceForceSense= (p[x,y,zPlaceForce,RxPlace,RyPlace,RzPlace]) 
        movel(PlaceForceSense, 0.1,0.125,0,0)
        sleep(0.02)
        zero_ftsensor()
      end
    end

Let me know how it turns out!