Discussion

Left ArrowBack to discussions page
Hi pros,
we have been asked quite often to figure out which part model has been picked based on the size of the part. So far we came across parts that were at least 10mm difference from one another. Looking at the position feedback from the gripper worked well. However I am curious to know what is the smallest size difference we can measure using the gripper. 

I looked a bit in the gripper's documentation I my conclusion was that the gripper seems to split its stroke into 255 steps. 
So for the 85mm stroke of the 2F85 I would have 85mm/255 steps that would give me 0.33mm/step. Is this achievable?

Comments

  • carlosjosergcarlosjoserg Posts: 37Tactile Sensor Beta Testers Handy
    My guess: achievable, could be; reliable, could be not.

    You have to consider that there is a small mechanic play in the joints as well.

    Other sources could be used to make classification a bit more robust, like weight or visual features, if you have the sensory system of course.
  • Etienne_SamsonEtienne_Samson Posts: 418Beta Tester Beetle, Wrist Camera URCap 1.3.0, Vacuum Beta tester Handy
    @Sebastien you can indeed evaluate the precision using the 256 encoder counts. Note that we start around 20 and end-up around 230 when doing a parallel grip. That would give you around 210 counts for your 85 mm stroke and that would be 0.4 mm.

    @carlosjoserg the mechanical play does not affect the "repatability" of that position feedback since that play will always be taken away when you close onto an object. Basicly when you grip something, all the play will be taken away by that grip. What it does affect is "precision", especially over time. For example if you know you can pick at 12 mm shaft at position 176, over time (millions cycles) the wear of the transmission will give you more play and at some point you might end-up picking at 177.

    One last thing to understand with the difference between repeatability and precision, a single Gripper will have a quite high repeatability aloing you precise measurement of size. This does not transpose perfectly to another Gripper. With the 12mm shaft example, if you be picked at 176 on one Gripper and at 178 with another one. Consider this when you program.

    Finaly, you could ask @abeachy_HG24 we he achieved, they were working a lot on position feedback with the Grippers on their assembly line!

    Hope that helps,
    Etienne Samson
    Technical Support Director
    +1 418-380-2788 ext. 207
    [email protected]
  • abeachy_HG24abeachy_HG24 Posts: 79 Handy
    I have seen a lot of success with using the positional feedback to check if it is the correct part, and if the part is correct size. Two of our thinnest washers measure .065 inches thick and .033 inches thick. I have no problems at all with using the position of the gripper for the .065 inch washer, but with the .033 inch washer the gripper would sometimes close at (not sure on the exact numbers) 220 with the washer and then the next time it would be at 221 with the washer. So that is not reliable. If you are only picking small parts and need more counts, one option would be when activating the grippers to not allow them to open fully. This would restrict how far you can open the grippers, but it would then use the 210 counts over a much smaller range so it can be more accurate. 
  • SebastienSebastien Posts: 219 Handy
    Hi guys,
    so we have been working on this for a proof of concept for a client. The key was that the operator should be able to 'calibrate' the object detection when he is changing production batch that run objects of different sizes. So in the before start section of the program we have a small iteration that takes the operator through a calibration procedure that will end up measuring the width of the object upon closing of the gripper on it. Here is the main part of the code with some explanations. Note that the tolerances that I have in my sample program was 10 gripper encoder steps. I can probably reduce this if I use aluminum tips instead of rubber tips.

     BeforeStart
         do_grip_cal≔'Do you want to perform gripper object detection calibration?' (Asking operator if he wants to calibrate)
         gripperPosition≔0
         tolerance≔10 (this is the tolerance on the gripper encoder steps we want to measure at)
         If do_grip_cal≟ True 
           Gripper Open
           calib_pos_val≔0
           Loop 3 times (I loop it three times just to see repeatability in the resulting values)
             Gripper Open
             Popup (Popup saying place the object between the tips)
             Gripper Close
             Wait: 3.0 (to make sure grip is firm and allow some time for the operator to release the object such that the robot holds it on its own)
             calib_pos_val≔(calib_pos_val+rq_current_pos())/(2) 
             Popup (object will be release such that object does not drop if no table under it)
           Gripper Open
           i_calib_pos_val≔calib_pos_val (I save the new calibration in an Installation Variable)
           Popup (Are you ready to produce?)
         Else
           calib_pos_val≔i_calib_pos_val (If I don't calibrate I use the same calibration value as before!)
       Robot Program

    Attached is the robot program and here is the video!


  • SebastienSebastien Posts: 219 Handy
    Hi pros, I noticed a small typo in the calibration part of my program. Here is the new code attached and described below. The error is on the calculation of the calibration value when doing the loop for the first time that should not be divided by 2.
             Wait: 3.0
             gripperPosition≔rq_current_pos()
             If calib_pos_val≟0
               calib_pos_val≔rq_current_pos()
             Else
               calib_pos_val≔(calib_pos_val+rq_current_pos())/(2)
             Popup
           Gripper Open
Sign In or Register to comment.
Left ArrowBack to discussions page