Method and apparatus for calibrating kinematic parameters of a robot
By acquiring the robot's end-effector displacement pairs and image information to construct error equations, the problem of dependence on expensive instruments is solved, achieving low-cost and efficient kinematic parameter calibration, and improving robot accuracy and ease of operation.
Patent Information
- Application Number
- CN202111340403.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-11-12
- Publication Date
- 2025-11-28
- Estimated Expiration
- 2041-11-12
AI Technical Summary
Existing robot calibration methods require expensive measuring instruments, resulting in high calibration costs and complex operations, making it difficult to achieve accurate kinematic parameter calibration while reducing costs.
By acquiring the actual and nominal displacement pairs of the robot end effector at different positions, and using the size and image information of the calibration object to construct error equations, the error values can be solved to calibrate the kinematic parameters without the need for expensive measuring instruments.
While reducing calibration costs, it achieves accurate calibration of robot kinematic parameters, improves calibration efficiency and accuracy, and simplifies the operation process.
Smart Images

Figure CN116117785B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of robot kinematics calibration technology, and more specifically, to a method and apparatus for calibrating the kinematic parameters of a robot. Background Technology
[0002] After a robot completes manufacturing and assembly, due to manufacturing and assembly errors, the actual values of its kinematic geometric parameters differ from the theoretical design values. When motion control is performed according to the theoretical geometric parameters, an error will occur between the robot's actual end-effector pose and the commanded pose. Identifying inaccurate geometric parameters through kinematic calibration and updating the robot's kinematic model parameters is a feasible method to ensure robot accuracy.
[0003] Current methods for robot calibration require expensive measuring instruments, resulting in high calibration costs. Therefore, how to achieve robot calibration while reducing calibration costs has become an urgent problem to be solved. Summary of the Invention
[0004] This application provides a method for robot calibration that can calibrate the kinematic parameters of a robot while reducing calibration costs.
[0005] In a first aspect, a method for calibrating the kinematic parameters of a robot is provided. The method includes: first, obtaining a displacement pair including a first displacement and a second displacement; then, determining an error value for calibrating the kinematic parameters of the robot based on the displacement pair.
[0006] The first displacement mentioned above is the actual displacement of the robot end effector from the first position to the second position, and the second displacement is the nominal displacement of the robot end effector from the first position to the second position. The first position and the second position are the positions of two different points in the robot's operating space, and the robot end effector has the same posture at the first position and the same posture at the second position.
[0007] The actual displacement is determined by the size of the calibration object in the operating space, the size of the first image, and the size of the second image. The first image is an image of the calibration object acquired by the actuator of the robot end effector when the robot end effector is in the first position. The second image is an image of the calibration object acquired by the actuator of the robot end effector when the robot end effector is in the second position.
[0008] The nominal displacement is determined by the robot's kinematic model, a first joint variable, and a second joint variable. The first joint variable is the robot's joint variable when the robot's end effector is in the first position. The second joint variable is the robot's joint variable when the robot's end effector is in the second position. The robot's kinematic model is used to represent the relationship between the robot's joint variables and the pose of the robot's end effector.
[0009] The method for calibrating the kinematic parameters of a robot disclosed in this application can obtain a displacement pair, including the actual and nominal displacements of the robot's end effector, and determine the error value for calibrating the robot's kinematic parameters based on this displacement pair. The nominal displacement can be determined based on the robot's kinematic model, the joint variables of the robot at a first position, and the joint variables of the robot at a second position. The actual displacement can be determined by the size of the calibration object and the size of the image acquired by the actuator at the robot's end effector. This method achieves the calibration of the robot's kinematic parameters without requiring expensive measuring instruments to measure the actual displacement. Therefore, it enables the calibration of the robot's kinematic parameters while reducing calibration costs.
[0010] In conjunction with the first aspect, in some implementations of the first aspect, the method further includes: determining the kinematic model of the robot based on the robot's factory parameters, which include the translational and rotational amounts between the robot's joints. The robot's kinematic model can be determined based on the robot's factory parameters, which are relatively easy to obtain, providing a simple solution for establishing a robot's kinematic model.
[0011] In conjunction with the first aspect, in some implementations of the first aspect, obtaining the displacement pairs includes: obtaining multiple displacement pairs. The aforementioned determination of error values based on the displacement pairs includes: constructing a system of error equations based on the multiple displacement pairs, where each error equation in the system is constructed from the first displacement and the second displacement; the system of error equations is used to solve for an error matrix, which includes multiple error values. The aforementioned error values can be obtained by constructing and solving the system of equations, and by obtaining the error values through mathematical calculations. Furthermore, there are multiple ways to solve the system of equations, improving the flexibility of the solution.
[0012] In conjunction with the first aspect, in some implementations of the first aspect, the method further includes: when the robot end effector is located at the first position, acquiring the robot's first motor encoder value for calculating the first joint variable; and when the robot end effector is located at the second position, acquiring the robot's second motor encoder value for calculating the second joint variable. By acquiring the robot's motor encoder values, the robot's joint variables can be calculated when the robot end effector is located at different positions. The method for acquiring the robot's motor encoder values can refer to existing solutions, improving the backward compatibility of the method provided in this application.
[0013] In conjunction with the first aspect, in some implementations of the first aspect, the method further includes: determining a first command joint variable based on the robot's kinematic model and the pose of the robot's end effector at the first position; determining a second command joint variable based on the robot's kinematic model and the pose of the robot's end effector at the second position; and determining a command based on the first and second command joint variables, the command being used to control the robot's end effector to move from the first position to the second position. The command joint variables for different positions can be obtained by inversely solving the established robot kinematic model, thereby determining the command to control the robot based on the command joint variables for different positions, causing the robot's end effector to move from the first position to the second position.
[0014] In conjunction with the first aspect, in certain implementations of the first aspect, the robot end effector moving from the first position to the second position includes: the robot end effector moving from the first position to the second position along a first path, wherein the first position and the second position are on the first path, the first path being a line connecting the center of the robot end effector and a point on the surface of the calibration object. A movement path for the robot end effector can be provided, enabling the robot end effector to move along a predetermined path.
[0015] In conjunction with the first aspect, in some implementations of the first aspect, acquiring displacement pairs includes: acquiring multiple displacement pairs, wherein the multiple displacement pairs include a first displacement pair and a second displacement pair. Before acquiring the first displacement pair, the method further includes: controlling the robot such that its end effector is parallel to a first surface of the calibration object. Before acquiring the second displacement pair, the method further includes: controlling the robot such that its end effector is parallel to a second surface of the calibration object, wherein the first surface and the second surface are two different surfaces of the calibration object. The robot end effector can be moved along different orientations, such that the acquired multiple displacement pairs include displacement pairs in different orientations, thereby more accurately calibrating the robot's kinematic parameters.
[0016] In conjunction with the first aspect, in some implementations of the first aspect, before acquiring the displacement pair, the method further includes: determining that the error of the robot's kinematic parameters is greater than a preset threshold. When the error of the robot's kinematic parameters is greater than the preset threshold, the process of calibrating the robot's kinematic parameters can be initiated, thereby maximizing the accuracy of the robot's kinematic parameters and improving the robot's motion precision.
[0017] In conjunction with the first aspect, in some implementations of the first aspect, the actual displacement, the size of the calibration object in the robot's operating space, the size of the first image, and the size of the second image satisfy the following relationship:
[0018]
[0019] Where, d R The actual displacement is given by H, where H is the height of the calibration object, h1 and h2 are the heights of the first and second images, respectively, V′ is the distance between the center point of the robot end effector and the center point of the first image when the robot end effector is in the first position, and V″ is the distance between the center point of the robot end effector and the center point of the second image when the robot end effector is in the second position. The actual displacement can be calculated using the above formula. The parameters H, h1, h2, V′, and V″ in this formula are easy to obtain (e.g., direct measurement), improving the simplicity of the solution.
[0020] In conjunction with the first aspect, in certain implementations of the first aspect, the nominal displacement, the robot kinematic model, the first joint variable, and the second joint variable satisfy the following relationship:
[0021] d C =|f(q) i )-f(q j )|
[0022] Where, d C Let q be the nominal displacement, f be the kinematic model of the robot, and q be the displacement. i As the first joint variable, q j For this second joint variable, || represents the modulo operation.
[0023] In a second aspect, an apparatus for calibrating the kinematic parameters of a robot is provided, the apparatus being used to perform the method provided in the first aspect. Specifically, the apparatus for calibrating the kinematic parameters of the robot may include units and / or modules for performing the method provided in the first aspect or any of the above-described implementations of the first aspect, such as processing units and acquisition units.
[0024] In one implementation, the device for calibrating the robot's kinematic parameters is a robot. When the device for calibrating the robot's kinematic parameters is a robot, the acquisition unit can be a transceiver or an input / output interface; the processing unit can be at least one processor. Optionally, the transceiver can be a transceiver circuit. Optionally, the input / output interface can be an input / output circuit.
[0025] In another implementation, the device for calibrating the robot's kinematic parameters is a chip, chip system, or circuit within the robot. When the device for calibrating the robot's kinematic parameters is a chip, chip system, or circuit within the robot, the acquisition unit can be an input / output interface, interface circuit, output circuit, input circuit, pin, or related circuit on the chip, chip system, or circuit; the processing unit can be at least one processor, processing circuit, or logic circuit.
[0026] The beneficial effects of the methods shown in the second aspect and its possible designs above can be referred to the beneficial effects in the first aspect and its possible designs.
[0027] Thirdly, an apparatus for calibrating the kinematic parameters of a robot is provided. The apparatus includes at least one processor coupled to at least one memory. The at least one memory stores computer programs or instructions, and the at least one processor retrieves and executes the computer programs or instructions from the at least one memory, causing the apparatus for calibrating the kinematic parameters of the robot to perform the methods of the first aspect or any possible implementation thereof.
[0028] In one implementation, the device is a robot. In another implementation, the device is a chip, chip system, or circuit within a robot.
[0029] The beneficial effects of the methods shown in the third aspect and its possible designs above can be referred to the beneficial effects in the first aspect and its possible designs.
[0030] Fourthly, this application provides a processor for performing the methods provided in the above aspects.
[0031] Unless otherwise specified, or if it does not contradict its actual function or internal logic in the relevant description, the transmission and acquisition / reception operations involved in the processor can be understood as processor output and reception, input and other operations, or as transmission and reception operations performed by radio frequency circuits and antennas. This application does not limit them in this regard.
[0032] Fifthly, a computer-readable storage medium is provided that stores program code for execution by a device, the program code including a method for performing the first aspect or any of the above-described implementations of the first aspect.
[0033] In a sixth aspect, a computer program product containing instructions is provided, which, when run on a computer, causes the computer to perform the method provided in the first aspect or any of the above implementations of the first aspect.
[0034] In a seventh aspect, a chip is provided, the chip including a processor and a communication interface, the processor reading instructions stored in a memory through the communication interface and executing the method provided in the first aspect or any of the above implementations of the first aspect.
[0035] Optionally, as one implementation, the chip further includes a memory storing computer programs or instructions, and a processor for executing the computer programs or instructions stored in the memory. When the computer programs or instructions are executed, the processor is used to execute the method provided by the first aspect or any of the above implementations of the first aspect.
[0036] Eighthly, a system for calibrating the kinematic parameters of a robot is provided. The system includes a robot and an actuator at the robot's end effector. The robot is configured to acquire displacement pairs including a first displacement and a second displacement, and to determine error values for calibrating the robot's kinematic parameters based on the plurality of displacement pairs. The actuator at the robot's end effector is configured to: acquire a first image of a calibration object when the robot's end effector is in a first position; and acquire a second image of the calibration object when the robot's end effector is in a second position.
[0037] The first displacement is the actual displacement of the robot end effector from the first position to the second position, and the second displacement is the nominal displacement of the robot end effector from the first position to the second position. The first position and the second position are the positions of two different points in the robot's operating space, and the robot end effector's posture at the first position is the same as its posture at the second position.
[0038] The actual displacement is determined by the dimensions of the calibration object in the robot's operating space, the dimensions of the first image, and the dimensions of the second image. The nominal displacement is determined by the robot's kinematic model, first joint variables, and second joint variables. The first joint variables are the joint variables of the robot's end effector when it is in the first position; the second joint variables are the joint variables of the robot's end effector when it is in the second position. The robot kinematic model is used to represent the relationship between the robot's joint variables and the pose of the robot's end effector.
[0039] In conjunction with the eighth aspect, in some implementations of the eighth aspect, the system also includes: the calibrator. Attached Figure Description
[0040] Figure 1 This is a schematic diagram illustrating a scenario in which the embodiments of this application can be applied.
[0041] Figure 2 This is a schematic flowchart of a method for calibrating the kinematic parameters of a robot, provided in an embodiment of this application.
[0042] Figure 3 This is a schematic flowchart illustrating another method for calibrating the kinematic parameters of a robot, provided in an embodiment of this application.
[0043] Figure 4 This is a schematic diagram of camera movement provided in an embodiment of this application.
[0044] Figure 5 (a) and (b) in this application are schematic diagrams of another camera movement provided in the embodiments of this application.
[0045] Figure 6 This is a schematic diagram illustrating the calculation of actual displacement provided in an embodiment of this application.
[0046] Figure 7 This is a schematic block diagram of a device 700 for calibrating the kinematic parameters of a robot, provided in an embodiment of this application.
[0047] Figure 8 This is a schematic block diagram of a device 800 for calibrating the kinematic parameters of a robot, provided in an embodiment of this application. Detailed Implementation
[0048] The technical solutions in the embodiments of this application will now be described with reference to the accompanying drawings.
[0049] The technical solutions of this application embodiment can be applied to the calibration of kinematic parameters of robots, such as the calibration of kinematic parameters of robotic arms, the calibration of kinematic parameters of intelligent vehicles, and the calibration of kinematic parameters of unmanned aerial vehicles.
[0050] like Figure 1 As shown, Figure 1This is a schematic diagram illustrating a scenario in which the embodiments of this application can be applied. It includes the following components: a robot body 110, an image acquisition module 120, and an object 130 of known size. The robot body 110 is the robot to be calibrated, including but not limited to robotic arms, intelligent vehicles, drones, etc.; the image acquisition module 120 is used to acquire images, including but not limited to cameras, etc.; the object 130 of known size is any object with a defined size, including but not limited to cubes, cuboids, polyhedra, etc. of known size.
[0051] For example, the size of the object 130 with known dimensions can be obtained by measurement. It should be noted that the method of determining the size of the object 130 with known dimensions is not limited in this application. For example, it can be obtained from the parameter description of the object 130, or it can be obtained by measurement.
[0052] Figure 1 This application is merely illustrative of the scenarios in which the method for calibrating the kinematic parameters of a robot provided in this application can be applied, and does not constitute any limitation on the scope of protection of this application. The method for calibrating the kinematic parameters of a robot provided in this application can also be applied to other scenarios, such as when the robot body has an image acquisition module, in which case the robot body 110 and the image acquisition module 120 can be understood as a whole; or the structure of the robot body can be other shapes. The applicable scenarios of this application will not be elaborated further here.
[0053] With the development of the field of robotics, researchers at home and abroad have proposed many methods for calibrating the kinematic parameters of robots in order to improve the accuracy of robots. These methods mainly include the following calibration methods.
[0054] The first method, the most widely used, is parameter calibration based on a position error model. This involves using external measuring instruments to measure the actual position of the robot's end effector and comparing it to the theoretical position. A differential equation for the position error is established using the actual and theoretical positions of multiple points, and the error parameters are then solved. Commonly used measuring instruments, such as laser trackers and coordinate measuring machines (CMMs), are calibrated based on this model. While laser trackers and CMMs offer high measurement accuracy, they are expensive, complex to operate, and have low calibration efficiency.
[0055] The second method is parameter calibration based on a distance error model. This method utilizes the property that any two points on the robot in space are equidistant in both the robot coordinate system and the measurement coordinate system to establish an error model, and then solves for the kinematic parameter errors. Common instruments used in this method, such as calibration devices based on draw-wire sensors, are expensive and complex to operate.
[0056] The third method is to use sensors, such as inertial sensors plus position sensors, laser sensors plus phase-sensitive detectors (PSD) calibration devices, and image processing methods based on image sensors. However, the calibration devices used in this method are complex to operate, expensive, and have not been commercialized on a large scale.
[0057] To address the aforementioned deficiencies in current robot calibration technology, this application provides a method for calibrating the kinematic parameters of a robot. The actual displacement of the robot's end effector is determined by using the size information of objects in the robot's operating space and the image size information acquired by the robot's end effector. The actual displacement and the nominal displacement of the robot's end effector are used to construct an error equation. Solving this error equation completes the calibration, eliminating the need for expensive measuring instruments and reducing calibration costs.
[0058] To facilitate understanding of the technical solutions of the embodiments of this application, some terms or concepts involved in the embodiments of this application will be briefly described first.
[0059] 1. Geometric error: Errors in the geometric aspects of an object, such as the deviation of the object's actual shape, orientation, and position from its ideal shape, orientation, and position.
[0060] 2. Calibration of kinematic parameters: This refers to obtaining higher absolute positioning accuracy by identifying and compensating for the geometric errors of the robot. Kinematic parameter calibration is an effective way to improve the absolute positioning accuracy of the robot.
[0061] 3. Robot end effector: The edge of the robot, or the last joint of the robot, or the part of the robot that connects to the actuator at the end effector.
[0062] 4. Robot end effector: This refers to any tool connected to the end of a robot that has a specific function. This includes, but is not limited to: robot grippers, robot tool changers, robot collision sensors, robot rotary connectors, robot pressure tools, compliance devices, robot spray guns, robot deburring tools, robot arc welding torches, robot electric welding torches, etc. Robot end effectors are generally considered peripheral devices of the robot, or robot accessories, or robot tools, or end-effector tools, etc. In this application, the robot end effector can be an image acquisition module (e.g., a camera, etc.). It only needs to be able to acquire images; the specific form is not limited.
[0063] 5. Robot's operating space: This refers to the set of spatial points reachable by the robot's end effector, typically represented by projections onto horizontal and vertical planes. The shape and size of the robot's operating space are crucial. A robot may fail to complete a task due to a dead zone that its end effector cannot reach. It should be noted that referring to the set of spatial points reachable by the robot's end effector as its operating space is merely an example and does not limit the scope of this application. For instance, the robot's operating space can also be called its workspace; or, for example, its space, etc.
[0064] 6. Robot pose: This can refer to the position and orientation of the robot's end effector in space, or it can represent the position and orientation of the robot's other moving links in space. Position can be described using the following position matrix:
[0065]
[0066] Attitude can be represented by the following attitude matrix, which is composed of the cosines of the angles between any two of the three coordinate axes:
[0067]
[0068] 7. Robot kinematics: including forward kinematics and inverse kinematics. Forward kinematics is to calculate the position and orientation of the robot's end effector given the joint variables of the robot. Inverse kinematics is to calculate all joint variables of the robot at the corresponding position given the position and orientation of the robot's end effector.
[0069] 8. Robot kinematic equations: This involves establishing the robot's kinematic model, which can be expressed as:
[0070] M = f(q) i )
[0071] Where M is the pose of the robot's end effector, q i These are the variables for each joint of the robot.
[0072] For example, q i Given that the kinematics model M = f(q) is used, we are required to determine the kinematics model M = f(q) i ) and the known q i Determining the corresponding M is called a forward kinematics problem. Solving forward kinematics problems allows for the verification and calibration of robots, calculation of workspaces, etc. For example, the pose M of the robot's end effector is known, and the problem requires solving the forward kinematics problem based on the robot's kinematic model M = f(q). i And the known M to solve for the corresponding joint variable q iThis is called an inverse kinematics problem. Solving inverse kinematics problems enables path planning, robot control, and other applications.
[0073] To facilitate understanding, the following example illustrates the process of establishing the kinematic equations of a three-degree-of-freedom planar joint robot.
[0074] For example, a three-degree-of-freedom planar articulated robot is established. Let the lengths of robot links 1, 2, and 3 be l1, l2, and l3, respectively. The process for establishing the robot's kinematic equations includes:
[0075] (1) Establish coordinate system: The robot's coordinate system includes the hand coordinate system, the base coordinate system, the link coordinate system, and the absolute coordinate system.
[0076] Hand coordinate system: The coordinate system that refers to the robot's hand, also known as the robot pose coordinate system, represents the position and orientation of the robot's hand in the specified coordinate system.
[0077] Base coordinate system: The coordinate system that references the robot's base. It is the common reference coordinate system for all moving links and the robot's hand.
[0078] Link coordinate system: Referencing the coordinate system of the robot's links, it is a fixed coordinate system on each moving link of the robot that moves with the movement of the link.
[0079] Absolute coordinate system: The coordinate system referenced to the ground at the work site. It is the common reference coordinate system for all components of the robot.
[0080] Hand coordinate system {h}; base coordinate system {0}; rod coordinate system {i} (i-1,2,...n); absolute coordinate system {B}.
[0081] Specifically, the coordinate systems can be: base coordinate system {0}; rod coordinate system {i}; hand coordinate system {h} and end coordinate system {n} coinciding.
[0082] (2) Determine the parameters: All axes are parallel to each other, and all members are in the same plane. The parameters are shown in Table 1 below:
[0083] Table 1
[0084] <![CDATA[d i ]]> <![CDATA[θ i ]]> <![CDATA[l i ]]> <![CDATA[α i ]]> <![CDATA[θ1]]> <![CDATA[l1]]> <![CDATA[θ2]]> <![CDATA[l2]]> <![CDATA[θ3]]> <![CDATA[l3]]>
[0085] The pose matrix of adjacent links is:
[0086]
[0087]
[0088]
[0089] Multiplying the pose equations of adjacent members sequentially, we get:
[0090]
[0091] Where, cθ 123 =cos(θ1+θ2+θ3),sθ 123 =sin(θ1+θ2+θ3),cθ 12 =cos(θ1+θ2,sθ12=sin(θ1+θ2).
[0092] Linkage parameter Jacobian matrix M 03 for:
[0093]
[0094] Linkage parameter Jacobian matrix M 01 for:
[0095]
[0096] Linkage parameter Jacobian matrix M 02 for:
[0097]
[0098] 9. Joint Coordinate System: This coordinate system describes the movement of each individual joint of the robot. For example, in a six-axis serial robotic arm, all joints are rotary joints. In the joint coordinate system, moving the robot's end effector to the desired position involves sequentially driving the movement of each joint, thus allowing the end effector to reach the designated location.
[0099] 10. Transformation matrix: The transformation matrix between the coordinate systems of different joints of the robot.
[0100] For example, the coordinate system corresponding to joint #1 of the robot is coordinate system #1, and the coordinate system corresponding to joint #2 of the robot is coordinate system #2. Coordinate system #2 can be described by coordinate system #1 and the transformation matrix.
[0101] 11. Six degrees of freedom: An object has six degrees of freedom in space, namely the degree of freedom of movement along the three rectangular coordinate axes x, y, and z, and the degree of freedom of rotation about these three coordinate axes.
[0102] 12. Visual servoing: This concept is commonly found in robotics research. It generally refers to the automatic reception and processing of images of a real object through optical devices and non-contact sensors. The machine system then uses the information from these images to make further control or adaptive adjustments.
[0103] 13. Nominal position: The imprecise end-effector position of the robot calculated from kinematic parameters with errors.
[0104] 14. Perspective-n-Point (PnP) Algorithm: This algorithm is used to solve the motion of point pairs from three-dimensional (3D) to two-dimensional (2D). For example, in an image, if the relative coordinates of at least four specific points in 3D space are known, the camera's pose with respect to these points can be estimated, or the pose of these points in the camera coordinate system can be estimated.
[0105] The above text combines Figure 1 This paper describes the application scenarios and introduces some concepts involved in this application. The following section, in conjunction with the accompanying drawings, details the method provided by this application for calibrating the kinematic parameters of a robot.
[0106] It should be understood that the embodiments shown below do not particularly limit the specific structure of the execution subject of the method provided in the embodiments of this application. The execution subject only needs to be able to run a program that records the code of the method provided in the embodiments of this application.
[0107] Figure 2 This is a schematic flowchart illustrating a method for calibrating the kinematic parameters of a robot, provided in an embodiment of this application. The method can be executed by a device for calibrating the kinematic parameters of a robot, or by an internal module of that device. The method includes the following steps.
[0108] S210, obtain the displacement pair.
[0109] The displacement pair includes a first displacement and a second displacement. The first displacement is the actual movement displacement of the robot end effector from a first position to a second position, and the second displacement is the nominal movement displacement of the robot end effector from the first position to the second position. The first position and the second position are the positions of two different points in the robot's operating space, and the posture of the robot end effector at the first position is the same as that at the second position.
[0110] In this application, the robot can be a robotic arm, a smart car, or a drone, among other machine devices. For ease of description, this application uses the analogy of a robotic arm. When the robot is a robotic arm, the aforementioned end effector can be the robot's last joint.
[0111] It should be understood that the objects to be calibrated in this application embodiment are not limited (robot type, shape, function, etc.), and can be any robot that needs to be calibrated.
[0112] For example, obtaining displacement pairs includes obtaining multiple displacement pairs, wherein the specific number of displacement pairs can be determined as follows. As one possible implementation, the number of displacement pairs is equal to the number of kinematic parameters of the robot to be calibrated. For example, if the kinematic parameters of the robot to be calibrated include two link parameters, the number of displacement pairs is two. As another possible implementation, the number of displacement pairs is greater than the number of kinematic parameters of the robot to be calibrated. For example, if the kinematic parameters of the robot to be calibrated include two link parameters, the number of displacement pairs can be greater than two. As yet another possible implementation, if the number of kinematic parameters of the robot to be calibrated is one, or if multiple kinematic parameters of the robot can be calibrated multiple times separately, the aforementioned displacement pair can be one. For example, if the kinematic parameters of the robot to be calibrated include two link parameters (e.g., link parameter #1 and link parameter #2), one link parameter (e.g., link parameter #1) can be calibrated first, and then the other link parameter (e.g., link parameter #2) can be calibrated. When calibrating link parameter #1, the aforementioned displacement pair can be one; similarly, when calibrating link parameter #2, the aforementioned displacement pair can also be one. Another example is if the kinematic parameters of the robot to be calibrated consist of one link parameter, and the number of displacement pairs can be one.
[0113] For example, acquiring multiple displacement pairs includes acquiring a first displacement pair and a second displacement pair. As one possible implementation, the robot end effector can move multiple times along one direction; for example, it can move a first time along the first direction to acquire a first displacement pair, and move a second time along the first direction to acquire a second displacement pair. For example, before acquiring the first displacement pair, the robot is controlled such that its end effector is parallel to a first surface of the calibration object; before acquiring the second displacement pair, the robot is controlled such that its end effector is parallel to the first surface of the calibration object. As another possible implementation, the robot end effector can move multiple times along multiple directions; for example, it can move a first time along a first direction to acquire a first displacement pair, and move a second time along a second direction to acquire a second displacement pair. For example, before acquiring the first displacement pair, the robot is controlled such that its end effector is parallel to a first surface of the calibration object; before acquiring the second displacement pair, the robot is controlled such that its end effector is parallel to a second surface of the calibration object, wherein the first surface and the second surface are two different surfaces of the calibration object.
[0114] It should be understood that when the robot end effector can move multiple times in multiple directions, the robot's range of motion can be increased, allowing it to traverse different postures as much as possible, which helps to improve calibration accuracy.
[0115] To make it easier to understand, let's illustrate the possible scenarios for obtaining multiple displacement pairs with examples.
[0116] For example, three displacement pairs are obtained (e.g., displacement pair #1, displacement pair #2, and displacement pair #3). Among them, displacement pair #1 includes actual movement displacement #1 and nominal movement displacement #1. Actual movement displacement #1 can be the actual movement displacement of the robot end effector from the first position #1 to the second position #1 (e.g., the first position #1 and the second position #1 are the positions of two different points in the robot's operating space). Nominal movement displacement #1 can be the nominal movement displacement of the robot end effector from the first position #1 to the second position #1. There is an error between the actual movement displacement #1 and the nominal movement displacement #1, and the robot end effector has the same posture in the first position #1 and the second position #1.
[0117] Displacement pair #2 includes actual displacement #2 and nominal displacement #2. Actual displacement #2 can be the actual displacement of the robot end effector moving from the first position #2 to the second position #2. Nominal displacement #2 can be the nominal displacement of the robot end effector moving from the first position #2 to the second position #2. The robot end effector has the same posture at the first position #2 and the second position #2.
[0118] Displacement pair #3 includes actual displacement #3 and nominal displacement #3. Actual displacement #3 can be the actual displacement of the robot end effector moving from the first position #3 to the second position #3. Nominal displacement #3 can be the nominal displacement of the robot end effector moving from the first position #3 to the second position #3. The robot end effector has the same posture in the first position #3 and the second position #3.
[0119] Optionally, the first position #2 and the second position #1 can be the same position, and the first position #3 and the second position #2 can be the same position. For example, the robot end effector moves from the first position #1 to the second position #1, then from the second position #1 to the second position #2, and then from the second position #2 to the second position #3, and the robot end effector has the same posture in the first position #1, the second position #1, the second position #2 and the second position #3.
[0120] For example, the robot end effector having the same pose in the first position and the same pose in the second position includes the following two possible ways.
[0121] As one possible implementation, the robot end effector can maintain the same posture before and after movement. The posture can change during movement, meaning the posture matrix remains unchanged before and after the movement. For example, the posture of the robot end effector at the first position can be represented by a posture matrix R1, composed of the cosines of the angles between any two of the three coordinate axes. The posture of the robot end effector at the second position can be represented by a posture matrix R2, composed of the cosines of the angles between any two of the three coordinate axes, where R1 and R2 are identical. Optionally, by recording the posture matrix R1 of the robot end effector at the first position, after the robot end effector moves to the second position, its posture at the second position is adjusted to satisfy the posture matrix R1.
[0122] As another possible implementation, the robot end effector maintains the same posture before, during, and after movement, and its posture remains unchanged during movement.
[0123] For example, the movement of the robot end effector can be controlled by commands. A first command joint variable is determined based on the robot's kinematic model and the robot end effector's pose at the first position; a second command joint variable is determined based on the robot's kinematic model and the robot end effector's pose at the second position; and a command (or control command) is determined based on the first and second command joint variables, the command being used to control the robot end effector to move from the first position to the second position.
[0124] To make it easier to understand, let's take an example to illustrate the movement process of the robot's end effector.
[0125] For example, the pose of the robot's end effector at the first position is pose #1, where pose #1 includes position #1 and orientation #1. Position #1 is the first position, and orientation #1 can be determined based on the orientation before movement (e.g., orientation #1 is the orientation before movement, which can be the factory orientation). The command joint variable #1 is obtained by inverse solving based on the robot's kinematics model and pose #1. The pose of the robot's end effector at the second position is pose #2, where pose #2 includes position #2 and orientation #2. Position #2 is the second position, and orientation #2 is pose #1. The command joint variable #2 is obtained by inverse solving based on the robot's kinematics model and pose #2. The command can be obtained based on the command joint variable #1 and command joint variable #2. For example, if the command joint variable #2 is a translation of ±5cm and a rotation of ±30 degrees compared to the command joint variable #1, then the command can be a translation of ±5cm and a rotation of ±30 degrees.
[0126] For example, the robot end effector can move from the first position to the second position with reference to a point on the robot end effector that moves from the first position to the second position.
[0127] For example, the center point of the robot end effector moves from the first position to the second position. Exemplarily, the robot end effector can move from the first position to the second position along a certain path. For example, the robot end effector moves from the first position to the second position along a first path, where the first position and the second position are on the first path, and the first path is a line connecting the center of the robot end effector and a point on the surface of the calibration object.
[0128] Optionally, the movement of the robot end effector can drive the movement of the robot end effector's actuator. For example, the robot end effector moves from the first position to the second position, and the robot end effector moves from the first position to the second position.
[0129] It should be understood that the first position ' is different from the first position, and the second position ' is different from the second position.
[0130] For example, when the center point of the robot end effector moves from the first position to the second position, and the center point of the actuator at the robot end effector moves from the first position to the second position, the distance between the first position and the first position can be understood as the distance between the center point of the robot end effector and the center point of the actuator at the robot end effector; the distance between the second position and the second position can also be understood as the distance between the center point of the robot end effector and the center point of the actuator at the robot end effector.
[0131] In this embodiment, since the robot end effector has the same posture at the first position and the same posture at the second position, the nominal displacement of the robot end effector from the first position to the second position can be regarded as the nominal displacement of the robot end effector's actuator from the first position to the second position; the actual displacement of the robot end effector from the first position to the second position can be regarded as the actual displacement of the robot end effector's actuator from the first position to the second position.
[0132] As one possible implementation, in this embodiment, after completing one calibration task of the robot's kinematic parameters, online kinematic parameter calibration can be performed periodically based on the robot's usage frequency and wear level on the production line. For example, the distance error between the robot's end effector and the actual target after reaching a designated position can be detected periodically. If the error exceeds the allowable range, the kinematic parameters can be recalibrated.
[0133] In this implementation, the online calibration system with closed-loop feedback helps to promptly detect whether the robot's absolute positioning accuracy has deteriorated. When the deterioration exceeds the allowable range, the robot calibration process can be retried. This enables robots to leave the factory without calibration, promptly eliminates accumulated errors caused by long-term robot operation, and eliminates the need for line stoppage for calibration, thereby improving the production efficiency of industrial production lines.
[0134] In this implementation, before obtaining the displacement pair, Figure 2 The method flow shown also includes the following steps.
[0135] S211, determine that the error of the robot's kinematic parameters is greater than a preset threshold.
[0136] The preset threshold can be a pre-defined value. Alternatively, in this embodiment, the robot's kinematic parameters can be calibrated when the robot leaves the factory.
[0137] Specifically, the actual displacement is determined by the size of the calibration object in the operating space, the size of the first image, and the size of the second image. The first image is the image of the calibration object acquired by the actuator of the robot end effector when the robot end effector is in the first position; the second image is the image of the calibration object acquired by the actuator of the robot end effector when the robot end effector is in the second position.
[0138] In this embodiment, the actual displacement can be determined based on the size of a calibration object in the robot's operating space and the size of the image of that calibration object acquired by the robot's end effector. This allows for the calculation of the actual displacement without the need for expensive measuring instruments. Therefore, it reduces the calibration cost of the robot's kinematic parameters.
[0139] It should be noted that the calibration object in the robot's operating space in this embodiment can be any object of known size (e.g., Figure 1 The known size of the object shown is 130). That is to say, calibration is not required with the aid of a specific calibration plate, and workpieces of known size that are already on the production line can be used simply.
[0140] As one possible implementation, the dimensions of the calibration object can be measured before calculating the actual displacement, or obtained from the calibration object's parameter specification before calculating the actual displacement, and stored in the robot's memory, read from the memory when calculating the actual displacement. As another possible implementation, the dimensions of the calibration object can be measured when calculating the actual displacement, or obtained from the calibration object's parameter specification when calculating the actual displacement. In this implementation, it is not necessary to store the dimensions of the calibration object; they can be obtained when calculating the actual displacement.
[0141] It should be noted that in the embodiments of this application, multiple displacement pairs may need to be obtained, and the actual displacement included in each displacement pair needs to be determined based on the size of the calibration object. In order to simplify the process of determining the multiple actual displacements included in multiple displacement pairs, the above-mentioned method of obtaining the size of the calibration object can be the first possible implementation method, that is, obtaining and storing it before calculating the actual displacement, and reading it from the memory when the size of the calibration object is needed.
[0142] Based on the parameters required to determine the actual displacement described above (e.g., the size of the calibration object, the size of the first image, and the size of the second image), it can be seen that in this embodiment, when the robot end is in the first position, the calibration object is located in the robot's operating space, and the actuator of the robot end can acquire the first image of the calibration object; similarly, when the robot end is in the second position, the calibration object is also located in the robot's operating space, and the actuator of the robot end can acquire the second image of the calibration object.
[0143] In this embodiment, the calibration object is located within the robot's operating space in both the first and second positions of the robot end effector. This can be achieved in two ways: As one possible implementation, the calibration object is located within the robot's operating space before and after movement, but may not be located within the robot's operating space during movement. As another possible implementation, the calibration object is located within the robot's operating space before, after, and during movement.
[0144] Furthermore, in this embodiment of the application, the method of obtaining the size of the image acquired by the actuator at the end of the robot is not limited; the size of the image can be obtained by measuring the image acquired by the actuator at the end of the robot.
[0145] It is understood that, in order to make the size of the measured image more accurate, the calibration object mentioned above in the embodiments of this application can be an object with regular edges, such as a cuboid, a polyhedron, or other objects with known dimensions.
[0146] As one possible implementation, the actual displacement, the size of the calibration object in the robot's operating space, the size of the first image, and the size of the second image satisfy the following relationship:
[0147]
[0148] Where, d RH is the actual displacement, H is the height of the calibration object, h1 is the height of the first image, h2 is the height of the second image, V′ is the distance between the center point of the actuator of the robot end effector and the center point of the first image when the robot end effector is in the first position, and V″ is the distance between the center point of the actuator of the robot end effector and the center point of the second image when the robot end effector is in the second position.
[0149] It should be understood that the relationship between the actual displacement, the size of the calibration object in the robot's operating space, the size of the first image, and the size of the second image described above is merely an example illustrating how to calculate the actual displacement and does not constitute any limitation on the scope of protection of this application. The actual displacement can also be calculated based on the size of the calibration object, the size of the first image, and the size of the second image through other mathematical calculation methods.
[0150] For example, given the dimensions of the calibration object, the PnP algorithm is first used to calculate the spatial position p1 of the calibration object in the camera coordinate system when the robot end effector is in its first position. After the robot end effector moves, the same PnP algorithm is used to calculate the spatial position p2 of the calibration object in the camera coordinate system when the robot end effector is in its second position. Then, the actual displacement of the camera in space can be calculated equivalently.
[0151] d R =|p1-p2|
[0152] Where, d R || represents the actual displacement, and || represents the modulo operation.
[0153] Specifically, the nominal displacement is determined by the robot's kinematic model, a first joint variable, and a second joint variable. The first joint variable is the robot's joint variable when the robot's end effector is in the first position; the second joint variable is the robot's joint variable when the robot's end effector is in the second position. The robot's kinematic model represents the relationship between the robot's joint variables and the robot's end effector pose.
[0154] For example, when the robot end effector is in the first position, the first motor encoder value of the robot is obtained, and the first motor encoder value is used to calculate the first joint variable. When the robot end effector is in the second position, the second motor encoder value of the robot is obtained, and the second motor encoder value is used to calculate the second joint variable. For example, if the motor encoder value at a certain joint is read from the robot as encoder1, the initial value of the encoder is encoder0, and the encoder resolution is bit1; in addition, the reduction ratio of the harmonic reducer used with the motor to improve the motor torque is a fixed value ration1; then the joint variable can be calculated using the following formula: (encoder1-encoder0) / (ration1*bit1 / 2 / pi).
[0155] Furthermore, after calculating the first joint variables based on the motor encoder values, the first nominal position of the robot's end effector can be obtained by forward solving based on the first joint variables and the robot's kinematic model. Similarly, after calculating the second joint variables based on the motor encoder values, the second nominal position of the robot's end effector can be obtained by forward solving based on the second joint variables and the robot's kinematic model. The distance between the first and second nominal positions can be understood as the nominal displacement.
[0156] For example, the nominal displacement, the robot kinematic model, the first joint variable, and the second joint variable satisfy the following relationship:
[0157] d C =|f(q) i )-f(q j )|
[0158] Where, d C Let q be the nominal displacement, f be the kinematic model of the robot, and q be the displacement. i As the first joint variable, q j For this second joint variable, || represents the modulo operation.
[0159] It should be understood that, in the embodiments of this application, the calculation of the nominal displacement of the robot end effector from the first position to the second position can refer to the introduction of the relevant current technology, and will not be repeated here.
[0160] Furthermore, once the aforementioned displacement pairs are determined, error values for calibrating the robot's kinematic parameters can be determined based on these displacement pairs. Figure 2 The method flow shown also includes the following steps.
[0161] S220, determine the error value based on the displacement pair.
[0162] As one possible implementation, the aforementioned displacement pair includes a single displacement pair. The first and second displacements of this single displacement pair form an error equation, and solving this error equation yields an error value.
[0163] For example, the kinematic parameter of the robot to be calibrated is displacement. The displacement is compensated and corrected based on the obtained error value to improve the robot's absolute positioning accuracy.
[0164] As another possible implementation, the aforementioned displacement pairs include multiple displacement pairs. An error equation system is constructed based on these multiple displacement pairs, where each error equation is constructed from the first displacement and the second displacement. This error equation system is used to solve for an error matrix, which includes multiple error values.
[0165] For example, the kinematic parameters of the robot to be calibrated include two link parameters. The two link parameters are compensated and corrected based on the two error values included in the obtained error matrix, thereby improving the absolute positioning accuracy of the robot.
[0166] For example, a displacement error model is constructed using the actual and nominal displacements of the robot's end effector. The basic idea of this displacement error model is that if the robot's kinematic parameters are sufficiently accurate, the actual and nominal displacements of the robot's end effector should be equal. However, due to errors between theoretical and actual kinematic parameters, the actual and nominal displacements are not equal. Therefore, an error equation can be constructed, which is described in detail below:
[0167] P C (i)→P C (j)
[0168] P R (i)→P R (j)
[0169] P C (j)=(x j ,y j ,z j )
[0170] P C (i)=(x i ,y i ,z i )
[0171] P R (j)=(x j +dx j ,y j +dy j ,z j +dz j )
[0172] P R (i)=(x i +dx i ,y i +dy i ,z i +dz i )
[0173] Among them, P C (i) and P C (j) represent the nominal starting and ending positions of the robot's end effector, calculated using the robot's kinematic model, respectively; P R (i) and P R (j) refers to the actual starting and ending positions of the robot's end effector, obtained using external measuring devices (e.g., cameras). i ,y i ,z i Let dx represent the initial nominal position components of the robot's end effector in the x, y, and z directions, respectively. i ,dy i ,dz i These represent the error components in the x, y, and z directions between the actual starting position and the nominal starting position of the robot's end effector; x j ,y j ,z j Let dx represent the nominal position components of the robot's end effector in the x, y, and z directions, respectively. j ,dy j ,dz j These are the error components in the x, y, and z directions, representing the difference between the actual and nominal endpoint positions of the robot's end effector.
[0174]
[0175]
[0176]
[0177]
[0178] Δd(i,j)=d R (i,j)-d C (i,j)
[0179] d R (i,j)=Δd(i,j)+d C (i,j)
[0180] in, and Let d be the nominal displacement vector and the actual displacement vector.C (i,j) and d R (i,j) represent the nominal displacement length and the actual displacement length (i.e., the magnitude of the displacement vector), respectively, and Δd(i,j) is the difference between the two displacement lengths. Only after obtaining this difference in displacement lengths can the following error equation be constructed:
[0181] (d R (i,j)) 2 =(Δd(i,j)+d C (i,j)) 2
[0182] =(x j -x i +dx j -dx i ) 2 +(y j -y i +dy j -dy i ) 2 +(z j -z i +dz j -dz i ) 2
[0183]
[0184]
[0185]
[0186] In the above error equation, the displacement error Δd is: the actual displacement d of the robot end effector. R With respect to the nominal displacement d of the robot end effector C The difference between them; J is the Jacobian matrix of the link parameters calculated based on the original kinematic parameters; therefore, the only unknown in the displacement error expression is ΔX.
[0187] The solution for ΔX can be obtained by combining multiple sets of motion data to construct a set of error equations. The link parameter error matrix ΔX can be obtained by using mathematical solution methods (such as the least squares method or iterative solution method), and the kinematic parameters can be compensated and corrected to improve the absolute positioning accuracy of the robot.
[0188] As can be seen from the above calibration process, there is no need to calibrate the coordinate relationship between the robot end effector and the robot coordinate system, which is efficient and reduces coordinate transformation calculation errors.
[0189] Based on the above method description, to facilitate understanding, the following specific example will further illustrate the application of the method for calibrating the kinematic parameters of a robot provided in this application.
[0190] Figure 3 This is a schematic flowchart illustrating another method for calibrating the kinematic parameters of a robot, provided in an embodiment of this application. It includes the following steps.
[0191] S310, Determine the robot's kinematic model.
[0192] The robot kinematics model is a function of the robot's joint variables, used to represent the relationship between the robot's joint variables and the pose of the robot's end effector.
[0193] For example,
[0194] M = f(q) i )
[0195] Where M is the pose of the robot's end effector, q i Let f represent the joint variables of the robot, and let f be the function representing the robot's kinematic model. Joint variables can be understood as...
[0196] For example, the joint variables of a robot include the angle information of the robot's joints, the position information of the robot's joints, the translational amount between different joints of the robot, the rotational amount between different joints of the robot, or the height information of the robot's joints.
[0197] As one possible implementation, a robot kinematic model is used to determine the pose of the robot's end effector based on the robot's joint variables. For example, this robot kinematic model incorporates the joint variables q of each joint of the robot. i The robot's end-effector pose M can then be calculated, which is the forward kinematics solution process. As another possible implementation, a robot kinematic model is used to determine the robot's commanded joint variable values based on the robot's end-effector pose. These commanded joint variables are the joint variables used to determine the commands controlling the robot. For example, this robot kinematic model, combined with the robot's end-effector pose M, can calculate the commanded joint variables q for each joint of the robot. i This refers to the inverse kinematics solution process.
[0198] To facilitate understanding, the following example illustrates how to determine the kinematic model of a robot.
[0199] As one possible approach, a kinematic model of the robot can be established based on the original parameters provided by the robot manufacturer (such as the translation and rotation between the robot's joints).
[0200] For example, suppose the robot to be calibrated is a multi-joint robotic arm with a total of n joints, numbered from the motor outwards as the nth joint, the (n-1th)th joint, ..., the 1st joint, where n is a positive integer. The transformation matrix from the joint coordinate system of the (i-1th)th joint to the joint coordinate system of the ith joint is described as follows: i-1 T i The transformation matrix i-1 T i The kinematic model of this multi-joint robotic arm is determined by the relative translation and rotation relationships between the (i-1)th joint and the i-th joint axis, where i is a positive integer less than or equal to n. The kinematic model can be represented as T = 0 T1× 1 T2× 2 T3×…× i-1 T i ×…* n-1 T n .
[0201] As another possible implementation, the robot's kinematic model is determined based on the original parameters provided by the robot manufacturer. For example, the robot's factory specifications include the robot's kinematic model. Yet another possible implementation is to obtain the robot's kinematic model through other devices. For instance, a device capable of creating a robot kinematic model can create the model and send it via message to a device calibrating the robot.
[0202] It should be noted that the above-described method for determining the robot's kinematic model is merely an example and does not constitute any limitation on the scope of protection of this application. Other methods for establishing robot kinematic models to determine the robot's end-effector pose are also within the scope of protection of this application. This application does not impose limitations on how to establish the robot's kinematic model; reference can be made to descriptions in current related technologies.
[0203] Furthermore, after establishing the robot's kinematic model, the command joint variables before and after the robot's end effector moves can be determined based on the robot's kinematic model. Figure 3 The method flow shown also includes the following steps.
[0204] S320 determines the command joint variables based on the robot's kinematic model.
[0205] Optionally, joint variables include joint angle values.
[0206] For example, to calibrate the robot's kinematic parameters, the robot's end effector can be moved from a first position to a second position, with the end effector having the same posture in the first position and the same posture in the second position. Here, the first position and the second position are the positions of two different points in the robot's operating space. For example, the first position is the current position of the robot's end effector. Using visual servoing, the robot is controlled to align its end effector with a surface (which can be referred to as the first surface) of an object of known size in the operating space. Then, a point in the robot's operating space is designated as the target point, and the position of this target point is the aforementioned second position.
[0207] For example, the first position is the current position of the robot's end effector. Before determining the target point, it is not necessary to make the robot's end effector parallel to any surface of an object of known size in the operating space. Any point in the operating space is arbitrarily selected as the target point, and the position of this target point is the second position described above.
[0208] As can be seen from the above, the robot kinematic model is a function of the robot's joint variables. After establishing the robot kinematic model through the above step S210, the first command joint variable corresponding to the first position and the second command joint variable corresponding to the second position can be determined based on the robot kinematic model.
[0209] Specifically, the first command joint variables corresponding to the first position are calculated in reverse based on the robot's kinematic model.
[0210] For example,
[0211] M = f(q) i )
[0212] The pose parameter M1 of the robot's end effector at the first position is used as the input to the kinematic model, and the first command joint variable q corresponding to the first position is output. i1 The pose parameter M2 of the robot's end effector at the second position is used as the input to the kinematic model, and the second command joint variable q corresponding to that second position is output. i2 .
[0213] Further, the instruction is determined based on the first instruction joint variable and the second instruction joint variable. Figure 3 The method flow shown also includes the following steps.
[0214] S330 determines the instruction based on the instruction joint variable.
[0215] For example, the relationship between the first command joint variable and the second command joint variable can determine the command. For instance, the command could be an instruction to control the movement and / or rotation of each joint so that the angle values of each joint are updated from the first command joint variable to the second command joint variable.
[0216] This instruction is used to control the robot to move its end effector a certain distance within the robot's operating space to the second position mentioned above. Before and after the movement, the robot's end effector's posture must always meet certain constraints (e.g., the robot's end effector's posture remains unchanged before and after the movement), and the objects placed in the operating space must remain within the field of view of the robot's end effector (e.g., the image acquisition module) before and after the robot's movement.
[0217] For example, when the robot end effector is parallel to the first surface of an object of known size, the robot end effector moves a distance within the robot's operating space by moving a distance along a line connecting a feature point and the center of the robot end effector, while ensuring that the robot end effector's posture remains unchanged throughout the entire movement. Here, the feature point is any point on the object of known size (e.g., any point on the first surface mentioned above).
[0218] It should be understood that in the embodiments of this application, the movement of the robot end effector drives the movement of the actuator at the robot end effector.
[0219] For ease of description, the following explanation will use a camera as an example to illustrate the image acquisition module at the robot's end effector.
[0220] For ease of understanding, combined with Figure 4 This indicates that the camera moves a certain distance within the robot's operating space. Figure 4 This is a schematic diagram of camera movement provided in an embodiment of this application.
[0221] from Figure 4 As can be seen, under the control of the command, the camera moves from the initial position #1 to the target position #1, which lies on the line connecting the center of the camera and the feature point on the first surface. The posture of the robot's end effector remains unchanged before and after the camera movement.
[0222] It should be noted that, Figure 4 This example only illustrates the process of a camera moving from the initial position #1 to the target position #1 in a single instance. In this embodiment, the camera may move multiple times. For example, after the camera moves from the initial position #1 to the target position #1, a new target point can be set in the operating space of the specified robot. The position of this target point is the target position #2, while the current target position #1 of the camera can be used as the initial position #2.
[0223] Specifically, the relationship between the command joint variable corresponding to the target position #2 and the command joint variable corresponding to the current initial position #2 can determine another command, which is used to control the camera to move from the initial position #2 to the target position #2.
[0224] For example, the camera moving from the initial position #2 to the target position #2 can be achieved by the camera moving a certain distance along the line connecting the feature point and the camera center, while ensuring that the robot's end-effector posture remains unchanged before and after the movement (the robot's end-effector posture may change during the intermediate process). Here, the feature point is any point on an object of known size (e.g., any point on the second surface, which is different from the first surface).
[0225] Additionally, it should be noted that, Figure 4 This illustration merely demonstrates the camera's movement and does not limit the scope of protection of this application. For example, the camera's movement path may not be along the line connecting the feature point and the camera center. Also, the camera may move multiple times in different directions. Figure 5 As shown, Figure 5 (a) and (b) in this application are schematic diagrams of another camera movement provided in the embodiments of this application.
[0226] from Figure 5 (a) shows that, under the control of the command, the camera moves from the initial position #1 to the target position #1, which lies on the line connecting the center of the camera and the feature point on the first surface. Figure 5 As can be seen in (b), the camera moves from the initial position #2 to the target position #2 under the control of the command. The initial position #2 and the target position #2 lie on the line connecting the center of the camera and the feature points on the second surface. The posture of the robot's end effector does not change before and after the camera moves.
[0227] The second and first faces are different surfaces of an object of known size. The initial position #2 can be the target position #1 after the first movement.
[0228] In the process of calibrating the kinematic parameters of a robot, using polyhedral structural components can increase the robot's range of motion, allowing it to traverse different configurations as much as possible, which helps improve calibration accuracy. In addition, polyhedral structural components are low in manufacturing cost, highly applicable, and easy to promote.
[0229] This application does not limit the path of camera movement; as long as the camera can capture images of objects of known size at both the initial and target positions.
[0230] After the robot moves the camera a certain distance under the control of the command, the actual displacement (or actual distance) of the robot's end effector can be determined by the actual size of the object of known size and the imaging size of the image captured by the camera.
[0231] Figure 3 The method flow shown also includes the following steps.
[0232] S340, determine the actual displacement of the robot's end effector.
[0233] After the camera has finished moving, the spatial displacement of the camera is calculated by combining the actual size information of the object and the visual measurement value. Since the robot end effector maintains a constant posture during a certain process, this distance is the actual displacement of the robot end effector.
[0234] For example, after the robot has finished moving, it can proceed as follows: Figure 6 The method shown, Figure 6 This is a schematic diagram illustrating the calculation of actual displacement provided in an embodiment of this application. From Figure 6 As can be seen, the movement and displacement of the camera in space can be deduced based on the actual size information of the object and the imaging size information on the camera's imaging plane.
[0235] The displacement of the camera in space is derived by relating the actual size of the object to its spatial geometry.
[0236]
[0237]
[0238]
[0239]
[0240]
[0241] Where h1 is the image height of the object in the image captured at the initial position (e.g., initial position #1 above) before the camera moves; h2 is the image height of the object in the image captured at the target position (e.g., target position #1 above) after the camera moves; V is the distance between the cameras (e.g., the factory parameters of the camera); H is the actual height of the workpiece calibration object; U is the distance between the workpiece calibration object and the camera; C′ is the distance between the imaging center point and the center point of the imaging plane before the camera moves; V′ is the distance between the imaging center point and the center point of the lens before the camera moves; C″ is the distance between the imaging center point and the center point of the imaging plane after the camera moves; V″ is the distance between the imaging center point and the center point of the lens after the camera moves; finally, the distance d that the camera moves in space can be calculated. R Since the robot's end effector posture remains unchanged before and after the robot moves, the distance d... R It can be equated to the actual displacement of the robot's end effector.
[0242] It should be noted that the methods for obtaining the actual movement of the camera are not limited to... Figure 6 The method shown.
[0243] Furthermore, the nominal displacement of the robot's end effector can be determined. Figure 3 The method flow shown also includes the following steps.
[0244] S350, determines the nominal displacement of the robot's end effector.
[0245] The method for calculating the nominal displacement of the robot end effector in this embodiment is not limited. Reference can be made to descriptions in current related technologies, including but not limited to: determining the displacement based on the robot's joint variables before and after the end effector movement, and the robot's kinematic model. For example, the nominal position of the robot end effector before and after movement can be calculated based on the robot's kinematic model and the angle information of each joint before and after the end effector movement, and the nominal displacement between the two positions can then be calculated.
[0246] After determining the actual and nominal displacements of the robot's end effector, an error equation can be constructed based on the actual displacements of the robot's end effector and the nominal displacements of the actuators at the end effector, and the error variance can be solved. Figure 3 The method flow shown also includes the following steps.
[0247] S360: Construct error equations based on the actual and nominal displacements of the robot's end effector, and then solve them.
[0248] Referring to the description of S220 above, it will not be repeated here.
[0249] The above processes S310 to S360 enable the initial calibration of the robot's kinematic parameters after assembly and delivery. Once calibration is complete, the robot's absolute positioning accuracy meets the requirements and it can begin online operation. Subsequently, absolute positioning accuracy is periodically checked based on visual feedback. When the accuracy deteriorates beyond the allowable range (e.g., the error in the robot's kinematic parameters exceeds a preset threshold), an online recalibration step is initiated.
[0250] For example, an online calibration system, aided by visual feedback, periodically detects the distance error between the robot's end effector and the actual target after it reaches a designated position. If the error exceeds the allowable range, steps S320 to S360 are repeated to recalibrate the kinematic parameters.
[0251] It should be understood that the sequence number of each process does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0252] It should also be understood that, in the various embodiments of this application, unless otherwise specified or in case of logical conflict, the terms and / or descriptions between different embodiments are consistent and can be referenced by each other, and the technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.
[0253] It should also be understood that in some of the above embodiments, the robotic arm is mainly used as an example for illustrative purposes. It should be understood that the specific form of the robot is not limited in the embodiments of this application. For example, the kinematic parameters of other types of robots can be calibrated based on the methods provided in the embodiments of this application.
[0254] It is understood that, in the above-described method embodiments, the methods and operations implemented by the device for calibrating the kinematic parameters of the robot (e.g., the robot) can also be implemented by components of the device (e.g., the processor).
[0255] The above is based on Figure 2-3 The method for calibrating the kinematic parameters of a robot introduced here primarily focuses on how the device used for calibrating these parameters performs the calibration. It should be understood that the device for calibrating the kinematic parameters of a robot, in order to achieve the aforementioned functions, includes the corresponding hardware structures and / or software modules for performing each function.
[0256] Those skilled in the art will recognize that, based on the units and algorithm steps described in conjunction with the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is implemented in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0257] The following, combined with Figure 7-8 This application provides a detailed description of an apparatus for calibrating the kinematic parameters of a robot, as described in the embodiments of this application. It should be understood that the descriptions of the apparatus embodiments correspond to the descriptions of the method embodiments. Therefore, details not described in detail can be found in the above method embodiments; for brevity, some details are omitted.
[0258] This application embodiment can divide the device for calibrating the kinematic parameters of a robot into functional modules based on the above method example. For example, each function can be divided into its own functional modules, or two or more functions can be integrated into one processing module. The integrated modules can be implemented in hardware or as software functional modules. It should be noted that the module division in this application embodiment is illustrative and only represents one logical functional division; other division methods may be used in actual implementation. The following description uses the division of functional modules according to each function as an example.
[0259] Figure 7 This is a schematic block diagram of a device 700 for calibrating the kinematic parameters of a robot, provided in an embodiment of this application. The device 700 includes an acquisition unit 710 and a processing unit 720. The acquisition unit 710 performs corresponding acquisition functions, and the processing unit 720 performs data processing. The acquisition unit 710 may be referred to as a communication interface or communication unit.
[0260] It should be understood that some of the functions of the acquisition unit 710 can also be implemented by the processing unit 720. For example, the calculation function of the displacement pair, including the actual displacement and the nominal displacement, acquired by the acquisition unit 710 can be implemented by the processing unit 720.
[0261] Optionally, the device 700 may further include a storage unit for storing instructions and / or data, and the processing unit 720 may read the instructions and / or data from the storage unit to enable the device to implement the aforementioned method embodiments.
[0262] The device 700 can be used to perform the actions performed by the device for calibrating the kinematic parameters of the robot in the above method embodiment. In this case, the device 700 can be the device for calibrating the kinematic parameters of the robot or a component that can be configured in the device for calibrating the kinematic parameters of the robot. The acquisition unit 710 is used to perform the operation of acquiring displacement pairs related to the device for calibrating the kinematic parameters of the robot in the above method embodiment. The processing unit 720 is used to perform the operation of processing displacement pairs related to the device for calibrating the kinematic parameters of the robot in the above method embodiment.
[0263] The acquisition unit 710 is used to acquire a displacement pair, which includes a first displacement and a second displacement. The first displacement is the actual displacement of the robot end effector from the first position to the second position, and the second displacement is the nominal displacement of the robot end effector from the first position to the second position.
[0264] Wherein, the first position and the second position are the positions of two different points in the robot's operating space, and the robot end effector has the same posture at the first position and the same posture at the second position; the actual displacement is determined by the size of the calibration object in the operating space, the size of the first image, and the size of the second image. The first image is the image of the calibration object acquired by the actuator of the robot end effector when the robot end effector is in the first position, and the second image is the image of the calibration object acquired by the actuator of the robot end effector when the robot end effector is in the second position; the nominal displacement is determined by the robot kinematic model, the first joint variable, and the second joint variable. The first joint variable is the joint variable of the robot when the robot end effector is in the first position, and the second joint variable is the joint variable of the robot when the robot end effector is in the second position; the robot kinematic model is used to represent the relationship between the robot's joint variables and the robot end effector's pose.
[0265] The processing unit 720 is configured to determine an error value based on the displacement pair, the error value being used to calibrate the kinematic parameters of the robot. Optionally, the processing unit 720 is further configured to determine a first command joint variable based on the robot's kinematic model and the pose of the robot's end effector at the first position. The processing unit 720 is further configured to determine a second command joint variable based on the robot's kinematic model and the pose of the robot's end effector at the second position. The processing unit 720 is further configured to determine a command based on the first command joint variable and the second command joint variable, the command being used to control the robot's end effector to move from the first position to the second position.
[0266] Optionally, the acquisition unit 710 is used to acquire displacement pairs, including: the acquisition unit 710 is used to acquire multiple displacement pairs, the multiple displacement pairs including a first displacement pair and a second displacement pair; before the acquisition unit 710 acquires the first displacement pair, the processing unit 720 is further used to control the robot so that the robot end is parallel to a first surface of the calibration object; before the acquisition unit 710 acquires the second displacement pair, the processing unit 720 is further used to control the robot so that the robot end is parallel to a second surface of the calibration object, wherein the first surface and the second surface are two different surfaces of the calibration object.
[0267] Optionally, before the acquisition unit 710 acquires the displacement pair, the processing unit 720 is further configured to determine that the error of the robot's kinematic parameters is greater than a preset threshold.
[0268] Optionally, when the robot end is in the first position, the acquisition unit 710 is further configured to acquire the first motor encoder value of the robot, which is used to calculate the first joint variable; when the robot end is in the second position, the acquisition unit 710 is further configured to acquire the second motor encoder value of the robot, which is used to calculate the second joint variable.
[0269] The device 700 can implement the steps or processes executed by the apparatus for calibrating the kinematic parameters of a robot in the method embodiment according to the embodiments of this application. The device 700 may include units for executing the method executed by the apparatus for calibrating the kinematic parameters of a robot in the method embodiment. Furthermore, each unit in the device 700 and the other operations and / or functions described above respectively implement the corresponding process of the method embodiment in the apparatus for calibrating the kinematic parameters of a robot in the method embodiment.
[0270] Among them, when the device 700 is used to perform Figure 2 When the method is in progress, the acquisition unit 710 can be used to execute the step of acquiring displacement pairs in the method, such as step S210; the processing unit 720 can be used to execute the processing steps in the method, such as steps S211 and S220.
[0271] It should be understood that the specific process of each unit performing the above-mentioned corresponding steps has been described in detail in the above method embodiments, and will not be repeated here for the sake of brevity.
[0272] The processing unit 720 in the above embodiments can be implemented by at least one processor or processor-related circuitry. The acquisition unit 710 can be implemented by a transceiver or transceiver-related circuitry. The storage unit can be implemented by at least one memory.
[0273] like Figure 8 As shown, this application embodiment also provides an apparatus 800 for calibrating the kinematic parameters of a robot. The apparatus 800 includes a processor 810 and may also include one or more memories 820. The processor 810 is coupled to the memory 820, which stores computer programs or instructions and / or data. The processor 810 executes the computer programs or instructions and / or data stored in the memory 820, causing the methods in the above method embodiments to be performed. Optionally, the apparatus 800 includes one or more processors 810.
[0274] Alternatively, the memory 820 may be integrated with the processor 810 or set separately.
[0275] Optionally, such as Figure 8As shown, the device 800 may further include a transceiver 830 for receiving and / or transmitting signals. For example, a processor 810 is used to control the transceiver 830 to receive and / or transmit signals.
[0276] As one option, the device 800 is used to perform the operations performed by the device for calibrating the kinematic parameters of the robot in the above method embodiments.
[0277] This application also provides a computer-readable storage medium storing computer instructions for implementing the method executed by the device for calibrating the kinematic parameters of a robot in the above-described method embodiments.
[0278] This application also provides a computer program product containing instructions that, when executed by a computer, cause the computer to implement the method described above, performed by the device for calibrating the kinematic parameters of a robot.
[0279] This application also provides a system for calibrating the kinematic parameters of a robot, which includes the apparatus for calibrating the kinematic parameters of a robot described in the above embodiments.
[0280] The explanations and beneficial effects of the relevant contents in any of the devices provided above can be found in the corresponding method embodiments provided above, and will not be repeated here.
[0281] It should be understood that the processor mentioned in the embodiments of this application can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor can be a microprocessor or any conventional processor.
[0282] It should also be understood that the memory mentioned in the embodiments of this application can be volatile memory and / or non-volatile memory. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory can be random access memory (RAM). For example, RAM can be used as an external cache. By way of example and not limitation, RAM can include a variety of forms, such as: static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0283] It should be noted that when the processor is a general-purpose processor, DSP, ASIC, FPGA, or other programmable logic device, discrete gate or transistor logic device, or discrete hardware component, the memory (storage module) can be integrated into the processor. It should also be noted that the memory described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0284] Those skilled in the art will recognize that the units and steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, and such implementations should not be considered beyond the scope of protection of this application.
[0285] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For example, the division of units is only a logical functional division, and there may be other division methods in actual implementation. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of the apparatus or unit may be electrical, mechanical, or other forms.
[0286] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to implement the solution provided in this application, depending on actual needs.
[0287] In addition, the functional units in the various embodiments of this application can be integrated into one unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0288] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. For example, the computer can be a personal computer, a server, or a network device, etc. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., DVDs), or semiconductor media (e.g., solid-state disks, SSDs). For example, the aforementioned available media may include, but are not limited to, USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks, and other media capable of storing program code.
[0289] Furthermore, the term "and / or" in this application is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. Additionally, the character " / " in this document generally indicates that the preceding and following related objects have an "or" relationship. The term "at least one" in this application can represent "one" and "two or more." For example, at least one of A, B, and C can represent: A existing alone, B existing alone, C existing alone, A and B existing simultaneously, A and C existing simultaneously, C and B existing simultaneously, and A, B, and C existing simultaneously.
[0290] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method for calibrating kinematic parameters of a robot, characterized in that, The method comprises: obtaining a displacement pair, the displacement pair comprising a first displacement and a second displacement, the first displacement being an actual movement displacement of a robot end effector from a first position to a second position, the second displacement being a nominal movement displacement of the robot end effector from the first position to the second position; determining an error value according to the displacement pair, the error value being used for calibrating kinematic parameters of the robot; wherein the first position and the second position are positions of two different points in an operational space of the robot, and a pose of the robot end effector at the first position and a pose of the robot end effector at the second position are the same; the actual movement displacement is determined by a size of a calibration object in the operational space, a size of a first image, and a size of a second image, the first image being an image of the calibration object acquired by an effector of the robot end effector at the first position, the second image being an image of the calibration object acquired by the effector of the robot end effector at the second position; the nominal movement displacement is determined by a robot kinematic model, a first joint variable, and a second joint variable, the first joint variable being a joint variable of the robot at the first position, the second joint variable being a joint variable of the robot at the second position, the robot kinematic model being used to represent a relationship between joint variables of the robot and a pose of the robot end effector.
2. The method of claim 1, wherein, The method further comprises: determining a first command joint variable according to the robot kinematic model and the pose of the robot end effector at the first position; determining a second command joint variable according to the robot kinematic model and the pose of the robot end effector at the second position; determining a command according to the first command joint variable and the second command joint variable, the command being used to control the robot end effector to move from the first position to the second position.
3. The method of claim 2, wherein, The robot end effector moving from the first position to the second position comprises: the robot end effector moving along a first path from the first position to the second position, wherein the first position and the second position are on the first path, and the first path is a line connecting a center of the robot end effector and a point on a surface of the calibration object.
4. The method according to any one of claims 1 to 3, characterized in that, The obtaining the displacement pair comprises: obtaining a plurality of displacement pairs, wherein the plurality of displacement pairs comprises a first displacement pair and a second displacement pair; Before obtaining the first displacement pair, the method further comprises: controlling the robot such that the robot end effector is parallel to a first face of the calibration object; Before obtaining the second displacement pair, the method further comprises: controlling the robot such that the robot end effector is parallel to a second face of the calibration object, wherein the first face and the second face are two different surfaces of the calibration object.
5. The method according to any one of claims 1 to 3, characterized in that, Before obtaining the displacement pair, the method further comprises: determining that an error of the kinematic parameters of the robot is greater than a preset threshold.
6. The method according to any one of claims 1 to 3, characterized in that, The actual movement displacement, the size of the calibration object in the robot operating space, the size of the first image and the size of the second image satisfy the following relationship: wherein d R is the actual movement displacement, H is the height of the calibration object, hi is the height of the first image, h2 is the height of the second image, V' is the distance between the center point of the robot end's effector and the center point of the first image when the robot end is at the first position, and V" is the distance between the center point of the robot end's effector and the center point of the second image when the robot end is at the second position.
7. The method according to any one of claims 1 to 3, characterized in that, The method further comprises: acquiring a first motor encoder value of the robot in a case where the robot end is located at the first position, the first motor encoder value being used to calculate the first joint variable; acquiring a second motor encoder value of the robot in a case where the robot end is located at the second position, the second motor encoder value being used to calculate the second joint variable.
8. The method according to any one of claims 1 to 3, characterized in that, The robot comprises: a mechanical arm, a drone or an intelligent vehicle.
9. An apparatus for calibrating kinematic parameters of a robot, characterized by comprises: an acquisition unit, configured to acquire a displacement pair, the displacement pair comprising a first displacement and a second displacement, the first displacement being an actual movement displacement of a robot end from a first position to a second position, the second displacement being a nominal movement displacement of the robot end from the first position to the second position; a processing unit, configured to determine an error value according to the displacement pair, the error value being used to calibrate kinematic parameters of the robot; wherein the first position and the second position are positions of two different points in an operating space of the robot, and a pose of the robot end at the first position and a pose of the robot end at the second position are the same; the actual movement displacement is determined by a size of a calibration object in the operating space, a size of a first image and a size of a second image, the first image being an image of the calibration object acquired by an effector of the robot end in a case where the robot end is located at the first position, and the second image being an image of the calibration object acquired by the effector of the robot end in a case where the robot end is located at the second position; the nominal movement displacement is determined by a robot kinematic model, a first joint variable and a second joint variable, the first joint variable being a joint variable of the robot in a case where the robot end is located at the first position, the second joint variable being a joint variable of the robot in a case where the robot end is located at the second position, and the robot kinematic model being used to represent a relationship between joint variables of the robot and a pose of the robot end.
10. The apparatus of claim 9, wherein, The processing unit is further configured to determine a first instruction joint variable according to the robot kinematic model and the pose of the robot end at the first position; The processing unit is further configured to determine a second instruction joint variable according to the robot kinematic model and the pose of the robot end at the second position; The processing unit is further configured to determine an instruction according to the first instruction joint variable and the second instruction joint variable, the instruction being used to control the robot end to move from the first position to the second position.
11. The apparatus of claim 10, wherein, The robot end moving from the first position to the second position comprises: the robot end moving along a first path from the first position to the second position, wherein the first position and the second position are on the first path, and the first path is a line connecting a center of the robot end and a point on a surface of the calibration object.
12. The apparatus of any one of claims 9-11, wherein, The acquisition unit is configured to acquire a plurality of displacement pairs, the plurality of displacement pairs comprising a first displacement pair and a second displacement pair. Before the acquisition unit acquires the first displacement pair, the processing unit is further configured to control the robot such that the robot end effector is parallel to a first face of the calibration object. Before the acquisition unit acquires the second displacement pair, the processing unit is further configured to control the robot such that the robot end effector is parallel to a second face of the calibration object, wherein the first face and the second face are different surfaces of the calibration object.
13. The apparatus of any one of claims 9-11, wherein, Before the acquisition unit acquires the displacement pair, the processing unit is further configured to determine that an error of a kinematic parameter of the robot is greater than a preset threshold.
14. The apparatus of any one of claims 9-11, wherein, The actual movement displacement, the size of the calibration object in the robot operating space, the size of the first image, and the size of the second image satisfy the following relationship: wherein d R is the actual movement displacement, H is the height of the calibration object, hi is the height of the first image, h2 is the height of the second image, V' is the distance between the center point of the robot end's effector and the center point of the first image when the robot end is at the first position, and V" is the distance between the center point of the robot end's effector and the center point of the second image when the robot end is at the second position.
15. The apparatus of any one of claims 9-11, wherein, When the robot end effector is located at the first position, the acquisition unit is further configured to acquire a first motor encoder value of the robot, the first motor encoder value being used to calculate the first joint variable. When the robot end effector is located at the second position, the acquisition unit is further configured to acquire a second motor encoder value of the robot, the second motor encoder value being used to calculate the second joint variable.
16. An apparatus for calibrating kinematic parameters of a robot, characterized by comprising: a memory configured to store a computer program; a processor configured to execute the computer program stored in the memory, so that the device for calibrating the kinematic parameters of the robot executes the method of any one of claims 1-8.
17. A computer-readable storage medium, characterized in that, The computer readable storage medium stores computer instructions, and when the computer instructions run on a computer, the method of any one of claims 1-8 is executed.
18. A system for calibrating kinematic parameters of a robot, characterized by, comprising: a robot and an effector of a robot end effector, the robot being configured to: acquire a displacement pair, the displacement pair comprising a first displacement and a second displacement, the first displacement being an actual movement displacement of the robot end effector from a first position to a second position, the second displacement being a nominal movement displacement of the robot end effector from the first position to the second position; determine an error value from a plurality of displacement pairs, the error value being used to calibrate kinematic parameters of the robot; the effector of the robot end effector is configured to: acquire a first image of a calibration object when the robot end effector is located at the first position; acquire a second image of the calibration object when the robot end effector is located at the second position; wherein the first position and the second position are positions of two different points in an operating space of the robot, and the pose of the robot end effector at the first position and the pose of the robot end effector at the second position are the same; the actual movement displacement is determined by the size of the calibration object in the operating space of the robot, the size of the first image, and the size of the second image; The nominal movement displacement is determined by a robot kinematics model, a first joint variable and a second joint variable, the first joint variable being a joint variable of the robot with the robot end-effector at the first position, the second joint variable being a joint variable of the robot with the robot end-effector at the second position, the robot kinematics model being used to represent a relationship between joint variables of the robot and a pose of the robot end-effector.
19. The system of claim 18, wherein, The system further comprises the calibration object.
Citation Information
Patent Citations
Industrial robot kinematics parameter calibration device and calibration method
CN105021144A
Serial robot kinematics parameter calibration method based on vision
CN108789404A