DoF - a Robotiq Community
Warning sign
The Dof Community was shut down in June 2023. This is a read-only archive.
If you have questions about Robotiq products please reach our support team.
Catherine_Bernier

Did you know that our grippers have an object detection feature built in? For some, this feature might sound useless but in some applications, this feature will simplify a lot the programming and even save your robotic cell from serious damages.

In this video, you see that the robot is looking for a part before completing its program. As soon as an object is picked up, a pop-up ask the operator  that the part was detected and ask to continue. The pop-up was used in this case but upon detection, any action can be performed.

https://youtu.be/ksjIqzzHgl8

Here is the program used:
Robot Program
 Gripper Open
 MoveJ
  Waypoint_1
  Waypoint_2
  Waypoint_3
  Gripper Close
  Waypoint_4
 detected:=0
 Loop detected≟0
  if rq_is_object_detected()
     Popup 
     detected:=1
    Else
     Gripper Open
     Waypoint_3
     Gripper Close
     Waypoint_4
   MoveJ
    Waypoint_5
    Waypoint_6
    Gripper Open
    Waypoint_1
Script Functions
(...)
First, you can load the file gripper_tutorial.urp included in the gripper URcaps which contains all the Script Functions available to control the gripper. However, you can start with an empty program if you recall the name of the functions that you also find
Here. For the object detection, you need to use the line rq_is_object_detected(). You can either call it as a script or include it in an if statement as I did in this example. By using the line in an if statement, you are now able to perform an action if the gripper grabbed a part and another if it didn't.

In this case, the gripper keeps reaching to grab the part until it actually does. When it happens a popup is generated saying: "Object detected, continue?" Then, by pressing "Ok", the robot continues the program.

This can help to send a notification or to stop the program if no part are detected.

Any application you can see for this feature?

See here, How to configure pop-ups with Universal Robot Polyscope.

abeachy_HG24

@C_ROEHl I have found a way that has been very successful for me. I create a variable called i_correct_part, I will then place inside of the loop the pallet wizard. The loop will continue to execute as long as the i_correct_part variable does not equal 1. Whenever the robot finds the part I set that variable equal to 1 and the robot goes on to the next step in the process. If the robot does not find a part it will continue on to your next location in the sequence.
Here is an example of one of my pallet wizards.

Robot Program
     51100 Nest(folder)
       Loop i_correct_part≠1
         Pallet
           Pattern: List
             S_1
             S_2
             S_3
             S_4
             S_5
             S_6
             S_7
             S_8
             S_9
             S_10
             S_11
             S_12
           PalletSequence
             Pounce_2
             Gripper Move65% (1)
             Pick_2
             Gripper Close (1)
             RQ_pos≔rq_current_pos()
             If RQ_pos≥193 and RQ_pos≤195
               Correct part
                 Picked_1
                 i_correct_part≔1
             ElseIf RQ_pos≥228 and RQ_pos≤230
               Missing part
                 Up_2
                 Gripper Move65% (1)
                 51100 Status
                   Set i_no_or_bad_par=i_no_or_bad_par+1
                   Set C_M_part_51100=C_M_part_51100+1
                   If i_no_or_bad_par≥2
                     Popup
             Else
               Wrong part
                 Up_3
                 MoveL
                   Trvl_to_SPB
                   In_SPB
                   Out_of_SPB
                   Trvl_back
                   51100 Status
                     Set i_no_or_bad_par=i_no_or_bad_par+1
                     Set C_W_part_51100=C_W_part_51100+1
                     If i_no_or_bad_par≥2
                       Popup
In this pallet wizard I used the list feature of the pallet wizard. In order for the robot to exit the loop the if statement must be met and then the variable is assigned 1 and the loop is complete. The else-if and the else are for missing and wrong parts. If it finds a wrong part or the part is incorrect, it will try twice before alerting the operator with a popup.

It is important to note that before you enter this loop to always be sure the variable you are using gets assigned a value other than 1. If it doesn't the loop will never execute.

I hope this helps!