irPickTool -- radically different Pick/Drop positions?

  • Greetings programs hive mind! (how many people will get that reference, I wonder?)

    As someone new to PickTool, I have what feels like a stupid question, but I haven't found anything in the PT manual that addresses this clearly.

    How does PT keep Pick/Drop positions separate for different parts? My situation is thus: Line-tracking to pick parts from an infeed conveyor, dropping to a fixed station (no 'palletizing', so the FS is set up as a Tray with only one Layer and one Cell). Picking is carried out by PK_CV_PICK11, and the Drop is carried out by PK_FS_DROP11.

    Both of these programs use a single PR to store the taught Pick (PR57) and Drop (PR63) positions. But this robot is intended for general use for a lot of very different parts. For the worst-case example, one part will need to be picked with the end effector roughly 15deg off vertical, then dropped with a 90deg rotation in X or Y, with the end effector effectively horizontal.

    In the irPickTool Recipes, there's a page to set the "reference position" for picking from the conveyor, which appears to be individual for every Recipe. But there's nothing equivalent for the Drop program.


    1. If I TouchUp the Pick PR on the pendant, will I damage something fatally? Do I have to only TouchUp the Pick position from the irPickTool page?
    2. How do I keep the different Drop positions separate? I can only TouchUp the Drop PR on the pendant, so it would seem like, if I TouchUp for one part, I'll wreck the Drop positions for all the other parts.
      1. The Drop motion looks like this: L PR[63:Dp1 FS Ref Pos] 1000mm/sec CNT0 VOFFSET,VR[2] TB R[145]sec,CALL PKGROPEN("Gripper ID"=R[104:Gripper Id G1],"Start Zone"=R[107:Counter G1],"End Zone"=R[106:Gr EndZone G1]) ;
      2. My initial thought was that, if I let the PickTool program run normally to pick the part, then stop it before it gets to the Drop position, VR[2] will be loaded with some sort of offsets unique to that Recipe's Drop position. But the manual says that whenever the "Subtract VR from PR" prompt comes to, to answer "No". So I honestly don't understand how this works.
  • AD
  • For vision in general, At your reference position the offset should be 0. So no need to offset.

    If you are doing a touch-up at a position other than your reference you would say yes to subtract the voffset. Then it will back calculate the reference position.

    I say save a backup and test it.

  • Well, I finally got a chance to explicitly test this out. And PickTool appears to save the position for a Fixed Station, despite not having any explicit setting in the PickTool configuration page.

    So, this is what a Conveyor Station looks like in PickTool:

    The Set Ref Pos button opens a page that allows you to set and save the Pick (or Dop, if you're dropping to a Conveyor) explicitly. But for a Fixed Station (the Drop station, in my case), there is no such button. The only way (that I've found so far) to set the FS position is to manually TouchUp the PR in the Drop program (in my case, PR[63] in the program PK_FS_DROP11).

    What I've found is, when I TouchUp the PR with different PickTool Recipes active, and save the Recipe, the PR value gets saved into one of the XML files that defines the Recipe. And Activating a different Recipe loads the value from the XML file into the PR.

    In my case, for a Fixed Station, the Recipe saves the PR value to IRPKFSTN01.XML, like so:

    <ref_pos X="339.35" Y="-553.97" Z="-139.41" W="179.96" P=".02" R="-6.29" cfg="N U T, 0, 0, 0"></ref_pos>

    Running a comparison between this file in different Recipe directories (which you can obtain by using the Export Recipe action in the PickTool setup page) shows a different ref_pos value for each recipe, and on the pendant, I can see the value of PR[63] change when I manually Activate different Recipes from the setup page. And I've done run tests with the different parts to confirm that, yes, PickTool does keep the separate positions on a per-recipe basis.

    So, hopefully this will be useful to anyone who experiences the same confusion I did.

  • Addendum to my addendum:

    The main Recipe screen, where the list of all Recipes is displayed, has a button marked CONFIG. This leads to this page:

    And these checkboxes control which values are loaded from the Recipes when the Recipes are activated. On my robots, these boxes were all checked by default, which is why my different Drop positions for the different Recipes worked -- they were loaded from the XML files when each Recipe was activated. And that protected me (though I didn't know it at the time) from the potential problem I was worried about at the start of this thread.

    Looks like you can pull some interesting tricks with these selections, like copying Recipes between robots that have most, but not all, of the same settings. Like, two robots running the same parts, but have conveyors with different Encoder setups. You could un-check the Tracking Frame&Encoder option, Import the Recipe, then do just the Tracking Frame calibration for the imported recipe.

    Or... If you already had another Recipe in the robot with the correct Tracking Frame setup, perhaps you could un-check the box, Import the new Recipe, then Save the Recipe locally and then re-check the box?

    Alternately, on a multi-Recipe robot, set up your Tracking Frame once on your 1st Recipe, then un-check that box and just create or Import recipes forever. And if/when something in the Tracking Frame changed, leaving that box un-checked would allow you to "fix" the Tracking Frame setup once, instead of re-doing it individually for each Recipe.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now