Robot calibration method, device, electronic device and storage medium
By establishing a kinematic model of the calibration block and the detection end, and combining multiple pose data to determine the contact coordinates, the problem of low calibration accuracy of robots in the prior art is solved, and high-precision and low-cost automatic closed-loop calibration is achieved.
Patent Information
- Application Number
- CN202210872448.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-07-20
- Publication Date
- 2025-06-06
- Estimated Expiration
- 2042-07-20
AI Technical Summary
In the prior art, the robot calibration accuracy is low, mainly due to the dependence of external measurement equipment, the attitude measurement of the robot end effector is not accurate enough.
By establishing a kinematic model between the calibration block and the coordinate system of the detection end, combining multiple position data, the contact coordinates of the detection end are determined, and the measurement parameters of the robot are determined based on the contact coordinates of the multiple calibration blocks, automatic closed-loop calibration of the robot is realized.
It improves the accuracy and efficiency of robot calibration, reduces dependence on external measurement equipment, and reduces cost and time-consuming.
Smart Images

Figure CN115122333B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of robot automation technology, and more specifically, to a robot calibration method, device, electronic device and storage medium. Background Art
[0002] Precision is one of the important performances of robots. Due to factors such as machining tolerances, assembly errors, and elastic deformation of rod joints, there are errors between the actual geometric parameters of the robot and the theoretical parameters. These geometric parameters are used to calculate the forward kinematics and inverse kinematics of the robot. The parameter errors of the geometric parameters will affect the operating accuracy of the robot.
[0003] In the prior art, geometric parameters can be corrected and kinematic parameter errors can be compensated by parameter calibration to improve the absolute accuracy of the robot. However, the current calibration technology usually relies on external measuring equipment to measure the posture of the robot's end effector, resulting in low accuracy in the robot's kinematic parameter calibration. Summary of the invention
[0004] In view of this, the purpose of the embodiments of the present application is to provide a robot calibration method, device, electronic device and storage medium to improve the problem of low accuracy in robot calibration in the prior art.
[0005] In order to solve the above problems, in a first aspect, an embodiment of the present application provides a robot calibration method, the method comprising:
[0006] Establishing an i-th kinematic model between the first coordinate system of the i-th calibration block and the second coordinate system of the detection end of the robot, wherein i is a positive integer greater than or equal to 1 and less than or equal to n, and n is the number of the calibration blocks;
[0007] Determine a plurality of position and posture data of a plurality of test points on the i-th calibration block contacted by the detection end;
[0008] Determining a plurality of contact coordinates of the detection end according to the plurality of posture data and the i-th kinematic model;
[0009] The measurement parameters of the robot are determined according to the n groups of contact coordinates corresponding to the n calibration blocks.
[0010] In the above implementation process, by establishing a kinematic model between the coordinate system of the calibration block and the detection end, the posture data of the detection end when in contact with the calibration block can be combined to obtain multiple contact coordinates of the detection end in the first coordinate system when in contact, thereby determining the real kinematic measurement parameters of the robot during motion according to the multiple contact coordinates of the multiple calibration blocks. During calibration, the entire workspace of the robot can be measured to achieve automatic closed-loop calibration of the robot, without the need for external measurement equipment for open-loop calibration, reducing the cost and time consumption of robot calibration, and effectively improving the accuracy and efficiency of robot calibration.
[0011] Optionally, determining a plurality of posture data of the detection end contacting a plurality of test points on the i-th calibration block includes:
[0012] Testing the contact force of the detection end contacting each test point according to the sensor on the detection end;
[0013] When the contact force satisfies a force threshold, the current posture data of the robot is acquired, wherein the posture data includes joint angle data of multiple joints of the robot.
[0014] In the above implementation process, in order to enable the detection end to accurately touch the surface of the calibration block, a sensor can be set on the detection end to test the contact force when the detection end contacts the test point on the surface of the calibration block. When the contact force meets the preset force threshold, it is judged that the detection end touches the calibration block normally, and the current posture data of the robot can be acquired. The contact and judgment process is repeated to obtain multiple posture data. Normal contact can be performed with a constant force, avoiding the adverse effects on the posture data caused by insufficient or excessive force, and effectively improving the accuracy of the posture data.
[0015] Optionally, determining a plurality of contact coordinates of the detection end according to the plurality of posture data and the i-th kinematic model comprises:
[0016] Determining setting parameters of the robot;
[0017] Each of the posture data and the setting parameters are substituted into the i-th kinematic model to determine a plurality of contact coordinates in the first coordinate system when the detection end contacts a plurality of the test points.
[0018] In the above implementation process, the set kinematic parameters of the robot are determined according to the model and type of the robot, and each posture data and the set parameters are substituted into the corresponding kinematic model for calculation. It is possible to determine the contact coordinates of the detection head when it contacts the calibration block when the robot is in multiple different postures, thereby realizing the conversion of the robot's posture to the position in the first coordinate system, effectively improving the correlation between the contact coordinates and the posture data.
[0019] Optionally, the method further comprises:
[0020] A corresponding plane equation is established according to each measured plane of the i-th calibration block, wherein the i-th calibration block includes a plurality of the measured planes, and each of the measured planes includes a plurality of the test points.
[0021] In the above implementation process, since each calibration block has multiple measured planes, the detection end of the robot can contact each measured plane during the test, so that each measured plane includes multiple test points when the detection end contacts. A corresponding plane equation can be established according to each measured plane in the calibration block to determine whether the contact coordinates corresponding to the posture data of each test point meet the accuracy during calibration.
[0022] Optionally, determining the measurement parameters of the robot according to the n groups of contact coordinates corresponding to the n calibration blocks includes:
[0023] Determine a plurality of sets of fitting coordinates according to the n sets of contact coordinates and the n kinematic models;
[0024] Substituting each set of the fitting coordinates into the corresponding plane equation to establish a set of error equations;
[0025] Perform fitting based on the error equation group to determine error parameters;
[0026] The measurement parameters of the robot are determined according to the error parameters and the setting parameters of the robot.
[0027] In the above implementation process, multiple groups of contact coordinates can be substituted into the Jacobian matrix of the corresponding kinematic model respectively, so as to determine the corresponding multiple groups of fitting coordinates corresponding to the kinematic parameters set for the robot, and fit the error equation group established according to the fitting coordinates and the corresponding plane equations to determine the error parameters obtained by the robot kinematic calibration, so as to determine the actual kinematic measurement parameters obtained after measuring the robot according to the set parameters and the error parameters, realize the calibration and correction of the kinematic parameters, and effectively improve the accuracy of the obtained measurement parameters.
[0028] Optionally, the method further comprises:
[0029] Determine, according to the measurement parameters, n groups of measurement coordinates of the detection end contacting the n calibration blocks;
[0030] Determining whether the plurality of measurement coordinates on each of the measured planes satisfy the corresponding plane equation;
[0031] The measured coordinates do not satisfy the corresponding plane equation, and the adjusted measurement parameters of the robot are determined until the current plurality of adjusted measurement coordinates satisfy the corresponding plane equation.
[0032] In the above implementation process, after the robot's kinematic parameters are corrected, re-teaching can be performed based on the corrected measurement parameters. The previously used modeling, posture determination, conversion, etc. can be used to make the detection end continue to contact multiple calibration blocks to obtain multiple groups of measurement coordinates corresponding to multiple calibration blocks, and determine whether multiple measurement coordinates on the same measured plane satisfy the plane equation corresponding to the measured plane. If not, the measurement parameters are calibrated to obtain adjusted measurement parameters, and teaching is continued based on the adjusted measurement parameters to obtain corresponding adjusted measurement coordinates. The calibration and judgment process is repeated until multiple adjusted measurement coordinates on the same measured plane currently satisfy the corresponding plane equation. The robot's kinematic parameters can be verified after calibration and correction, and the calibration accuracy can be improved by repeated calibration, further improving the accuracy of the robot control.
[0033] Optionally, the method further comprises:
[0034] Determining n calibration blocks in multiple directions according to the arm length of the robot;
[0035] Establishing the first coordinate system according to the center of the i-th calibration block among the n calibration blocks during calibration;
[0036] Establishing the second coordinate system according to the detection end of the robot;
[0037] A third coordinate system is established according to the base of the robot.
[0038] In the above implementation process, in order to achieve high-precision calibration for testing the robot's entire workspace, the corresponding multiple calibration blocks can be determined according to the robot's arm length, and corresponding coordinate systems can be established according to the calibration blocks, the robot's detection end and the base during calibration.
[0039] Optionally, establishing the i-th kinematic model between the first coordinate system of the i-th calibration block and the second coordinate system of the detection end of the robot includes:
[0040] Establishing a first transformation relationship between the first coordinate system and the third coordinate system;
[0041] Establishing a second transformation relationship between the second coordinate system and the third coordinate system;
[0042] Based on the first conversion relationship and the second conversion relationship, the i-th kinematic model between the first coordinate system and the second coordinate system is established.
[0043] In the above implementation process, since the third coordinate system of the base and the first coordinate system of the calibration block are relatively static, the first conversion relationship between the first coordinate system and the third coordinate system and the second conversion relationship between the second coordinate system and the third coordinate system can be established first, and then the kinematic model between the first coordinate system and the second coordinate system in the i-th calibration block is established based on the kinematic modeling method according to the first conversion relationship and the second conversion relationship. According to the relationship between the three coordinate systems between different calibration blocks and the robot, the kinematic model between each calibration block and the detection end can be determined to realize the conversion between posture and position.
[0044] In a second aspect, an embodiment of the present application further provides a robot calibration device, the device comprising:
[0045] A modeling module, used to establish an i-th kinematic model between a first coordinate system of an i-th calibration block and a second coordinate system of a detection end of the robot, wherein i is a positive integer greater than or equal to 1 and less than or equal to n, and n is the number of the calibration blocks;
[0046] A recording module, used for determining a plurality of posture data of the detection end contacting a plurality of test points on the i-th calibration block;
[0047] A determination module, used for determining a plurality of contact coordinates of the detection end according to the plurality of posture data and the i-th kinematic model;
[0048] A calibration module is used to determine the measurement parameters of the robot according to the n groups of contact coordinates corresponding to the n calibration blocks.
[0049] In a third aspect, an embodiment of the present application further provides an electronic device, comprising a memory and a processor, wherein the memory stores program instructions, and when the processor reads and runs the program instructions, it executes the steps in any implementation of the above-mentioned robot calibration method.
[0050] In a fourth aspect, an embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores computer program instructions, and when the computer program instructions are read and executed by a processor, the steps in any implementation of the above-mentioned robot calibration method are executed.
[0051] In summary, the present application provides a robot calibration method, device, electronic device and storage medium, which realize the conversion between posture and position through a kinematic model. During calibration, the entire workspace of the robot can be measured to determine the actual kinematic parameters of the robot, thereby realizing automatic closed-loop calibration of the robot. No external measuring equipment is required for open-loop calibration, which reduces the cost and time of robot calibration and effectively improves the accuracy and efficiency of robot calibration. BRIEF DESCRIPTION OF THE DRAWINGS
[0052] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required for use in the embodiments of the present application will be briefly introduced below. It should be understood that the following drawings only show certain embodiments of the present application and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.
[0053] Figure 1 A block diagram of an electronic device provided in an embodiment of the present application;
[0054] Figure 2 A schematic diagram of a flow chart of a robot calibration method provided in an embodiment of the present application;
[0055] Figure 3 A detailed flowchart of step S300 provided in an embodiment of the present application;
[0056] Figure 4 A detailed flowchart of step S400 provided in an embodiment of the present application;
[0057] Figure 5 A detailed flowchart of step S500 provided in an embodiment of the present application;
[0058] Figure 6 A schematic diagram of a flow chart of another robot calibration method provided in an embodiment of the present application;
[0059] Figure 7 A schematic diagram of a flow chart of another robot calibration method provided in an embodiment of the present application;
[0060] Figure 8 A detailed flow chart of step S200 provided in an embodiment of the present application;
[0061] Fig. 9 A schematic diagram of the module structure of a robot calibration device provided in an embodiment of the present application;
[0062] Fig.10 A schematic diagram of the operation of a robot calibration method provided in an embodiment of the present application.
[0063] Icons: 100-electronic device; 111-memory; 112-storage controller; 113-processor; 114-peripheral interface; 115-communication unit; 116-display unit; 800-robot calibration device; 810-modeling module; 820-recording module; 830-determination module; 840-calibration module; 900-robot; 910-detection end; 911-sensor; 920-calibration platform; 921-adjustable distance track; 931-first calibration block; 932-second calibration block; 933-third calibration block. DETAILED DESCRIPTION
[0064] The technical scheme in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all of the embodiments. Based on the embodiments of the embodiments of the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the embodiments of the present application.
[0065] The current method of calibrating the kinematics of a robot usually uses external measuring equipment to measure the posture of the robot's end effector, which is an open-loop calibration method. However, due to the accuracy requirements during calibration, it is necessary to use expensive or complex measuring equipment for measurement, such as theodolites, laser trackers, etc. These instruments will be affected by factors such as temperature and humidity in the use environment during calibration. In addition, when using external equipment for measurement, due to the location restrictions of the external equipment, it is impossible to measure all the postures of the robot's end effector. Therefore, when using external equipment to calibrate the robot, the cost is high, the time is long, the calibration accuracy is easily affected and is not comprehensive, resulting in low calibration accuracy of the current robot kinematic parameters.
[0066] In order to solve the above problems, an embodiment of the present application provides a robot calibration method, which is applied to electronic devices. The electronic devices can be servers, personal computers (PCs), tablet computers, smart phones, personal digital assistants (PDAs), and other electronic devices with logical computing functions. The robot's posture can be converted into position information in a calibration block, thereby measuring the actual kinematic parameters of the robot during movement.
[0067] Optionally, see Figure 1 , Figure 1The block diagram of an electronic device provided in an embodiment of the present application. The electronic device 100 can be set inside the robot or can be a separate device for controlling the robot to move and obtain various data during the movement. The electronic device 100 may include a memory 111, a storage controller 112, a processor 113, a peripheral interface 114, a communication unit 115, and a display unit 116. A person skilled in the art can understand that Figure 1 The structure shown is only for illustration and does not limit the structure of the electronic device 100. For example, the electronic device 100 may further include Figure 1 More or fewer components as shown, or with Figure 1 Different configurations are shown.
[0068] The memory 111, storage controller 112, processor 113, peripheral interface 114, communication unit 115 and display unit 116 are directly or indirectly electrically connected to each other to achieve data transmission or interaction. For example, these components can be electrically connected to each other through one or more communication buses or signal lines. The processor 113 is used to execute the executable module stored in the memory.
[0069] The memory 111 may be, but is not limited to, a random access memory (RAM), a read only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable read-only memory (EEPROM), etc. The memory 111 is used to store programs, and the processor 113 executes the program after receiving the execution instruction. The method executed by the electronic device 100 defined by the process disclosed in any embodiment of the present application can be applied to the processor 113, or implemented by the processor 113.
[0070] The processor 113 may be an integrated circuit chip with signal processing capability. The processor 113 may be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it may also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application may be implemented or executed. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc.
[0071] The peripheral interface 114 couples various input / output devices to the processor 113 and the memory 111. In some embodiments, the peripheral interface 114, the processor 113 and the memory controller 112 can be implemented in a single chip. In other embodiments, they can be implemented by separate chips.
[0072] The communication unit 115 is used to communicate with the robot to control the movement of the robot and to transmit data with the robot. The communication connection can be through a wired or wireless network connection or a Bluetooth connection, and the communication unit 115 can be, but is not limited to, various communication chips and the like.
[0073] The above-mentioned display unit 116 provides an interactive interface (such as a user operation interface) between the electronic device 100 and the user or is used to display image data for the user's reference. In this embodiment, the display unit can be a liquid crystal display or a touch display. If it is a touch display, it can be a capacitive touch screen or a resistive touch screen that supports single-point and multi-point touch operations. Supporting single-point and multi-point touch operations means that the touch display can sense touch operations generated simultaneously from one or more positions on the touch display, and the sensed touch operations are handed over to the processor for calculation and processing. In an embodiment of the present application, the display unit 116 can display multiple posture data, contact coordinates and other data of the robot.
[0074] The electronic device in this embodiment can be used to execute each step in each robot calibration method provided in the embodiment of the present application. The implementation process of the robot calibration method is described in detail below through several embodiments.
[0075] See also Figure 2 , Figure 2A flowchart of a robot calibration method provided in an embodiment of the present application, the method may include steps S200-S500.
[0076] Step S200, establishing an i-th kinematic model between a first coordinate system of an i-th calibration block and a second coordinate system of a detection end of the robot.
[0077] Wherein, i is a positive integer greater than or equal to 1 and less than or equal to n, n is the number of calibration blocks, n can be the number of calibration blocks set according to the actual situation of the robot, and the i-th calibration block is any one of the n calibration blocks. The detection end of the robot can be a test head on the end effector of the robot, which can contact the surfaces of multiple calibration blocks. Since during calibration, the first coordinate system corresponding to the i-th calibration block is a fixed coordinate system, and the second coordinate system corresponding to the detection end is a coordinate system that changes according to the posture change of the robot, therefore, by establishing a kinematic model between the two coordinate systems, the posture change of the robot can be converted into the position change on the i-th calibration block.
[0078] Optionally, in order to facilitate the calibration of the robot, multiple calibration blocks can be fixed on the surface of the calibration platform through an adjustable distance track, and the positions of the multiple calibration blocks can be adjusted according to the adjustable distance track, so that the entire workspace of the robot can be tested and calibrated, effectively improving the calibration accuracy.
[0079] Optionally, the i-th kinematic model may be a forward kinematic model, or may be a variety of kinematic models such as an inverse kinematic model and a DH model.
[0080] Step S300, determining a plurality of posture data of a plurality of test points on the i-th calibration block contacted by the detection end.
[0081] Among them, corresponding control instructions can be sent to the robot to plan the robot's motion path and make the robot change its posture so that the detection end can contact multiple test points on the i-th calibration block, thereby obtaining the robot's posture data when the detection end contacts multiple different test points.
[0082] Optionally, the ith calibration block may also include multiple measured planes, each of which includes multiple test points. For example, the number of measured planes is related to the shape of the calibration block. When the ith calibration block is a cube, when the ith calibration block is set on the surface of the calibration platform, it has five measured planes, which are distributed as the top Z plane, the left W plane, the right Y plane, the front U plane, and the back V plane. The test points can be randomly distributed on the corresponding five measured planes. In order to facilitate the unified calculation and processing of each measured plane, the same number of test points can be set in each measured plane, for example, each of the five measured planes has ten test points.
[0083] It is worth noting that, in order to constrain the position conversion during calibration, the method may further include: establishing a corresponding plane equation according to each measured plane of the i-th calibration block. Based on the first coordinate system of the i-th calibration block, a corresponding plane equation can be established according to each measured plane in the i-th calibration block for subsequent constraints and detection.
[0084] For example, the first coordinate system of the i-th calibration block can be recorded as XYZi , then the plane equation of the Z plane can be A iZ x+B iZ y+C iZ z=1, the plane equation of W surface can be A iW x+B iW y+C iW z=1, the plane equation of the Y plane can be A iY x+B iY y+C iY z=1, the plane equation of the U surface can be A iU x+B iU y+C iU z=1, the plane equation of the V surface can be A iV x+B iV y+C iV z=1.
[0085] Step S400, determining multiple contact coordinates of the detection end according to multiple posture data and the i-th kinematic model.
[0086] Among them, through the i-th kinematic model, each determined posture data can be converted into a corresponding contact coordinate in the first coordinate system of the i-th calibration block, so as to obtain multiple contact coordinates corresponding to the posture in which the detection end contacts multiple test points on multiple measured planes of the i-th calibration block, thereby realizing the targeted conversion of the robot's posture change to the position in the calibration block, and effectively improving the accuracy of the contact coordinates.
[0087] Step S500, determining the measurement parameters of the robot according to n groups of contact coordinates corresponding to n calibration blocks.
[0088] Among them, the detection end contacts each calibration block, determines the posture data, and obtains multiple contact coordinates after conversion, which can be aggregated into a set of contact coordinates when testing the calibration block. When the n groups of calibration blocks are tested, n groups of contact coordinates corresponding to the n calibration blocks can be obtained. The actual kinematic parameters of the robot during movement can be obtained by fitting and calculating based on the n groups of contact coordinates, which are used as measurement parameters and are recorded as η. 1 .
[0089] Optionally, the measurement parameters may be DH parameters of the robot, including geometric parameters between multiple rods and joints.
[0090] exist Figure 2 In the illustrated embodiment, the entire workspace of the robot can be measured during calibration, thereby achieving automatic closed-loop calibration of the robot. No external measuring equipment is required for open-loop calibration, thereby reducing the cost and time of robot calibration and effectively improving the accuracy and efficiency of robot calibration.
[0091] Optionally, see Figure 3 , Figure 3 A detailed flowchart of step S300 is provided in an embodiment of the present application. Step S300 may also include steps S310-S320.
[0092] Step S310: Testing the contact force of the detection end contacting each test point according to the sensor on the detection end.
[0093] Optionally, when the detection end contacts the surface of the calibration block, if the force is too small, the surface of the calibration block cannot be contacted; if the force is too large, the detection end may damage the surface of the calibration block, such as puncturing the surface of the calibration block, etc. Abnormal contact may cause inaccurate posture data, thereby adversely affecting the accuracy of calibration. Therefore, in order to enable the detection end to accurately touch multiple test points on the surface of the calibration block, a sensor may be provided on the detection end to test the contact force when the detection end contacts each test point on the surface of the calibration block. The sensor may be electrically connected to the communication module in the robot, thereby feeding back the detected multiple contact forces to the electronic device.
[0094] For example, the sensor may be a force sensor of various types.
[0095] Step S320: The contact force meets the force threshold, and the current posture data of the robot is obtained.
[0096] Among them, the robot can be a six-axis robot or a seven-axis robot with multiple joints, and the angles and positions of each joint corresponding to each posture are not necessarily the same. Therefore, the posture data can include the joint angle data of multiple joints of the robot, and the corresponding force threshold can be set and adjusted according to the model of the force sensor and actual needs. For example, the force threshold can be set to 0.5N, and each contact force is compared with the real-time regional force threshold. When the contact force reaches the force threshold, the posture data corresponding to the current posture of the robot is obtained.
[0097] Optionally, when the robot contacts the first test point on the Z plane of the i-th calibration block, when the contact force meets the force threshold, the current joint angle data is recorded as θ iZ1, and then continue to drive the robot to change its posture, thereby changing the posture of the detection end to contact the second test point on the Z surface of the i-th calibration block. When the contact force meets the force threshold, the current joint angle data is recorded as θ iZ2 Repeat the contact and judgment process to obtain the i-th group of pose data θ corresponding to the i-th calibration block ijk , where (i=1~n, k=1~m, m is the different postures of the detection end, that is, the number of test points, j=Z plane, W plane, Y plane, U plane or V plane).
[0098] exist Figure 3 In the illustrated embodiment, the robot can be controlled to make normal contact with a constant force, thereby avoiding adverse effects on the posture data due to insufficient or excessive force, and effectively improving the accuracy of the posture data.
[0099] Optionally, see Figure 4 , Figure 4 A detailed flowchart of step S400 is provided in an embodiment of the present application. Step S400 may also include steps S410-S420.
[0100] Step S410, determining setting parameters of the robot.
[0101] Among them, the kinematic parameters to be set can be determined according to the model and type of the robot, and can be recorded as η as the setting parameters of the robot. 2 .
[0102] Step S420: Substitute each posture data and setting parameters into the i-th kinematic model to determine multiple contact coordinates in the first coordinate system when the detection end contacts multiple test points.
[0103] Among them, each posture data and setting parameters obtained when contacting the i-th calibration block can be substituted into the i-th kinematic model for calculation to obtain multiple contact coordinates in the first coordinate system when the detection end contacts multiple test points. For example, the multiple contact coordinates of the detection end in the i-th calibration block can be grouped into the i-th group of contact coordinates, recorded as (Px ijk (θ ijk ,η 2 ), Py ijk (θ ijk ,η 2 ), Pz ijk (θ ijk ,η 2 )).
[0104] exist Figure 4In the embodiment shown, it is possible to determine the contact coordinates of the detection head when it contacts the calibration block when the robot is in multiple different postures, thereby realizing the conversion of the robot's posture to the position in the first coordinate system, effectively improving the correlation between the contact coordinates and the posture data.
[0105] Optionally, see Figure 5 , Figure 5 A detailed flowchart of step S500 is provided in an embodiment of the present application. Step S500 may also include steps S510-S540.
[0106] Step S510, determining a plurality of sets of fitting coordinates according to n sets of contact coordinates and n kinematic models.
[0107] Among them, multiple groups of contact coordinates can be substituted into the Jacobian matrix of the corresponding kinematic model, so as to determine the corresponding multiple groups of fitting coordinates corresponding to the kinematic parameters set by the robot. For example, the i-th group of fitting coordinates calculated by the i-th group of contact coordinates can be recorded as (Jx(θ ijk ,η 2 ), Jy(θ ijk ,η 2 ), Jz(θ ijk ,η 2 )).
[0108] Step S520, substituting each set of fitting coordinates into the corresponding plane equation to establish an error equation group.
[0109] Each set of fitting coordinates can be substituted into the plane equation of the corresponding measured plane in the corresponding calibration block for calculation, and a corresponding error equation group can be established.
[0110] Step S530, performing fitting based on the error equation group to determine the error parameters.
[0111] Among them, the error equation group can be:
[0112] (A ij Jx(θ ijk ,η 2 )+B ij Jy(θ ijk ,η 2 )+C ij Jz(θ ijk ,η 2 ))Δη=-1-A ij Px ijk (θ ijk ,η 2 )-B ij Py ijk (θ ijk ,η 2 )-Cij Pz ijk (θ ijk ,η 2 );
[0113] Among them, Δη is the error parameter.
[0114] Step S540, determining the measurement parameters of the robot according to the error parameters and the setting parameters of the robot.
[0115] Among them, since Δη=η 1 -η 2 , that is, η 1 =Δη+η 2 By compensating the set parameters with error parameters, the actual kinematic measurement parameters of the robot can be determined.
[0116] exist Figure 5 In the illustrated embodiment, the kinematic parameters are calibrated and corrected, which effectively improves the accuracy of the acquired measurement parameters.
[0117] Optionally, see Figure 6 , Figure 6 A flowchart of another robot calibration method provided in an embodiment of the present application, the method may further include steps S610-S630.
[0118] Step S610, determining n groups of measurement coordinates of the detection end contacting n calibration blocks according to the measurement parameters.
[0119] Among them, in order to verify the obtained measurement parameters, the measurement parameters can also be brought into the robot's control software to control the robot to re-teach with the corrected measurement parameters, and obtain n sets of measurement coordinates in the coordinate system of the calibration block corresponding to when the detection end contacts n calibration blocks.
[0120] Optionally, the measurement coordinates may be acquired in a contact coordinate acquisition manner, which will not be described in detail.
[0121] Step S620, determining whether the multiple measurement coordinates on each measured plane satisfy the corresponding plane equation.
[0122] Among them, it is possible to test whether the position of the detection end is constrained to the same plane, thereby testing whether the measurement parameters are accurate, by respectively judging whether multiple measurement coordinates on the same measured plane in the same calibration block satisfy the plane equation corresponding to the measured plane.
[0123] Step S630: if the measured coordinates do not satisfy the corresponding plane equation, the robot's adjusted measurement parameters are determined until the current plurality of adjusted measurement coordinates satisfy the corresponding plane equation.
[0124] Among them, when the measurement coordinates do not satisfy the corresponding plane equation, the position of the detection end is not constrained to the same plane. At this time, the accuracy of the calibrated measurement parameters is low. The previous steps can be repeated to recalibrate the measurement parameters to obtain the calibrated adjusted measurement parameters, and continue to teach according to the adjusted measurement parameters to obtain the corresponding adjusted measurement coordinates. Repeat the calibration and judgment process until multiple adjusted measurement coordinates on the same measured plane satisfy the corresponding plane equation. The calibration accuracy is high and the absolute accuracy of the robot is also high.
[0125] exist Figure 6 In the illustrated embodiment, the kinematic parameters of the robot can be verified after calibration and correction, and the calibration accuracy can be improved by repeated calibration, thereby further improving the accuracy of the robot control.
[0126] Optionally, see Figure 7 , Figure 7 A flowchart of another robot calibration method provided in an embodiment of the present application, the method may further include steps S710-S740.
[0127] Step S710, determining n calibration blocks in multiple directions according to the arm length of the robot.
[0128] Among them, n calibration blocks in different directions can be set on the calibration platform according to the arm length of the robot, and corresponding distance adjustment tracks can be set to adjust the positions of the n calibration blocks.
[0129] Optionally, the n calibration blocks may be calibration blocks of uniform size, with the size error controlled within +-0.02 mm, and each calibration block may have a plane verticality of level one or above to improve the accuracy during testing.
[0130] Step S720: establishing a first coordinate system according to the center of the i-th calibration block among the n calibration blocks during calibration.
[0131] Among them, the first coordinate system is established with the center of the i-th calibration block, denoted as O XYZi .
[0132] Step S730, establishing a second coordinate system according to the detection end of the robot.
[0133] Among them, the second coordinate system O is established with the probe center point of the robot's detection end as the center XYZM .
[0134] Step S740: establishing a third coordinate system according to the base of the robot.
[0135] Among them, the third coordinate system O is established with the center of the robot base as the center XYZR .
[0136] exist Figure 7 In the illustrated embodiment, a plurality of corresponding calibration blocks may be determined according to the arm length of the robot, so that corresponding coordinate systems may be established according to the calibration blocks, the detection end of the robot, and the base during calibration.
[0137] Optionally, see Figure 8 , Figure 8 A detailed flowchart of step S200 is provided in an embodiment of the present application. Step S200 may also include steps S210-S230.
[0138] Step S210: establishing a first conversion relationship between the first coordinate system and the third coordinate system.
[0139] Among them, a first conversion relationship between the first coordinate system and the third coordinate system can be established according to the positional relationship between the first coordinate system and the third coordinate system, which is recorded as A.
[0140] Step S220: establishing a second transformation relationship between the second coordinate system and the third coordinate system.
[0141] Among them, a second transformation relationship between the second coordinate system and the third coordinate system can be established according to the positional relationship between the second coordinate system and the third coordinate system. The second transformation relationship can be a homogeneous transformation matrix, which can be recorded as oT n (θ,η 2 ).
[0142] Optionally, since the second coordinate system is a changing coordinate system, the second conversion relationship is also a dynamic conversion relationship.
[0143] Step S230: establishing an i-th kinematic model between the first coordinate system and the second coordinate system based on the first transformation relationship and the second transformation relationship.
[0144] The i-th kinematic model V(θ,η) of the first coordinate system and the second coordinate system is determined according to the first conversion relationship and the second conversion relationship. 2 ), V(θ,η 2 )=A*oT n (θ,η 2 ).
[0145] exist Figure 8 In the illustrated embodiment, the kinematic model between each calibration block and the detection end can be determined according to the relationship between the three coordinate systems between different calibration blocks and the robot to achieve the conversion between posture and position.
[0146] See also Fig. 9 , Fig. 9 A schematic diagram of a module structure of a robot calibration device provided in an embodiment of the present application, the robot calibration device 800 includes:
[0147] A modeling module 810, for establishing an i-th kinematic model between a first coordinate system of an i-th calibration block and a second coordinate system of a detection end of the robot, wherein i is a positive integer greater than or equal to 1 and less than or equal to n, and n is the number of calibration blocks;
[0148] A recording module 820, used to determine a plurality of posture data of a plurality of test points on the i-th calibration block contacted by the detection end;
[0149] A determination module 830, configured to determine a plurality of contact coordinates of the detection end according to the plurality of posture data and the i-th kinematic model;
[0150] The calibration module 840 is used to determine the measurement parameters of the robot according to the n groups of contact coordinates corresponding to the n calibration blocks.
[0151] In an optional implementation, the recording module 820 may further include a strength submodule and a judgment submodule;
[0152] A force submodule, used for testing the contact force of the detection end contacting each test point according to the sensor on the detection end;
[0153] The judgment submodule is used to determine whether the contact force meets the force threshold and obtain the current posture data of the robot, wherein the posture data includes the joint angle data of multiple joints of the robot.
[0154] In an optional implementation, the determination module 830 may also include a parameter submodule and a coordinate submodule;
[0155] The parameter submodule is used to determine the setting parameters of the robot;
[0156] The coordinate submodule is used to substitute each posture data and setting parameters into the i-th kinematic model to determine multiple contact coordinates in the first coordinate system when the detection end contacts multiple test points.
[0157] In an optional embodiment, the robot calibration device 800 may further include a plane module for establishing a corresponding plane equation according to each measured plane of the i-th calibration block, wherein the i-th calibration block includes multiple measured planes and each measured plane includes multiple test points.
[0158] In an optional implementation, the calibration module 840 may further include a fitting submodule, an error submodule, and a calculation submodule;
[0159] A fitting submodule, for determining a plurality of sets of fitting coordinates according to n sets of contact coordinates and n kinematic models;
[0160] The error submodule is used to substitute each set of fitting coordinates into the corresponding plane equation to establish an error equation group; perform fitting based on the error equation group to determine the error parameters;
[0161] The calculation submodule is used to determine the measurement parameters of the robot according to the error parameters and the setting parameters of the robot.
[0162] In an optional embodiment, the robot calibration device 800 may further include a testing module for determining n sets of measurement coordinates of the detection end contacting n calibration blocks based on measurement parameters; judging whether multiple measurement coordinates on each measured plane satisfy corresponding plane equations; and if the measurement coordinates do not satisfy the corresponding plane equations, determining the robot's adjusted measurement parameters until the current multiple adjusted measurement coordinates satisfy the corresponding plane equations.
[0163] In an optional embodiment, the robot calibration device 800 may also include a coordinate construction module, which is used to determine n calibration blocks in multiple directions according to the arm length of the robot; establish a first coordinate system according to the center of the i-th calibration block among the n calibration blocks during calibration; establish a second coordinate system according to the detection end of the robot; and establish a third coordinate system according to the base of the robot.
[0164] In an optional embodiment, the modeling module 810 may also include a conversion submodule and a construction submodule;
[0165] A conversion submodule, used to establish a first conversion relationship between the first coordinate system and the third coordinate system; and to establish a second conversion relationship between the second coordinate system and the third coordinate system;
[0166] The construction submodule is used to establish an i-th kinematic model between the first coordinate system and the second coordinate system based on the first conversion relationship and the second conversion relationship.
[0167] Since the principle of solving the problem by the robot calibration device 800 in the embodiment of the present application is similar to that of the embodiment of the aforementioned robot calibration method, the implementation of the robot calibration device 800 in this embodiment can refer to the description in the embodiment of the aforementioned robot calibration method, and the repeated parts will not be repeated.
[0168] Optionally, see Fig.10 , Fig.10A schematic diagram of the operation of a robot calibration method provided in an embodiment of the present application. Among them, the robot 900 is set on a calibration platform 920, the end of the robot 900 is a detection end 910, and a sensor 911 is provided on the detection end. The electronic device 100 can be set inside the robot 900, or it can be a separate device. A distance adjustment track 921 is set on the calibration platform 920, and three calibration blocks are set on the distance adjustment track 921: a first calibration block 931, a second calibration block 932 and a third calibration block 933. Other numbers of calibration blocks can also be set, and other situations are not shown. The distance adjustment track 921 can adjust the position and distance of the first calibration block 931, the second calibration block 932 and the third calibration block 933, so that the robot can test the entire workspace, effectively improving the accuracy during the test.
[0169] An embodiment of the present application further provides a computer-readable storage medium, in which computer program instructions are stored. When the computer program instructions are read and executed by a processor, the steps of any one of the robot calibration methods provided in the present embodiment are executed.
[0170] In summary, the embodiments of the present application provide a robot calibration method, device, electronic device and storage medium, which realize the conversion between posture and position through a kinematic model. During calibration, the entire workspace of the robot can be measured to determine the actual kinematic parameters of the robot, thereby realizing automatic closed-loop calibration of the robot. No external measuring equipment is required for open-loop calibration, which reduces the cost and time of robot calibration and effectively improves the accuracy and efficiency of robot calibration.
[0171] In several embodiments provided in the present application, it should be understood that the disclosed device can also be implemented in other ways. The device embodiments described above are merely schematic, for example, the block diagrams in the accompanying drawings show the possible architecture, functions and operations of the devices according to the multiple embodiments of the present application. In this regard, each box in the block diagram can represent a module, a program segment or a part of a code, and the module, a program segment or a part of the code contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram, and the combination of the block diagrams, can be implemented with a dedicated hardware-based system that performs a specified function or action, or can be implemented with a combination of dedicated hardware and computer instructions.
[0172] In addition, the functional modules in the various embodiments of the present application may be integrated together to form an independent part, or each module may exist separately, or two or more modules may be integrated to form an independent part.
[0173] If the function is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Therefore, this embodiment also provides a computer program instruction stored in a readable storage medium, and when the computer program instruction is read and executed by a processor, the steps in any method described in the block data storage method are executed. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or the part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk and other media that can store program codes.
[0174] The above description is only an embodiment of the present application and is not intended to limit the scope of protection of the present application. For those skilled in the art, the present application may have various changes and variations. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application should be included in the scope of protection of the present application. It should be noted that similar reference numerals and letters represent similar items in the following drawings, so once an item is defined in one drawing, it does not need to be further defined and explained in the subsequent drawings.
[0175] The above description is only a specific implementation manner of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application.
[0176] It should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the statement "include..." do not exclude the presence of other identical elements in the process, method, article or device including the elements.
Claims
1. A robot calibration method, It is characterized in that The method comprises: Establishing an i-th kinematic model between the first coordinate system of the i-th calibration block and the second coordinate system of the detection end of the robot, wherein i is a positive integer greater than or equal to 1 and less than or equal to n, and n is the number of the calibration blocks; Determine a plurality of position and posture data of a plurality of test points on the i-th calibration block contacted by the detection end; Determining a plurality of contact coordinates of the detection end according to the plurality of posture data and the i-th kinematic model; The measurement parameters of the robot are determined according to the n groups of contact coordinates corresponding to the n calibration blocks.
2. The method according to claim 1, It is characterized in that The step of determining a plurality of position and posture data of a plurality of test points on the i-th calibration block in contact with the detection end comprises: Testing the contact force of the detection end contacting each test point according to the sensor on the detection end; When the contact force satisfies a force threshold, the current posture data of the robot is acquired, wherein the posture data includes joint angle data of multiple joints of the robot.
3. The method according to claim 1, It is characterized in that The step of determining a plurality of contact coordinates of the detection end according to the plurality of posture data and the i-th kinematic model comprises: Determining setting parameters of the robot; Each of the posture data and the setting parameters are substituted into the i-th kinematic model to determine a plurality of contact coordinates in the first coordinate system when the detection end contacts a plurality of the test points.
4. The method according to any one of claims 1 to 3, It is characterized in that The method further comprises: A corresponding plane equation is established according to each measured plane of the i-th calibration block, wherein the i-th calibration block includes a plurality of the measured planes, and each of the measured planes includes a plurality of the test points.
5. The method according to claim 4, It is characterized in that Determining the measurement parameters of the robot according to the n groups of contact coordinates corresponding to the n calibration blocks includes: Determine a plurality of sets of fitting coordinates according to the n sets of contact coordinates and the n kinematic models; Substituting each set of the fitting coordinates into the corresponding plane equation to establish a set of error equations; Perform fitting based on the error equation group to determine error parameters; The measurement parameters of the robot are determined according to the error parameters and the setting parameters of the robot.
6. The method according to claim 4, It is characterized in that The method further comprises: Determine, according to the measurement parameters, n groups of measurement coordinates of the detection end contacting the n calibration blocks; Determining whether the plurality of measurement coordinates on each of the measured planes satisfy the corresponding plane equation; The measured coordinates do not satisfy the corresponding plane equation, and the adjusted measurement parameters of the robot are determined until the current plurality of adjusted measurement coordinates satisfy the corresponding plane equation.
7. The method according to any one of claims 1 to 3, It is characterized in that The method further comprises: Determining n calibration blocks in multiple directions according to the arm length of the robot; Establishing the first coordinate system according to the center of the i-th calibration block among the n calibration blocks during calibration; Establishing the second coordinate system according to the detection end of the robot; A third coordinate system is established according to the base of the robot.
8. The method according to claim 7, It is characterized in that The step of establishing the i-th kinematic model between the first coordinate system of the i-th calibration block and the second coordinate system of the detection end of the robot comprises: Establishing a first transformation relationship between the first coordinate system and the third coordinate system; Establishing a second transformation relationship between the second coordinate system and the third coordinate system; Based on the first conversion relationship and the second conversion relationship, the i-th kinematic model between the first coordinate system and the second coordinate system is established.
9. A robot calibration device, It is characterized in that The device comprises: A modeling module, used to establish an i-th kinematic model between a first coordinate system of an i-th calibration block and a second coordinate system of a detection end of the robot, wherein i is a positive integer greater than or equal to 1 and less than or equal to n, and n is the number of the calibration blocks; A recording module, used for determining a plurality of posture data of the detection end contacting a plurality of test points on the i-th calibration block; A determination module, used for determining a plurality of contact coordinates of the detection end according to the plurality of posture data and the i-th kinematic model; A calibration module is used to determine the measurement parameters of the robot according to the n groups of contact coordinates corresponding to the n calibration blocks.
10. An electronic device, It is characterized in that The electronic device comprises a memory and a processor, wherein the memory stores program instructions, and when the processor runs the program instructions, the steps in the method according to any one of claims 1 to 8 are executed.
11. A computer-readable storage medium, It is characterized in that The readable storage medium stores computer program instructions, and when the computer program instructions are executed by a processor, the steps in the method according to any one of claims 1 to 8 are executed.
Citation Information
Patent Citations
Kinematic calibration system and method for industrial robot
CN107042528A
Industrial robot absolute precision calibration system and calibration method
CN111660295A