Discussion

Left ArrowBack to discussions page
JstewartJstewart Posts: 32 Apprentice
Im just trying to learn different how to program my UR5 different ways and one way i thought of was having 2 end effectors. Now the robot is currently in a lab and i dont have any grippers or vacuums on it, but what i am using is just a plate bolted to the robot with 2- 4" bolts coming out of it.
 
So basically what im trying to do is, I have 4 nuts on the table i want to pick up a nut spin the head around and pick up the other one , then move to another location set the nut down (if it were putting it into a machine) wait a couple seconds then go back pick up (finished) nut then rotate the head and place other nut and continue on with the program. Ive seen videos out on the internet showing this process but Im having a tough time figuring out on how to do so. I started the program with a pallet wizard but im not sure how to go about rotating the head to pick up part 2 with the second bolt.

Comments

  • Nicholas_FrancoeurNicholas_Francoeur Posts: 93 Handy
    Hello @Jstewart, I suggest you have a look at the application builder from UR. When building a machine tending application, you can select a dual gripper option. At the end of the process, you'll be able to download a .urp file that can be tested out.

    Let us know if you need further help.
    Nicholas Francoeur
    Co-Founder | Vanguard Robotics
    e:   [email protected]
    w:  vanguard-robotics.com
  • JstewartJstewart Posts: 32 Apprentice
  • JstewartJstewart Posts: 32 Apprentice
  • JstewartJstewart Posts: 32 Apprentice
    @Nicholas_Francoeur  So i went to UR's website and set up an application but im having trouble getting the 2 TCP's set up correctly. The TCP's are set up as followed:
    The issue i am having is that when T_1 sets a new part "in machine" it will go back and grab a new part just fine. Whenever part finished signal goes true, T_2 will enter machine but its not in the same position as T_1 was in. I can also add pictures of my "tooling" if needed
  • Nicholas_FrancoeurNicholas_Francoeur Posts: 93 Handy
    @Jstewart, I usually try to teach all my waypoints with the correct TCP active. Note that in your case it would not even be required to have different TCPs that are set. All your Moves could be relative to the flange of the robot.

    What was your approach to set the TCPs? Did you use the wizard from that same tab for the position and orientation?

    Also when setting TCPs, you should also enter the right center of gravity.

    Can you share the robot program you ended up with?
    Nicholas Francoeur
    Co-Founder | Vanguard Robotics
    e:   [email protected]
    w:  vanguard-robotics.com
  • JstewartJstewart Posts: 32 Apprentice
    @Nicholas_Francoeur  I tried using both the wizard and also by using a tape measure. Ill attach photos of my " tooling" 

    For the CoG i wasnt real worried about that since im only doing this for testing/learning. I know it would probably be a good idea to get into the habit of doing it now.

    Here is the robot program:

     Program
       BeforeStart
         MoveJ
           Wait_Machine
         Status
           Part_to_load≔'New part in Tool 1?'
           Part_unloaded≔'Finished part in Tool 2?'
           Part_in_Machine≔'Part in Machine?'
           Infeed_Ready≔ True 
           Outfeed_Ready≔ True 
         Initialization
           Set Load_Complete=Off
           Set Unload_Complete=Off
           If Part_to_load≟ False 
             Call Tool_1_Off
           If Part_unloaded≟ False 
             Call Tool_2_Off
       Robot Program
         If Part_to_load≟ False  and Part_unloaded≟ False 
           If Infeed_Ready≟ True 
             INFEED - Pattern
               Set
               Pallet
                 Pattern: Square
                   Corner1_1
                   Corner2_1
                   Corner3_1
                   Corner4_1
                 PalletSequence
                   Approach_1
                   PatternPoint_1
                   Call Tool_1_On
                   Exit_1
                 AfterEnd
                   Infeed_Ready≔ False 
               MoveL
                 Wait_Machine
             Part_to_load≔ True 
         If Part_to_load≟ True  and Part_in_Machine≟ False 
           If Request_Load≟ True 
             LOAD - TCP_1
               MoveJ
                 Load_Approach
               MoveL
                 Load_Position
                 Call Holding_On
                 Call Tool_1_Off
                 Load_Approach
               MoveJ
                 Wait_Machine
               Set Load_Complete=On
               Wait Request_Load=LO
               Set Load_Complete=Off
             Part_to_load≔ False 
             Part_in_Machine≔ True 
         If Part_in_Machine≟ True  and Part_unloaded≟ False 
           If Request_Unload≟ True 
             UNLOAD - TCP_2
               MoveJ
                 Load_Approach
               MoveL
                 Load_Position
                 Call Tool_2_On
                 Call Holding_Off
                 Load_Approach
                 If Part_to_load≟ False 
                   MoveJ
                     Wait_Machine
               Set Unload_Complete=On
               Wait Request_Unload=LO
               Set Unload_Complete=Off
             Part_in_Machine≔ False 
             Part_unloaded≔ True 
         If Part_to_load≟ False  and Part_unloaded≟ True 
           If Outfeed_Ready≟ True 
             OUTFEED - Pattern
               MoveJ
                 Mach_to_Outfeed
               Set
               Pallet
                 Pattern: Square
                   Corner1_2
                   Corner2_2
                   Corner3_2
                   Corner4_2
                 PalletSequence
                   Approach_2
                   PatternPoint_2
                   Call Tool_2_Off
                   Exit_2
                 AfterEnd
                   Outfeed_Ready≔ False 
               MoveJ
                 Mach_to_Outfeed
               If Infeed_Ready≟ False 
                 MoveJ
                   Wait_Machine
             Part_unloaded≔ False 
         Wait: 0.01
     

  • JstewartJstewart Posts: 32 Apprentice
    And here is my EOA tooling 

  • Nicholas_FrancoeurNicholas_Francoeur Posts: 93 Handy
    The urp file would be easier to look into.

    For the TCPs there should be no orientation.
    Nicholas Francoeur
    Co-Founder | Vanguard Robotics
    e:   [email protected]
    w:  vanguard-robotics.com
  • JstewartJstewart Posts: 32 Apprentice
    oh sorry heres the urp:


  • Nicholas_FrancoeurNicholas_Francoeur Posts: 93 Handy
    @Jstewart, I've tried a similar program on my side and everything works as expected.

    I do not have your installation file, but it seems that the TCPs used in your "Move" nodes are not called the same as what you have showed me on the pictures. Can you confirm this is correct on your side?
    Nicholas Francoeur
    Co-Founder | Vanguard Robotics
    e:   [email protected]
    w:  vanguard-robotics.com
  • JstewartJstewart Posts: 32 Apprentice
    @Nicholas_Francoeur The file i sent you was the file i received from UR. I can send you the program i just created and then tell me what you think. The program i created is working the way i wanted it to. 
  • Nicholas_FrancoeurNicholas_Francoeur Posts: 93 Handy
    @Jstewart, everything should be working properly in this one. What is the position you would be expecting and what is the position you are getting?
    Nicholas Francoeur
    Co-Founder | Vanguard Robotics
    e:   [email protected]
    w:  vanguard-robotics.com
  • JstewartJstewart Posts: 32 Apprentice
    @Nicholas_Francoeur  Yes everything is working correctly whenever i set the orientation on the second tool. So if you look at the photo i sent with the robot, i needed the active tool to be on the bottom. Whenever i would run the program without the orientation it would move to the correct tool but i needed it to rotate so that tool would be on the bottom. It was just keeping wrist three in the same orientation and not rotating. Does that make sense?
  • Nicholas_FrancoeurNicholas_Francoeur Posts: 93 Handy
    @Jstewart, yes that makes sense! Everything is working now then?
    Nicholas Francoeur
    Co-Founder | Vanguard Robotics
    e:   [email protected]
    w:  vanguard-robotics.com
  • JstewartJstewart Posts: 32 Apprentice
    @Nicholas_Francoeur Yes! Thanks for the help!
Sign In or Register to comment.
Left ArrowBack to discussions page