Accurate way to define wobj

Hi,
Currently I am defining wobj at three corners of a plate by using 3 points method. 
This process is not precise enough since it is done and inspected by eyes.
Is there an accurate way to do so? 
Has someone use an edge finder tool which is used by many desktop CNC owner?
Finding the center of the circle provides the tip of the corner. 
Any better ideas?

Thanks.

Comments

  • lemster68
    lemster68 United States ✭✭✭
    Make sure that the robot has correct calibration offsets and that the alignment markers for axes zero position line up well.  Have the absolute best tcp that you can get.  If you avoid reorientation while teaching, that can help.  How large is this piece that you are teaching?
    Lee Justice
  • Judah
    Judah Israel
    TCP is well calibrated using a long and a short spikes. For each spike, I had 3 different calibration sets which I averaged out. By interpolating TCP of longer and shorter spikes, I calculate TCP of actual tool. (Similar idea is used with professional software available on the market).
    I am not teaching the robot using the pendent but a CAM package for offline programming. I validate/fix those output modules in RS. At the actual cell, I redefine the wobj using one of the spikes at three different corners. Here comes the issue. I want to find a better way to define it since I don't have any electronic probing system
  • Judah
    Judah Israel
    edited December 2021
    lemster68 said:
    Make sure that the robot has correct calibration offsets and that the alignment markers for axes zero position line up well. 
    Can you explain this part please?
  • lemster68
    lemster68 United States ✭✭✭
    Calibration offsets are entered into the system parameters.  There should be a sticker on the robot arm with the values.  Compare those with what is actually in the robot moc data.  You should check the joint zero position by using a moveAbsJ instruction in which the joint values are all zero, and NoEOffs optional argument.  The vernier marks should be close for EVERY axis.  If not, move the axis closer to matching up, and update rev counter for that axis.  Execute the MoveAbsJ again, and reverify marks.
    Lee Justice
  • Judah
    Judah Israel
    edited December 2021
    lemster68 said:
    Calibration offsets are entered into the system parameters.  There should be a sticker on the robot arm with the values.  Compare those with what is actually in the robot moc data.  You should check the joint zero position by using a moveAbsJ instruction in which the joint values are all zero, and NoEOffs optional argument.  The vernier marks should be close for EVERY axis.  If not, move the axis closer to matching up, and update rev counter for that axis.  Execute the MoveAbsJ again, and reverify marks.
    I understand you now. 
    Robot is quite new and calibration was done at the factory which was checked by the ABB technician at our facility.

    My concern is the definition of wobj. Position of the part w.r.t. zero position (first robtarget of wobj) is fixed. So, while defining the wobj, I am not accurate enough to verify by eyes and a piece of paper whether the spike is exactly at the corner or not.
  • lemster68
    lemster68 United States ✭✭✭
    Maybe the function DefAccFrame will be of some use to you.
    Lee Justice
  • graemepaulin
    graemepaulin New Zealand mod
    You do not need to use the corners to define the work object.
    It is simply two point on the X axis (second defines the positive X direction, and one on the Y ((which defines the positive Y direction also). The origin is define by placing the Y vector at 90° to the X vector (running through the two X points).
  • Judah
    Judah Israel
    You do not need to use the corners to define the work object.
    It is simply two point on the X axis (second defines the positive X direction, and one on the Y ((which defines the positive Y direction also). The origin is define by placing the Y vector at 90° to the X vector (running through the two X points).
    Sure, I agree. But the problem still stays as to how precisely get to those 3 points which were used during offline programming.
  • graemepaulin
    graemepaulin New Zealand mod
    Please share a snip of you RobotStudio station showing the points you have used to create the workobject. 
  • Judah
    Judah Israel
    Please share a snip of you RobotStudio station showing the points you have used to create the workobject. 
    Attached is the photo indicating the wobj targets 
    Thanks

  • graemepaulin
    graemepaulin New Zealand mod
    The edges of the plate seem to be running in the X and Y direction, so you can come in from the corners to teach the points - the origin of the work object will still end up in the same place.

    As you only have two planes to adjust using an edge instead of the corner it is generally easier....
  • Judah
    Judah Israel
    The edges of the plate seem to be running in the X and Y direction, so you can come in from the corners to teach the points - the origin of the work object will still end up in the same place.

    As you only have two planes to adjust using an edge instead of the corner it is generally easier....
    Thank you. Maybe this would be slightly easier.
    Do you have a better way to define tcp correctly?
    I used a shorter and a longer spike but still the accuracy is about 0.5mm
  • Newman
    Newman Sweden
    edited January 2
    Some years ago a service routine called "Wrist optimization" was released to improve reorientation around tcp for e.g. gluing applications. Maybe you can try that?
    -----------------
    David
    Swedish freelance ABB robot programmer
  • Judah
    Judah Israel
    Newman said:
    Some years ago a service routine called "Wrist optimization" was released to improve reorientation around tcp for e.g. gluing applications. Maybe you can try that?
    Thanks.
    Where can I get this routine?
  • Newman
    Newman Sweden
    @Judah
    If you have new robotware it should be included. Just use "Call routine" to find it.
    -----------------
    David
    Swedish freelance ABB robot programmer