Method, apparatus, device, medium and product for calibrating position of object

By employing a force sensor to determine positional changes, the method addresses the high cost and computational inefficiencies of depth camera-based calibration, providing accurate and automated object position calibration in diverse environments.

WO2025179422A1PCT designated stage Publication Date: 2025-09-04ABB (SCHWEIZ) AG +1
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/078547
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-02-26
Publication Date
2025-09-04

AI Technical Summary

Technical Problem

Existing methods for calibrating the position of objects using depth cameras are costly and computationally intensive, and they fail to accurately account for changes in object positions due to displacement in real-world environments.

Method used

Utilizing a force sensor to determine the distance between the robot and the object, allowing for accurate calibration of the object's position by replacing the depth camera, thereby reducing costs and computational overhead.

Benefits of technology

The method enables accurate and cost-effective calibration of object positions, even in complex environments, by automating the calibration process and reducing reliance on expensive depth cameras.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024078547_04092025_PF_FP_ABST
    Figure CN2024078547_04092025_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of present disclosure provide a method, an apparatus, an electronic device, a computer-readable storage device, and a computer program product for calibrating a position of an object. The method comprises controlling, based on data from a force sensor associated with a robot, the robot to move along a direction from a first position to a second position. The method further comprises determining a distance from the first position to the second position. The method further comprises calibrating the position of the object based on the determined distance. In this way, a depth camera can be replaced by the force sensor when calibrating the position of the object and further the path to obtain the object, so that the cost can be saved and the position can be calibrated more accurately. Further, the computing overhead using the force sensor can also be reduced compared to using the depth camera.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD, APPARATUS, DEVICE, MEDIUM AND PRODUCT FOR CALIBRATING POSITION OF OBJECTFIELD

[0001] Embodiments of the present disclosure generally relate to the field of computer technology and in particular, to a method, an apparatus, an electronic device, a computer-readable medium and a computer program product for calibrating a position of an object.BACKGROUND

[0002] A robot is an intelligent machine that can work semi-autonomously or fully autonomously. Robots can perform tasks such as operations or movements through programming and automatic control. Robots have basic characteristics such as perception, decision-making, and execution, and can assist or even replace human beings in performing dangerous, heavy, and complex tasks, improving work efficiency and quality, serving human life, and expanding or extending human activities and capabilities. For a robot mounted on a mobile platform, it is necessary to calibrate objects to be moved and environmental information in advance and then the robot can work in the actual field.SUMMARY

[0003] In general, various example embodiments of the present disclosure provide a method, an apparatus, an electronic device, a computer-readable storage device, and a computer program product for calibrating a position of an object.

[0004] In a first aspect, it is provided a method for calibrating a position of an object. The method comprises controlling, based on data from a force sensor associated with a robot, the robot to move along a direction from a first position to a second position, wherein the first position is an original position where the robot is located, and wherein the second position is a position where the robot touches the object along the direction. The method further comprises determining a distance from the first position to the second position. The method further comprises calibrating the position of the object based on the determined distance.

[0005] In a second aspect, it is provided an apparatus for calibrating a position of an object. The apparatus comprises a controlling module configured to control, based on data from a force sensor associated with a robot, the robot to move along a direction from a first position to a second position, wherein the first position is an original position where the robot is located along the direction, and wherein the second position is a position where the robot touches the object along the direction. The apparatus further comprises a determining module configured to determine a distance from the first position to the second position. The apparatus further comprises a calibrating module configured to calibrate the position of the object based on the determined distance.

[0006] In a third aspect, it is provided an electronics device. The electronics device comprises a processor; and a memory coupled to the processor, wherein the memory has instructions stored therein, and the instructions, when executed by the processor, cause the device to execute actions of the first aspect.

[0007] In a forth aspect, it is provided a computer-readable medium. The computer-readable medium comprises instructions stored therein, which when executed by a processor, cause the processor to perform methods of the first aspect.

[0008] In a fifth aspect, it is provided a computer program product. The computer program product comprises instructions stored therein, which when executed by a processor, cause the processor to perform methods of the first aspect.

[0009] It is to be understood that the Summary 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 readily comprehensible through the description below.DESCRIPTION OF DRAWINGS

[0010] 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 example and in a non-limiting manner, wherein:

[0011] FIG. 1 illustrates a schematic diagram of an example environment in which a plurality of embodiments of the present disclosure can be implemented;

[0012] FIGS. 2A-2B illustrate example scenarios in which some embodiments of the present disclosure can be implemented;

[0013] FIG. 3 illustrates a flowchart of an example method for calibrating a position of an object in accordance with some embodiments of the present disclosure;

[0014] FIGS. 4-6 illustrate examples of calibrating a position of an object from Z direction using a robot with a camera in accordance with some embodiments of the present disclosure;

[0015] FIG. 7 illustrates another flowchart of an example method for calibrating a position of an object in accordance with some embodiments of the present disclosure;

[0016] FIG. 8 illustrates a block diagram of an example apparatus for calibrating a position of an object in accordance with some embodiments of the present disclosure; and

[0017] FIG. 9 illustrates a block diagram illustrating an electronic device in accordance with some embodiments of the present disclosure.

[0018] Throughout all the drawings, the same or similar reference numerals represent the same or similar elements.DETAILED DESCRIPTION OF EMBODIMENTS

[0019] Principles of the present disclosure will now be described with reference to several example embodiments shown in the drawings. Though example embodiments of the present disclosure are illustrated in the drawings, it is to be understood that the embodiments are described only to facilitate those skilled in the art in better understanding and thereby achieving the present disclosure, rather than to limit the scope of the disclosure in any manner.

[0020] The term comprises "or" includes "and" its variants are to be read as open terms that mean "includes, but is not limited to" . The term "or" is to be read as "and / or" unless the context clearly indicates otherwise. The term "based on" is to be read as "based at least in part on" . The term "being operable to" is to mean a function, an action,  a motion or a state can be achieved by an operation induced by a user or an external mechanism. The term "one embodiment" and "an embodiment" are to be read as "at least one embodiment" . The term "another embodiment" is to be read as "at least one other embodiment" . The terms "first" , "second" , and the like may refer to different or same objects. Other definitions, explicit and implicit, may be included below. A definition of a term is consistent throughout the description unless the context clearly indicates otherwise.

[0021] The functions or algorithms described herein may be implemented in software in one embodiment. The software may consist of computer executable instructions stored on computer readable media or computer readable storage device such as one or more non-transitory memories or other type of hardware-based storage devices, either local or networked. Further, such functions correspond to modules, which may be software, hardware, firmware or any combination thereof. Multiple functions may be performed in one or more modules as desired, and the embodiments described are merely examples. The software may be executed on a digital signal processor, ASIC, microprocessor, or other type of processor operating on a computer system, such as a personal computer, server or other computer system, turning such computer system into a specifically programmed machine.

[0022] The functionality can be configured to perform an operation using, for instance, software, hardware, firmware, or the like. For example, the phrase "configured to" can refer to a logic circuit structure of a hardware element that is to implement the associated functionality. The phrase "configured to" can also refer to a logic circuit structure of a hardware element that is to implement the coding design of associated functionality of firmware or software. The term "module" refers to a structural element that can be implemented using any suitable hardware (e.g., a processor, among others) , software (e.g., an application, among others) , firmware, or any combination of hardware, software, and firmware. The term "logic" encompasses any functionality for performing a task. For instance, each operation illustrated in the flowcharts corresponds to logic for performing that operation. An operation can be performed using, software, hardware, firmware, or the like. The terms, "component" , "system" , and the like may refer to computer-related entities, hardware, and software in execution, firmware, or combination thereof. A component may be a process running on a processor, an object, an executable, a program, a function, a subroutine, a computer, or a combination of  software and hardware. The term, "processor" may refer to a hardware component, such as a processing unit of a computer system.

[0023] The terms "a" or "an" as used herein, are defined as one or more than one. Also, the use of introductory phrases such as "at least one" and "one or more" in the claims should not be construed to imply that the introduction of another claim element by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim element to disclosures containing only one such element, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an" . The same holds true for the use of definite articles.

[0024] Furthermore, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computing device to implement the disclosed subject matter. Computer-readable storage media can include, but are not limited to, magnetic storage devices, e.g., hard disk, floppy disk, magnetic strips, optical disk, compact disk (CD) , digital versatile disk (DVD) , smart cards, flash memory devices, among others. In contrast, computer-readable media, i.e., not storage media, may additionally include communication media such as transmission media for wireless signals and the like.

[0025] As discussed above, to achieve the function of picking up or moving specified items. The related calibration methods use a 2D camera and a quick response (QR) code, or 2D camera and calibration picture method. Sometimes, the depth camera alone can be used algorithmically to obtain calibration information. However, the cost is expensive and the computing overhead is very large.

[0026] Therefore, the present disclosure proposed a solution for calibrating a position of an object. By implementing the proposed solution, a depth camera can be replaced by the force sensor when calibrating the position of the object and further the path to obtain the object, so that the cost can be saved and the position can be calibrated more accurately. Furthermore, the computing overhead using the force sensor can also be reduced compared to using the depth camera.

[0027] FIG. 1 illustrates a schematic diagram of an example environment 100 in which a plurality of embodiments of the present disclosure can be implemented. The example environment 100 is only illustrated and is not intended to suggest any  limitations as to scope of use or functionality of embodiments of the disclosure described herein.

[0028] As shown in FIG. 1, the example environment 100 comprises a robot 102 and a controller 104. An example of the controller 104 may be a server or a computer. Although the controller 104 is shown outside the robot 102, it may be a part of the robot 102. The controller 104 can control the robot 102 to pick up an object 108. For example, the robot 102 may use its end effector 106 (such as an arm, a hand or a claw) to grab the object 108.

[0029] The example environment 100 may further comprise a force sensor 118. The force sensor 118 may be mounted on the robot 102, or may be an independent sensor outside the robot 102. The force sensor 118 is used to determine that the end effector 106 of the robot 102 touches the object 108. For example, when the force sensor 118 measures a force greater than a threshold force, the force sensor 118 may send a message to the robot 102 or the controller 104 indicating that the object 108 has been detected, touched or contacted with. The force sensor 118 may also send the value of the measured force to the robot 102 or the controller 104. The robot 102 or the controller 104 may determine that whether the end effector 106 has detected, touched or contacted with the object 108.

[0030] Before the robot 102 works in the actual field, a calibration is needed. The calibration can help the robot 102 know the position of the object 108 and thus help the robot 102 or the controller 102 determine an accurate path to pick up the object 108. After picking up the object 108 and returning the object 108 for several times, the position of the object 108 may change. Therefore, another calibration may be needed.

[0031] Take a calibration for a Z direction 110 as an example, where the Z direction 110 represents a height direction, the object 108 has moved from the original position P1 to a different position P2. In the Z direction 110, the original distance from the end effector 106 to the object 108 is a distance 112. The robot 102 or the controller 104 may control the end effector 106 to move to touch the object 108 at its current position.

[0032] The robot 102 or the controller 104 may record the distance 114 (also referred to as the first distance) from its original positon (also referred to as the first position) to the object 108. The position at which the end effector 106 touches the object 108 is also referred to as the second position. Therefore, the difference distance 116 between the  distance 112 and distance 114 is the changed distance of the object 108 at the Z direction 110. The robot 102 or the controller 104 may use the difference distance 116 to calibrate the position of the object 108 and the path to pick up the object 108.

[0033] In some example embodiments, the example environment 100 may further comprise a vision sensor 120. The vision sensor 120 may be a 2D camera which can be used to detect the distance between the robot 102 (such as the end effector 106) and the object 108.

[0034] FIGS. 2A-2B illustrate example scenarios 200A and 200B in which some embodiments of the present disclosure can be implemented. A robot 202 in FIGS. 2A and 2B may correspond to the robot 102 in FIG. 1. An object 208 in FIGS. 2A and 2B may correspond to the object 108 in FIG. 1. Other components are not shown for the purpose of simplification.

[0035] As shown in FIG. 2A, which shows the original calibration scenario. The robot 202 may first move from the Z direction 210 to the object 208 at P0, and record the standard distance of the Z direction 210. The robot 202 may then move from X direction and Y direction (collectively referred as a the XY direction 212) to the object 208 at P0, and record the standard distances of the XY direction 210. The X direction may represent the length and the Y direction may represent the width. The robot 202 may record (220) these object standard data in XYZ directions as the original calibration.

[0036] Referring to FIG. 2B, which shows another calibration scenario when the object has moved the position P1. The difference 214 between P0 and P1 are beyond a tolerant error for the robot 202 to pick up the object 208. Thus, another calibration is needed. The robot 202 may first move from the Z direction 210 to the object 208 at P1, and record the distance of the Z direction 210. The robot 202 may then move from the XY direction 212 to the object 208 at P1, and record the distances of the XY direction 210. The robot 202 may record (222) these object changed standard data in XYZ directions as the changed calibration data. As such, the robot 202 can know an accurate position of the object 208 and can generate an updated path to pick up the object 208.

[0037] Reference is made to FIG. 3, which illustrates a flowchart of an example method 300 for calibrating a position of an object in accordance with some embodiments of the present disclosure. FIG. 3 will be described with reference to FIG.  1.

[0038] At 302, the robot 102 may be controlled, based on data from the force sensor 118 associated with the robot 102, to move along the direction 110 from the first position to the second position. The first position may be an original position where the robot 102 is located. The second position may be a position where the robot 102 touches the object 108 along the direction 110.

[0039] At 304, the robot 102 may determine the distance 112 from the first position to the second position. At 304, the robot 102 may calibrate the position of the object 108 based on the distance 112. It is to be understood that the robot 102 may control itself to perform the steps 302 to 306, or the controller 104 may control the robot to perform the steps 302 to 306.

[0040] In some example embodiments, the robot 102 may perform the similar steps 302 to 306 from other directions. As an example, the robot 102 may move along a second direction from a third position to a fourth position. The third position may be an original position where the robot is located. The fourth position may be a position where the robot touches the object along the second direction. The second direction may be perpendicular to the first direction. The robot 102 may determine a second distance from the third position to the fourth position. The robot 102 may calibrate the position of the object based on both the first distance and the second distance.

[0041] For example, if the direction 110 represents a height direction (Z direction) , then the robot 102 may perform the similar steps 302 to 306 from a length direction (X direction) . The Z direction and X direction are perpendicular to each other. They can be used to establish a coordinate system, where the X direction and Z direction may correspond to the x axis and z axis.

[0042] In some example embodiments, the robot 102 may move along a third direction from a fifth position to a sixth position. The fifth position may be an original position where the robot is located. The sixth position may be a position where the robot touches the object along the third direction. The third direction may be perpendicular to the first direction and the second direction. The robot 102 may determine a third distance from the fifth position to the sixth position. The robot 102 may calibrate the position of the object based on the first distance, the second distance the third distance.

[0043] For example, if the direction 110 represents a height direction (Z direction)  and the second direction represents a length direction (X direction) , then the robot 102 may perform the similar steps 302 to 306 from a width direction (Y direction) . The X direction, Y direction and Y direction are perpendicular to each other. They can be used to establish a coordinate system, where the X direction, Y direction and Y direction may correspond to the x axis, y axis and z axis. It is to be understood that the first, second, third directions are only examples, and the order of X, Y, Z directions are only examples without limitations.

[0044] In some example embodiments, if the force sensor 118 detects or measures a force which is greater than a threshold force, it means that the robot 102 (specifically the end effector 106) has touches the object 108. Then, the robot 102 may stop at this position, and mark this position as the second position, the fourth position or the sixth position.

[0045] In some example embodiments, the robot 102 may determine the first distance for a plurality of times, and determine an average first distance. In some example embodiments, the robot 102 may determine the second distance for a plurality of times, and determine an average second distance. In some example embodiments, the robot 102 may determine the third distance for a plurality of times, and determine an average third distance.

[0046] In some example embodiments, the robot 102 may determine a coordinate system based on the first direction, the second direction, and the third direction. For example, using the first direction, the second direction, and the third direction as the x axis, y axis and z axis respectively. As an example, the origin point of the coordinate system may be the original position of the object 108. As another example, the origin point of the coordinate system may be the position of the robot 102 where the robot 102 starts to pick up the object 108. There may be other ways to determine the coordinate system, which will not be discussed herein.

[0047] In some example embodiments, the robot 102 may determine a coordinate of the object 108 in the coordinate system based on the average first distance, the average second distance and the average third distance. The robot 102 may calibrate the position of the object 108 based on the coordinate of the object 108.

[0048] In some example embodiments, the robot 102 may obtain an original coordinate of an original position of the object 108, and compare the coordinate of the  object 108 with the original coordinate of the object 108. The robot 102 may further determine a difference based on the comparison as an offset error, and calibrate the position of the object 108 based on the offset error.

[0049] As an example, the robot 102 may determine the distance 112 as the offset error. Next time when the robot plans to pick up the object 108, it may move, from the direction 110, the distance 114 (equal to the sum of the distance 112 and the distance 116) .

[0050] By implementing the embodiments of the method 300, a depth camera can be replaced by the force sensor when calibrating the position of the object and further the path to obtain the object, so that the cost can be saved and the position can be calibrated more accurately. The computing overhead using the force sensor can also be reduced compared to using the depth camera.

[0051] In some example embodiments, the second distance and the third distance may be determined based on a camera. The camera may comprise a 2D camera. The examples of these will be described with reference to FIGS. 4-6. FIGS. 4-6 illustrate examples 400, 500 and 600 of calibrating a position of an object from Z direction using a robot with a camera in accordance with some embodiments of the present disclosure.

[0052] As is known, 2D cameras do not get the height information to be calibrated directly (Z-axis) , although it can be solved by adding additional calibration images, it will introduce more errors and calibration process time. It is not possible to solve the situation that the calibration information is incorrect due to the displacement of the calibrated item in the actual scene. Although depth cameras can solve the above problems to a certain extent, they will bring higher costs. Thus, the present solution uses a combination of a 2D camera and a force sensor.

[0053] As shown in FIG. 4, a QR code 430 is attached to the object 408. The robot 402 has a camera. At the first calibration, the robot 402 may take a photo from a bird eye view. The first photo is shown as photo 502 in FIG. 5. In the photo 502, the QR code 530 is in the left corner.

[0054] If the object 408 moves greatly, a second calibration will be done. At the second calibration, the robot 402 may take a second photo from a bird eye view at the same. However, because the position of the object changed, so the view of the second photo may be changed accordingly. For example, this case is shown in a photo 504. In  the photo 504, the QR code 530 is moved to the right corner, and can be represented by reference number 532.

[0055] As shown in FIG. 5, since the robot 602 (corresponds to the robot 402 in FIG. 4) has a camera, so it can detect the changed distance in the X direction and Y direction. For the Z direction, the changed distance may still be determined using a force sensor. For example, the changed distance between the robot 602 and the object 608 is changed from the distance 620 to a distance 630. This changed distance between the robot 602 and the object 608 can be determined based on the force sensor.

[0056] FIG. 7 illustrates another flowchart of an example method 700 for calibrating a position of an object in accordance with some embodiments of the present disclosure. At 702, the robot 102 may record the standard position data for each object. At 704, the positions of some objects may be changed. Thus, a further calibration may be needed. At 706, during a calibration for a target object, the robot 102 may move to try to detect the contact with the target object using its respective original path from the X direction, Y direction or the Z direction. For the purpose of simplification, the following example will be focused on the Z direction.

[0057] For the Z direction, at 708, if the robot 102 does not touch the object 108 within a predetermined movement range along the Z direction, the method may continue to 712. At 712, the robot 102 may continue to search in the Z direction by trying to touch the object 108 along X direction and / or Y direction. At 714, the robot 102 may touch the object 108 and may determine the moved distance for touching the object 108. At 716, the robot 102 may record the moved distance as the calibration data for the X direction and / or the Y direction.

[0058] At 708, if the robot 102 touches the object 108, the method 700 may continue to 710. At 710, the robot 102 may determine that the position of the object 108 in the Z direction does not change. At 718, after the calibration for the all the three directions, the robot 102 may output the calibration data for the final position of the object 108. For example, the 102 may determine a distance of the movement as a compensation distance for the X or the Y direction. In some example embodiments, the robot 102 may update the first position based on the compensation distance, and the robot 102 may obtain the object 108 based on the updated position of the object 108.

[0059] By implementing the embodiments of the method 700, besides the  advantages aforementioned above, the calibration can be fully automated. Thus, the method 700 can be used in complex environment (such as laboratories, warehouses, etc. ) .

[0060] Reference is made to FIG. 8, which illustrates a block diagram of an example apparatus 800 for calibrating a position of an object in accordance with some embodiments of the present disclosure. The apparatus 800 comprises a controlling module 802 configured to control, based on data from a force sensor associated with a robot, the robot to move along a direction from a first position to a second position, wherein the first position is an original position where the robot is located, and wherein the second position is a position where the robot touches the object along the direction. The apparatus 800 further comprises a determining module 804 configured to determine a distance from the first position to the second position. The apparatus 800 further comprises a calibrating module 806 configured to calibrate the position of the object based on the determined distance.

[0061] In some example embodiments, the determined distance may be a first distance and the direction may be a first direction. The apparatus 800 may further comprise a module configured to control, based on the data from the force sensor, the robot to move along a second direction from a third position to a fourth position, wherein the third position is an original position where the robot is located, and the fourth position is a position where the robot touches the object along the second direction, and the second direction is perpendicular to the first direction; a module configured to determine a second distance from the third position to the fourth position; and a module configured to calibrate the position of the object based on both the first distance and the second distance.

[0062] In some example embodiments, the apparatus 800 may further comprise a module configured to control, based on the data from the force sensor, the robot to move along a third direction from a fifth position to a sixth position, wherein the fifth position is an original position where the robot is located, and the sixth position is a position where the robot touches the object along the third direction, and the third direction is perpendicular to the first direction and the second direction; a module configured to determine a third distance from the fifth position to the sixth position; and a module configured to calibrate the position of the object based on the first distance, the second distance the third distance.

[0063] In some example embodiments, the controlling module 802 may be further configured to determine that the robot touches the object in response to the force sensor detecting a force greater than a threshold, and control the robot to stop at the second position.

[0064] In some example embodiments, the apparatus 800 may further comprise a module configured to determine the first distance, the second distance and the third distance for multiple times; and a module configured to determine an average first distance, an average second distance and an average third distance.

[0065] In some example embodiments, the apparatus 800 may further comprise a module configured to determine a coordinate system based on the first direction, the second direction, and the third direction; and a module configured to determine a coordinate of the object in the coordinate system based on the average first distance, the average second distance and the average third distance.

[0066] In some example embodiments, the calibrating module 806 may further comprise a module configured to calibrate the position of the object based on the coordinate of the object.

[0067] In some example embodiments, the module configured to calibrate the position of the object based on the coordinate of the object may further comprise a module configured to obtain an original coordinate of an original position of the object; a module configured to compare the coordinate of the object with the original coordinate of the object; a module configured to determine a difference based on the comparison as an offset error; and a module configured to calibrate the position of the object based on the offset error.

[0068] In some example embodiments, the apparatus 800 may further comprise a module configured to determine a second distance and a third distance based on a 2D camera.

[0069] In some example embodiments, the apparatus 800 may further comprise a module configured to control the robot to move to touch the object along any of the second direction or the third direction; and a module configured to determine a distance of the movement as a compensation distance for the second direction or the third direction.

[0070] In some example embodiments, the apparatus 800 may further comprise a  module configured to update the first position based on the compensation distance; and a module configured to control the robot to obtain the object based on the updated position of the object.

[0071] By implementing the example embodiments of FIG. 8, a depth camera can be replaced by the force sensor when calibrating the position of the object and further the path to obtain the object, so that the cost can be saved and the position can be calibrated more accurately. The computing overhead using the force sensor can also be reduced compared to using the depth camera. In some example embodiments, the calibration can be fully automated and can be used in complex environment.

[0072] FIG. 9 illustrates a block diagram illustrating an electronic device 900 in accordance with some embodiments of the present disclosure. As indicated, the device 900 includes a central processing unit (CPU) 901, which can execute various appropriate actions and processing based on the computer program instructions stored in a read-only memory (ROM) 902 or the computer program instructions loaded into a random access memory (RAM) 903 from a storage unit 908. The RAM 903 also stores all kinds of programs and data required by operating the electronic device 900. CPU 901, ROM 902 and RAM 903 are connected to each other via a bus 904, to which an input / output (I / O) interface 905 is also connected.

[0073] A plurality of components in the device 900 are connected to the I / O interface 905, comprising: an input unit 906, such as a keyboard, a mouse and the like; an output unit 907, such as various types of displays, loudspeakers and the like; a storage unit 908, such as a storage disk, an optical disk and the like; and a communication unit 909, such as a network card, a modem, a wireless communication transceiver and the like. The communication unit 909 allows the device 900 to exchange information / data with other devices through computer networks such as Internet and / or various telecommunication networks.

[0074] Each procedure and processing described above, such as the method 300 and the method 700, can be executed by a processing unit 901. For example, in some embodiments, the method 300 and the method 700 can be implemented as computer software programs, which are tangibly included in a machine-readable medium, such as a storage unit 908. In some embodiments, the computer program can be partially or completely loaded and / or installed to the device 900 via the ROM 902 and / or the  communication unit 909. When the computer program is loaded to the RAM 903 and executed by the CPU 901, one or more steps of the above described method 300 and the method 700 are implemented. Alternatively, in other embodiments, the CPU 901 may also be configured in any proper manner to implement the above process / method.

[0075] The present disclosure may be a method, a device, a system and / or a computer program product. The computer program product can include a computer-readable storage medium loaded with computer-readable program instructions thereon for executing various aspects of the present disclosure.

[0076] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (a non-exhaustive list) of the computer readable storage medium would include: 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) , a static random access memory (SRAM) , a portable compact disc read-only memory (CD-ROM) , a digital versatile disk (DVD) , a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination thereof. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable) , or electrical signals transmitted through a wire.

[0077] Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium, or downloaded to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the  network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.

[0078] Computer readable program instructions for carrying out operations of the present disclosure may be assembly instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) . In some embodiments, by means of state information of the computer readable program instructions, an electronic circuitry including, for example, programmable logic circuitry (PLC) , field-programmable gate arrays (FPGA) , or programmable logic arrays (PLA) can be personalized to execute the computer readable program instructions, thereby implementing various aspects of the present disclosure.

[0079] Aspects of the present disclosure are described herein with reference to flowchart and / or block diagrams of methods, apparatus (systems) , and computer program products according to embodiments of the present disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.

[0080] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which are executed via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These  computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function / act specified in the flowchart and / or block diagram block or blocks.

[0081] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which are executed on the computer, other programmable apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0082] The flowchart and block diagrams illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, snippet, or portion of codes, which comprises one or more executable instructions for implementing the specified logical function (s) . In some alternative implementations, the functions noted in the block may be implemented in an order different from those illustrated in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustration, and combinations of blocks in the block diagrams and / or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or by combinations of special purpose hardware and computer instructions.

[0083] 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. Conversely, 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.

[0084] A person of ordinary skill in the art may be aware that, in combination with the examples described in the embodiments disclosed in this specification, units and algorithm steps can be implemented by electronic hardware or a combination of computer software and electronic hardware. Whether the functions are performed by hardware or software depends on particular applications and design constraints of the technical solutions. A person skilled in the art may use different methods to implement the described functions for each particular application, but it should not be considered that the implementation goes beyond the scope of this application.

[0085] It may be clearly understood by a person skilled in the art that, for the purpose of convenient and brief description, for a detailed working process of the foregoing system, apparatus, and unit, refer to a corresponding process in the foregoing method embodiment. Details are not described herein again.

[0086] In the several embodiments provided in this application, it should be understood that the disclosed system, apparatus, and method may be implemented in other manners. For example, the described apparatus embodiment is merely an example. For example, the unit division is merely logical function division and may be other division in actual implementation. For example, a plurality of units or components may be combined or integrated into another system, or some features may be ignored or not performed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections may be implemented through some interfaces. The indirect couplings or communication connections between the apparatuses or units may be implemented in electronic, mechanical, or other forms.

[0087] The units described as separate parts may be or may not be physically separate, and parts displayed as units may be or may not be physical units, may be located in one position, or may be distributed on a plurality of network units. Some or all of the units may be selected based on actual requirements to achieve the objectives  of the solutions of the embodiments.

[0088] In addition, functional units in the embodiments of this application may be integrated into one processing unit, or each of the units may exist alone physically, or two or more units are integrated into one unit.

[0089] When the functions are implemented in a form of a software functional unit and sold or used as an independent product, the functions may be stored in a computer readable storage medium. Based on such an understanding, the technical solutions in this application essentially, or the part contributing to the prior art, or some of the technical solutions may be implemented in a form of a software product. The computer software product is stored in a storage medium, and includes several instructions for instructing a computer device (which may be a personal computer, a server, a network device, or the like) to perform all or some of the steps of the methods described in the embodiments of this application. The foregoing storage medium includes: any medium that can store program code, such as a USB flash drive, a removable hard disk, a read-only memory (Read-Only Memory, ROM) , a random access memory (Random Access Memory, RAM) , a magnetic disk, or an optical disc.

[0090] The foregoing descriptions are merely specific implementations of this application, but are not intended to limit the protection scope of this application. Any variation or replacement readily figured out by a person skilled in the art within the technical scope disclosed in this application shall fall within the protection scope of this application. Therefore, the protection scope of this application shall be subject to the protection scope of the claims.

Claims

1.A method for calibrating a position of an object, comprising:controlling, based on data from a force sensor associated with a robot, the robot to move along a direction from a first position to a second position, wherein the first position is an original position where the robot is located, and wherein the second position is a position where the robot touches the object along the direction;determining a distance from the first position to the second position; andcalibrating the position of the object based on the determined distance.2.The method of claim 1, wherein the determined distance is a first distance and the direction is a first direction, and the method further comprises:controlling, based on the data from the force sensor, the robot to move along a second direction from a third position to a fourth position, wherein the third position is an original position where the robot is located, and the fourth position is a position where the robot touches the object along the second direction, and the second direction is perpendicular to the first direction;determining a second distance from the third position to the fourth position; andcalibrating the position of the object based on both the first distance and the second distance.3.The method of claim 2, further comprising:controlling, based on the data from the force sensor, the robot to move along a third direction from a fifth position to a sixth position, wherein the fifth position is an original position where the robot is located along the third direction, and the sixth position is a position where the robot touches the object, and the third direction is perpendicular to the first direction and the second direction;determining a third distance from the fifth position to the sixth position; andcalibrating the position of the object based on the first distance, the second distance the third distance.4.The method of claim 3, wherein controlling, based on the data from the force sensor, the robot to move along the first direction from the first position to the second position comprises:in response to the force sensor detecting a force greater than a threshold, determining that the robot touches the object; andcontrolling the robot to stop at the second position.5.The method of claim 3, further comprising:determining the first distance, the second distance and the third distance for multiple times; anddetermining an average first distance, an average second distance and an average third distance.6.The method of claim 5, further comprising:determining a coordinate system based on the first direction, the second direction, and the third direction; anddetermining a coordinate of the object in the coordinate system based on the average first distance, the average second distance and the average third distance.7.The method of claim 6, wherein calibrating the position of the object further comprises calibrating the position of the object based on the coordinate of the object.8.The method of claim 7, wherein calibrating the position of the object based on the coordinate of the object comprising:obtaining an original coordinate of an original position of the object;comparing the coordinate of the object with the original coordinate of the object;determining a difference based on the comparison as an offset error; andcalibrating the position of the object based on the offset error.9.The method of claim 1, further comprising:determining a second distance and a third distance based on a two dimensional (2D) camera.10.The method of claim 3, further comprising:in response to a determination that the robot is unable to touch the object within a predetermined movement range along the first direction, controlling the robot to move to touch the object along any of the second direction or the third direction; anddetermining a distance of the movement as a compensation distance for the second direction or the third direction.11.The method of claim 10, further comprising:updating the first position based on the compensation distance; andcontrolling the robot to obtain the object based on the updated position of the object.12.An apparatus for calibrating a position of an object, comprising:a controlling module configured to control, based on data from a force sensor associated with a robot, the robot to move along a direction from a first position to a second position, wherein the first position is an original position where the robot is located, and wherein the second position is a position where the robot touches the object along the direction;a determining module configured to determine a distance from the first position to the second position; anda calibrating module configured to calibrate the position of the object based on the determined distance.13.An electronic device, comprising:a processor; anda memory coupled to the processor, wherein the memory has instructions stored therein, and the instructions, when executed by the processor, cause the device to execute actions of any of claims 1-11.14.A computer-readable medium having instructions stored therein, which when  executed by a processor, cause the processor to perform a method of any of claims 1-11.15.A computer program product having instructions stored therein, which when executed by a processor, cause the processor to perform a method of any of claims 1-11.

Citation Information

Patent Citations

  • Robot range finding calibration method and device, robot, and medium

    CN109932726A

  • Robot system, calibration method, and method for producing to-be-processed material

    US20140277715A1

  • Systems and methods for robot motion control and improved positional accuracy

    US20170261993A1

  • Safety control system for an industrial robot and the industrial robot

    US20190381666A1

  • Method and electronic device, system and computer readable medium for calibration

    US20230045651A1