METHOD FOR CALIBRATING A ROBOT TO A PALLET OR FEED CONVEYOR

DE102025100299A1Pending Publication Date: 2025-07-17FANUC ROBOTICS NORTH AMERICA INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
DE102025100299
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-01-03
Filing Date
2025-01-07
Publication Date
2025-07-17

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A system and method for calculating a robot frame of reference. The method includes placing a calibration object, such as a box, at a first location, positioning the robot relative to the center of the calibration object when the calibration object is at the first location, grasping the calibration object with the robot when the calibration object is at the first location, and acquiring a first position value indicative of the first location. The method further includes moving the calibration object from the first location to a second location using the robot, acquiring a second position value indicative of the second location, and calculating a third position value using the first and second position values.The method further includes calculating an intermediate frame using the first, second and third position values and calculating the reference frame using the intermediate frame and dimensions of the calibration object.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of the filing date of U.S. Provisional Patent Application No. 63 / 620,392, filed January 12, 2024, entitled “METHOD TO CALIBRATE A ROBOT TO A PALLET OR AN INFEED CONVEYOR.” STATE OF THE ARTTechnical field

[0002] This disclosure relates generally to a system and method for determining a calibration reference frame for a robot, and more particularly to a system and method for determining a calibration reference frame for a robot relative to a conveyor and a pallet, the method using a single calibration box and two sensed positions of the calibration box. Discussion of related technology

[0003] Robots perform a variety of industrial tasks, including pick-and-place operations, where the robot picks up objects from one location and moves them to another. For example, the robot might pick up boxes from a conveyor and place the boxes on a pallet, or it might pick up boxes from a pallet and place them on a conveyor. For the robot to successfully pick up a box, the robot typically needs to know the width, length, height, and orientation of the box it is picking up so that it grips the box in a stable location. In addition, the robot needs to know a frame of reference, or origin, on the conveyor and pallet on which the box will be positioned or relative to which it will be positioned when picked up. Example frame of reference locations include the front left or right corners of the conveyor or any of the four corners of the pallet.

[0004] Calculating the reference frame requires at least three known points in space. Common methods for calculating the reference frame include placing three crates at known locations on the pallet and conveyor, then moving the robot to the center of each crate to capture the robot position at those locations, and calculating the reference frame based on those points. However, requiring multiple crates to calculate the reference frame has obvious disadvantages in terms of complexity, time, and cost. SUMMARY OF THE INVENTION

[0005] The following discussion discloses and describes a system and method for calculating a frame of reference comprising x-, y-, and z-axes that enables a robot to pick up an object, such as a box. The method includes placing a calibration object, such as a box, at a first location, positioning the robot relative to the center of the calibration object when the calibration object is at the first location, grasping the calibration object with the robot when the calibration object is at the first location, and acquiring a first position value indicative of the first location. The method further includes moving the calibration object from the first location to a second location using the robot, acquiring a second position value indicative of the second location, and calculating a third position value using the first and second position values.The method further includes calculating an intermediate frame comprising x-, y-, and z-axes using the first, second, and third position values, and calculating the reference frame using the intermediate frame and dimensions of the calibration object.

[0006] Further features of the disclosure will become apparent from the following description and the appended claims in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is an illustration of a robotic system including a robot, an infeed conveyor, and a pallet; the Fig. 2 and Fig. 3 are representations of the Fig. 1, showing the robot positioned relative to a single calibration crate at two different locations on the infeed conveyor to identify two different crate positions used to calculate a reference frame on the conveyor; Fig. Figure 4 is a plan view of the infeed conveyor showing the calibration box at the two different locations on the conveyor; the Fig. 5 to 7 are representations of the Fig. 1, showing the robot positioned relative to a single calibration crate at three different locations on the pallet to identify three different crate positions used to calculate a reference frame on the pallet; and Fig. Figure 8 is an isometric view of the pallet showing the box at three different locations on the pallet. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0007] The following discussion of embodiments of the disclosure relating to a system and method for determining a calibration reference frame for a robot relative to a conveyor and pallet is merely exemplary in nature and is not intended to limit the invention or its applications or uses in any way. For example, the described system and method find particular application for determining a calibration reference frame for a robot that picks boxes. However, the system and method may have other applications.

[0008] Fig. 1 is an illustration of a robotic system 10 including a robot 12 with a gripper 14, such as suction cups, configured to pick up objects, such as crates, from an infeed conveyor 16 and place them on a pallet 18, or to pick up objects from the pallet 18 and place them on the conveyor 16. The system 10 is intended to represent any type of robotic system suitable for discussion herein, and the robot 12 may be any suitable robot for this purpose. The crates will be rectangular but may have a variety of different widths, lengths, and heights. The gripper 14 must grip the crate at or near its center to ensure stability when moved, and to do this, the robot 12 must know the position and orientation of the crate on the conveyor 16 and / or on the pallet 18.To determine the position and orientation of the crate on the conveyor 16 and on the pallet 18, an XYZ origin reference frame 20 relative to the conveyor 16 and an XYZ reference frame 22 relative to the pallet 18 must be calculated to provide a reference point relative to the crate as it is picked up from the conveyor 16 or the pallet 18. In this non-limiting embodiment, the reference frame 20 is calculated to be located at a right front corner of the conveyor 16, and the reference frame 22 is calculated to be located at a right front corner of the pallet 18. However, the reference frames 20 and 22 can be calculated to be located at other positions. The length of the crate is in the x-direction, the width of the crate is in the y-direction, and the height of the crate is in the z-direction.

[0009] The following is a detailed discussion of a method for calculating the origin reference frames 20 and 22 on the conveyor 16 and pallet 18, respectively, using only a single calibration crate and requiring only two calibration crate positions to be detected. A robot controller 24 controls the robot 12 and calculates the origin reference frames 20 and 22 as discussed herein. Upon completion of calibration, the location of the crate and the reference frame 20 or 22 relative to the robot 12 can be displayed on a 3D display 28 to confirm accuracy.

[0010] The Fig. 2 and Fig. 3 are illustrations of the robotic system 10 showing the robot 12 positioning a single calibration crate 26 at two different locations on the conveyor 16 to determine the crate positions used to calculate the reference frame 20 at the front corner of the conveyor 16. The system 10 is configured such that during the process of picking the crates from the conveyor, the crates are conveyed down the conveyor 16 such that one corner of the crate is aligned with the reference frame 20 when the crate reaches the pick-up location. The length, width, and height of the calibration crate 26 are stored in the controller 24. Fig. 2 shows the crate 26 at the pick-up point on the conveyor 16. The robot 12 is moved to a location relative to the crate 26 when the crate 26 is in this position such that the center of the gripper 14 is positioned relative to the center of the crate 26. The gripper 14 grips the crate 26, and this position of the gripper 14 is recorded in the controller 24 as point P1. The crate 26 is then moved by the robot 12 to a position upstream on the conveyor 16, as shown in Fig. 3, and this position of the gripper 14 is recorded in the controller 24 as point P2. In this process, the orientation or rotation of the gripper 14 on the z-axis relative to the box 26 does not need to be known.

[0011] Fig. 4 is a top view of the infeed conveyor 16 showing the calibration crate 26 at two different locations on the conveyor 16, with the crate 26 shown aligned with a left side of the conveyor 16, and with the reference frame, in this example, being calculated relative to the left front corner of the conveyor 16. A detected point P1 is shown at the center of the crate 26 at the first location, a detected point P2 is shown at the center of the crate 26 at the second location, and a calculated point P3 is shown in space relative thereto. The vector between the detected points P1 and P2 can be used to calculate point P3, discussed below, and a frame can be calculated using points P1, P2, and P3, for example, using the well-known FRAME algorithm as FRAME(P1, P2, P3).Since the calculation of the frame is referenced to the center of the box 26, once the frame has been calculated from the points P1, P2 and P3 using the FRAME algorithm, half the length of the box 26 is added to the x-axis of the frame and half the width of the box 26 is added to the y-axis of the frame to obtain the reference frame 20.

[0012] Point P3 can be calculated from the acquired points P1 and P2 as follows. A preliminary point P4 is calculated by adding 300 mm to point P1, and an intermediate frame, i.e., FRAME(P1, P2, P4), is calculated. The negative z-axis of the intermediate frame coincides with the positive y-axis of the reference frame 20. Using the intermediate frame, point P3 can be calculated using the following code: tmp_frm = FRAME(P1, P2, P4). P5 = (0, 0, 300, 0, 0, 0). P3 = tmp_frm: INV(P5). Then, set the WPR values of point P3 to equal those of point P1. If the robot 12 is calibrated using the box 26 positioned on the left side of the conveyor 16, as in Fig. 4, the origin used by the algorithm is rotated -90° around the z-axis. Specifically, instead of subtracting boxlen / 2, boxlen / 2 is added, and tmp_frm = FRAME (P1, P2, P3); P4 = (0, 0, 0, 0, 0, -90), and tmp_frm = tmp_frm : INV(P4).

[0013] If box 26 is in Fig. 4, then the orientation of the box 26 from the origin on the conveyor 16 or the pallet 18 is determined as O = OB:INV(-BoxLen / 2, -BoxWid / 2, -BoxHgt, 0, 0, 0), and if the box 26 has the orientation shown in the Fig. 2 and Fig. 3, then the orientation of the box 26 from the origin on the conveyor 16 or the pallet 18 is determined as O = OB:INV(-BoxWid / 2, -BoxLen / 2, -BoxHgt, 0, 0, 0). For the pallet 18, in addition to these calculations, the orientation of the pallet 18 (width to length or length to length) is also calculated based on the lengths of the vectors formed by the points P1P2 and the points P1P3, and the box length and box width are added accordingly.

[0014] If the conveyor 16 is tilted by an angle theta along the upstream / downstream direction (by p), then the frame calculated using the above algorithm will not have the correct value. To compensate for the tilt, point P3 is calculated by the algorithm as follows: X = P1.x - P2.x; Y = P1.Y - P2.Y; Z = P1.Z - P2.Z; C=X2+Y2+Z2; A=X2+Y2; and theta = acos(C / A).

[0015] In an alternative embodiment, the use of a calibration crate may not be necessary, and points P1 and P2 may be detected using only the position of gripper 14, without gripping a crate. In this embodiment, the dimensions of gripper 14 must be known. The intermediate frame is calculated relative to gripper 14, and reference frame 20 is calculated based on the dimensions of gripper 14.

[0016] In yet another alternative embodiment, if the orientation of the gripper 14 relative to the calibration box 26 is known, the reference frame 20 can be calculated by merely detecting the point P1 in the manner discussed above and calculating the reference frame 20 from this data.

[0017] The Fig. 5 through 7 are illustrations of the robot system 10, showing the robot 12 positioning a single calibration crate 30 at three different locations on the pallet 18 to determine and detect three different crate points P1, P2, and P3, which are used to calculate the reference frame 22 in the same manner discussed above. The length, width, and height of the calibration crate 30 are stored in the controller 24. Fig. 5 shows the crate 30 positioned at a front right corner of the pallet 18, which is the position of the origin or reference frame 22. The robot 12 is moved to a location relative to the crate 30 when the crate 30 is in this position such that the center of the gripper 14 is positioned relative to the center of the crate 30. The gripper 14 grips the crate 30, and this position of the gripper 14 is recorded in the controller 24 as point P1. The crate 30 is then moved by the robot 12 to a rear right corner of the pallet 18, as shown in Fig. 6, and this position of the gripper 14 is recorded in the controller 24 as point P2. The box 30 is then moved by the robot 12 to a left front corner of the pallet 18, as shown in Fig. 7, and this position of the gripper 14 is recorded in the controller 24 as point P3.

[0018] Fig. Figure 8 is an isometric view of pallet 18 showing crate 30 at three different locations on pallet 18. Note that frame of reference 22 can be determined by knowing only the detected position of points P1 and P2, or points P1 and P3, or points P2 and P3, with the unknown point being calculated in the manner discussed above. Note further that the inclination of pallet 18 can also be calculated in the manner discussed above to correct frame of reference 22 if necessary.

[0019] The algorithm wants to process the detected positions of the points P1, P2 and P3 for the locations of the box 30, which are in Fig.8. However, if the user changes the order in which the crate 30 is placed during the calibration process, for example, by placing the crate 30 second at the front left corner of the pallet 18 and third at the rear right corner of the pallet 18, the process is still able to correctly calculate the reference frame 22. This is because the reference frame 22 has a z-axis that points "up" with respect to the surface of the conveyor 16 or the pallet 18, it can be determined whether the points P2 and P3 are in the correct order for the FRAME calculation by taking the cross product of the two vectors P1P2 and P1P3. If the z-value of the cross product is positive, the frame should be FRAME(P1, P2, P3), and if the z-value of the cross product is negative, the frame should be FRAME(P1, P3, P2).

[0020] The foregoing discussion discloses and describes only exemplary embodiments of the present disclosure. One skilled in the art will readily appreciate, from this discussion and the accompanying drawings and claims, that various changes, modifications, and variations may be made therein without departing from the spirit and scope of the disclosure as defined by the following claims. QUOTES CONTAINED IN THE DESCRIPTION

[0000] This list of documents submitted by the applicant was generated automatically and is included solely for the convenience of the reader. This list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions. Cited patent literature

[0000] US 63 / 620,392

[0001]

Claims

[1] A method for calculating a reference frame comprising x, y and z axes that enables a robot to pick up an object, the method comprising: Placing a calibration object at a first location; Positioning the robot relative to a center of the calibration object when the calibration object is at the first location; Gripping the calibration object with the robot when the calibration object is at the first position; Capturing a first position value that identifies the first digit; Moving the calibration object from the first location to a second location using the robot; capturing a second position value identifying the second location; Calculating a third position value using the first and second position values; Calculating an intermediate frame comprising the x-, y-, and z-axes using the first, second, and third position values; and Calculate the reference frame using the intermediate frame and dimensions of the calibration object. [2] The method of claim 1, wherein calculating an intermediate frame comprises using a FRAME algorithm. [3] The method of claim 1, wherein calculating an intermediate frame comprises using a fourth position value. [4] The method of claim 1, wherein the first location is a pick-up location on a conveyor at which the robot picks up the pick-up object, the second location is a location upstream of the pick-up location on the conveyor, and the third position value is in space relative to the conveyor. [5] The method according to claim 4, wherein the calibration object is a calibration box and the dimensions are a width, a length and a height of the calibration box. [6] The method of claim 4, wherein the reference frame is located at a front right corner or a front left corner of the conveyor. [7] The method of claim 4, wherein calculating an intermediate frame comprises compensating for a tilt of the conveyor. [8] The method of claim 1, wherein the first location is a corner of a pallet, the second location is another corner of the pallet, and the third position value is at yet another corner of the pallet. [9] The method according to claim 8, wherein the calibration object is a calibration box and the dimensions are a width, a length and a height of the calibration box. [10] The method of claim 8, wherein calculating an intermediate frame comprises compensating for a tilt of the pallet. [11] The method of claim 1, further comprising displaying the reference frame and the calibration object relative to the robot on a 3D display. [12] A method for calculating a reference frame comprising x, y and z axes that enables a robot to pick up a box from a conveyor, the method comprising: Placing a calibration box at a pick-up location on the conveyor where the robot picks up the pick-up object; Positioning the robot relative to a center of the calibration box when the calibration box is located at the pickup location; Gripping the calibration box with the robot when the calibration box is at the pickup point; Recording a first position value that identifies the recording location; Moving the calibration box from the pick-up point to a position upstream of the pick-up point on the conveyor; detecting a second position value indicating the location upstream of the pick-up location on the conveyor; Detecting a third position value that is spatially related to the conveyor; Calculating an intermediate frame comprising the x-, y-, and z-axes using the first, second, and third position values; and Calculate the reference frame using the intermediate frame and a width, a length and a height of the calibration box. [13] The method of claim 12, wherein calculating an intermediate frame comprises using a FRAME algorithm. [14] The method of claim 12, wherein calculating an intermediate frame comprises compensating for a tilt of the conveyor. [15] The method of claim 12, wherein the reference frame is located at a front right corner or a front left corner of the conveyor. [16] A method for calculating a reference frame comprising x, y and z axes enabling a robot to pick up a box from a pallet, the pallet having four corners, the reference frame being located at one of the corners, the method comprising: Placing a calibration box at a first corner of the pallet; Positioning the robot relative to a center of the calibration box when the calibration box is located at the first corner; Gripping the calibration box with the robot when the calibration box is at the first corner; detecting a first position value indicating a location of the first corner; Moving the calibration box from the first corner to a second corner of the pallet using the robot; detecting a second position value indicating a location of the second corner; Moving the calibration box from the second corner to a third corner of the pallet using the robot; capturing a third position value indicating a location of the third corner; Calculating an intermediate frame comprising the x-, y-, and z-axes using the first, second, and third position values; and Calculate the reference frame using the intermediate frame and a width, a length and a height of the calibration box. [17] The method of claim 16, wherein calculating an intermediate frame comprises using a FRAME algorithm. [18] The method of claim 16, wherein calculating an intermediate frame comprises compensating for a tilt of the pallet. [19] A method for calculating a reference frame comprising x, y and z axes that enables a robot to pick up an object, the robot comprising a gripper with known dimensions, the method comprising: Positioning the gripper at a first location; Capturing a first position value that identifies the first digit; Moving the gripper from the first location to a second location; capturing a second position value identifying the second location; Calculating a third position value using the first and second position values; Calculating an intermediate frame comprising the x-, y-, and z-axes using the first, second, and third position values; and Calculate the reference frame using the intermediate frame and the gripper dimensions. [20] A method for calculating a reference frame comprising x, y and z axes that enables a robot to pick up a pickup object using a gripper, the gripper having a known orientation, the method comprising: Placing a calibration object at a first location; Positioning the robot relative to a center of the calibration object when the calibration object is at the first location; Gripping the calibration object with the robot when the calibration object is at the first position; Capturing a position value that identifies the first digit; Calculating an intermediate frame comprising x, y, and z axes using the first position value and the orientation of the gripper; and Calculate the reference frame using the intermediate frame.

Citation Information

Patent Citations

  • 63/620,392