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

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

Patent Information

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

Smart Images

  • Figure CN2025078227_27082026_PF_FP_ABST
    Figure CN2025078227_27082026_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a method for determining a position of a tool center point (TCP) of a tool. The tool is mounted to an arm end of a robot. The method comprises determining a first position of the TCP. The method further comprises performing repositioning process based on the first position. During the repositioning process, the arm end moves around the TCP. The method further comprises determining a first set of positions of the TCP obtained by a visual sensor during the repositioning process based on the first position. The method further comprises determining the first position as the position of the TCP relative to the arm end in response to determining that a first deviation is smaller than a deviation threshold. In this way, by utilizing vision equipment, the complexity of the TCP calibration is reduced and manual operations are reduced.
Need to check novelty before this filing date? Find Prior Art

Description

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

[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, example embodiments of the present disclosure propose solutions for determining a position of the TCP based on visual position data during repositioning process.

[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 a first position of the TCP. The method further comprises performing repositioning process based on the first position. During the repositioning process, the arm end moves around the TCP. The method further comprises determining a first set of positions of the TCP obtained by a visual sensor during the repositioning process based on the first position. The method further comprises determining the first position as the position of the TCP relative to the arm end in response to determining that a first deviation of the first set of positions is smaller than a deviation threshold. The first deviation indicates distance between the first set of positions.

[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 for determining a position of a TCP relative to the arm end 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 the tool of the robot. The robot system further comprises an electronic device in accordance with the second aspect of the present disclosure, which configured to control the movements of the robot and receive the acquired 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 relative to the arm end 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 determining a position of the TCP in accordance with further embodiments of the present disclosure;

[0013] Fig. 4 schematically illustrates a diagram of an example procedure for determining a position 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, before robot starts to operate, obtaining an accurate position TCP is an extremely necessary step. Inaccurate TCP will cause processing trajectory deviation, poor processing quality, and even lead to major accidents. Conventionally, there are various TCP calibration mechanisms. For example, in a fourth-point method, when the robot system is powered on and in a safe mode. Calibration tools such as a calibration sphere or plate is provided. Then, a tool coordinate system in the robot's teaching pendant or control software is chosen or created. During the operation, the robot’s tool is controlled to a fixed point at four different orientations. The system automatically calculates the TCP position.

[0024] It can be seen that in the process of the fourth-point method, additional calibration tool must be provided. Further, the TCP must be moved to a fixed point by means of a teaching pendent under control of the mechanic. This is troublesome thereby decreasing the efficiency and cannot be achieved without manual involvement.

[0025] In view of the above, a mechanism to determine a position of the TCP based on a visual movement data is provided. In the mechanism, a position will be assigned to the TCP. The robot is controlled to perform repositioning process that causes the robot end moves around the assigned position of the TCP. During the repositioning process, the actual positions of the TCP will be acquired by visual sensor. After the repositioning process, a deviation of the actual positions will be determined. If the deviation of the obtained positions is smaller than a predefined deviation threshold, the assigned position is determined to be the actual position of the TCP with respect to the robot end.

[0026] According to the embodiments in accordance with the present disclosure, vision equipment is utilized such that the movement of TCP during repositioning process can be observed. When the vision equipment observes that the TCP is completely immobile or approximately immobile during the repositioning process, the position of TCP is obtained. In this way, by utilizing vision equipment, the complexity of the TCP calibration is reduced and manual operations are reduced. Further, the automated calibration mechanism that can achieve rapid calibration can greatly improve the consistency and efficiency of the processing process.

[0027] 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 six-axis robot. A six-axis robot is a type of industrial robot that has six independently controllable axes of movement. That is, the six-axis robots have six joints that can move independently. This allows them to achieve complex movements and reach a wide range of positions and orientations. Each axis can rotate or translate, enabling the robot to manipulate objects with precision and flexibility.

[0028] In the illustrated Fig. 1, the robot 110 includes a base 111. The base 111 is fixed on the ground. The base 111 is the foundation of the robot and provides stability. It is usually mounted on the floor or a workbench. The base is often heavy and sturdy to support the weight of the robot and the payload. It serves as the reference point for all movements and is connected to a series of arm links connected end-to-end in sequence. At the terminal end of the robot 110, is a last arm 112. One arm end of the arm 112 is connected to another arm link of the robot 110 and the other arm end 113 of the arm 112 is connected to a tool 120. For example, the arm end 113 may comprise a flange which is connected to the tool.

[0029] The arm 112 may be a rotational joint allows the robot to rotate its wrist around its own axis. 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.

[0030] 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.

[0031] In order to change the direction of the tool 120 without changing the position of the TCP, a repositioning process operation is introduced for the robot 110. The repositioning process involves rotating of the robot 110 around a certain axis of the TCP. During the rotation, the absolute spatial position of the TCP point remains unchanged. As illustrated in Fig. 1, a tool coordinate system is established at the TCP 121 of the tool 120. The tool coordinate system has a X axis, a Y axis and a Z axis. The robot 110 may perform repositioning process with respect to the tool coordinate system to rotate around the TCP 121.

[0032] With the aid of the vision sensor 130, the computing device 140 may perform the method for determining a position of the TCP 121 in accordance with embodiments of the present disclosure. For example, the computing device 140 may assign a position relative to the arm end 113 to the TCP 121. The computing device 140 may control the robot 110 to perform repositioning process based on the assigned position. In the meantime, the vision sensor 130 detects the actual positions of the TCP for example relative to the vision sensor 130. The vision sensor 130 transmits the recorded vision position data including the actual positions to the computing device 140. The computing device 140 determines a deviation of the positions of the TCP extracted from the recorded vision position data. The deviation of the positions indicates a proximity level of all the positions. If the computing device 140 determines that the deviation is smaller than a deviation threshold, the computing device 140 determines that the assigned position as the target position of the TCP relative to the arm end 113.

[0033] According to the embodiments in accordance with the present disclosure, vision sensor is utilized to observe the movement of TCP during repositioning process. If the deviation indicates that the TCP is almost immobile during the repositioning process, it means that the assigned position is or near the actual position of the TCP relative to the arm end 113. In this way, a simple calibration process by vision equipment is realized and it is easy to automate without manual operation. Further, the automated calibration mechanism that can achieve rapid calibration can greatly improve the consistency and efficiency of the processing process.

[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. As illustrated in Fig. 2, at 202, the method 200 comprises determining a first position of the TCP. For example, in the embodiment as illustrated in Fig. 1, the computing device 140 determines a first position of the TCP 121. In this case, the first position may be one of a plurality of positions determined according to some rules.

[0035] At 204, the method 200 comprises performing repositioning process based on the first position. During the repositioning process, the arm end moves around the TCP. For example, in the embodiment as illustrated in Fig. 1, the computing device 140 controls the robot 110 to perform repositioning process based on the first position. During the repositioning process, the arm end 113 moves along a trajectory around a specific axis of the TCP 121.

[0036] At 206, the method 200 comprises determining a first set of positions of the TCP obtained by a visual sensor during the repositioning process based on the first position. For example, in the embodiment as illustrated in Fig. 1, the computing device 140 determines a first set of positions of the TCP 121 obtained by the visual sensor during the repositioning process based on the first position.

[0037] In some example embodiments, before performing the repositioning process, the computing device 140 may request the vision sensor 130 to detect the position of the TCP 121 during the repositioning process. During the repositioning process, the vision sensor 130 detects the positions of the TCP 121 at time intervals. For example, the positions are coordinates of the TCP 121 in a coordinate system of the vision sensor 130. In this embodiment, the positions of the TCP are used to determine whether the actual position of the TCP changes. 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 thereby simplifying the process. After the repositioning process based on the first position is complete, the computing device 140 receives the vision position data from the vision sensor 130.

[0038] At 208, the method 200 comprises determining that a first deviation is smaller than a deviation threshold. For example, in the embodiment as illustrated in Fig. 1, the computing device 140 determines a first deviation between the positions in the first set of positions relative to the vision sensor. In some example embodiments, the deviation may be represented by a standard deviation of the set of positions, a variance of the set of positions, or absolute deviation of the set of positions, or any other index that is able to indicate the distribution distance of the set of positions. The computing device 140 compares the determined deviation with a predefined deviation threshold. The computing device 140 determines that the first deviation is smaller than the deviation threshold, which means that during the repositioning process, the TCP 121 is complete immobile or almost immobile.

[0039] At 210, the method 200 comprises determining the first position as the position of the TCP relative to the arm end. For example, in the embodiment as illustrated in Fig. 1, the computing device 140 determines the first position as the position of the TCP relative to the arm end 113.

[0040] According to the embodiment as illustrated in Fig. 2, by performing repositioning process based on a selected position and analyzing the distribution of the vision position data of the TCP during the repositioning process, it can be determined whether the TCP moves during the repositioning process. When it is determined that the position of the TCP is almost unchanged, the assigned position can be determined as the target position. In this way, by utilizing vision equipment, the complexity of the TCP calibration is reduced and manual operations are reduced. Further, the automated calibration mechanism that can achieve rapid calibration can greatly improve the consistency and efficiency of the processing process.

[0041] Fig. 3 schematically illustrates a flowchart of a method 300 for determining a position of the TCP in accordance with further embodiments of the present disclosure. 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.

[0042] As illustrated in Fig. 3, at 302, the computing device 140 initials the TCP calibration procedure by selecting an initial position for the TCP. In some example embodiments, the initial position may be determined randomly. In some other example embodiments, the initial position may be determined based on the design size of the tool. When the initial position is determined, the initial position is assigned to the TCP as the current position.

[0043] After the initiation, the iteration starts. At 304, the computing device 140 performs repositioning process around the current position. The computing device 140 may transmit control commands to the robot 110 to cause the robot 110 to perform the repositioning process. In some example embodiments, in order to perform repositioning process based on the current position, a sphere with the first position as a center point is determined. Then, a trajectory for the arm end on the sphere is determined. The trajectory is an arc on the sphere. The distance of the points on the trajectory from the TCP is the same. The arm end is controlled to move along the trajectory the arm end. During the repositioning process, the arm end 113 moves along the trajectory around the TCP 121. The repositioning process will be described in details with reference to Fig. 4.

[0044] Fig. 4 schematically illustrates a diagram of an example procedure 400 for determining a position of a TCP in accordance with embodiments of the present disclosure. As illustrated in Fig. 4, the arm 112 has an arm end 113 connected to the tool 120. In a case that the position of the TCP is unknown and is input into the robot 110, when the robot 110 receives an instruction to perform repositioning process, the arm end 113 of the robot 110 moves along a trajectory around the position of the TCP. In the illustrated embodiment, a center point 402 of an end face 114 of the arm end moves around the determined trajectory.

[0045] The current position 404 in the iteration process of the method 300 is assigned to the TCP 121. A tool coordinate system is determined with the current position 404 as the origin point of the tool coordinate system. The tool coordinate system has a X axis, a Y axis and a Z axis. A spatial sphere is determined based a distance between the position 404 and the center point 402 and the position 404. A trajectory 406 is determined based on the spatial sphere. For example, a circle on the sphere is determined as the trajectory 406.

[0046] After the trajectory 406 is determined, the arm end 112 moves around at least a part of the trajectory 406. However, the current position 404 has an offset from the actual position of the TCP 121. Thus, when the center point 402 is on the trajectory, the TCP 121 is not located at the current position 404. Due to the offset, when the arm end 113 moves along the trajectory 406, the TCP 121 moves in the vicinity of the position 404 to form a trajectory 408. The trajectory 408 may be irregular.

[0047] Relatively, in a case where the position 404 has a very small offset or no offset from the actual position of the TCP 121, the TCP 121 will move in a very small region or even maintain at the same position. According to this phenomenon, whether the currently-assigned position of the TCP will be determined as the actual position of the TCP, can be determined based on the movement of the TCP 121 during repositioning process.

[0048] Back to Fig. 3, before the repositioning process is performed, the computing device 140 may request the vision sensor 130 which is implemented by a monocular camera to capture the position of the TCP 121 during the repositioning process. During the repositioning process, the monocular camera records a video of the movement of the TCP 121 or captures a set of images of the movement of the TCP 121 at time intervals. As a result, vision data comprising the positions of the TCP 121 in the video or the set of images are obtained. For example, the vision data may comprise the coordinate values of the TCP 121 in respective frames of the video or in respective images of the set of images. At 306, the computing device 140 acquires the vision data from the monocular camera.

[0049] The monocular camera may have an imaging coordinate system which does not need to be calibrated with respect to the coordinate systems of the robot system 100. The coordinate of each position of the TCP in each frame or image can be read from the vision data and used to determine whether the actual position of the TCP changes.

[0050] At 308, the computing device 140 calculates a value of a loss function based on the vision data. The loss function indicates a proximity level of the positions of the TCP during repositioning process. The loss function may be a deviation of pixel coordinates of the positions in obtained from the vision data. In some example embodiments, the loss function may be a standard deviation of the set of pixel coordinates.

[0051] At 310, the computing device 140 compares the determined value of the loss function with a predefined deviation threshold and determines whether the determined value of the loss function is smaller than the deviation threshold. If the computing device 140 determines that the determined value of the loss function is not smaller than the deviation threshold, which means that during the repositioning process, the TCP 121 is not immobile and thus the current position is not the actual position of the TCP, the method 300 proceeds to 312. At 312, the computing device 140 modifies the current position based on the trajectory unevenness to obtain a new position to be assigned to the TCP for the next iteration.

[0052] In some example embodiments, after determining that the value of the loss function for the current position is greater than the deviation threshold, the computing device 140 may fit the set of positions of the TCP during repositioning process to a trajectory. Then, the computing device 140 may determine an unevenness of the trajectory. For example, the unevenness of the trajectory may be calculated as a mean square error or a root mean square error of the set of pixel coordinates obtained from the vision data. Next, the computing device 140 may determine a modifying manner based on the unevenness.

[0053] For example, when the unevenness is greater than an unevenness threshold, a first offset vector will be selected. When the unevenness is smaller than an unevenness threshold, a second offset vector will be selected. The size of the first offset vector is greater than the size of the second offset vector. In this embodiment, when the unevenness is large, it means the currently-assigned position should be modified in a large scale to facilitate converge of the position. Relatively, when the unevenness is large, it means the currently-assigned position should be modified in a small scale.

[0054] In some alternative embodiments, the computing device 140 may compare the current value of the loss function for the current position with the former value of the loss function for the position of the last iteration. When the computing device 140 determines that current value of the loss function is greater than the former value of the loss function, it means the modifying manner performed to obtain the current position causes a greater deviation than the modifying manner performed to obtain the former position. Thus, a further modifying manner similar to the modifying manner performed to obtain the former position will be selected. At last, the computing device 140 modifies the current position in the determined modifying manner to obtain a new position for the next iteration by adding the offset vector to the current position. After the new position is obtained, the method 300 proceeds back to 304 to start a new iteration.

[0055] In some example embodiment, the offset vector indicated by the modifying manner may comprise a base vector with a base size and a weighting matrix to control the direction and size of the offset vector. The weighting matrix is determined based on the modifying manner.

[0056] If the computing device 140 determines that the determined value of the loss function is smaller than the deviation threshold, which means that during the repositioning process, the TCP 121 is complete immobile or almost immobile, the method 300 proceeds to 314. At 314, the computing device 140 determines the current position as the actual position of the TCP relative to the arm end 113.

[0057] According to the embodiment as illustrated in Fig. 3, the actual position of the TCP is found from a predefined initial value by utilizing an iteration process. The entire TCP calibration process is completed by only one monocular camera, and there is no need to do camera calibration and hand-eye calibration in the process, which is easy and automated. As a result, a low-cost, accurate and convenient robot TCP calibration is achieved.

[0058] In some example embodiment, the coordinates of the TCP acquired by the vision sensor may be projected to an imaging plane of the vision sensor. In the example embodiments that the vision sensor is a camera, the camera may be fixed at the front of the robot such that the shooting direction is parallel to one axis of a tool coordinate system established with the TCP as the origin point.

[0059] 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 and the shooting direction of the camera is parallel to one axis of the tool coordinate system with the TCP as the origin. 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. A tool coordinate system is established at the TCP 506 and has a X axis, a Y axis and a Z axis. During the repositioning process in accordance with the present disclosure, the arm end moves around the X axis and the shooting direction is parallel to the X axis.

[0060] In some example embodiment, the TCP to be tracked by the vision sensor may be selected via the interface 500. 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.

[0061] 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 coordinates of the positions of the TCP obtained from the vision data are presented in the imaging coordinate system. A first set of pixel coordinates including pixel coordinate 602 is at the outermost side. A first deviation of the first set of pixel coordinates clearly indicates that the TCP is not immobile. Thus, the iteration continues. A second set of pixel coordinates including pixel coordinate 604 is closer to the inner side than the first set of pixel coordinates. However, a second deviation of second set of pixel coordinates is also large which indicates that the TCP is not immobile. Thus, the iteration continues. At last, a third set of pixel coordinates including pixel coordinate 606 is distributed in a concentrated manner. A third deviation of the third set of pixel coordinates is smaller than the deviation threshold which indicates that the TCP is almost immobile during the repositioning process. The position of the TCP associated with the third set of pixel coordinates can be determined as the actual position of the TCP relative to the arm end.

[0062] 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 800 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.

[0063] 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.

[0064] 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.

[0065] 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.

[0066] 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.

[0067] 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.

[0068] 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.

[0069] 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.

[0070] 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.

[0071] 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 an arm end, the tool being mounted to the arm end of a robot, and the method comprising:determining a first position of the TCP relative to the arm end;performing a repositioning process based on the first position, during the repositioning process, the arm end moving around the TCP;determining a first set of positions of the TCP obtained by a visual sensor during the repositioning process based on the first position; andin response to determining that a first deviation of the first set of positions is smaller than a deviation threshold, determining the first position as the position of the TCP relative to the arm end, the first deviation indicating distances between the first set of positions.2.The method of claim 1, further comprising:determining a second position of the TCP;performing repositioning process based on the second position;determining a second set of positions of the TCP obtained by the visual sensor during the repositioning process based on the second position; andin response to determining that a second deviation of the second set of positions is not smaller than the deviation threshold, modifying the second position to obtain a further position, the second deviation indicating distances between the first set of positions.3.The method of claim 2, wherein modifying the second position to obtain the further position comprises:fitting the second set of positions to a trajectory;determining an unevenness of the trajectory;determining a modifying manner based on the unevenness; andmodifying the second position in the modifying manner.4.The method of claim 3, wherein determining the modifying manner based on the unevenness comprises:in response to determining that the unevenness is greater than an unevenness threshold, determining a first vector; anddetermining the modifying manner as adding the first vector, orin response to determining that the unevenness is smaller than the unevenness threshold, determining a second vector; anddetermining the modifying manner as adding the second vector,wherein a size of the first vector is greater than a size of the second vector.5.The method of claim 1, wherein performing repositioning process based on the first position comprises:determining a sphere with the first position as a center point, distances between points on the sphere and the first position being the same;determining a trajectory for the arm end on the sphere; andcontrolling the arm end to move long the trajectory the arm end.6.The method of claim 5, further comprising:determining an imaging plane of the vision sensor; andprojecting the first set of positions onto the imaging plane to obtain a first set of coordinates.7.The method of claim 6, wherein the first deviation of the first set of positions is determined as one of:a standard deviation of the first set of coordinates;a variance of the first set of coordinates; oran absolute deviation of the first set of coordinates.8.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 obtain the first set of positions of the TCP.9.The method of claim 8, wherein obtaining the set of images obtained from the camera comprises:transmitting, to the camera, a recording request to cause the camera to record the movement of the TCP in real time; andreceiving, from the camera, a video of the TCP comprising the set of images.10.The method of claim 1, wherein the second position is obtained as an initial position from the user, orwherein the second position is determined randomly.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 the TCP.12.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 for determining a position of a tool center point (TCP) of a tool of any of claims 1-11.13.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 tool of the robot; andan electronic device of claim 12, configured to control the movements of the robot and receive the acquired vision data of the movements from the vision sensor.14.The robot system of claim 13, the vision sensor is included in the electronic device.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 for determining a position of a tool center point (TCP) of a tool of any of claims 1-11.