Application frame vs grid calibration frame in IR Vision

  • Hello,


    Can someone explain the difference between the Application frame and the Grid calibration frame in the camera calibration set up. We have a part we are struggling to set up with IR vision. We are rotating and shifting the part X/Y. The offset seems to pick up the X/Y shift but does not pick up the rotation. We set up a UF (4) for the application frame and the grid calibration frame. Our part is programmed in UF (3) which we are using as the offset frame in the vision process set up. We are having no luck. Any help would be greatly appreciated.


    Thanks,


    Craig

  • AD
  • Hello csd,


    First of all make sure that you are using an original grid for calibration from Fanuc.
    Then make sure that your teach-pin used for touching the points (app frame and vision frame) is taught ok.
    Also if you can please keep the same user frame for both app frame and vision, and use that frame in your vision program.


    Maybe Found position will work better for you then Vision Offset.

  • csd
    Hard to explain with written words but.
    1) Imagine your kitchen counter and your sink. The robot suppose to pick up Tupperware floating in your sink when is half full and obviuously you can put your grid there because is no an stable surface. So you do you the grid calibration in the counter.
    I hope you have good imagination !!!!
    your counter is your calibration frame and the surface of the water is your application grid. In this example both (grid and application) are horizontal but they dont have to be
    2) For you info and for the purpose of information, we at work use UF#9 for grid and UF#1 for application. You need 2, not 3 like you are doing
    3) On the GPM, Do you have Orientation ticked ?
    4) found position and Vision offset are different applications


    What controller are use using ? if it is R30iB, you should use autocalibration
    What is your application ?

    somar

  • Thanks for the quick responses.


    Fabian,
    I do have a good imagination. That explanation definitely helps. I am assuming in that scenario the offset frame in the vision process setup should be the same as the application frame? I just can't get that relationship clear in my simple mind. To answer your questions; yes we do have orientation checked and set it to +/- 25 degrees which is way more than we will ever see for rotation. We do have a R30iB. We will try the autocalibration. The application is a welding application on a round part with up 108 round tubes welded into it (a tube sheet). We are positioning to the tube locations with PR offsets. All is well with that portion of the programming and operation. As soon as we load a part that is (purposely) out of position the vision does not seem to pick up rotation, the x/y shift appears to be good. It is crucial that our postion is almost perfect. We have found a half of a millimeter out of postion results in a bad weld.

  • :wallbash: :wallbash: :wallbash:
    The icon represent me EVERY TIME I worked with vision. I'm human and I keep repeating the same mistake every time, well it's getting better now, lol
    This is what I learned.
    BEFORE Autocalibration, You were using your TCP to define your GRID frame. Can you imagine how many error are you introducing doing that ? Right there, on your main setup you are not being perfect, then dont expect the vision to be perfect.


    AFTER Autocalibration. You let the robot find were the grid is. Trust me, It's going to be much better that then one you did and not only that, now , you can blame Fanuc for the mistake.


    You are working within one mm, mmmmhhh ? maybe your grid selection is bad. I will use the 5 mm grid BUT that also depends on your focal distance How far away are you taking the picture from ?

    somar

  • FYI for using this process, here is a program that has comments to explain what to do for a common vision setup with a robot-mounted camera.
    The two Application Frames are a pallet position on the left and the right, UFRAME[5] and UFRAME[6], thus those are the Application Frame numbers used for the two camera calibrations. Only one cal is needed for a single Application Frame.
    The position to do the calibration can be anywhere in the robot's envelope where a Fanuc cal grid can be placed. I used the floor behind and to the left of the robot. It need only be open enough to do the specified tilts (45 and 30 degree), and the tilts can be modified some if you don't have quite enough room.
    The start position should be the same distance above the cal grid as the inspection distance in the application.
    If space is a problem, the cal grid could be mounted on the wall, even. The relative position of grid to camera is what is important with teaching the calibrations. The orientation to wall or floor is irrelevant. The cal grid should have some locating features or mount if you want to closely duplicate the calibration of the camera a second time (such as after replacing a dead camera).


    This is meant to be run in manual mode, and then manually perform the indicated tasks at each pause:


    1: ;
    : !Vision Frame, Tool, Cal Helper ;
    : ;
    : ;
    2: --eg:This Program Contains the START Point for Setting the Camera
    : TCP & Camera Calibration Points for a 2-plane setup ;
    : ;
    : --eg:UTOOL & UFRAME [11] will be used as the cam tool & frame. ;
    : --eg:due to limitations, UTOOL & UFRAME[9] will be overwritten. ;
    : ;
    : --eg: Goal: Move to pre-taught points over Fanuc grid cal(30mm)
    : & perform the Automatic Grid Frame Set utility in
    : Menu:iRVision:Vision Utilities,
    : & also update the Camera calibrations. ;
    : ;
    : !This includes: ;
    : --eg:updating the the camera UTOOL[11], ;
    : --eg:updating the vision offset UFRAME[11], ;
    : --eg:update the 2 Cam Cals: Sides 1(lft)& 2(rt) @ 2 planes each. ;
    : ;
    : --eg:there are 2 planes used for each cal, 1 @ the inspect dist. ;
    : --eg:the 2nd plane for the cam cals is 125mm closer to cal grid. ;
    : ;
    : !Procedure: ;
    : --eg:1st move to position above Fanuc grid cal plate (30mm) ;
    : --eg:(The position should be about 1263mm in the laser sensor.) ;
    : --eg:(same pos might read 1264~1266 over a black spot. It's ok.)
    : --eg:with the settings described below, run Automatic Grid Frame Set
    : utility. ;
    : --eg:The utility will populate UTOOL and UFRAME [9]. ;
    : ;
    : --eg:UTOOL & UFRAME [9] will be copied to UTOOL & UFRAME [11]. ;
    : ;
    : --eg:2nd, move to position above Fanuc grid cal plate (30mm) ;
    : --eg:manually teach 1st plane of the CAMCAL_S1_LFT camera cal. ;
    : --eg:continue & move to position 125mm closer to the grid (lower). ;
    : --eg:manually teach 2nd plane of the CAMCAL_S1_LFT camera cal. ;
    : ;
    : --eg:move to original position above Fanuc grid cal plate. ;
    : --eg:manually teach 1st plane of the CAMCAL_S2_RT camera cal. ;
    : --eg:continue & move to position 125mm closer to the grid (lower). ;
    : --eg:manually teach 2nd plane of the CAMCAL_S2_RT camera cal. ;
    : ;
    : ;
    : --eg:See: R-30iB Controller iRVision 2D Vision Application Op Manual
    : (MAROB2DVS11121E Rev B) (B-83304EN-1-02) for more information. ;
    : ;
    3: !-------------------------------- ;
    4: ;
    5: ;
    7: UFRAME_NUM=0 ;
    8: UTOOL_NUM=0 ;
    : --eg: Move to the high or 'Far' position: ;
    9:J PR[84:CamCalibPos] 100% FINE ;
    6: RO[7:OFF:Camera Light]=ON ;
    10: PAUSE ;
    11: ;
    : !Manual Task ;
    : --eg: Perform Automatic Grid Frame Set with following parameters: ;
    : !- Robot Group Num: 1 ;
    : !- Set Uframe or Utool: UFRAME ;
    : !- User Frame Number to set: 9 ;
    : !- Camera User Tool Number: 9 ;
    : !- Camera Name: ROBOTCAM ;
    : !- Exposure Time: 33 ms ;
    : !- Grid Spacing: 30 mm ;
    : !- Start Position: (Press ;
    : ! shift-RECORD [F4] to record ;
    : ! the current position here) ;
    : !- R Angle Limit: 45 deg ;
    : !- W Angle Limit: 30 deg ;
    : !- P Angle Limit: 30 deg ;
    : !- Z Move Dist Limit: 100 mm ;
    : ;
    : --eg: Will have to abort this task to run the utility.
    : Come back to here and continue: ;
    12: !-------------------------------- ;
    : !First-Continue from here: ;
    : !Copy UFRAME & UTOOL [9] to [11] ;
    : PR[70:VIS UFRAME]=UFRAME[9] ;
    : UFRAME[11]=PR[70:VIS UFRAME] ;
    : PR[71:VIS UTOOL]=UTOOL[9] ;
    : UTOOL[11]=PR[71:VIS UTOOL] ;
    : ;
    13: UFRAME_NUM=0 ;
    14: UTOOL_NUM=0 ;
    15:J PR[84:CamCalibPos] 100% FINE ;
    16: PAUSE ;
    : ;
    : !Manual Task ;
    : --eg: Perform Cam Calib setup with following parameters: ;
    : !- Edit or Create CAMCAL_S1_LFT ;
    : !- Robot: This Robot, Group: 1 ;
    : !- Application Frame: 5 ;
    : !- Camera: ROBOTCAM ;
    : !- Exposure Time: 33 ms ;
    : !- Grid Spacing: 30 mm ;
    : !- Number of Planes: 2 ;
    : !- Robot-held Cal. Grid: No ;
    : !- Cal. Grid Frame: 11 ;
    17: ;
    18: --eg: 1st, set Fixture Position Status, click ON 'Set.' ;
    19: --eg: then find 1st Plane, click ON 'Find,' then continue
    : this program from here. ;
    13: UFRAME_NUM=0 ;
    14: UTOOL_NUM=0 ;
    : !Move closer by 125mm. ;
    15:J PR[84:CamCalibPos] 100% FINE Tool_Offset,PR[87:Z125] ;
    16: PAUSE ;
    : ;
    : !Manual Task ;
    19: --eg: Find 2nd Plane, click ON 'Find,' then Save CAMCAL_S1_LFT,
    : and continue this program from here. S1 Cam cal is done. ;
    20: ;
    13: UFRAME_NUM=0 ;
    14: UTOOL_NUM=0 ;
    15:J PR[84:CamCalibPos] 100% FINE ;
    16: PAUSE ;
    : ;
    : !Manual Task ;
    : --eg: Perform Cam Calib setup with following parameters: ;
    : !- Edit or Create CAMCAL_S2_RT ;
    : !- Robot: This Robot, Group: 1 ;
    : !- Application Frame: 6 ;
    : !- Camera: ROBOTCAM ;
    : !- Exposure Time: 33 ms ;
    : !- Grid Spacing: 30 mm ;
    : !- Number of Planes: 2 ;
    : !- Robot-held Cal. Grid: No ;
    : !- Cal. Grid Frame: 11 ;
    17: ;
    18: --eg: 1st, set Fixture Position Status, click ON 'Set.' ;
    19: --eg: then find 1st Plane, click ON 'Find,' then continue
    : this program from here. ;
    13: UFRAME_NUM=0 ;
    14: UTOOL_NUM=0 ;
    : !Move closer by 125mm. ;
    15:J PR[84:CamCalibPos] 100% FINE Tool_Offset,PR[87:Z125] ;
    16: PAUSE ;
    : ;
    : !Manual Task ;
    19: --eg: Find 2nd Plane, click ON 'Find,' then Save CAMCAL_S2_RT,
    : and continue this program from here. S2 Cam cal is done. ;
    20: ;
    21: RO[7:OFF:Camera Light]=OFF ;

    - Jay

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