Fanuc 2D IR Vision

  • I have a project that is running 9 different part types that are all similar they just have different diameter sizes and thickness. The parts are coming down a conveyor and the camera will snap a picture and send the coordinates to the robot. What i am trying to accomplish is having one "Pick" PR and then use a offset to adjust for the part thickness. I know i have to set up each part type in the vision set up but am i able to use one PR and offset the tool to adjust for the part thickness (Z). I am trying make this simple for the end user so if anything happens they will only have to touch up one point.

    Thanks in advanced for any input.

  • It is possible but may be more difficult to dial in each part. 2D vision offsets are relative to a reference position and the centerpoint of the GPM target. So if you setup all the parts centered in the same exact spot and have the GPM target perfectly centered then it will work.


    Personally, I think it would be easier to setup a pick PR for each part.

  • I recommend placing a backstop on the conveyor for the part to slide into a pocket. It’s acts like a fake fixture. There is too much variation on a conveyor. With said, if you don’t create a simple stop for the part to slide into, you will always be managing and adjusting the offsets and will have to add in some redundancies to prevent the gripper from pushing the part through the conveyor.

  • At this point in the project i don't have an option to add a backstop. HawkME... i haven't worked with IR vision in many many years. Is it possible to set up the camera to find each part (There is 18 now) and call up different camera programs depending on which part is being currently ran?

  • Are all the parts circular in nature? You may be able to get away with just teaching a circle as your gpm, and opening up some of the parameters so it finds anything circular. I did this in a foundry with a ton of various castings.

    Check out the Fanuc position converter I wrote here! Now open source!

    Check out my example Fanuc Ethernet/IP Explicit Messaging program here!

  • Lets say you have bolts and nuts to pick up.


    This is for a variable names of your parts

    NUT1, NUT2........, BLT1, BLT2........

    R[1]=numeric value


    R[1]=5

    R[2]=7

    SR[1]=NUT

    SR[2]=BOLT

    SR[3]=SR[1]+R1 SR[3]=NUT5

    SR[4]=SR[2]+R2 SR[4]=BOLT7


    This is a fixed name for your parts. Using SR data

    SR[1]=LOWNUT

    SR[2]=BRASSNUT

    SR[3]=LOCKNUT

    SR[4]=STEELBOLT

    SR[5]=WOODBOLT

    R[9:ProgramName]=0


    If running part is STEELBOLT, then, somehow load a 4 into R[9], You will use it later


    This is how to call the programs

    R[9:ProgramName]=5

    VISION RUN_FIND SR[R[9:ProgramName]]

    VISION GET_OFFSET SR[1] VR[1]

    Retired but still helping

Advertising from our partners