Templates

Also checkout the new CB3 forum

UR Pattern Templates.

Pallet Pattern Square.

In this case a “Pattern” is chosen in the Advanced Structure Menu and in the Command screen a “Square” Pattern is chosen.

universal_robots_zacobria_templates_1

This will create a program entry for a Square (or Rectangular) Pallet Pattern which consists of the 4 corners of the Pattern and a program block for the action at each Point in the Square.

universal_robots_zacobria_templates_2

 

The Pattern Square the interval count defines the number of position between the corners. In this case the Square has 8 positions which are arranged 4 by 2.

This means the Square (or Rectangular) does not only consists of the 4 corners, but also the intermediate points in the Pattern.

And individual Speed for the Pattern can be defined.

universal_robots_zacobria_templates_3

 

universal_robots_zacobria_templates_4

 

universal_robots_zacobria_templates_5

 

In the “Pallet Sequence” a program can be created which are to be executed every time the robot reaches a point in the Pattern.

A PatternPoint_1 is like a Waypoint. In this example the robot has two waypoints and 2 actions and a wait to perform each time it reaches a one of the 8 positions in the Square Pattern.

universal_robots_zacobria_templates_6

Disclaimer: While the Zacobria Pte. Ltd. believes that information and guidance provided is correct, parties must rely upon their skill and judgement when making use of them. Zacobria Pte. Ltd. assumes no liability for loss or damage caused by error or omission, whether such an error or omission is the result of negligence or any other cause. Where reference is made to legislation it is not to be considered as legal advice. Any and all such liability is disclaimed.

If you need specific advice (for example, medical, legal, financial or risk management), please seek a professional who is licensed or knowledgeable in that area.

Author:
By Zacobria Lars Skovsgaard
Accredited Universal Robots support Centre and Forum.

Also check out the CB3 forum



40 thoughts on “Templates

  1. Jeremie P

    Hi

    Not sure if this is the right place to ask. (I am a novice in programming robots)

    I have three patterns (one list, two line) functions as subprogram in my program. I have no issue when i let the program run a few times. But when I turn the robot off and then back on I get the following error (when the program reaches the second pallet):

    “Value error: void reference: attempted to use an uninitialized variable

    Program node: Pattern_line
    Program node type: Node”

    If I open the advanced view (script) tab, it shows the error is at the following line:
    “…(coördinates), cnt_2/3.0)”

    Thank you in advance
    Jeremie P

    Reply
    1. zacopressadmin Post author

      Hi Jeremie

      Thanks for the question.

      It is possible to use “Installation variables” which can be created under the Installation tab – and such variable can be stored between program runs.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum



      Reply
  2. Ron Klein

    Is it possible to have a drop down list in the operator input instead of just a single input field. We have an application where we move different panels from one stack to a work center and then re-stack them. It is the same basic operation for different sizes of panels. Of course the positions for stacking are different. I would like to use just one program and have the operator choose the panel size from the drop down list so then I would just use different subroutine for the different sizes.

    Reply
    1. zacopressadmin Post author

      Hi Ron

      Thanks for the question.

      I am not aware of any possibilities of a drop down list in an operator input window.

      Maybe consider to insert text something like “Size 1- Press 1, Size 2 – Press 2, Size 3 – Press 3″ and so on. And then in the program check on 1, 2, 3 ….

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.


      Reply
  3. Ron Klein

    I am working on a new application for our UR10. We need to pick up some panels from a stack and place them on a table, slide them in a little. the operation is done and then we will stack them onto another stack. What I want to try to do is to bring the part up to a fence, let the tool free wheel so the part can square up against the edge and then use the force command to stop the movement. At that point I would release the part, after the operation is done re position the tool over the part to get the position accurate for placing on the outgoing stack. Can you help me understand the free command command I saw in the wizards. Mostly I just need to know how can I have only one joint be in the freewheeling position for part of the operation. Thanks for the help

    Reply
    1. zacopressadmin Post author

      I Ron

      Thanks for the question.

      I am not sure if you mean the script command “freedrive_mode()” or if you mean “Force” mode ? – because I do not find any “Free” function in the Wizard menu.

      1. freedrive_mode()

      It is possible to put the robot in free drive mode during program execution with the script commands “freedrive_mode()” and “end_freedrive_mode()” to end the free drive. During the time the robot is in free drive mode – the robot release the joints and can be moved arround by hand. (Notice if something heavy is on the robot it might start falling downwards). And this command is not for individual joints, but relases all the joints at the same time.

      2. Force function.

      The force function can be used with a script command – or it can be configured in the “Force” in the Wizard menu – Some hints for the Force function can be found at this link

      http://www.zacobria.com/universal-robots-zacobria-forum-hints-tips-how-to/force-feedback-function/

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.


      Reply
      1. Ron Klein

        You are correct that it is within the force wizard that the freedrive function was I saw. So there is no way to just release the brake one one joint? So then will need to look for a different solution for what I want to try and accomplish.

        Reply
  4. Ron Klein

    We have a UR10 that we use as a drill tending robot. We have successfully been using it to destack and stack parts that are 3×5 inch, the incoming and outgoing stacks are 7 rows, 10 columns and 30 layers high. The robot picks the parts, drills them and re-stacks them. We recently trying to add a second drill. However after coping the first program to the second and changing the pallet parameters, we went from 7 to 4 rows, still 10 columns and 25 layers high, the parts are a different thickness, the robot will pick the parts fine, but when going to place them on the outgoing stack the arm seems to go to random spots and crashes into the pallet. We have tried changing the pallet setup to a square instead of a box and we get the same result. We have reset the pallet points several times and readjusted our approach points and the same type of result. Why does the robot not know where to go when re-stacking the outgoing pallet? When we check the 8 pallet points, they seem to be right where we want them.

    Reply
    1. zacopressadmin Post author

      Hi Ron

      Thanks for the question.

      Have you monitored the counters during program run to see if they follow the expected value – and maybe compared to the previous program ?

      Can you list the two programs before and after change ?

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Reply
  5. Michael

    Good day, I have a question about paletizing. Is it possible to UR to remember the palet position when I stop robot? For example, when pallet resolution is 4×5 and I stop robot after 3rd piece, I want UR to resume to 4th point of pallet. Is it possible in editor or just write script program? Thanks.

    Reply
    1. zacopressadmin Post author

      Hi Michael

      Thank for your question.

      Position 4 after position 3 seems normal sequence, but do I understand you correct that in your example maybe after position 3 the robot go out of the pallet sequence for some reason – maybe a change in a condition – and then when you return to the pallet routine then you wish to resume at postion 4 ?

      If so – a pallet routine has a loop counter which is a variable typical called “cnt_1″ that is increase by one for each run in the pallet routine. It is possible to set this “cnt_1″ variable to a desired value with an assignment. The current value of the variable “cnt_1″ can be seen in the “Variables” tab.

      There is also the option for “Remember traversal position between program runs” in the Pattern setting and if ticked then the sequence is remember if the program is stopped and restarted.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum

      Reply
  6. Kepa

    Hello I want to make 2 pallet at the same program, in diferente placement , whith one condition for going to pallet A and other to pallet B, i can go filling both pallets simultaneously, but the problema is to controle the pallet the system créate a counter cont_1 for both pallets and if you fill the first position of pallet A the counter cont_1 is 1, and if the next piece is for the Pallet B now cont_1 is 2 and go to de second position of the pallet B , DON´T FILL the first position if you fill one position in pallet A you cannot fill the pallet B.
    How i can get 2 diferent counters for each pallet?
    thanks

    Reply
    1. zacopressadmin Post author

      Hi Kepa

      Thanks for your question.

      If understand your question correct then you might need several counters that is counted for each occurrence.

      You might need an overall counter that counts all the items and count that one up for each move to pallet regardless of A or B (if you need an overall counter).

      Then you might need a counter for each pallet count_A and count_B and count the one up according to the pallet served.

      Then you might need a position counter for each pallet position – for example count_A_position and count_B_position and count the one up that is being used.

      In this way you have 2 different counter for each pallet count_A and count_A_position for pallet A – and then count_B and count_B_position for pallet B.

      You can create counters by using a variable created with Assignment and then each time the occurrence for an event happens then count one up by for example count_A_position := count_A_position + 1.

      And the reset you can make a statement like count_A_position := 0

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Support Forum.

      Reply
  7. Rune

    Hello how is it possible to palleting from a pallet ? :) is it possible to use wizard or do i need to preprograme every move?

    Best regards

    Reply
    1. zacopressadmin Post author

      Hi Rune

      Thanks for your question.

      Yes you can use the Pallet wizard. Then teach the corners and configure how many rows and colloumns you have on the pallet – then the robot will calculate the positions accordingly.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Support Forum.

      Reply
  8. Magnus

    Hey!
    I have created a program with palletazing, but when the last layer is finished, the UR starts from beginning again which means he collide. I want the UR to stop after it finished the first pallet and then starts on a new pallet next to it, how do i get this to work?

    Reply
    1. zacopressadmin Post author

      Hi Magnus

      Thanks for your question.

      You might consider to create your program with 2 palletizing routines – in a way so when the first palletizing routine is finished then another routine is executed that has waypoints that moves the robot free of the pallet and then move to the second palletizing routines.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Distributor.

      Reply
      1. Magnus

        Hey again! (Thanks for fast reply!)
        That was my intention, but when i do so, the UR goes to one position in each pallet in every “loop”. I want it to finish the first pallet before it starts the other, how can i do that?

        When i do a program with only one palletfunction, the pallet just loops after it done all layers and start over, where to place a “Halt/stop” commando to make it stop after it finished all layers in the pallet/box?

        Reply
          1. Lehna

            Hello,
            I have the same problem, I create a simple pallet routine but I can´t stopp it after the first squence. Can you write me a small program please?

            Thank you.
            H. Lehna

  9. Kyle Shahan

    is it possible to use a different approach position for different rows in a box? I am packing a case with my ur5, and an having issue with the approach in the top rows

    Reply
    1. zacopressadmin Post author

      Hi Kyle

      Thanks for your question.

      You should be able to create new waypoints and then incorporate some logic e.g. counter so each waypoint is associated to the desired row.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Distributor.

      Reply
  10. Nicha

    Hello,

    Is it possible to change the waypoints under pattern command to into variable waypoints? I’m working on two similar pallet routines, but the corner points (a1st_corner, a2nd_corner…) in the two routines are different. What I’m trying to do is have the program ask for a part number at the beginning and call a subprogram that has all variable positions store in it. Then, the robot movement would be based on the defined variable positions from the subroutine. I’m able to do this for normal waypoints, but I couldn’t get it to work for waypoints under pattern command.

    Best,
    Nicha

    Reply
    1. zacopressadmin Post author

      Hi Nicha

      Thanks for your question.

      You should be able to create new waypoints under a pattern which might be variable.

      Or maybe consider to have two pattern routines – each with different corner waypoints.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Distributor.

      Reply
  11. Robbert

    Hello Lars,

    Is it possible to use a search function inside a pallet function? I need to destack bottles that have different sizes. The thing is when i try it it keeps returning to the first position to search.

    Greetings,
    Robbert

    Reply
    1. zacopressadmin Post author

      Hi Robbert

      Are the bottles stacked on top of each other ? – or how can I understand “destack” in your question ?

      Regards
      Zacobria

      Reply
  12. Marko

    Dear admin.

    My college just purchased UR5 and I’m currently using UR5 on my project. Project consists of drilling and main problem, so far, is finding the right TCP. What’s the best way to configure TCP? We can’t use default x,y,z parameters because of complicated design of the tool itself and it’s hard to measure it precisely. Also, it’s not in the same axis as the last robot axis. Also, biggest matter of all is trying to drill in the tool axis. How to move UR5 along the axis defined by the TCP of the drill point and the point of the ‘drill start’ hole. Our idea is to define matrix and tipe it in in the ‘Script code’. Is that possible? Any help or link or what ever would be of a great assistance because we’re stuck.

    Thank you a lot in advance,
    Kind regards,
    Marko

    Reply
    1. zacopressadmin Post author

      Hi Marko

      Thanks for your question.

      Try and look into the Feature function found under Installation tab.

      With Feature you can define a new reference – Point – Line – and Plane.

      And then you can select that with the MoveL command – see below image.

      And also check out this description

      http://www.zacobria.com/universal-robots-zacobria-forum-hints-tips-how-to/features-screen/

      universal robots zacobria feature plane

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Distributor.

      Reply
  13. Nathaniel Wiebe

    I had a similar issue while running a destacking program. What I had failed to do was define the tcp of the tool and then call for the tool in those moves as the feature. I have a tool that is at odd angle to the head of the robot and it makes no difference as long as you define it’s position accurately.

    Reply
    1. zacopressadmin Post author

      Hi Nathaniel

      Thank you very much for sharing.

      Best Regards

      Lars
      Zacobria
      Universal-Robots distributor
      Singapore

      Reply
  14. Jake

    Hello Lars,

    Thanks for all the help you and your website have provided. I think i figured out the problem, when I was setting the four corners the robot tool head was not level which was causing the pallet function to do its math wrong but it seems to be working good now.

    Thanks,
    Jake

    Reply
  15. Jake

    I am currently setting up a UR5 to take parts out of a pallet that is rectangular 15 x 23 and put them into a Lathe and repeat. During the pallet sequence the robot does fine for the first 4 rows but after that it seems to be off track and progressively gets worst as it continues. Do you have any ideas on why it does this and how I can possibly correct this problem?

    Thanks,
    Jake

    Reply
    1. zacopressadmin Post author

      Hi Jake

      Thanks for your questions.

      When you set the pallet corners – did you set the “outer corners”.

      How many rows and columns do you have ?

      Do the rows and columns physical have the same accurate interval in between them ?

      Does the robot have a firm mounting ?

      I need more information’s, but it could be that the waypoints need to be adjusted.

      Regards
      Lars

      Reply
      1. Jake

        Yes I used the outside 4 corners, the pallet is 23 pieces by 15, the interval between each piece is the same and it is exact for each piece, the robot and pallet are fixed to the same base so the orientation can not change between them. I was wondering if when i set the corner points if the robot is not perfectly perpendicular if this could cause the robot calculations to become off set?

        Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>