Method, apparatus, and computer readable medium for use with robot

By receiving the force on the industrial robot man -sensor, determine the first vector and the second vector, and calculate the transformation relationship between the two, solve the problem of the user that the user needs to manually computing the power sensor and the position of the robot's arm. The effect of simplifying operations and improving calculation efficiency.

CN119365298APending Publication Date: 2025-01-24ABB (SCHWEIZ) AG
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280097126.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-06-24
Publication Date
2025-01-24

AI Technical Summary

Technical Problem

In the field of industrial robots, users need to manually calculate the positional relationship between the force sensor and the end of the robot arm, which is complex and time-consuming for new users, especially when the installation position of the force sensor changes.

Method used

By receiving the force applied to the force sensor, the first vector and the second vector are determined, and a transformation relationship between the two is calculated, thereby determining the positional relationship between the force sensor and the end of the robot arm. This method does not require the user to understand complex coordinate transformation calculations, and only needs to apply force through the application to automatically complete the calculation.

Benefits of technology

Simplified user operations, reduced calculation complexity, improved user experience and calculation efficiency, so that more users can manipulate industrial robots, whether they understand the complex computing process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119365298A_ABST
    Figure CN119365298A_ABST
Patent Text Reader

Abstract

A method (200) for use with a robot (10), the robot (10) comprising at least one arm (14), the method (200) comprising: receiving a force applied to a force sensor (16) attached at an end of the arm (14); determining a first vector from the force sensor (16); determining a second vector based on a torque of a joint (15) of the robot (10), the joint (15) being coupled to the arm (14); and determining a transformation relationship between the first vector and the second vector. An apparatus (300) and a computer readable medium for use with the robot (10) are also provided.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Example embodiments of the present disclosure relate generally to the field of industrial robots, and more particularly, to a method, apparatus, and computer-readable medium for determining a positional relationship between a force sensor attached to an industrial robot and an end of an arm of the industrial robot. Background Art

[0002] Robots can be used in various fields. For example, robots can be controlled to assist in carrying workpieces. For a certain robot, the user expects that it can be dragged to a predetermined position. For this reason, a force sensor can be an option to assist in the movement of the robot. In particular, the force sensor can be installed at the end of the robot arm. If the user wants to move the robot to the desired position, he or she can operate an application used with the robot. After the user inputs the desired position through the application, the control cabinet connected to the robot will communicate with the force sensor and actuate the robot's arm according to the input to achieve such movement.

[0003] In conventional methods, in order to allow the application to accurately control the movement of the robot's arm, the user must know the positional relationship between the force sensor and the end of the robot's arm. This will be a huge problem for users, especially for new users who do not have much experience. Therefore, there is a need to improve the method of determining such a positional relationship. Summary of the invention

[0004] Example embodiments of the present disclosure propose solutions to at least solve problems and / or potential problems in the prior art.

[0005] In a first aspect, an example embodiment of the present disclosure is directed to a method for use with a robot. The robot includes at least one arm, the method including: receiving a force applied to a force sensor attached to an end of the arm; determining a first vector from the force sensor; determining a second vector based on a torque of a joint of the robot, the joint being coupled to the arm; and determining a transformation relationship between the first vector and the second vector.

[0006] According to an exemplary embodiment of the present disclosure, a user can use a computer to automatically determine the transformation relationship. Therefore, regardless of whether the user knows how to calculate this relationship, the robot can be operated by more users.

[0007] In some example embodiments, the method further includes: issuing a first message to request the user to apply force to the force sensor. For these example embodiments, in order to determine the positional relationship between the force sensor and the end of the arm, the user only needs to apply force according to the message without knowing the coordinate transformation between the force sensor and the end of the robot arm.

[0008] In some example embodiments, determining the second vector includes: determining the second vector further based on a relative offset of coordinates between the end of the arm and the force sensor. For these example embodiments, the transformation relationship between the first vector and the second vector only includes a rotation relationship, which will facilitate calculations.

[0009] In some example embodiments, the first vector and the second vector each have three components; and wherein determining the transformation relationship comprises determining a matrix having four components, wherein the first component is calculated based on a dot product and a length of the first vector and the second vector; and wherein the second component, the third component, and the fourth component are calculated based on a cross product of the first vector and the second vector. For these example embodiments, a quaternion method with fast computational efficiency may be used.

[0010] In some example embodiments, the first vector and the second vector are unit vectors. For these example embodiments, the transformation relationship can be calculated in an efficient manner.

[0011] In a second aspect, an example embodiment of the present disclosure is directed to an apparatus for use with a robot. The robot includes at least one arm, and the apparatus includes: a force receiving module configured to receive a force applied to a force sensor attached to an end of the arm; a first vector determining module configured to determine a first vector from the force sensor; a second vector determining module configured to determine a second vector based on a torque of a joint of the robot, the joint being coupled to the arm; and a relationship determining module configured to determine a transformation relationship between the first vector and the second vector.

[0012] In some example embodiments, the apparatus further comprises: a message publishing module configured to publish a first message to request a user to apply a force to the force sensor.

[0013] In some example embodiments, the second vector determination module is further configured to determine the second vector further based on a relative offset of coordinates between the end of the arm and the force sensor.

[0014] In some example embodiments, the first vector and the second vector each have three components; and wherein determining the transformation relationship includes determining a matrix having four components, wherein the first component is calculated based on a dot product and a length of the first vector and the second vector; and wherein the second component, the third component, and the fourth component are calculated based on a cross product of the first vector and the second vector.

[0015] In some example embodiments, the first vector and the second vector are unit vectors.

[0016] In a third aspect, example embodiments of the present disclosure relate to a computer readable medium having stored thereon a computer program comprising codes adapted to execute the method in the first aspect.

[0017] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the disclosure, nor is it intended to be used to limit the scope of the embodiments of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] The above and other objects, features and advantages of the present disclosure will become more apparent through the following detailed description of exemplary embodiments of the present disclosure with reference to the accompanying drawings. In the accompanying drawings, several embodiments of the present disclosure are explained by way of example in a non-limiting manner, in which:

[0019] Figure 1 illustrates an example system in which example embodiments of the present disclosure may be implemented;

[0020] Figure 2 A flowchart illustrating a method according to an example embodiment of the present disclosure; and

[0021] Figure 3 is a schematic block diagram illustrating an apparatus that can be used to implement an embodiment of the present disclosure. DETAILED DESCRIPTION

[0022] The principles of the present disclosure will now be described with reference to the various example embodiments illustrated in the accompanying drawings. It should be understood that the description of those embodiments is only to allow those skilled in the art to better understand and further implement the example embodiments disclosed herein, and is not intended to limit the scope disclosed herein in any way. It should be noted that when feasible, similar or identical reference numerals may be used in the accompanying drawings, and similar or identical reference numerals may represent similar or identical functions. Those skilled in the art can easily recognize that alternative embodiments of the structures and methods described herein can be adopted from the following description without departing from the principles of the present disclosure described herein.

[0023] As used herein, the term "including" and its variations will be interpreted as open-ended terms meaning "including but not limited to". The term "based on" will be interpreted as "based at least in part on". The terms "one embodiment" and "embodiment" will be interpreted as "at least one embodiment". The term "another embodiment" will be interpreted as "at least another embodiment". The terms "first", "second", etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below. Unless the context indicates otherwise, the definitions of these terms are consistent throughout this description.

[0024] As mentioned above, in the conventional method of determining the spatial relationship between the force sensor and the end of the robot's arm, the user must figure out the relationship by himself. The calculation of the spatial relationship will be complicated for some users, especially novice users. What's worse, if the installation position of the force sensor changes, the relationship should be calculated again and again, which adds a great burden to the user. Therefore, the scope of use of the conventional method will be very limited.

[0025] In general, embodiments will be described herein in the context of industrial robots. It will be understood that industrial robots will not be limited herein. It will be envisioned by those skilled in the art that the embodiments described herein may also be used in various types of industrial robots, such as industrial robots that perform welding operations on workpieces, industrial robots that perform machining operations, or industrial robots that perform drilling operations on workpieces, etc. It will be understood that the embodiments described herein may also be used in other known or future developed situations not listed herein. Hereinafter, industrial robots may be referred to as robots.

[0026] At least to address the problems in the conventional methods, the present disclosure proposes a solution that allows the spatial relationship between the force sensor and the end of the robot's arm to be calculated automatically and efficiently. The solution according to the present disclosure will not require the user to calculate the spatial relationship, but will complete the calculation for them. Figure 1-3 Example embodiments are described in further detail.

[0027] Figure 1 An exemplary robot 10 in which an example embodiment of the present disclosure may be implemented is illustrated. The robot 10 as illustrated may be a multi-axis robot that includes one or more arms 14 coupled to a base 12. The arm 14 is actuated to perform specific actions based on instructions from a user interface (not shown) coupled to the robot 10. The user interface facilitates operation by a user and interaction between the user and the robot 10. A workpiece to be processed (not shown) may be attached to the end of the arm 14. The workpiece may be actuated by the arm 14 to any desired position. For example, the arm 14 of the robot 10 may be controlled to perform a predetermined operation on a workpiece on a conveyor belt (not shown).

[0028] As illustrated, the force sensor 16 may be attached to the end of the arm 14 at another place other than the workpiece. The force sensor 16 is an element for sensing the force applied to the arm 14. Generally speaking, the force sensor 16 is a device for converting a force value into a related electrical signal, which can be output and measured. In some example embodiments, the force sensor 16 may be of a three-dimensional type, that is, the force sensor 16 can be used to sense force in three dimensions. When the force changes, the electrical signal changes accordingly, and thus measurements can be made to calculate the force value. It will be understood that the working principle of the force sensor 16 is merely illustrative and non-restrictive in this regard. Depending on the actual needs of the scene, the type of the force sensor 16 can be changed accordingly.

[0029] Figure 2 A flow chart of a method 200 according to an example embodiment of the present disclosure is illustrated. The method 200 may be implemented by a controller connected to the robot 10.

[0030] At block 202, a force is applied to the force sensor 16 of the robot 10. The force may be applied from a user. In some example embodiments, the controller may be configured to issue a first message to request the user to apply such a force to the force sensor 16. The user may apply the force in any direction. The magnitude of the force is not limited and may be determined by the user as long as such magnitude does not exceed the maximum force limit that the sensor can withstand. It should be understood that even if a force is applied to the force sensor 16, the force will not cause the robot 10 to move. That is, the robot 10 remains stationary under the applied force.

[0031] At block 204, a first vector is determined from the force sensor 16 The force sensor 16 may include a configuration page on which the magnitude and direction of the applied force may be obtained. Can be used to indicate the magnitude and direction of the force applied to the force sensor 16. In some example embodiments, the first vector It may include three components, for example, The proportional relationship between the components a1, b1, c1 indicates the direction of the force, and the values ​​of the components a1, b1, c1 indicate the magnitude of the applied force. In some further example embodiments, the values ​​of the applied force may be displayed on a screen connected to the robot 10, and the user should pay attention to whether these values ​​exceed the force range of the force sensor 16. In further example embodiments, the controller may monitor the value of the applied force. If the value of the force is greater than the maximum force limit value of the force sensor 16, the controller may issue an alarm to request the user to apply a smaller force that the force sensor 16 can withstand. It should be understood that when determining the first vector , the robot 10 remains stationary.

[0032] At block 206, a second vector is determined based on the torque of the joint 15 of the robot 10. In some example embodiments, the second vector may be calculated based on data collected from the torque values ​​from the joints and the weight and length of the arm 14 of the robot 10. In some example embodiments, a second vector may also be calculated based on the relative offset of the coordinates between the end of the arm 14 and the force sensor 16. In some example embodiments, the second vector It can also include three components, such as The second vector may be determined using any existing method or method to be developed in the future. It should also be understood that when determining the second vector , the robot 10 remains stationary.

[0033] At block 208, a first vector is determined. With the second vector As discussed above, the first vector With the second vector is calculated from two different paths to reflect the magnitude and direction of the force applied to the force sensor 16, and can be obtained by obtaining the first vector With the second vector The positional relationship between the force sensor and the end of the arm 14 of the robot 10 is determined by the transformation relationship between them. If the second vector is calculated based on the relative offset of the coordinates between the end of the arm 14 and the force sensor 16 Then the second vector is calculated as a vector having an origin defined at the force sensor 16. Thus, the first vector With the second vector The transformation relationship between them only includes the rotation relationship, which will be convenient for calculation.

[0034] There are various methods that users can use to calculate the first vector With the second vector In some example embodiments, the user may use quaternions to calculate this transformation relationship. In further example embodiments, the user may use a rotational torque matrix to calculate the transformation relationship. It should be understood that the methods mentioned here are only illustrative and not restrictive. Other methods, such as Euler angles, may be used depending on the complexity of the calculation.

[0035] The method of calculating the quaternion will be described in detail below. It will be understood that the steps described below are only one of the possible methods. The example calculation of the quaternion is about where the first vector and the second vector The quaternion q is described by a scenario in which each has three components. In this scenario, the quaternion q includes four components q1, q2, q3 and q4.

[0036] First, the first vector should be and the second vector Convert to unit vector and the second vector

[0037] Based on the first vector and the second vector The first component q1 is calculated by taking the dot product and length of . For example, the first component q1 can be calculated as follows:

[0038]

[0039] in Indicates the first vector length, and Indicates the second vector Length.

[0040] Next, the first vector can be calculated as follows and the second vector The second component q2, the third component q3, and the fourth component q4 are calculated by the cross product of:

[0041]

[0042] Finally, the quaternion q can be obtained by normalizing the matrix composed of the four components q1, q2, q3 and q4.

[0043] In another aspect, an example embodiment of the present disclosure is directed to an apparatus for use with a robot. The apparatus includes: a force receiving module configured to receive a force applied to a force sensor attached to an end of an arm; a first vector determining module configured to determine a first vector from the force sensor; a second vector determining module configured to determine a second vector based on a torque of a joint of the robot, the joint being coupled to the arm; and a relationship determining module configured to determine a transformation relationship between the first vector and the second vector.

[0044] In some example embodiments, the apparatus further comprises a message publishing module configured to publish a first message to request a user to apply a force to the force sensor.

[0045] In some example embodiments, the second vector determination module is further configured to determine the second vector further based on a relative offset of coordinates between the end of the arm and the force sensor.

[0046] In some example embodiments, the first vector and the second vector each have three components; and wherein determining the transformation relationship includes determining a matrix having four components, wherein the first component is calculated based on a dot product and a length of the first vector and the second vector; and wherein the second component, the third component, and the fourth component are calculated based on a cross product of the first vector and the second vector.

[0047] In some example embodiments, the first vector and the second vector are unit vectors.

[0048] In a further aspect, an example embodiment of the present disclosure relates to a computer-readable medium having stored thereon a computer program comprising codes adapted to execute the method described above.

[0049] Compared to conventional methods, the exemplary embodiments according to the present disclosure do not require the user to have professional skills in calculating the positional relationship between the force sensor and the end of the arm 14 of the robot 10. The user only needs to apply force to the force sensor 16. All calculations are automatically implemented by the controller connected to the robot 10, which not only improves the user experience but also improves the calculation efficiency.

[0050] Figure 3 300 is a schematic diagram illustrating an apparatus 300 that can be used to implement an embodiment of the present disclosure. As illustrated, the apparatus 300 includes a central processing unit (CPU) 301, which can perform various appropriate actions and processes based on computer program instructions stored in a read-only memory (ROM) 302 or loaded from a storage unit 308 into a random access memory (RAM) 303. RAM 303 also stores all kinds of programs and data required to operate the storage apparatus 300. CPU 301, ROM 302, and RAM 303 are connected to each other via a bus 304, and an input / output (I / O) interface 305 is also connected to the bus.

[0051] A number of components in the device 300 are connected to the I / O interface 305, including: an input unit 306, such as a keyboard, a mouse, etc.; an output unit 307, such as various types of displays, speakers, etc.; a storage unit 308, such as a disk, an optical disk, etc.; and a communication unit 309, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 309 allows the device 300 to exchange information / data with other devices through a computer network (such as the Internet and / or various telecommunication networks).

[0052] Each of the programs and processes described above may be executed by the processing unit 301. For example, in some embodiments, the method may be implemented as a computer software program that is tangibly included in a machine-readable medium (such as, storage unit 308). In some embodiments, the computer program may be partially or completely loaded and / or installed to the device 300 via the ROM 302 and / or the communication unit 309. When the computer program is loaded into the RAM 303 and executed by the CPU 301, one or more steps of the method 200 described above are implemented.

[0053] In some embodiments, the method 200 described above may be implemented as a computer program product. The computer program product may include a computer-readable storage medium loaded with computer-readable program instructions for executing various aspects of the present disclosure.

[0054] A computer-readable storage medium may be a tangible device capable of holding and storing instructions used by an instruction execution device. A computer-readable storage medium may be, but is not limited to, for example, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any random suitable combination thereof. More specific examples (non-exhaustive list) of computer-readable storage media include: a portable computer disk, 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 disc (DVD), a memory stick, a floppy disk, a mechanical encoding device (such as a punch card or a protrusion in a groove storing instructions) and any random suitable combination thereof. The computer-readable storage medium used herein should not be interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (such as a light pulse transmitted by a fiber optic cable), or an electrical signal transmitted by a wire.

[0055] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to various computing / processing devices, or downloaded to an external computer or external storage device via the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical fiber transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards these computer-readable program instructions for storage in the computer-readable storage medium of each computing / processing device.

[0056] The computer program instructions for performing the operation of the present disclosure can be assembly instructions, instructions of instruction set architecture (ISA), machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written by any combination of one or more programming languages ​​(including object-oriented programming languages ​​and conventional process programming languages). Computer-readable program instructions can be executed in whole or in part on a user's computer, or executed as an independent software package, or partially executed on a user's computer and partially executed on a remote computer, or all executed on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer by any type of network (including a local area network (LAN) or a wide area network (WAN)), or connected to an external computer (such as, via the Internet provided by an Internet service provider). In certain embodiments, electronic circuits are customized by using the state information of computer-readable program instructions. For example, electronic circuits can be programmable logic circuits, field programmable gate arrays (FPGAs) or programmable logic arrays (PLAs). Electronic circuits can execute computer-readable program instructions to implement various aspects of the present disclosure.

[0057] Computer-readable program instructions may be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device to generate a machine, thereby causing these instructions to generate a device for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram when executed by the processing unit of the computer or other programmable data processing device. Computer-readable program instructions may also be stored in a computer-readable storage medium. These instructions enable the computer, programmable data processing device, and / or other device to operate in a specific manner, so that the computer-readable medium storing the instructions may include an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0058] Computer readable program instructions may also be loaded into a computer, other programmable data processing device or other device to perform a series of operation steps on the computer, other programmable data processing device or other device to generate a computer-implemented process. Therefore, the instructions executed on the computer, other programmable data processing device or other device can implement the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0059] Attached flow chart and block diagram present the possible architecture, function and operation realized by the system, method and computer program product according to multiple embodiments of the present disclosure.At this moment, each block in flow chart or block diagram can represent a part of module, program segment or instruction.This part of module, program segment or instruction includes one or more executable instructions for implementing the specified logical function.In some alternative embodiments, the function indicated in the block also can occur in an order different from the order represented in the accompanying drawings.For example, two continuous blocks can actually be executed in parallel, and sometimes they also can be executed in reverse order depending on the function involved.It should also be noted that each block and any combination of blocks thereof in block diagram and / or flow chart can be implemented by a system based on special-purpose hardware or a combination of special-purpose hardware and computer instructions for implementing a specified function or action.

[0060] Various embodiments of the present disclosure have been described above, and the above explanations are illustrative rather than exhaustive and are not limited to the disclosed embodiments. Many changes and modifications will be apparent to those of ordinary skill in the art without departing from the scope and spirit of each explained embodiment. The choice of terms herein is intended to best explain the principles of each embodiment, technical improvements in practical applications or markets, or to enable those of ordinary skill in the art to understand each embodiment disclosed herein.

Claims

1. A method for use with a robot, the robot comprising at least one arm, the method comprising: receiving a force applied to a force sensor attached at an end of the arm; determining a first vector from the force sensor; determining a second vector based on a torque of a joint of the robot, the joint being coupled to the arm; as well as A transformation relationship between the first vector and the second vector is determined.

2. The method according to claim 1, further comprising: A first message is issued to request a user to apply a force to the force sensor.

3. The method according to any one of claims 1 to 2, Wherein determining the second vector comprises: The second vector is further determined based on a relative offset of coordinates between the end of the arm and the force sensor.

4. The method according to any one of claims 1 to 3, wherein The first vector and the second vector each have three components; and Wherein determining the transformation relationship comprises determining a matrix having four components, Wherein the first component is calculated based on the dot product and length of the first vector and the second vector; and wherein the second component, the third component and the fourth component are calculated based on the cross product of the first vector and the second vector. The method of claim 4 , wherein the first vector and the second vector are unit vectors.

6. An apparatus for use with a robot, the robot comprising at least one arm, the apparatus comprising: a force receiving module configured to receive a force applied to a force sensor attached at an end of the arm; a first vector determination module configured to determine a first vector from the force sensor; a second vector determination module configured to determine a second vector based on a torque of a joint of the robot, the joint being coupled to the arm; as well as A relationship determination module is configured to determine a transformation relationship between the first vector and the second vector.

7. The apparatus according to claim 5, further comprising: A message publishing module is configured to publish a first message to request a user to apply a force to the force sensor.

8. The device according to any one of claims 6 to 7, The second vector determination module is further configured to determine the second vector further based on a relative offset of coordinates between the end of the arm and the force sensor.

9. The device according to any one of claims 6 to 8, wherein The first vector and the second vector each have three components; and Wherein determining the transformation relationship comprises determining a matrix having four components, Wherein the first component is calculated based on the dot product and length of the first vector and the second vector; and wherein the component, the third component, and the fourth component are calculated based on the cross product of the first vector and the second vector.

10. The apparatus of claim 9, wherein the first vector and the second vector are unit vectors.

11. A computer readable medium having stored thereon a computer program comprising codes adapted to execute the method according to any one of claims 1 to 5.