Method for determining a position of a TCP, device, robot system and computer program product

WO2026174444A1PCT designated stage Publication Date: 2026-08-27ABB (SCHWEIZ) AG +2
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/077996
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-19
Publication Date
2026-08-27

Smart Images

  • Figure CN2025077996_27082026_PF_FP_ABST
    Figure CN2025077996_27082026_PF_FP_ABST
Patent Text Reader

Abstract

A method for determining a position of a TCP (121) of a tool (120) relative to the arm end (113). The tool (120) is mounted to the arm end (113) of a robot (110). The method comprises determining an intersection point of a first trajectory (152) and a second trajectory (154) of the TCP (121) based on vision data obtained by a vision sensor (130). The method further comprises determining a first pose of the arm end (113) associated with the intersection point during the first trajectory (152) and a second pose of the arm end (113) associated with the intersection point during the second trajectory (154). The method further comprises determining the position of the TCP (121) relative to the arm end (113) based on the first pose and the second pose. In this way, by utilizing a vision equipment to observe the TCP moving in specific trajectories, the complexity of the TCP calibration process is reduced. An electronic device, a robot system and a computer program product are also provided.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD FOR DETERMINING A POSITION OF A TCP, DEVICE, ROBOT SYSTEM AND COMPUTER PROGRAM PRODUCT

[0001] Embodiments of the present disclosure generally relate to the field of industrial robot, and more particularly, to a method for controlling a robot, an electronic device and a computer program product.BACKGROUND

[0002] In the field of robot processing, to achieve the high precision machining process, it is necessary to obtain the position of the tool center point (TCP) mounted at the end of the robot arm in the robot system. Although the size of the tool should in conformity with the design requirement, due to a potential low machining accuracy, the size of the tool may be offset to the design size thereby resulting in an offset of the position of the TCP.

[0003] In order to determine the position of the TCP, a TCP calibration process is introduced. TCP calibration is a crucial process in robotics that involves determining the position and orientation of the TCP relative to the robot's flange coordinate system. The TCP is the point at which the robot's tool (such as a gripper, welding torch, or cutting tool) interacts with the environment. An accurate TCP calibration ensures precise control of the tool's position and orientation, which is essential for tasks like welding, assembly, and material handling.SUMMARY

[0004] In view of the foregoing problems, example embodiments of the present disclosure propose solutions for determining a position of the TCP based on visual position data.

[0005] In a first aspect of the present disclosure, example embodiments of the present disclosure provide a method for determining a position of a tool center point (TCP) of a tool relative to the arm end. The tool is mounted to the arm end of a robot. The method comprises determining an intersection point of a first trajectory and a second trajectory of the TCP based on vision data obtained by a vision sensor during the TCP moving along the first trajectory and the second trajectory respectively. The method further comprises determining a first pose of the arm end associated with the intersection point during the first trajectory and a second pose of the arm end associated with the intersection point during the second trajectory. The method further comprises determining, based on the first pose and the second pose, the position of the TCP relative to the arm end.

[0006] In a second aspect, example embodiments of the present disclosure provide an electronic device. The electronic device comprises at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the device to perform the method or controlling a robot in accordance with the first aspect of the present disclosure.

[0007] In a third aspect, example embodiments of the present disclosure provide a robot system. The robot system comprises a robot comprising a tool mounted on an arm end of the robot. The robot system further comprises a vision sensor which is configured to acquire vision data of movements of the TCP of the robot. The robot system further comprises an electronic device in accordance with the second aspect of the present disclosure, which is configured to control the movements of the robot and receive the vision data of the movements from the vision sensor.

[0008] In a fourth aspect, example embodiments of the present disclosure provide a computer program product comprising computer readable instructions stored on a non-transitory computer readable storage medium. When executed by a computer, the computer readable instructions cause the computer to perform the method for determining a position of the TCP in accordance with the first aspect of the present disclosure.BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Through the following detailed descriptions with reference to the accompanying drawings, the above and other objectives, features and advantages of the example embodiments disclosed herein will become more comprehensible. In the drawings, several example embodiments disclosed herein will be illustrated in an exemplary and in a non-limiting manner, wherein:

[0010] Fig. 1 schematically illustrates a block diagram of a robot system in which example embodiments of the present disclosure can be implemented;

[0011] Fig. 2 schematically illustrates a flowchart of a method for determining a position of the TCP in accordance with embodiments of the present disclosure;

[0012] Fig. 3 schematically illustrates a flowchart of a method for controlling movements of the TCP in accordance with further embodiments of the present disclosure;

[0013] Fig. 4 schematically illustrates a diagram of an example procedure for controlling movements of the TCP in accordance with embodiments of the present disclosure;

[0014] Fig. 5 schematically illustrates a diagram of an example interface of the vision sensor in accordance with embodiments of the present disclosure;

[0015] Fig. 6 schematically illustrates a diagram of an example result in accordance with embodiments of the present disclosure; and

[0016] Fig. 7 schematically illustrates a schematic diagram of an electronic device for implementing a method in accordance with embodiments of the present disclosure.

[0017] Throughout the drawings, the same or similar reference numerals represent the same or similar element.DETAILED DESCRIPTION

[0018] Principle of the present disclosure will now be described with reference to some example embodiments. It is to be understood that these embodiments are described only for the purpose of illustration and help those skilled in the art to understand and implement the present disclosure, without suggesting any limitation as to the scope of the disclosure. The disclosure described herein can be implemented in various manners other than the ones described below.

[0019] In the following description and claims, unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skills in the art to which this disclosure belongs.

[0020] References in the present disclosure to “one embodiment, ” “an embodiment, ” “an example embodiment, ” and the like indicate that the embodiment described may include a particular feature, structure, or characteristic, but it is not necessary that every embodiment includes the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the know circle of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.

[0021] It shall be understood that although the terms “first” and “second” etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and similarly, a second element could be termed a first element, without departing from the scope of example embodiments. As used herein, the term “and / or” includes any and all combinations of one or more of the listed terms.

[0022] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments. As used herein, the singular forms “a” , “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” , “comprising” , “has” , “having” , “includes” and / or “including” , when used herein, specify the presence of stated features, elements, and / or components etc., but do not preclude the presence or addition of one or more other features, elements, components and / or combinations thereof.

[0023] As described above, correct and high-precision calibration of the position of the TCP is a prerequisite for the robot to operate normally. There are congenitally various methods and devices to calibrate TCP information, such as, the four-point calibration method, the hand eye calibration method, stereo vision calibration method, etc. However, these calibration methods are generally developed and used for specific tool features. For example, the bull eye calibration method is mainly aimed at welding applications. Usually, conventional calibration methods require more complex devices and require a large amount of manual teaching. This poses challenges for the large-scale applications of robots and there is actual need for automatic and accurate calibration of the robot TCP information in the field of robot applications.

[0024] In view of the above, a visually supervised robot TCP calibration mechanism is provided. In the mechanism, the TCP travels along different trajectories and it is ensured that when the TCP travels to an intersection of two trajectories for different times, the arm end mounted with the tool has different poses. In the meantime, a vision sensor is used to track the position of the TCP to determine the intersection of two trajectories and the different poses corresponding to the intersection. The position can be determined based on the different poses.

[0025] According to the embodiments in accordance with the present disclosure, by controlling the robot to travel in specific trajectories that spatially intersect with each other, sufficient position and direction data can be obtained to determine the position of the TCP relative to the arm end. In this way, by utilizing a vision equipment to observe the TCP moving in specific trajectories without introducing further components, the complexity of the TCP calibration process is reduced and it costs very little time thereby greatly improve the efficiency of the processing process.

[0026] A framework in accordance with embodiments of the present disclosure will be described with reference to Figs. 1 to 7. Fig. 1 schematically illustrates a block diagram of a robot system 100 in which example embodiments of the present disclosure can be implemented. As illustrated in Fig. 1, the robot system 100 includes a robot 110. The robot 110 may be a robot having a plurality of axes. The movements of the plurality of the axes are independently controllable. In the illustrated Fig. 1, the robot 110 includes a base 111 for supporting the arms of the robot 110. The base 111 is stable on the ground. A base coordinate system is established for the base 111 and serves as the reference coordinate system for all movements. The robot 110 further includes a series of arm links connected end-to-end in sequence. A last arm 112 is at the end of the arm sequence and has an arm end 113. The arm 112 is mounted with a tool 120. For example, the arm end 113 may be a flange.

[0027] The arm 112 may be a rotational joint allows the robot to rotate its wrist around its own axis A. This axis provides the final degree of freedom, enabling the robot 110 to control the orientation of the tool 120. The tool 120 mounted to the arm end 113 of the arm 112 may also be referred to as an end-effector. The tool 120 may be a gripper, a welding torch, a cutting tool, a spray gun, or any other device that is required for the specific task.

[0028] The robot 110 can be programmed using specialized software to perform specific tasks. The program may be programmed at the computing device 140 and transmitted from the computing device 140 to the controller of the robot 110. In some alternative embodiments, the computing device 140 may be the controller of the robot. Further, the robot system 100 includes a vision sensor 130. The vision sensor 130 is configured to acquire vision position data of the robot 110 and the tool 120 as well as the work piece to be processed by the robot 110. The vision sensor 130 may include a monocular camera a binocular camera or a laser scanning sensor. In some example embodiments, the vision sensor 130 and the computing device is integrated in the same device, for example a smartphone.

[0029] As introduced above, the robot 110 may be programed to operate along specific trajectories and in specific poses. As illustrated in Fig. 1, the robot 110 is instructed to move the end arm 113 along a trajectory 151 while the direction of the axis A maintains unchanged. The trajectory 151 has a shape of a diamond. Accordingly, the TCP moves along a trajectory 152 which also has a shape of a diamond. In addition, the trajectory 151 and the trajectory 152 are similar figures. After the robot 110 complete the movement of the trajectory 151, the robot 110 is instructed to move along a trajectory 153 while the direction of the axis A also maintains unchanged but different from the direction of the axis during travelling the trajectory 151. Accordingly, the TCP moves along a trajectory 154 which also has a shape of a diamond. In addition, the trajectory 153 and the trajectory 154 are also similar figures.

[0030] As illustrated in Fig. 1, the trajectory 152 intersects with the fourth trajectory 153 at two intersections. The pose of the arm end 113 when the TCP reaches the intersection along the trajectory 152 is different from the pose of the arm end 113 when the TCP reaches the intersection along the trajectory 154 as illustrated. The vision data obtained by the vision sensor 130 includes the positions of the TCP during movements along specific trajectories. Thus, when the vision data is received by the computing device 140, the computing device 140 may determine the intersection points based on the vision data. Then, the computing device 140 may determine a first pose of the arm end 113 when the TCP reaches the intersection along the trajectory 152 and a second pose of the arm end 113 when the TCP reaches the intersection along the trajectory 154. The computing device 140 may determine the position of the TCP relative to the arm end 113 based on the first pose and the second pose.

[0031] According to the embodiments in accordance with the present disclosure, for the trajectory 152, the position of the TCP 121 relative to the base coordinate system can be expressed with the first pose while for the trajectory 154, the position of the TCP relative base coordinate system can be expressed with the second pose. Since the position of the intersection relative to base coordinate system is the same, a relationship of the first pose, second pose and the position of the TCP relative to the arm end 113 can be derived. As a result, the position of the TCP relative to the arm end 113 can be determined from the relationship.

[0032] By controlling the robot to travel in specific trajectories that spatially intersect with each other, sufficient position and direction data can be obtained to determine the position of the TCP relative to the arm end. In this way, a complexity of the TCP calibration is reduced and it costs very little time thereby greatly improve the efficiency of the processing process.

[0033] It should be appreciated that the trajectory traveled by the TCP may include other shapes, such as circles, rectangles, triangles. Further, the two trajectories may have different shapes as long as it is ensured that the two trajectories intersect with each other.

[0034] Fig. 2 schematically illustrates a flowchart of an example method 200 for determining a position of the TCP in accordance with embodiments of the present disclosure. For purpose of discussion, the method 200 may be described in association with Fig. 1. For example, the method may be implemented by the computing device 140.

[0035] As illustrated in Fig. 2, at 202, the method 200 comprises determining an intersection point of a first trajectory and a second trajectory of the TCP based on vision data obtained by a vision sensor during the TCP moving along the first trajectory and the second trajectory respectively. For example, in the embodiment as illustrated in Fig. 1, the computing device 140 determines an intersection point of a first trajectory 152 and a second trajectory 154 of the TCP 121 based on vision data obtained by the vision sensor 130 during the TCP moving along the first trajectory 152 and the second trajectory 154 respectively.

[0036] In some example embodiments, before the arm end 113 is controlled to move along the trajectories 151 and 153, the computing device 140 may request the vision sensor 130 to detect the positions of the TCP 121. During moving along the trajectories, the vision sensor 130 may detect the positions of the TCP 121 at time intervals. For example, the positions may be coordinates of the TCP 121 in a coordinate system of the vision sensor 130. the positions of the TCP are used to determine when or where the trajectories intersect with each other. The values of coordinates will be not used in the subsequent determination. Thus, the coordinate system of the vision sensor 130 does not need to be associated with coordinate systems of the robot system 100. That is, the coordinate system of the vision sensor 130 is decoupled with the base coordinate system or the tool coordinate system of the robot system 100. The calibration of the vision sensor is spared.

[0037] After the movements along the trajectories are complete, the computing device 140 receives the vision data from the vision sensor 130. In some example embodiments, the vision sensor 130 is configured with a coordinate system and the vision data comprises coordinates of the TCP in the coordinate system of the vision sensor 130. In these embodiments, in order to determine the intersection point based on the vision data, the computing device 140 may obtain a first set of coordinates of the first trajectory 152 in the coordinate system of the vision sensor 130. Then, the computing device 140 may obtain a second set of coordinates of the second trajectory 154 in the coordinate system of the vision sensor 130. At last, the computing device 140 may determine the intersection point between the first set of coordinates and the second set of coordinates as the intersection point.

[0038] At 204, the method 200 comprises determining a first pose of the arm end associated with the intersection point during the first trajectory and a second pose of the arm end associated with the intersection point during the second trajectory. For example, in the embodiment as illustrated in Fig. 1, the computing device 140 determines a first pose of the arm end 113 associated with the intersection point during the first trajectory 152 and a second pose of the arm end 113 associated with the intersection point during the second trajectory 154. The poses of the arm end 113 may include a direction indication and position indication of the arm end 113.

[0039] The vision data are associated with the corresponding poses of the arm end. For example, the vision data may be associated with the corresponding poses of the arm end with a same time stamp. In some example embodiments, in order to determine the first pose and the second pose of the arm end 113 associated with the intersection point, the computing device 140 may obtain a first set of poses corresponding to the first set of coordinates and a second set of poses corresponding to the second set of coordinates based on the association of the time stamps. The computing device 140 may determine the first pose in the first set of poses corresponding to the intersection point. Similarly, the computing device 140 may determine the second pose in the second set of poses corresponding to the intersection point.

[0040] At 206, the method 200 comprises determining a position of the TCP relative to the arm end based on the first pose and the second pose. For example, in the embodiment as illustrated in Fig. 1, the computing device 140 determines the position of the TCP 121 relative to the arm end 113 based on the first pose and the second pose.

[0041] In some example embodiments, to determine the position of the TCP 121 relative to the arm end 113, the computing device 140 may determine a first position representation of the intersection point with respect to a base of the robot based on the first pose. The computing device 140 may determine a second position representation of the intersection point with respect to a base of the robot based on the second pose. The computing device 140 may determine a coordinate of the TCP relative to the arm end based on the first position representation and the second position representation.

[0042] In some example embodiment, each of the first position representation and the second position representation indicates a direction offset and a position offset with respect to the base of the robot. In these embodiments, the poses of the arm end 113 may include a rotation translation (RT) matrix. The RT matrix includes a rotation matrix as a direction offset and a translation vector as a position offset with respect to the base of the robot system. According to the position transformation based on the RT matrix, the first position representation may be expressed with the RT matrix of the arm end 113 associated with the first trajectory and the position of the TCP relative to the arm end 113 while the second position representation may be expressed with the RT matrix of the arm end 113 associated with the second trajectory and the position of the TCP relative to the arm end 113. Since the first position representation and the second position representation both indicates the same position in the base coordinate system of the robot, a relationship of the first position representation and the second position representation can be established. In turn, the relationship of the RT matrix of the arm end 113 associated with the first trajectory, the RT matrix of the arm end 113 associated with the second trajectory and the position of the TCP relative to the arm end 113 can be derived.

[0043] In some example embodiments, the position of the TCP 121 relative to the arm end 113 may include three coordinate elements. Thus, at least three linear equations are needed to derive all of the three coordinate elements. In these embodiments, the computing device 140 may control the arm end 113 to move along a further trajectory that intersects with at least one of the first trajectory 152 or the second trajectory 154. The computing device 140 may determine at least one further intersection point of at least two of the first trajectory, the second trajectory and at least one further trajectory of the TCP based on further vision data obtained by the vision sensor. The computing device 140 may determine at least a pair of poses of the arm end associated with at least one further intersection point. The computing device 140 may determine the position of the TCP relative to the arm end based on the at least a pair of poses.

[0044] According to the embodiment as illustrated in Fig. 2, by controlling the robot to travel in specific trajectories that spatially intersect with each other, sufficient position and direction data can be obtained to determine the position of the TCP relative to the arm end. In this way, by utilizing a vision equipment to observe the TCP moving in specific trajectories, the complexity of the TCP calibration process is reduced and the manual operation is reduced thereby greatly improve the efficiency of the processing process.

[0045] Fig. 3 schematically illustrates a flowchart of a method 300 for controlling movements of the TCP. For purpose of discussion, the method 300 may be described in association with Fig. 1 and Fig. 4. For example, the method may be implemented by the computing device 140. As illustrated in Fig. 3, at 302, the computing device 140 determines a first position and a first direction for the first trajectory. The first position may be any position relative to the base coordinate system of the robot 110 that is suitable for the vision sensor 130 to monitor. In some example embodiments, in order to the first direction may be parallel to one of the axis of the base coordinate system of the robot 110. In some alternative embodiments, the first direction may be non-parallel to any one of the axis of the base coordinate system of the robot 110. In these embodiments, in a case where the pose of the arm end is expressed in rotation matrix, none of the elements corresponding to the position of the TCP would be zero.

[0046] At 304, the computing device 140 controls the arm end to move to the first position such that a rotation axis of the arm end is in the first direction. At 306, the computing device 140 controlling the arm end to rotate around the rotation axis at the first position. The controlling process of step 302 to step 306 will be described with reference to Fig. 4.

[0047] Fig. 4 schematically illustrates a diagram of an example procedure 400 for controlling movements of the TCP in accordance with embodiments of the present disclosure. As illustrated in Fig. 4, the arm 112 has an arm end 113. The arm end 113 has end face 114 and is connected to the tool 120. During controlling of the TCP to move along different trajectories, a first position for a first trajectory 404 and the first direction D1 is determined. The arm end 113 is controlled to move to the first position 402 such that the center point of the end face 114 reaches the first position and the rotation axis of the arm end 113 is in the first direction. As a result, the end face 114 is perpendicular to the first direction D1. After the arm end 113 is in position as controlled, the arm end 113 is controlled to rotate around the rotation axis, such that the TCP moves along the trajectory 404.

[0048] Back to Fig. 3, at 308, the computing device 140 determines a second position for a second trajectory and a second direction parallel to the first direction. The second position is in a plane comprising the first position and perpendicular to the first direction. Further, the second position is at a distance from the first position. In some example embodiments, in order to ensure that the first trajectory and the second trajectory intersect with each other, the distance may be configured to be smaller than a distance threshold. For example, the distance threshold may be determined based on a design size of the tool. In some specific embodiments, a distance between the TCP and the rotation axis of the arm end 113 is determined based on the design size of the tool or an empirical value from a user.

[0049] In some alternative embodiments, the distance may be determined based on a test movement. In the test movement, the TCP may be controlled to move along the first trajectory and the second trajectory respectively. Whether the first trajectory and the second trajectory intersect with each other can be determined based on the vision position data of the TCP during the test movement. If there is no intersection, the distance will be reduced.

[0050] At 310, the computing device 140 controls the arm end 113 to move to the second position such that the rotation axis of the arm end 113 is in the second direction. At 312, the computing device 140 controlling the arm end to rotate around the rotation axis at the second position. The controlling process of step 308 to step 312 will also be described with reference to Fig. 4.

[0051] As illustrated in Fig. 4, during controlling of the TCP to move along different trajectories, a second position 406 for a second trajectory 408 and the second direction D2 is determined. The second position 406 is in a plane B1. The plane B1 also includes the first position 402 and is perpendicular to the first direction D1. Further the end face 114 is also included in the plane B1. The second position 406 is at a distance H from the first position.

[0052] Then, the arm end 113 is controlled to move to the second position 406 such that the center point of the end face 114 reaches the second position 406 and the rotation axis of the arm end 113 is in the second direction D2. After the arm end 113 is in position as controlled, the arm end 113 is controlled to rotate around the rotation axis, such that the TCP moves along the trajectory 408 which intersects with the trajectory 404 at the intersection point 410.

[0053] According to the embodiment as illustrated in Figs. 3 and 4, the positions of the arm end 113 during moving along the two trajectories are stable and in the same plane B1. Since the distance between the TCP and the arm end 113 is fixed, the points in the first trajectory 404 and the second trajectory 408 are at the same distance from the plane B1. As a result, the first trajectory 404 and the second trajectory 408 are in the same plane B2 that is parallel to the plane B1. In this way, by configuring the trajectories to be rotation around the center point of the arm end, the intersection is ensured while the movement complexity is reduced.

[0054] Fig. 5 schematically illustrates a diagram of an example interface 500 of the vision sensor in accordance with embodiments of the present disclosure. In the embodiment, the camera is arranged in front of the robot. As illustrated in Fig. 5, the interface 500 includes a screen 502. In the screen 502, there is a robot 504. An arm end of the robot 504 is mounted with a tool. The tool has a TCP 506. The TCP to be tracked by the camera is selected via the interface 500 using a cursor (illustrated as a “hand” ) . For example, before the TCP calibration, a feature may be selected by in the interface 500 to represent the position of the TCP. After the selection, the selected feature on the tool will be tracked and its coordinates in the imaging plane will be recorded.

[0055] According to the embodiment illustrated in Fig. 5, since the position of the TCP is unknown, the feature to be tracked by the camera is hard to automatically determine. By the intuitive selection by a user, the selection of the feature to be tracked can be achieved.

[0056] Fig. 6 schematically illustrates a diagram of an example result 600 in accordance with embodiments of the present disclosure. As illustrated in Fig. 6, the result 600 includes an imaging coordinate system. The positions of a first trajectory are presented in the imaging coordinate system as a trajectory curve 602. In the meantime, the positions of a second trajectory are presented in the imaging coordinate system as a trajectory curve 604.

[0057] The trajectory curve 602 and the trajectory curve 604 have an intersection point 606. According to the association of the trajectory and the pose of the arm end, it is determined that a first pose of the arm end associated with the first trajectory includes a RT matrix consisting of a rotation matrix R1 and a translation vector T1 while a second pose of the arm end associated with the second trajectory includes a RT matrix consisting of a rotation matrix R2 and a translation vector T2. The RT matrix is determined relative to the base coordinate system of the robot.

[0058] According to the spatial coordinate transformation rule, a first position representation of the TCP with respect to the base coordinate system of the robot associated with the first trajectory is expressed as: and a second position representation of the TCP with respect to the base coordinate system  of the robot associated with the second trajectory is expressed as: Since the first position representation (1) is the same as the second position representation  (2) , a relationship of the first pose, the second pose and the position of the TCP relative to the arm end is established as: The position [x, y, z] of the TCP relative to the arm end includes three coordinate elements.  Thus, at least three linear equations may be needed to derive all of the three coordinate elements. In these embodiments, the arm end 113 may be controlled to move along further trajectories to obtain further equations.

[0059] In some embodiments of the present disclosure, a computing device is provided for implementing the above methods 200 and 300. Fig. 7 illustrates a schematic diagram of an electronic device 700 for implementing a method in accordance with embodiments of the present disclosure. The electronic device 700 may be corresponding to the client device 120 in Fig. 1. The electronic device 700 comprises: at least one processor 710 and at least one memory 720. The at least one processor 710 may be coupled to the at least one memory 720. The at least one memory 720 comprises instructions 722 that when executed by the at least one processor 710 implements the methods 200 and 300.

[0060] In some embodiments of the present disclosure, a computer readable medium for adjusting robot path is provided. The computer readable medium has instructions stored thereon, and the instructions, when executed on at least one processor, may cause at least one processor to perform the method for managing a camera system as described in the preceding paragraphs, and details will be omitted hereinafter.

[0061] Generally, various embodiments of the present disclosure may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. Some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device. While various aspects of embodiments of the present disclosure are illustrated and described as block diagrams, flowcharts, or using some other pictorial representation, it will be appreciated that the blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.

[0062] The present disclosure also provides at least one computer program product tangibly stored on a non-transitory computer readable storage medium. The computer program product includes computer-executable instructions, such as those included in program modules, being executed in a device on a target real or virtual processor, to carry out the process or method as described above with reference to Figs. 2 and 3. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, or the like that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or split between program modules as ideal in various embodiments. Machine-executable instructions for program modules may be executed within a local or distributed device. In a distributed device, program modules may be located in both local and remote storage media.

[0063] Program code for carrying out methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may execute entirely on a machine, partly on the machine, as a stand-alone software package, partly on the machine and partly on a remote machine or entirely on the remote machine or server.

[0064] The above program code may be embodied on a machine readable medium, which may be any tangible medium that may contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine readable medium may be a machine readable signal medium or a machine readable storage medium. A machine readable medium may include but not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the machine readable storage medium would include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM) , a read-only memory (ROM) , an erasable programmable read-only memory (EPROM or Flash memory) , an optical fiber, a portable compact disc read-only memory (CD-ROM) , an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0065] Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are contained in the above discussions, these should not be construed as limitations on the scope of the present disclosure, but rather as descriptions of features that may be specific to particular embodiments. Certain features that are described in the context of separate embodiments may also be implemented in combination in a single embodiment. On the other hand, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable sub-combination.

[0066] Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

[0067] It should be appreciated that the above detailed embodiments of the present disclosure are only to exemplify or explain principles of the present disclosure and not to limit the present disclosure. Therefore, any modifications, equivalent alternatives and improvement, etc. without departing from the spirit and scope of the present disclosure shall be included in the scope of protection of the present disclosure. Meanwhile, appended claims of the present disclosure aim to cover all the variations and modifications falling under the scope and boundary of the claims or equivalents of the scope and boundary. It is to be understood that the summary section is not intended to identify key or essential  features of embodiments of the present disclosure, nor is it intended to be used to limit the scope of the present disclosure. Other features of the present disclosure will become easily comprehensible through the following description.

Claims

1.A method for determining a position of a tool center point (TCP) of a tool relative to the arm end, the tool being mounted to the arm end of a robot, and the method comprising:determining an intersection point of a first trajectory and a second trajectory of the TCP based on vision data obtained by a vision sensor during the TCP moving along the first trajectory and the second trajectory respectively;determining a first pose of the arm end associated with the intersection point during the first trajectory and a second pose of the arm end associated with the intersection point during the second trajectory; anddetermining, based on the first pose and the second pose, the position of the TCP relative to the arm end.2.The method of claim 1, further comprising:determining a first position and a first direction;controlling the arm end to move to the first position such that a rotation axis of the arm end is in the first direction; andcontrolling the arm end to rotate around the rotation axis at the first position.3.The method of claim 2, further comprising:determining a second position in a plane comprising the first position and perpendicular to the first direction, the second position being at a distance from the first position;controlling the arm end to move to the second position such that the rotation axis of the arm end is in the first direction; andcontrolling the arm end to rotate around the rotation axis at the second position.4.The method of claim 3, wherein the distance is determined such that the first trajectory and the second trajectory intersect with each other.5.The method of claim 3, wherein the arm end is controlled to rotate at angle intervals.6.The method of claim 1, wherein determining an intersection point of a first trajectory and a second trajectory of the TCP based on vision data obtain by the vision sensor during the TCP moving along the first trajectory and the second trajectory respectively comprises:obtaining a first set of coordinates of the first trajectory in an image coordinate system; andobtaining a second set of coordinates of the second trajectory in the image coordinate system; anddetermining the intersection point between the first set of coordinates and the second set of coordinates as the intersection point.7.The method of claim 6, wherein determining the first pose of the arm end associated with the intersection point during the first trajectory and the second pose of the arm end associated with the intersection point during the second trajectory comprises:obtaining a first set of poses corresponding to the first set of coordinates and a second set of poses corresponding to the second set of coordinates;determining the first pose in the first set of poses corresponding to the intersection point; anddetermining the second pose in the second set of poses corresponding to the intersection point.8.The method of claim 1, wherein determining, based on the first pose and the second pose, the position of the TCP relative to the arm end comprise:determining, based on the first pose, a first position representation of the intersection point with respect to a base of the robot;determining, based on the second pose, a second position representation of the intersection point with respect to a base of the robot; anddetermining, based on the first position representation and the second position representation, a coordinate of the TCP relative to the arm end.9.The method of claim 8, wherein each of the first position representation and the second position representation indicates a direction offset and a position offset with respect to the base of the robot.10.The method of claim 1, further comprising:determining at least one further intersection point of at least two of the first trajectory, the second trajectory and at least one further trajectory of the TCP based on further vision data obtained by the vision sensor; anddetermining at least a pair of poses of the arm end associated with at least one further intersection point, andwherein determining, based on the first pose and the second pose, the position of the TCP relative to the arm end comprises: determining, based on the at least one pair of poses and the first pose, the second pose, the position of the TCP relative to the arm end.11.The method of claim 1, further comprising:presenting, to a user, an image of the tool; andreceiving, from the user, an indication of a selection of a feature representing the TCP in the image such that the feature is tracked by the vision sensor.12.The method of claim 1, wherein the vision sensor is a camera and the method further comprises:obtaining a set of images obtained from the camera; anddetermining a position of the TCP in each of the set of images to be comprised in the vision data.13.An electronic device comprising:at least one processor; andat least one memory storing instructions that, when executed by the at least one processor, cause the device to perform the method or controlling a robot of any of claims 1-12.14.A robot system comprising:a robot comprising a tool mounted on an arm end of the robot;a vision sensor, configured to acquire vision data of movements of the TCP of the robot; andan electronic device of claim 13, configured to control the movements of the robot and receive the vision data of the movements from the vision sensor.15.A computer program product comprising computer readable instructions stored on a computer readable storage medium, wherein the computer readable instructions, when executed by a computer, cause the computer to perform the method or controlling a robot of any of claims 1-12.