Method of calibrating robot relative to pallet or infeed conveyor
A method using a single calibration box and two recorded positions simplifies the calculation of reference coordinate systems for robots, addressing inefficiencies in existing multi-box methods.
Patent Information
- Application Number
- JP2025003822
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-01-03
- Filing Date
- 2025-01-10
- Publication Date
- 2025-07-28
AI Technical Summary
Existing methods for calculating a reference coordinate system for robots require multiple boxes, leading to complexity, time, and cost inefficiencies.
A method using a single calibration box and recording two positions to calculate an intermediate coordinate system, followed by determining a reference coordinate system using the box dimensions, reduces the need for multiple boxes.
Simplifies the calculation of reference coordinate systems for robots, reducing complexity and cost while maintaining accuracy.
Smart Images

Figure 2025110390000001_ABST
Abstract
Description
Technical Field
[0001] Cross - reference to Related Applications This application claims the benefit of the filing date of U.S. Provisional Patent Application No. 63 / 620,392, entitled "Method of Calibrating a Robot with Respect to a Pallet or Infeed Conveyor", filed on January 12, 2024.
[0002] This disclosure generally relates to systems and methods for determining a calibration reference coordinate system for a robot, and more particularly, to systems and methods for determining a calibration reference coordinate system for a robot with respect to a conveyor and a pallet, where the method utilizes a single calibration box and two recorded positions of the calibration box.
Background Art
[0003] Robots perform a number of commercial tasks, including pick - and - place operations, where the robot picks up an object and moves it from one position to another. For example, a robot can pick up boxes from a conveyor and place them on a pallet, or pick up boxes from a pallet and place them on the conveyor. In order for a robot to effectively pick up a box, typically the robot needs to know the width, length, height, and orientation of the box it is picking up so as to grip the box in a stable position. Further, the robot needs to know the reference coordinate system or origin on the conveyor and pallet where the box will be positioned or associated when being picked up. Exemplary positions of the reference coordinate system include the front - left or front - right corner of the conveyor or one of the four corners of the pallet.
Summary of the Invention
Problems to be Solved by the Invention
[0004] To calculate a reference coordinate system, at least three known spatial points are required. Known methods for calculating a reference coordinate system include placing three boxes at known positions on a pallet and a conveyor, and then moving a robot to the center of each box to record the position of the robot at these positions, where the reference coordinate system is calculated from these points. However, the need for a large number of boxes to calculate the reference coordinate system has obvious drawbacks in terms of complexity, time, and cost.
Means for Solving the Problem
[0005] In the following discussion, a system and method for calculating a reference coordinate system including an X-axis, a Y-axis, and a Z-axis that enable a robot to pick up an object, such as a box, are disclosed and described. The method includes placing a calibration object, such as a box, at a first position, positioning the robot with respect to the center of the calibration object when the calibration object is at the first position, gripping the calibration object by the robot when the calibration object is at the first position, and recording a value of the first position that identifies the first position. The method further includes moving the calibration object from the first position to a second position using the robot, recording a value of the second position that identifies the second position, and calculating a value of a third position using the values of the first and second positions. The method also includes calculating an intermediate coordinate system including the X-axis, the Y-axis, and the Z-axis using the values of the first, second, and third positions and calculating a reference coordinate system using the intermediate coordinate system and the dimensions of the calibration object.
[0006] Additional features of the present disclosure will become apparent from the following specification and the appended claims in conjunction with the accompanying drawings.
Brief Description of the Drawings
[0007]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
DETAILED DESCRIPTION OF THE INVENTION
[0008] The following discussion of embodiments of the present disclosure directed to systems and methods for determining a calibration reference coordinate system for a robot relative to a conveyor and a pallet is, in nature, merely an example and is not intended to limit the invention or its field of use or application in any way. For example, the systems and methods described are specifically applied to determining a calibration reference coordinate system for a robot that picks up boxes. However, other applications of this system and method may be possible.
[0009] FIG. 1 is an example of a robot system 10 that includes a robot 12 having a gripper 14, such as a suction cup, configured to pick up objects, such as boxes, from an input 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. System 10 is intended to represent any type of robot system applicable for the discussion herein, where robot 12 can be any robot suitable for the purpose. The boxes are rectangular but may have various different widths, lengths, and heights. Gripper 14 needs to grip the box at or near its center so that the box remains stable during movement. For this purpose, robot 12 needs to know the position and orientation of the box on conveyor 16 and / or pallet 18. To determine the position and orientation of the box on conveyor 16 and pallet 18, it is necessary to calculate an X - Y - Z origin reference coordinate system 20 for conveyor 16 and an X - Y - Z reference coordinate system 22 for pallet 18 to provide a reference point for the box when it is picked up from conveyor 16 or pallet 18. In this non - limiting embodiment, reference coordinate system 20 is calculated as being at the right - front corner of conveyor 16, and reference coordinate system 22 is calculated as being at the right - front corner of pallet 18. However, it is possible to calculate reference coordinate systems 20 and 22 as being at other positions. The length of the box is in the X - direction, the width of the box is in the Y - direction, and the height of the box is in the Z - direction.
[0010] The following is a detailed discussion of the technique for calculating the origin reference coordinate systems 20 and 22 on the conveyor 16 and the pallet 18 respectively, where only a single calibration box is used and only two positions of the calibration box need to be recorded. The robot controller 24 controls the robot 12 and calculates the origin reference coordinate systems 20 and 22 discussed in this specification. Once the calibration is complete, the position of the box relative to the robot 12 and the reference coordinate system 20 or 22 can be viewed on the 3D display unit 28 to confirm the accuracy.
[0011] Figures 2 and 3 are examples of the robot system 10 showing the robot 12 positioning a single calibration box 26 at two different positions on the conveyor 16 to identify two different box positions used to calculate the reference coordinate system 20 at the front corner of the conveyor 16. The system 10 is configured such that during the operation of picking up the box from the conveyor, the corner of the box is aligned with the reference coordinate system 20 when the box reaches the picking position, and the box is loaded and replenished on the conveyor 16. The length, width, and height of the calibration box 26 are stored in the controller 24. Figure 2 shows the box 26 at the picking position on the conveyor 16. The robot 12 is moved to one position relative to the box 26 when the box 26 is in this position, and thus the center of the gripper 14 is positioned relative to the center of the box 26. The gripper 14 grips the box 26, and this position of the gripper 14 is recorded in the controller 24 as point P1. Next, the box 26 is moved by the robot 12 to the upstream position on the conveyor 16 shown in Figure 3, and that position of the gripper 14 is recorded in the controller 24 as point P2. In this process, it is not necessary to know the posture or rotation of the gripper 14 on the Z-axis relative to the box 26.
[0012] Figure 4 is a top view of the feeding conveyor 16 showing the calibration box 26 at two different positions on the conveyor 16, where the box 26 is shown in alignment with the left side of the conveyor 16, and the reference coordinate system is calculated with respect to the front left corner of the conveyor 16 in this example. The recorded point P1 is shown at the center of the box 26 at the first position, the recorded point P2 is shown at the center of the box 26 at the second position, and the calculated point P3 is shown spatially relative to them. Using the vector between the recorded points P1 and P2, the point P3 discussed below can be calculated, and for example, a known FRAME algorithm such as FRAME(P1,P2,P3) can be used to calculate the coordinate system using points P1, P2, and P3. Since the calculation of the coordinate system is with respect to the center of the box 26, once the coordinate system is calculated from points P1, P2, and P3 using the FRAME algorithm, half of the length of the box 26 is added to the X-axis of the coordinate system, and half of the width of the box 26 is added to the Y-axis of the coordinate system to obtain the reference coordinate system 20.
[0013] The point P3 can be calculated from the recorded points P1 and P2 as follows. A temporary point P4 is calculated by adding 300 mm to point P1, and an intermediate coordinate system, i.e., FRAME(P1,P2,P4), is calculated. The negative Z-axis of the intermediate coordinate system coincides with the positive Y-axis of the reference coordinate system 20. Using the intermediate coordinate system, the point P3 is calculated using the following code: tmp_frm = FRAME(P1,P2,P4).P5=(0,0,300,0,0,0).P3=tmp_frm:INV(P5). Next, the WPR value of point P3 is set to be the same as that of point P1. When the robot 12 is calibrated using the box 26 positioned on the left side of the conveyor 16 as shown in Figure 4, the origin used by the algorithm is rotated by -90° around the Z-axis. In particular, 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).
[0014] When the posture of the box 26 is as shown in Fig. 4, the posture of the box 26 is determined by O = OB:INV(-BoxLen / 2, -BoxWid / 2, -BoxHgt, 0, 0, 0) with the origin on the conveyor 16 or the pallet 18. When the posture of the box 26 is as shown in Figs. 2 and 3, the posture of the box 26 is determined by O = OB:INV(-BoxWid / 2, -BoxLen / 2, -BoxHgt, 0, 0, 0) with the origin on the conveyor 16 or the pallet 18. For the pallet 18, in addition to these calculations, based on the lengths of the vectors formed by the points P1P2 and the points P1P3, the posture of the pallet 18 (width × length or length × length) is also calculated in the same way, and thus the length and width of the box are added.
[0015] When the conveyor 16 is inclined by an angle theta (about p) along the upstream / downstream direction, the coordinate system calculated by the above algorithm will not have correct values. To compensate for the inclination, the point P3 is calculated by the following algorithm.
Equation
[0016] In one variant embodiment, it may not be necessary to use a calibration box. In this case, the points P1 and P2 can be recorded only by the position of the gripper 14 without gripping the box. In this embodiment, the dimensions of the gripper 14 need to be known. The intermediate coordinate system is calculated with respect to the gripper 14, and the reference coordinate system 20 is calculated based on the dimensions of the gripper 14.
[0017] In yet another variant form, when the posture of the gripper 14 with respect to the calibration box 26 is known, the reference coordinate system 20 can be calculated by only recording the point P1 by the above method and calculating the reference coordinate system 20 from the data.
[0018] Figures 5 through 7 are examples of a robot system 10 that shows a robot 12 positioning a single calibration box 30 at three different positions on a pallet 18 to identify and record three different box points P1, P2, and P3 used to calculate a reference coordinate system 22 in the same manner as described above. The length, width, and height of the calibration box 30 are stored in a control device 24. Figure 5 shows the box 30 positioned at the front right corner of the pallet 18, which is the origin or the position of the reference coordinate system 22. The robot 12 is moved to one position relative to the box 30 when the box 30 is in this position, and thus the center of the gripper 14 is positioned relative to the center of the box 30. The gripper 14 grips the box 30, and this position of the gripper 14 is recorded in the control device 24 as point P1. Next, the box 30 is moved by the robot 12 to the rear right corner of the pallet 18 shown in Figure 6, and that position of the gripper 14 is recorded in the control device 24 as point P2. Next, the box 30 is moved by the robot 12 to the front left corner of the pallet 18 as shown in Figure 7, and that position of the gripper 14 is stored in the control device 24 as point P3.
[0019] Figure 8 is an isometric view of the pallet 18 showing the box 30 at three different positions on the pallet 18. It is pointed out that the reference coordinate system 22 can be determined by knowing only the recorded positions of points P1 and P2, or points P1 and P3, or points P2 and P3, where the unknown points are calculated by the method described above. Further, the inclination of the pallet 18 can similarly be calculated by the method described above to correct the reference coordinate system 22 if necessary.
[0020] The algorithm requires processing the recorded positions of points P1, P2, and P3 with respect to the position of box 30 shown in FIG. 8. However, even if the user changes the placement order of box 30 during the calibration process, for example, places box 30 in the front left corner of pallet 18 second and in the rear right corner of pallet 18 third, the process will still be able to accurately calculate the reference coordinate system 22. Specifically, since the reference coordinate system 22 has a Z-axis "pointing up" with respect to the surface of conveyor 16 or pallet 18, it is possible to determine whether points P2 and P3 are in the correct order for FRAME calculation by taking the cross product of two vectors P1P2 and P1P3. When the cross product Z value is positive, the coordinate system should be FRAME(P1,P2,P3), and when the cross product Z value is negative, the coordinate system should be FRAME(P1,P3,P2).
[0021] The foregoing discussion merely discloses and describes exemplary embodiments of the present disclosure. Those skilled in the art will readily recognize that various changes, modifications, and variations can be made to these embodiments without departing from the spirit and scope of the disclosure as defined in the following claims from such discussion and from the accompanying drawings and claims.
Claims
1. A method for calculating a reference coordinate system including an X-axis, a Y-axis, and a Z-axis that enables a robot to pick up an object, comprising: placing a calibration object at a first position; positioning the robot with respect to the center of the calibration object when the calibration object is at the first position; grasping the calibration object by the robot when the calibration object is at the first position; recording a value of the first position that identifies the first position; moving the calibration object from the first position to a second position using the robot; recording a value of the second position that identifies the second position; calculating a value of a third position using the value of the first position and the value of the second position; calculating an intermediate coordinate system including an X-axis, a Y-axis, and a Z-axis using the value of the first position, the value of the second position, and the value of the third position; calculating the reference coordinate system using the intermediate coordinate system and the dimensions of the calibration object.
2. The method according to claim 1, wherein the step of calculating the intermediate coordinate system includes using a FRAME algorithm.
3. The method according to claim 1, wherein the step of calculating the intermediate coordinate system includes using a value of a fourth position.
4. The method according to claim 1, wherein the first position is a pick-up position on a conveyor where the robot picks up the object, the second position is a position upstream of the pick-up position on the conveyor, and the value of the third position is spatially located with respect to the conveyor.
5. The method according to claim 4, wherein the calibration object is a calibration box, and the dimensions are the width, length, and height of the calibration box.
6. The method according to claim 4, wherein the reference coordinate system is at the front right corner or the front left corner of the conveyor.
7. The method according to claim 4, wherein the step of calculating the intermediate coordinate system includes compensating for the inclination of the conveyor.
8. The method according to claim 1, wherein the first position is at a corner of a pallet, the second position is at another corner of the pallet, and the value of the third position 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 the width, length, and height of the calibration box.
10. The method according to claim 8, wherein the step of calculating the intermediate coordinate system includes compensating for the inclination of the pallet.
11. The method according to claim 1, further comprising the step of displaying the reference coordinate system and the calibration object on the 3D display unit with respect to the robot.
12. A method for calculating a reference coordinate system including an X-axis, a Y-axis, and a Z-axis such that a robot can pick up a box from a conveyor, comprising: placing a calibration box at a pick-up position on the conveyor where the robot picks up the picked-up object; positioning the robot with respect to the center of the calibration box when the calibration box is at the pick-up position; grasping the calibration box by the robot when the calibration box is at the pick-up position; recording a value of a first position identifying the pick-up position; moving the calibration box from the pick-up position to a position upstream of the pick-up position on the conveyor; recording a value of a second position identifying the position upstream of the pick-up position on the conveyor; recording a value of a third position spatially located with respect to the conveyor; calculating an intermediate coordinate system including an X-axis, a Y-axis, and a Z-axis using the value of the first position, the value of the second position, and the value of the third position; calculating the reference coordinate system using the intermediate coordinate system and the width, length, and height of the calibration box.
13. The method according to claim 12, wherein the step of calculating the intermediate coordinate system includes the step of using a FRAME algorithm.
14. The method according to claim 12, wherein the step of calculating the intermediate coordinate system includes the step of compensating for the inclination of the conveyor.
15. The method according to claim 12, wherein the reference coordinate system is at the front right corner or the front left corner of the conveyor.
16. A method for calculating a reference coordinate system including an X-axis, a Y-axis, and a Z-axis such that a robot can pick up a box from a pallet, wherein the pallet has four corners and the reference coordinate system is at one of the corners, placing a calibration box at a first corner of the pallet; positioning the robot with respect to the center of the calibration box when the calibration box is at the first corner; grasping the calibration box by the robot when the calibration box is at the first corner; recording a value of a first position identifying the position of the first corner; moving the calibration box from the first corner to a second corner of the pallet using the robot; recording a value of a second position identifying the position of the second corner; Moving the calibration box from the second corner to the third corner of the pallet using the robot; Recording a value of a third position identifying the position of the third corner; Calculating an intermediate coordinate system including an X-axis, a Y-axis, and a Z-axis using the values of the first position, the second position, and the third position; Calculating the reference coordinate system using the intermediate coordinate system and the width, length, and height of the calibration box. A method comprising the steps.
17. The method according to claim 16, wherein the step of calculating the intermediate coordinate system includes the step of using a FRAME algorithm.
18. The method according to claim 16, wherein the step of calculating the intermediate coordinate system includes the step of compensating for the inclination of the pallet.
19. A method for calculating a reference coordinate system including an X-axis, a Y-axis, and a Z-axis that enables a robot to pick up an object, the robot including a gripper having known dimensions, Positioning the gripper at a first position; Recording a value of a first position identifying the first position; Moving the gripper from the first position to the second position; Recording a value of a second position identifying the second position; Calculating a value of a third position using the value of the first position and the value of the second position; Calculating an intermediate coordinate system including an X-axis, a Y-axis, and a Z-axis using the value of the first position, the value of the second position, and the value of the third position; Calculating the reference coordinate system using the intermediate coordinate system and the dimensions of the gripper. A method comprising the steps.
20. A method for calculating a reference coordinate system including an X-axis, a Y-axis, and a Z-axis that enables a robot to pick up an object using a gripper, the gripper having a known posture, Placing a calibration object at a first position; Positioning the robot with respect to the center of the calibration object when the calibration object is at the first position; Gripping the calibration object with the robot when the calibration object is at the first position; Recording a value of a position identifying the first position; Calculating an intermediate coordinate system including an X-axis, a Y-axis, and a Z-axis using the value of the first position and the posture of the gripper; Calculating the reference coordinate system using the intermediate coordinate system. A method comprising the steps.