Sensor calibration method of mechanical arm, surgical robot and readable storage medium

The sensor calibration method is optimized by genetic algorithm, and the robot arm posture with high fitness is selected for calibration, which solves the problem of large sensor calibration error and achieves higher calibration accuracy and control effect.

CN120643302APending Publication Date: 2025-09-16SHENZHEN JINGFENG MEDICAL TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202410297706.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-03-14
Publication Date
2025-09-16

AI Technical Summary

Technical Problem

Existing sensor calibration methods cannot be adaptively adjusted according to actual working conditions, resulting in large errors in the zero-point values ​​of torque and/or force.

Method used

A genetic algorithm optimization method is adopted to obtain multiple candidate sets of calibration posture groups, iteratively perform update operations, and select the calibration posture group with the highest fitness for sensor calibration. A randomly generated new calibration posture group is introduced into the update operation to optimize the robot arm posture and reduce the errors of the torque and force zero point calibration values.

Benefits of technology

The accuracy of sensor calibration is improved, the error of torque zero point and force zero point calibration values ​​is reduced, and the control effect of the robotic arm is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120643302A_ABST
    Figure CN120643302A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a sensor calibration method of a mechanical arm, a surgical robot and a readable storage medium. The method comprises the following steps: acquiring a candidate set containing M calibration attitude groups; iteratively executing N times of updating operations based on the candidate set; taking the calibration attitude group with the highest fitness as a preferred attitude group; acquiring k groups of sampling parameters of the sensor under k mechanical arm postures of the optimal posture group, and executing sensor calibration based on the k groups of sampling parameters to obtain corresponding calibration parameters; wherein the fitness is used for evaluating the influence degree of the disturbance of the sampling parameters on the calibration parameters; in response to execution of each update operation, at least one set of calibrated poses in the candidate set is updated. According to the optimization method based on the genetic algorithm, the optimal mechanical arm posture is determined to be used for calibration of the sensor, errors of the torque zero-point calibration value and the acting force zero-point calibration value are reduced, and then the control effect on the mechanical arm is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical field

[0001] The present application relates to the field of sensor technology, and in particular to a sensor calibration method for a robotic arm, a surgical robot, and a readable storage medium. [Background Technology]

[0002] During robotic arm operation, the control system relies on a multi-dimensional force / torque sensor mounted on its end to sense external contact forces and control the arm's movements, ensuring it accurately and reliably completes the desired motion. To ensure the accuracy of the sensor's sensing results, the sensor must be calibrated to determine the zero-point value of its torque and / or force.

[0003] However, in traditional calibration operations, the commonly used robotic arm posture is set by technicians themselves and cannot be adaptively adjusted according to the needs of actual working conditions. This may also cause the calculated zero-point values ​​of torque and / or force to have large errors. [Summary of the invention]

[0004] The embodiments of the present application provide a sensor calibration method for a robotic arm, a surgical robot, and a readable storage medium, aiming to address at least some of the shortcomings of existing sensor calibration technology.

[0005] In a first aspect, embodiments of the present application provide the following technical solutions: a method for calibrating a sensor for a robotic arm. The method comprises: obtaining a candidate set comprising M calibration posture groups; each calibration posture group having k robotic arm postures; iteratively performing N update operations based on the candidate set; selecting the calibration posture group with the highest fitness as the preferred posture group; obtaining k sets of sampling parameters corresponding to the k robotic arm postures of the sensor in the preferred posture group, and performing sensor calibration based on the k sets of sampling parameters to obtain corresponding calibration parameters; wherein the fitness is used to evaluate the degree of influence of a perturbation of the sampling parameters on the calibration parameters; and in response to each execution of the update operation, at least one calibration posture group in the candidate set is updated to a randomly generated new calibration posture group.

[0006] Optionally, the update operation specifically includes: calculating the fitness of each calibration posture group in the current candidate set; judging whether the fitness of each calibration posture group meets a preset screening condition; when the screening condition is met, dividing the calibration posture group into a first candidate subset; when the screening condition is not met, dividing the calibration posture group into a second candidate subset; replacing at least one calibration posture group in the second candidate subset with the randomly generated new calibration posture group.

[0007] Optionally, the preset screening condition is: in the current candidate set, the fitness of the calibration posture group is greater than or equal to the fitness of T calibration posture groups; wherein T is a positive integer between 1 and M.

[0008] Optionally, replacing at least one calibration posture group in the second candidate subset with the randomly generated new calibration posture group specifically includes: performing one or more random processing on the calibration posture group in the second candidate subset to generate a new calibration posture group; and adding the new calibration posture group to the second candidate subset, and performing an editing operation on the original calibration posture group in the second candidate subset so that M remains unchanged before and after each update operation is executed.

[0009] Optionally, the robotic arm is composed of several joints; each of the robotic arm postures is defined by corresponding several joint parameters; the random processing includes: a first random processing, a second random processing and a third random processing; the first random processing includes: for a pair of selected calibration posture groups, exchanging at least one pair of synonymous joint parameters to generate two new calibration posture groups; the second random processing includes: for a pair of selected calibration posture groups, weightedly superimposing at least one pair of synonymous joint parameters according to a randomly generated weight value to generate a new calibration posture group; the third random processing includes: randomly changing at least one joint parameter in a selected calibration posture group to generate a new calibration posture group; wherein, the pair of synonymous joint parameters are: joint parameters corresponding to the same joint in the pair of selected calibration posture groups.

[0010] Optionally, performing one or more random processing on the calibration posture groups in the second candidate subset to generate a new calibration posture group specifically includes: selectively performing the first random processing or the second random processing on the calibration posture groups in the second candidate subset; performing the third random processing with a preset probability on each calibration posture group in the second candidate subset after performing the first random processing or the second random processing to generate a new calibration posture group.

[0011] Optionally, the first random processing or the second random processing is selectively performed on the calibration posture groups in the second candidate subset, specifically including: randomly generating a judgment number for the second candidate subset; when the judgment number is greater than a preset value, performing the first random processing on all calibration posture groups in the second candidate subset; when the judgment number is less than or equal to a preset value, performing the second random processing on all calibration posture groups in the second candidate subset.

[0012] Optionally, the calibration posture groups in the second candidate subset are selectively subjected to the first random processing or the second random processing, specifically including: randomly generating a corresponding judgment number for each pair of selected calibration posture groups in the second candidate subset; when the judgment number of the pair of selected calibration posture groups is greater than a preset value, performing the first random processing on the pair of selected posture groups; when the judgment number of the pair of selected calibration posture groups is less than or equal to a preset value, performing the second random processing on the pair of selected posture groups.

[0013] Optionally, the editing operation specifically includes: when adding two new calibration posture groups generated by the first random processing, replacing two first original calibration posture groups from the second candidate subset; when adding a new calibration posture group generated by the second random processing, replacing a second original calibration posture group from the second candidate subset; when adding a new calibration posture group generated by the third random processing, replacing a third original calibration posture group from the second candidate subset; wherein, the first original calibration posture group is: a pair of selected calibration posture groups that perform the first random processing or an original calibration posture group randomly selected in the second candidate subset; the second original calibration posture group is: a pair of selected calibration posture groups that perform the second random processing or an original calibration posture group randomly selected in the second candidate subset; the third original calibration posture group is: a selected calibration posture group before performing the third random processing or an original calibration posture group randomly selected in the second candidate subset.

[0014] Optionally, the joints constituting the robotic arm include: a rotational joint and a translational joint; wherein the joint parameter of the rotational joint is a rotation angle; and the joint parameter of the translational joint is a displacement.

[0015] Optionally, before iteratively executing N update operations, it also includes: randomly generating M initial calibration posture groups under given constraints to form the candidate set; wherein the constraints include: the displacement range of the translation joint and the rotation angle range of the rotation joint.

[0016] Optionally, the sensor is a six-dimensional sensor for collecting torque and force on mutually perpendicular x-axis, y-axis and z-axis; the calibration parameters include: a first torque zero point calibration value and a first force zero point calibration value on the x-axis, a second torque zero point calibration value and a second force zero point calibration value on the y-axis, and a third torque zero point calibration value and a third force zero point calibration value on the z-axis; the sensor calibration is performed based on the k groups of sampling parameters to obtain corresponding calibration parameters, specifically including: determining a calibration matrix; the calibration The fixed matrix is ​​used to represent: the conversion relationship between the force zero-point calibration value and the sampling parameters; based on the k groups of sampling parameters and the calibration matrix, the first force zero-point calibration value, the second force zero-point calibration value, and the third force zero-point calibration value are calculated; based on the first force zero-point calibration value, the second force zero-point calibration value, the third force zero-point calibration value and the k groups of sampling parameters, the first torque zero-point calibration value, the second torque zero-point calibration value, and the third torque zero-point calibration value are calculated.

[0017] Optionally, the fitness is represented by a condition number of the calibration matrix.

[0018] In a second aspect, embodiments of the present application provide the following technical solutions: a surgical robot comprising: a robotic arm; a sensor disposed on the robotic arm and configured to obtain sampling parameters representing a force state of an end portion of the robotic arm; and a processor, the processor being communicatively connected to the sensor and the robotic arm, and configured to: obtain a candidate set comprising M calibration posture groups, each of which comprises k robotic arm postures; iteratively perform N update operations based on the candidate set; select the calibration posture group with the highest fitness as a preferred posture group; control the movement of the robotic arm so that the robotic arm sequentially transforms into the k robotic arm postures of the preferred posture group; obtain, via the sensor, k sets of sampling parameters for the robotic arm in the k robotic arm postures; calibrate the sensor based on the k sets of sampling parameters to obtain corresponding calibration parameters; wherein the fitness is used to evaluate the degree of influence of a perturbation of the sampling parameters on the calibration parameters; and in response to each execution of the update operation, at least one calibration posture group in the candidate set is updated to a randomly generated new calibration posture group.

[0019] In a third aspect, embodiments of the present application provide the following technical solution: an electronic device comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores computer program instructions, which are executed by the at least one processor to enable the at least one processor to perform the sensor calibration method described above.

[0020] In a fourth aspect, embodiments of the present application provide the following technical solution: a readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the steps of the sensor calibration method for a robotic arm as described above.

[0021] At least one advantageous aspect of the image processing method provided in the embodiment of the present application is that: through an optimization method based on a genetic algorithm, a more optimal robotic arm posture can be determined for sensor calibration, thereby reducing the error of the torque zero point calibration value and the force zero point calibration value, thereby improving the control effect of the robotic arm.

Brief Description of the Drawings

[0022] One or more embodiments are exemplarily illustrated by pictures in the corresponding drawings. These exemplifications do not constitute limitations on the embodiments. Elements with the same reference numerals in the drawings are represented as similar elements. Unless otherwise stated, the figures in the drawings do not constitute proportional limitations.

[0023] Figure 1 This is a schematic diagram of an application scenario of a robotic arm according to an embodiment of the present application, illustrating the application of the robotic arm in a surgical robot;

[0024] Figure 2 A schematic diagram of a robotic arm according to an embodiment of the present application;

[0025] Figure 3 A schematic diagram of a six-axis force sensor according to an embodiment of the present application;

[0026] Figure 4 A flow chart of a sensor calibration method according to an embodiment of the present application;

[0027] Figure 5 A flowchart of an update operation of a sensor calibration method according to an embodiment of the present application;

[0028] Figure 6-1 This is a schematic diagram of a first random process of the sensor calibration method according to an embodiment of the present application;

[0029] Figure 6-2 A schematic diagram of a second random process of the sensor calibration method according to an embodiment of the present application;

[0030] Figure 6-3 Schematic diagram of the third random processing of the sensor calibration method according to an embodiment of the present application;

[0031] Figure 7 A flow chart of a method for updating a calibration posture group in a sensor calibration method according to an embodiment of the present application;

[0032] Figure 8A flowchart of a method for optimizing a robot arm posture according to a sensor calibration method according to an embodiment of the present application;

[0033] Figure 9 This is a functional block diagram of a sensor calibration device according to an embodiment of the present application;

[0034] Figure 10 A schematic diagram of an electronic device according to an embodiment of the present application. [Specific implementation method]

[0035] In order to facilitate the understanding of the present application, the present application is described in more detail below with reference to the accompanying drawings and specific embodiments.

[0036] It should be noted that when an element is referred to as being "disposed on" another element, it may be directly on the other element or there may be a central element. When an element is considered to be "connected" to another element, it may be directly connected to the other element or there may be a central element at the same time, or it may refer to the two elements being interactively connected through signals. When an element is considered to be "coupled" / "coupled" to another element, it may be directly coupled to the other element or there may be a central element at the same time, or it may refer to the two elements being interactively connected through signals. The terms "vertical", "horizontal", "left", "right", "above", "below" and similar expressions used herein are for illustrative purposes only and are not intended to be the only embodiment. It should be understood that these spatially related terms are intended to cover different orientations of the device in use or in operation in addition to the orientations depicted in the drawings. For example, if the device is flipped in the drawings, the elements or features described as being "below" or "beneath" other elements or features will be oriented as being "above" other elements or features. Therefore, the example term "below" can include both above and below orientations.

[0037] The terms "distal" and "proximal" are used herein as directional terms, which are commonly used in the field of interventional medical devices. "Distal" refers to the end away from the surgeon during surgery, and "proximal" refers to the end closer to the surgeon during surgery. The term "plurality" as used herein includes two or more.

[0038] The term "instrument" is used herein to describe a medical device that is inserted into a patient's body and used to perform a surgical or diagnostic procedure, the instrument including an end effector, which may be a surgical instrument for performing a surgical procedure, such as a biopsy needle, an electrocautery device, a clamp, a stapler, a shears, an imaging device (such as an endoscope or an ultrasound probe), and the like. Some instruments used in embodiments of the present application further include providing an articulated component (such as a joint assembly) for the end effector so that the position and orientation of the end effector can be manipulated and moved with one or more mechanical degrees of freedom relative to the instrument axis. Furthermore, the end effector also includes functional mechanical degrees of freedom, such as opening and closing clamps. The instrument may also include stored information that can be updated by the surgical system, whereby the storage system can provide one-way or two-way communication between the instrument and one or more system elements.

[0039] The term "calibration" refers to the process of calculating and determining the sensor's error characteristics through a series of experimental calibration steps to eliminate and correct sensor errors. A typical calibration process involves first measuring a series of known inputs or reference values ​​using the sensor in a specific test environment and recording the relationship between the sensor output and the corresponding inputs or reference values. Finally, an appropriate mathematical model or function is used for fitting and analysis to determine the sensor's error characteristics (e.g., zero bias, sensitivity error, nonlinearity, etc.).

[0040] The term "zero offset" refers to the fixed difference or error between the sensor's output and the true value during measurement. It represents the difference between the sensor's output and the expected value when no input signal or reference value is present. In this application, it may also be referred to as the "zero calibration value."

[0041] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein in the specification of this application are for the purpose of describing specific embodiments only and are not intended to limit this application. The terms "and / or" and "and / or" as used herein include any and all combinations of one or more of the associated listed items.

[0042] In addition, the technical features involved in different embodiments of the present application described below can be combined with each other as long as they do not conflict with each other.

[0043] Figure 1 FIG is a simplified diagram of a teleoperated medical robot system 100 according to an embodiment of the present application. The teleoperated medical robot system 100 may be applicable to, for example, surgical operations, diagnosis, treatment, or biopsy. Figure 1As shown, the medical robot system 100 includes an electronic equipment cart 110, a remote-operated manipulator device 120 and a medical device 130. The remote-operated manipulator device 120 is close to the operating table T. The medical device 130 is detachably mounted on the remote-operated manipulator device 120. The medical device 130 is used to enter the human body through a natural cavity or surgical incision to perform related surgical operations.

[0044] The remote-operated manipulator device 120 is communicatively connected to the electronic device cart 110 , which includes a control system 111 . The input device 130 is communicatively connected to the control system 111 . The control system 111 receives input from the input device 140 to control the movement of the remote-operated manipulator device 120 and the medical device 130 .

[0045] In one embodiment, the teleoperated medical robotic system 100 is a catheter robot. The teleoperated manipulator device 120 of the catheter robot 100 may include a base 121, a sliding base 122 capable of vertical movement relative to the base 121, and two robotic arms 123a, 123b fixedly connected to the sliding base 122. The robotic arms 123a, 123b may include multiple arm segments connected at joints, each of which provides the robotic arms 123a, 123b with multiple degrees of freedom, for example, seven degrees of freedom corresponding to seven arm segments. A drive device (not shown) is mounted at the distal end of each robotic arm 123a, 123b. The drive device of each robotic arm 123a, 123b is configured to engage the medical device 130 and, under the drive of the drive device, control the distal end of the medical device 130 to bend and turn accordingly. The robotic arm 123a and the robotic arm 123b may have identical or partially identical structures. The driving device of the robotic arm 123a is used to engage the inner catheter device 132 of the medical device 130, and the driving device of the robotic arm 123b is used to engage the outer catheter device 131 of the medical device 130. During installation, the outer catheter device 131 may be installed first. After the outer catheter device 131 is installed, the flexible inner catheter 1321 of the inner catheter device 132 is inserted into the flexible outer catheter 1311 of the outer catheter device 420.

[0046] In some embodiments, some simple surgical scenarios may use only one robotic arm and one catheter instrument. For example, the remote-operated manipulator device 120 of the catheter robotic system 100 has only one robotic arm 123a and uses an intra-catheter instrument 132 to perform a biopsy on the patient.

[0047] The catheter robotic system 100 also includes a sensor system 150 having one or more subsystems for receiving information about the medical device 130. The subsystems may include: a position sensor system; a shape sensor system for determining the position, orientation, speed, velocity, pose, and / or shape of the distal end of the medical device 130 and / or along one or more segments of a flexible catheter that may comprise the medical device 130; and / or a visualization system for capturing images from the distal end of the medical device 130.

[0048] The electronics cart 110 may be equipped with a display system 112, an irrigation system (not shown), and a control system 111. The display system 112 is used to display images or representations of the surgical site and medical device 130 generated by the subsystems of the sensor system 150. Real-time images of the surgical site and medical device 130 captured by the visualization system may also be displayed. Preoperative or intraoperative images of the surgical site recorded preoperatively or intraoperatively may also be presented using image data from imaging technologies such as computed tomography (CT), magnetic resonance imaging (MRI), optical coherence tomography (OCT), and ultrasound. Preoperative or intraoperative image data may be presented as two-dimensional, three-dimensional, or four-dimensional (e.g., time-based or rate-based) images and / or as images from a model created from preoperative or intraoperative image data sets. A virtual navigation image may also be displayed in which the actual position of the medical device 130 is registered with the preoperative image to present a virtual image of the medical device 130 within the surgical site to the operator from the outside.

[0049] The control system 111 includes at least one memory and at least one computer processor. It will be appreciated that the control system 111 can be integrated into the electronic device cart 110 or the remote control manipulator device 120, or can be independently provided. Communication between the control system 111 and the input device 140 and the remote control manipulator device 120 can be wired or wireless. Wired communication can include, but is not limited to, serial ports, CAN, RS485, RS232, USB, SPI, etc., while wireless communication can include, but is not limited to, IEEE 802.11, IrDA, Bluetooth, HomeRF, DECT, WiFi, NB, Zigbee, RFID, and wireless telemetry. The control system 111 can transmit one or more signals instructing the medical device 130 to move, causing the drive device to move the medical device 130. The medical device 130 can be extended to a surgical location within the body via an opening in the patient's natural orifice or a surgical incision.

[0050] Furthermore, the control system 111 may include a mechanical control system (not shown) and an image processing system (not shown). The mechanical control system is used to control the movement of the medical device 130 and, therefore, may be integrated into the teleoperated manipulator device 120. The image processing system is used for virtual navigation path planning and, therefore, may be integrated into the electronic device cart 110. Of course, the various subsystems of the control system 111 are not limited to the specific ones listed above and may be appropriately configured according to actual circumstances. The image processing system may use the aforementioned imaging techniques to image the surgical site based on preoperative or intraoperative images of the surgical site. Software, combined with manual input, may also be used to convert the recorded images into two-dimensional or three-dimensional composite images of a portion or entire anatomical organ or region. During the virtual navigation procedure, the sensor system 150 may be used to calculate the position of the medical device 130 relative to the patient's anatomy. This position can be used to generate external tracking images and internal virtual images of the patient's anatomy, achieving registration of the actual position of the medical device 130 with the preoperative images, thereby allowing a virtual image of the medical device 130 within the surgical site to be presented to the operator from the outside.

[0051] The inner catheter device 132 and the outer catheter device 131 have substantially the same structural composition, and each comprises a slender, flexible inner catheter 1321 and an outer catheter 1311, wherein the diameter of the outer catheter 1311 is slightly larger than that of the inner catheter 1321, so that the inner catheter 1321 can pass through the outer catheter 1311 and be supported by the outer catheter 1311, thereby enabling the inner catheter 1321 to reach a target location in the patient's body, facilitating operations such as tissue or cell sampling from the target location.

[0052] Input from the input device 140 can cause corresponding movement of the medical device 130. For example, when the operator moves the directional lever of the input device 140 upward or downward, the movement of the directional lever of the input device 140 can be mapped to a corresponding pitch movement of the end of the medical device 130. When the operator moves the directional lever of the input device 140 left or right, the movement of the directional lever of the input device 140 can be mapped to a corresponding yaw movement of the end of the medical device 130. In this embodiment, the input device 140 can control the movement of the end of the medical device 130 within a 360-degree spatial range.

[0053] In one embodiment, a simplified schematic diagram of a portion of the structure of the robotic arm 123a is shown in FIG. Figure 2 As shown, Figure 2The intracatheter device 132 is shown without being attached to the drive unit 220. The robotic arm 123a includes a plurality of links 211, 212, 213, and 214, each of which is rotatably connected via a joint. The drive unit 220 is rotatably connected to the links 214 via a joint. The drive unit 220 can rotate about a first axis AA extending through the drive unit 220, thereby adjusting the position and posture of the device 132. The drive unit 220 includes a non-airtight housing 221, which is provided with a plurality of side vents 222 for gas exchange between the interior of the drive unit 220 and the outside world. After the intracatheter device 132 is attached to the drive unit 220, movement of the robotic arm 123a changes the position and / or posture of the intracatheter device 132.

[0054] In one embodiment, when using the inner catheter instrument 132 and the outer catheter instrument 131, the inner catheter instrument 132 can be detachably mounted on the driving device 220, and the outer catheter instrument 131 can be detachably mounted on another driving device (not shown in the figure). The first axis AA of the driving device 220 is parallel to the first axis AA of the other driving device, so that the friction of the inner catheter 1321 is minimized when it moves in the outer catheter 1311.

[0055] In the above-mentioned remote-operated medical robot system 100, when the mechanical control system performs motion control of the robotic arm, it is necessary to sense the force state of the end of the robotic arm to ensure that the actual movement of the robotic arm is consistent with the expectation.

[0056] Typically, the force applied to the end of a robotic arm is measured using sensors mounted on its end. However, due to limitations in sensor manufacturing and environmental variations, errors often occur, affecting the accuracy of the measured values.

[0057] Therefore, before the remotely operated medical robotic system 100 is put into actual operation, calibrating the robotic arm's sensors and accurately determining the sensor error characteristics are crucial for ensuring the dynamics of the robotic arm. The following describes the calibration process for calculating and determining the six-axis force sensor mounted on the end of the robotic arm, using the example of a six-axis force sensor.

[0058] A six-axis force sensor is used to collect force and torque components in three orthogonal directions: x, y, and z. During calibration, the error characteristics that need to be calculated and determined primarily focus on the force and torque bias along the three orthogonal x, y, and z axes.

[0059] Figure 3 This is a schematic diagram of the force analysis of the six-dimensional force sensor (hereinafter referred to as the "sensor") provided in the embodiment of the present application. Figure 3 As shown in the figure, in static conditions, the measured value of the sensor is mainly composed of two parts: the zero bias of the sensor and the gravity of the load.

[0060] Among them, F0, F y0 and F z0 Respectively represent the force zero bias of the sensor in the x-axis, y-axis and z-axis directions, M0, M y0 and M z0 They represent the zero bias of the sensor in the x-axis, y-axis and z-axis directions respectively.

[0061] F, F y and F z Represents the force measurement values ​​of the sensor in the x-axis, y-axis and z-axis directions, M, M y and M z They represent the torque measurements detected by the sensor in the x-axis, y-axis, and z-axis directions respectively.

[0062] O is the origin of the sensor coordinate system, and (x, y, z) is the coordinate of the center of gravity of the load in the sensor coordinate system. y and G z Represents the force components of the load's gravity G in the x-axis, y-axis, and z-axis directions, M gx , M gy and M gz Represents the moment components of the load's gravity G in the x-axis, y-axis, and z-axis directions respectively.

[0063] 1) Calculation of load center of gravity:

[0064] Based on the right-hand rule, the relationship between the load gravity G and the torque can be expressed by the following formula (1):

[0065]

[0066] The relationship between the sensor's measured value, load gravity, and the sensor's zero bias is shown in the following equations (2-1) and (2-2):

[0067]

[0068]

[0069] Substituting equations (2-1) and (2-2) into equation (1) and rearranging them, we can obtain the following equation (3), which represents the relationship between the center of gravity of the load, the sensor's measurement value, and the sensor's zero bias.

[0070]

[0071] In equation (3), the sensor bias and the coordinates of the load center of gravity are constants. Therefore, as shown in equation (4), the constants in equation (3) can be denoted as k1, k2, and k3, respectively.

[0072]

[0073] After substituting equation (4) into equation (3) and sorting it out, we can obtain the following equation (5):

[0074]

[0075] By obtaining at least three sets of measurement data from linearly independent sensors, the coordinates (x, y, z) of the load center of gravity and the constants k1, k2, and k3 can be calculated based on equation (5).

[0076] Taking the acquisition of three sets of measurement data as an example, equation (5) can be expressed as shown in equation (6). In equation (6), the three sets of measurement data are distinguished by their subscripts 1, 2, and 3, respectively.

[0077]

[0078] Convert equation (6) into the form of a linear equation as shown in equation (7):

[0079] m=F·p (7)

[0080] Where p = [xyz k1 k2 k3] T

[0081] It can be verified that the linear equation shown in equation (7) is actually an overdetermined system of equations. Therefore, the least squares method is used to calculate the optimal solution of vector p, as shown in the following equation (8):

[0082] p=(F T F) -1 ·F T m (8)

[0083] From this, the coordinates (x, y, z) of the load's center of gravity and the constants k1, k2, and k3 can be calculated.

[0084] 2) Calculation of zero bias of force:

[0085] In addition to the sensor coordinate system, there is also the robot coordinate system, which uses the robot base as its reference system, and the spatial coordinate system, which uses the real-world ground as its reference system. The following describes the transformation relationships between these coordinate systems.

[0086] Since the flatness error between the base of the robot and the ground is always inevitable (that is, the z-axis of the robot coordinate system is not parallel to the direction of gravity, and there is an inclination angle between the two), the transformation matrix between the robot coordinate system 2 and the space coordinate system 1 is It can be expressed by the following formula (9):

[0087]

[0088] Among them, U represents the deviation angle between the robot arm coordinate system and the space coordinate system on the x-axis, and V represents the deviation angle between the robot arm coordinate system and the space coordinate system on the y-axis.

[0089] Rotation matrix between space coordinate system 1 and sensor coordinate system 0 It can be expressed by the following formula (10):

[0090]

[0091] in,

[0092]

[0093]

[0094]

[0095] Among them, A, B, and C represent the rotation angles of the spatial coordinate system relative to the sensor coordinate system around the z-axis, y-axis, and x-axis, respectively.

[0096] Therefore, combining the above equations (9) and (10), the direction vector of the load gravity G in the sensor coordinate system can be expressed by the following equation (11):

[0097]

[0098] in, It is the direction vector of the load gravity G in the space coordinate system.

[0099] Substituting formula (11) into formula (2-1), we can obtain the correlation between the measured value and the load gravity, as shown in the following formula (13):

[0100]

[0101] Similarly, as shown in the following formula (14), the constant part in formula (13) is recorded as L x , L y and L z .

[0102]

[0103] Substituting equation (14) into equation (13), we can obtain the following equation (15):

[0104]

[0105] Where I represents the identity matrix.

[0106] Similarly, by obtaining at least three sets of linearly independent sensor measurement data, the force zero bias F0 and F can be calculated based on equation (15). y0 and F z0 And the constant part L x , L y and L z .

[0107] Taking the acquisition of three sets of measurement data as an example, equation (15) can be expressed as equation (16). In equation (16), the three sets of measurement data are distinguished by their subscripts 1, 2, and 3, respectively.

[0108]

[0109] Convert equation (16) into the form of a linear equation as shown in equation (17):

[0110] f=Rl (17)

[0111] Where, l=[L x L y L z F x0 F y0 F z0 ] T

[0112] Similarly, the least squares method is also used to calculate the optimal solution of vector l, as shown in the following formula (18):

[0113] l=(R T R) -1 ·R T f (18)

[0114] From this, the force zero deviation F is calculated and determined x0 F y0 F z0 And the constant part L x , L y and L z .

[0115] 3) Calculation of torque zero bias:

[0116] In the calculation to determine the zero bias F x0 F y0 F z0 Later, the coordinates (x, y, z) of the load center of gravity determined by formula (8) and the constant parts k1, k2 and k3 can be brought into formula (4) to calculate the torque zero bias M0, M y0 and M z0 .

[0117] From the above description, it can be determined that: during the calibration process, the sensor measurement values ​​under different manipulator postures are the basis for calculating the force zero bias and torque zero bias of the sensor. In particular, as shown in formula (18), different manipulator postures will affect (R T R) -1 ·R T The matrix characteristics possessed by the calibration matrix (referred to as the "calibration matrix" in this application for ease of presentation) further affect the final calculated force bias and moment bias.

[0118] In the process of implementing this application, the applicant discovered that the condition number of the calibration matrix in formula (18) will change when the posture of the robotic arm used is different. It is always expected that the condition number of the calibration matrix is ​​as close to 1 as possible (i.e., as small as possible). A calibration matrix with a smaller condition number can reduce the impact of slight perturbations of the input data (i.e., the measurement value of the sensor) on the solution result, and can improve the accuracy and stability of the numerical calculation results. Conversely, when the condition number of the calibration matrix is ​​large, slight perturbations of the input data will have a significant impact on the numerical results of the solution, thereby leading to unexpected, large calculation errors.

[0119] Therefore, the condition number of the calibration matrix can be used as an optimization criterion to optimize the manipulator pose used in the calibration process. Specifically, the manipulator pose that minimizes the condition number of the calibration matrix should be selected for sensor calibration, thereby reducing the calculated errors in the force and torque zero biases.

[0120] Figure 4 The sensor calibration method provided in the embodiment of the present application. The sensor calibration method uses a genetic optimization algorithm to select the robot arm posture used during calibration, so that it can have higher accuracy and lower error when solving the calibration parameters. Figure 4 As shown, the calibration method includes:

[0121] S100: Obtain a candidate set including multiple calibration posture groups.

[0122] The "candidate set" refers to a data set consisting of calibration pose groups as elements. The candidate set can contain any number of calibration pose groups. In this application, the number of calibration pose groups is denoted as M, and the specific number can be determined by technicians based on actual needs. For example, M can be set to a positive integer between 60 and 100. Preferably, M can be set to 72.

[0123] In some embodiments, the preset candidate set can be formed by random generation under certain given constraints. The "given constraints" refer to the limits used to describe and define the movement or rotation of the robotic arm that is actually calibrated. In other words, by setting the above constraints, it is possible to avoid the randomly generated candidate set containing robotic arm postures that the robotic arm cannot actually achieve. For example, when the robotic arm is composed of several rotational joints and / or translational joints, the constraints can be the displacement range of each translational joint and the rotation angle range of each rotational joint.

[0124] Furthermore, each calibration posture group records k robot arm postures. Specifically, as mentioned above, k can be a positive integer greater than or equal to 3, so that each calibration posture group can complete the above sensor calibration process.

[0125] "Arm pose" refers to the position and orientation of the arm in three-dimensional space. It can be described or defined in a variety of ways. For example, a pose calibration group can define a specific arm pose by recording the joint parameters corresponding to all the joints that make up the arm. Joint parameters are numerical values ​​used to determine the position or angle of a joint. Specifically, for a rotational joint, the joint parameter can be the rotation angle. For a translational joint, the joint parameter can be the displacement.

[0126] Specifically, the "robot arm posture" described above is randomly generated data within a known kinematic model, rather than the actual robot arm posture (also known as a "virtual posture"). As an abstract representation of the robot arm, it can describe and define the position, orientation, and posture of the robot arm in three-dimensional space within a software computer program environment.

[0127] S200: Iteratively perform multiple update operations based on the candidate set.

[0128] The iterative update operation is a process of optimizing and searching the candidate set. In response to each update operation, at least one calibration pose group in the candidate set is updated to a randomly generated new calibration pose group.

[0129] In this application, the term "update" is used to describe the operation of introducing a new calibration pose set to replace the original calibration pose set. A "new calibration pose set" refers to a calibration pose set in which at least one recorded robot arm pose does not exist in the previous candidate set. "Randomly generated" refers to the randomness in the generation method of the calibration pose set.

[0130] In other words, with each update operation, a number of randomly generated new calibration pose groups are added to the candidate set, replacing the original calibration pose groups in the candidate set. In this way, the scope of the optimization search is expanded in each iteration, achieving better optimization results and avoiding falling into local optimal situations.

[0131] In this application, the number of iterative executions of the update operation may be recorded as N. The specific number of N may be set by technicians according to actual needs, for example, 200, as long as convergence or other practical optimization indicators can be met.

[0132] Figure 5 This is a flow chart of the update operation method provided by the embodiment of the present application. Figure 5 As shown, the update operation includes the following steps:

[0133] S210: Calculate the fitness of each calibration posture group in the current candidate set.

[0134] Among them, "fitness" is an indicator used to evaluate the quality of the calibration pose group. In other words, the calibration pose group with higher fitness is a better calibration pose group for the current calibration task, and vice versa.

[0135] In this embodiment, the fitness can be a measure for evaluating the degree of influence of the disturbance of the sampling parameters on the calibration parameters. Among them, the "sampling parameters" refer to the measurement values ​​of the sensor in a certain robotic arm posture during the calibration process. The "calibration parameters" refer to the sensor error characteristics (for example, zero bias) calculated by the sensor during the calibration process. The "degree of influence" is a technical concept that characterizes the relationship between the amplitude of changes between the two. For example, a smaller degree of influence means that when the sampling parameters are disturbed by the same amplitude, the amplitude of change of the corresponding calculated calibration parameters is relatively small.

[0136] S220: Divide the candidate set into a first candidate subset and a second candidate subset according to the fitness.

[0137] Here, "division" refers to the classification of the M calibration pose groups in the candidate set into either the first candidate subset or the second candidate subset. This can be accomplished through labeling or other suitable methods, as long as the subset of each calibration pose group can be determined, and is not specifically limited here.

[0138] In some embodiments, the aforementioned "dividing" step may be a process of extracting a first candidate subset from the candidate set using a preset screening condition. Specifically, when it is determined that the fitness of the calibration pose group satisfies the screening condition, the calibration pose group is divided into the first candidate subset, and when the fitness does not satisfy the screening condition, the calibration pose group is divided into the second candidate subset.

[0139] The "filtering condition" is one or more rules or criteria related to fitness, used to filter and select certain specific data. For example, the filter condition can be set as follows: in the current candidate set, the fitness of the current calibration pose group is greater than or equal to T calibration pose groups in the candidate set.

[0140] Specifically, T is a positive integer between 1 and M. Technicians can adjust the stringency of the screening conditions by selecting and setting an appropriate T value. For example, T can be 75% of M, so that in the candidate set, the top 25% of the calibration posture groups with the largest fitness are selected into the first candidate subset.

[0141] S230: Replace at least one calibration pose group in the second candidate subset with a randomly generated new calibration pose group.

[0142] Based on the subset division result of the previous step, it can be determined that the calibration pose groups in the second candidate subset have low fitness. Therefore, it is necessary to adjust and update them and introduce randomly generated new calibration pose groups to replace these poor candidates.

[0143] Specifically, when executing step S230, a new calibration posture group can be generated by performing one or more random processing methods on the calibration posture groups in the second candidate subset; and through corresponding editing operations, it is ensured that the number of calibration posture groups included in the candidate set remains unchanged (that is, M remains unchanged before and after each update operation).

[0144] In this application, three different random processing methods are provided to generate a new calibration posture group (hereinafter referred to as the first random processing, the second random processing and the third random processing). The first random processing, the second random processing and the third random processing are described below with reference to specific examples.

[0145] 1) First random processing:

[0146] like Figure 6-1 As shown, the second candidate subset S2 may include t calibration pose groups, which are labeled E1, E2, and Et. Each calibration pose group records k robot arm poses (i.e., D1 to Dk), and each robot arm pose is defined by L joint parameters (e.g., D1-1 to D1-L).

[0147] First, two calibration pose groups are selected ( Figure 6-1 E1 and E2 are selected as examples), and then, by exchanging at least one pair of synonymous joint parameters ( Figure 6-1 In the example, two pairs of synonymous joint parameters 1D1-1 / 2D1-1 and 1D2-2 / 2D2-2 are selected to generate two new calibration pose groups (for example, Figure 6-1 E1_1 and E1_2 shown).

[0148] The term "synonymous joint parameters" refers to the joint parameters corresponding to the same joint in different calibration pose groups. In other words, the joint parameters used to characterize or define the same joint in the robot arm (i.e. Figure 6-1 The joint parameters with the same last digit D)

[0149] 2) Second random treatment:

[0150] like Figure 6-2 As shown, two calibration pose groups ( Figure 6-2 After E1 and E2 are selected as examples, according to the randomly generated weight value ( Figure 6-2 , which are exemplarily set to 30% and 70%), weighted superposition of at least one pair of synonymous joint parameters ( Figure 6-2 In the example, the synonymous joint parameters 1D1-2 / 2D1-2 are selected to form a new joint parameter D1-2_1), and a new calibration posture group is generated (for example, Figure 6-2 E_1 shown).

[0151] The term "weighted superposition" means that two synonymous joint parameters are superimposed according to the weight ratio to form a joint parameter, which is used as the joint parameter of the corresponding joint in the new calibration posture group.

[0152] 3) The third random treatment:

[0153] like Figure 6-3 As shown, a calibration pose group is selected from the second candidate subset ( Figure 6-3 E1 is selected as an example), and then at least one joint parameter in the calibration posture group is randomly changed ( Figure 6-3The joint parameters 1D2-2 are exemplarily selected in , and a new calibration posture group is generated (for example, Figure 6-3 E_2 shown).

[0154] The term "random change" refers to the operation of changing the original joint parameters to arbitrary random values. For example, the original joint parameters are multiplied by the randomly generated coefficients ( Figure 6-3 exemplarily shows the case where the coefficient is 60%).

[0155] Figure 7 This is a flow chart of step S130 provided in the embodiment of the present application. Figure 7 As shown, when executing step S230, the following steps may be included:

[0156] S231. Selectively perform the first random processing or the second random processing.

[0157] Here, “selecting one” means that during one update operation, only one of the first random processing and the second random processing is selected for the target object.

[0158] Specifically, during each update operation, the decision to execute the first random process or the second random process can be randomly determined. For example, the random selection can be achieved by randomly generating a determination number within a given range. When the determination number is greater than a preset value, the first random process is executed. Otherwise, when the determination number is greater than the preset value, the second random process is executed.

[0159] Furthermore, the target object may be the entire second candidate subset. In this case, it is only necessary to randomly generate a determination number for the second candidate subset, and then determine whether to perform the first random processing or the second random processing on all calibration pose groups in the second candidate subset based on the comparison result of the generated determination number with a preset value.

[0160] Alternatively, the target object may be any pair of calibration pose groups in the second candidate subset. In this case, a corresponding determination number is randomly generated for each pair of calibration pose groups in the second candidate subset. Subsequently, based on the comparison result of the generated determination number with a preset value, the first random processing or the second random processing is sequentially performed on each pair of calibration pose groups.

[0161] In other embodiments, in addition to random determination, other different types of preset rules can be used to determine whether the first random process or the second random process should be executed. For example, when multiple pairs of calibration pose groups are selected from the second candidate subset, the first half of the selected calibration pose groups can be determined to execute the first random process, and the second half of the selected calibration pose groups can be determined to execute the second random process based on the order of the selected calibration pose groups. Alternatively, the first random process and the second random process can be executed alternately based on the order of the selected calibration pose groups.

[0162] S232: Perform a third random process with a preset probability on each calibration posture group in the second candidate subset after the first random process or the second random process is performed.

[0163] The "preset probability" refers to the probability of a calibration posture group performing the third random processing. The size of the probability can be determined by technicians according to the actual needs. For example, the preset probability can be set to 10%.

[0164] S233: Add the new calibration posture group to the second candidate subset, and perform an editing operation on the original calibration posture group in the second candidate subset.

[0165] The "editing operation" refers to the process of modifying and adjusting the existing calibration pose groups in the second candidate subset. This can be done using any suitable method based on actual needs, as long as the number of calibration pose groups in the candidate set remains unchanged before and after each update operation.

[0166] In order to fully describe the inventive concept and implementation process of this application, the following introduces the editing operations corresponding to the new calibration posture groups generated by different random processing in combination with multiple specific examples.

[0167] 1) For a pair of new calibration pose groups generated after the first random processing:

[0168] In this embodiment, for simplicity of description, a pair of calibration posture groups before the first random processing is referred to as a selected calibration posture group, and a calibration posture group formed after the selected calibration posture group performs the first random processing is referred to as a new calibration posture group.

[0169] It is understandable that in order to keep the number of calibration posture groups unchanged, when adding a pair of new calibration posture groups, it is necessary to determine two first original calibration posture groups as replacement objects in the second candidate subset, and use the new calibration posture groups to update the first original calibration posture groups.

[0170] Specifically, the first original calibration posture group is an original calibration posture group randomly selected from the second candidate subset. In this way of determining the first original calibration posture group, the probability of each original calibration posture group being eliminated or removed is similar.

[0171] Alternatively, the first original calibration posture group can also be directly determined as the selected calibration posture group. In this case, the probability of each original calibration posture group being eliminated or removed is unequal.

[0172] 2) For a new calibration pose group generated after the second random processing:

[0173] In this embodiment, for simplicity of description, a pair of calibration posture groups before the second random processing is referred to as a selected calibration posture group. A calibration posture group formed after the second random processing of the selected calibration posture group is referred to as a new calibration posture group.

[0174] It is understandable that in order to keep the number of calibration posture groups unchanged, when adding a new calibration posture group, it is necessary to determine a second original calibration posture group as a replacement object in the second candidate subset, and use the new calibration posture group to update the second original calibration posture group.

[0175] Specifically, the second original calibration posture group is an original calibration posture group randomly selected from the second candidate subset. Under this replacement object determination method, the probability of each original calibration posture group being eliminated or removed is similar.

[0176] Alternatively, the second original calibration posture group can also be randomly selected from the pair of selected calibration posture groups. At this time, the probability of each original calibration posture group being eliminated or removed is unequal, and its range is appropriately limited to the selected calibration posture group.

[0177] 3) For a new calibration pose group generated after the third random processing:

[0178] In this embodiment, for simplicity of description, a calibration posture group before the third random processing is referred to as a selected calibration posture group. A calibration posture group formed after the third random processing is performed on the selected calibration posture group is referred to as a new calibration posture group.

[0179] It is understandable that in order to keep the number of calibration posture groups unchanged, when adding a new calibration posture group, it is necessary to determine a third original calibration posture group as a replacement object in the second candidate subset, and use the new calibration posture group to update the third original calibration posture group.

[0180] Specifically, the third original calibration posture group is an original calibration posture group randomly selected from the second candidate subset. In this way of determining the third original calibration posture group, the probability of each original calibration posture group being eliminated or removed is similar.

[0181] Alternatively, the third original calibration posture group can also be directly determined as the selected calibration posture group. In this case, the probability of each original calibration posture group being eliminated or removed is unequal.

[0182] It should be noted that, based on the above-described selection principle for replacement objects, the editing operation can be implemented in a variety of different ways. For example, in order to meet the requirement that each original calibration posture group has the same probability of being eliminated, after all calibration posture groups in the second candidate subset have completed the second random processing, a corresponding number of original calibration posture groups can be randomly selected from the second candidate subset and recombined with the generated new calibration posture groups to form a new second candidate subset with the same number of calibration posture groups as the original second candidate subset. Alternatively, after all calibration posture groups in the second candidate subset have completed the second random processing, while adding the generated new calibration posture groups to the second candidate subset, a corresponding number of original calibration posture groups can be randomly eliminated to keep the number of calibration posture groups unchanged.

[0183] S300: The calibration posture group with the highest fitness is selected as the preferred posture group.

[0184] After iterating N update operations, it can be considered that the search width is sufficient. Therefore, the calibration posture group with the highest fitness can be selected as the optimal robot arm posture combination for sensor calibration.

[0185] S400 : Obtain k groups of sampling parameters corresponding to the k robot arm postures of the sensor in the preferred posture group.

[0186] The control system can control the robotic arm to sequentially switch between the k robotic arm postures recorded in the preferred posture group and correspondingly record the sampled parameters under these robotic arm postures. "Sampled parameters" refer to the data obtained by sensor detection, which may contain a variety of different data information depending on the actual sensor and robotic arm used. For example, the three mutually orthogonal force components and torque components mentioned above.

[0187] S400 : Based on k groups of sampling parameters, perform sensor calibration to obtain calibration parameters of the sensor.

[0188] After the sampling parameters are recorded and acquired, calibration parameters corresponding to the input sampling parameters can be calculated based on a pre-built or determined sensor calibration method.

[0189] Specifically, when the sensor is a six-dimensional force sensor for measuring torque components and force components on mutually orthogonal x-axis, y-axis and z-axis, the calibration parameters may include: a first torque zero-point calibration value and a first force zero-point calibration value on the x-axis, a second torque zero-point calibration value and a second force zero-point calibration value on the y-axis, and a third torque zero-point calibration value and a third force zero-point calibration value on the z-axis.

[0190] The “zero calibration value” refers to the difference between the measured value output by the sensor and the expected value when the robotic arm is unloaded.

[0191] One of the advantages of the sensor calibration method provided in the embodiment of the present application is that: based on the genetic optimization algorithm, the optimal robotic arm posture combination can be determined in a wide search range for sensor calibration, thereby reducing the error of the torque zero point calibration value and the force zero point calibration value and improving the control effect of the robotic arm.

[0192] It should be noted that the inventive concepts provided by the embodiments of this application can be generally applied to the calibration process of other sensors with similar characteristics (i.e., the robotic arm posture affects the matrix characteristics during the calculation process), and are not limited to six-axis force sensors. However, for ease of presentation and understanding, the calibration process of the six-axis force sensor described above is mainly used as an example to describe this application.

[0193] In some embodiments, a robotic arm is assumed to consist of seven revolute joints, and the joint parameters of each revolute joint are continuously changing rotation angles, represented by floating-point encoding formats. A robotic arm pose is defined by the joint parameters (θ1, θ2, θ3, θ4, θ5, θ6, θ7) of the seven revolute joints.

[0194] Figure 8 This is the flow chart of the robot arm posture optimization method. Figure 8 As shown, the robot arm posture optimization method includes:

[0195] S610: Set a counting variable i, and set its initial value to 1.

[0196] S620: When i=1, randomly generate an initial candidate set.

[0197] Among them, the initial candidate set contains 72 different calibration posture groups. Each robot arm posture in each calibration posture group satisfies the following constraint conditions (19):

[0198]

[0199] Among them, the subscript numbers 1 to 7 are used to distinguish the joint parameters corresponding to different rotational joints, the subscript min represents the physical minimum rotation angle of the rotational joint, and the subscript max represents the physical maximum rotation angle of the rotational joint.

[0200] S630: Calculate the fitness of each calibration posture group in the current candidate set.

[0201] The fitness of each calibration posture group can be obtained by substituting the k types of robot arm postures of the calibration posture group into formula (16), and then determining the corresponding calibration matrix (R T R) -1 ·R T Then, it is calculated by the following formula (20):

[0202] W=cond(RM)=‖RM‖2·‖RM -1 ‖2 (20)

[0203] Where RM=(R T R) -1 ·R T

[0204] S640: Sort the calibration posture groups according to their fitness, and determine the sequence number n corresponding to each calibration posture group. The calibration posture groups with greater fitness are sorted first, and the calibration posture groups with smaller fitness are sorted last.

[0205] S650: Determine whether the sequence number of the calibration posture group is less than or equal to 18 (=72×25%). If so, execute step S651; if not, execute step S652.

[0206] S651: Determine that the calibration posture group belongs to the first candidate subset and do not perform random processing.

[0207] S652: Determine whether the calibration posture group belongs to the second candidate subset.

[0208] S660: After the first candidate subset and the second candidate subset are divided, a random number t is generated within the range of [0, 1].

[0209] S661: Determine whether the random number t is less than or equal to 0.5. If so, proceed to step S662; if not, proceed to step S663.

[0210] S662: Perform a first random processing on the calibration posture groups in the second candidate subset, and keep the number of calibration posture groups before and after the processing unchanged.

[0211] S663: Perform a second random process on the calibration posture groups in the second candidate subset, and keep the number of calibration posture groups before and after the process unchanged.

[0212] S670: After executing step S662 or S663, perform a third random process on the second candidate subset with a set probability, and keep the number of calibration posture groups before and after the process unchanged.

[0213] The probability of this setting is 10%, that is, each calibration posture group in the second candidate subset has a 10% probability of undergoing the third random processing.

[0214] S680 , recombining the second candidate subset after executing step S670 and the first candidate subset into a candidate set, and incrementing the counting variable i by 1.

[0215] S690: When i is greater than 200, the calibration posture group with the maximum fitness at this time is output as the optimal calibration posture group for calculating the force zero bias and torque zero bias of the sensor.

[0216] Figure 9 The sensor calibration device provided in the embodiment of the present application can be implemented by the aforementioned electronic device through software / hardware or software and hardware in a coordinated manner. Figure 9 As shown, the sensor calibration device 900 includes: a calibration module 910 and a posture optimization module 920.

[0217] Among them, the calibration module 910 is used to obtain k groups of sampling parameters corresponding to the sensor under k different robotic arm postures; and calculate the calibration parameters of the sensor based on the k groups of sampling parameters; the calibration parameters include: torque zero point calibration value and force zero point calibration value.

[0218] The posture optimization module 920 is configured to iteratively perform N updates on a preset candidate set, wherein the candidate set comprises M calibration posture groups, each of which has k robot arm postures. The calibration posture group with the highest fitness is provided to the calibration module 910 as the preferred posture group. Fitness is a parameter related to the degree to which perturbations of the sampling parameters affect the calculated results of the calibration parameters. M, N, and k are preset positive integers.

[0219] It should be noted that, in the embodiment of the present application, the functional modules named by functionality are taken as an example to describe the method steps to be implemented by the sensor calibration device. Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the devices and modules described above can refer to the corresponding processes in the aforementioned one or more method embodiments, and will not be repeated here. Those skilled in the art will realize that, although the functional modules of the sensor calibration device are divided according to the method steps to be performed in the embodiment of the present application, one or more functional modules in the sensor calibration device of the embodiment of the present application can also be split into more functional modules or integrated into fewer functional modules according to the needs of actual conditions to perform the corresponding method steps.

[0220] Figure 10 It is an electronic device provided in the embodiment of the present application. It can be used to perform one or more steps of the sensor calibration method provided in the embodiment of the present application. Figure 10 As shown, the electronic device 1000 may include: a processor 1100, a memory 1200, a communication bus 1300, a communication module 1400 and a peripheral device 1500. Of course, it may omit one or more of the above devices, or add some other types of devices, without being limited to the above devices.

[0221] Processor 1100 can be any suitable processor or processor group. Specifically, processor 1100 is a multi-core processor capable of multi-threaded processing. Memory 12 can be any suitable storage device, such as ROM, RAM, flash memory, or a large-capacity mechanical storage device, such as a CD-ROM or hard disk. Memory 1200 is used to store computer programs that are executed by processor 1100 and are pre-set for various data processing operations.

[0222] The communication module 1400 may include network interaction devices for establishing a communication connection via a network, thereby establishing a data transmission channel between the electronic device and the outside world. Peripheral devices 1500 include, but are not limited to, various types of sensors and input / output devices (e.g., a keyboard, a mouse, and a display). The display may include any type of computer playback device or electronic playback device (e.g., a CRT-based or LCD-based device) for displaying information to the user.

[0223] In actual application, the processor 1100 and the memory 1200 communicate with each other via the communication bus 1003. The processor 1100 can call the computer running program in the memory 1200 to execute one or more steps in the sensor calibration method described above.

[0224] The embodiments of the present application also provide a computer-readable storage medium. The computer-readable storage medium may be a non-volatile storage medium. The computer-readable storage medium stores a computer program. When the computer program is executed by a processor, it can implement one or more method steps in the above-mentioned sensor calibration method. The complete computer program product is embodied on one or more computer-readable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing the computer program disclosed in the embodiments of the present application.

[0225] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Based on the concept of the present application, the technical features in the above embodiments or different embodiments can also be combined, the steps can be implemented in any order, and there are many other variations in different aspects of the present application as described above. For the sake of simplicity, they are not provided in detail. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. These modifications or replacements do not deviate the essence of the corresponding technical solutions from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A sensor calibration method for a robotic arm, characterized in that: The method comprises: Obtain a candidate set comprising M calibration posture groups, each of which has k robot arm postures; Iteratively perform N update operations based on the candidate set; The calibration posture group with the highest fitness is taken as the preferred posture group; Acquire k groups of sampling parameters corresponding to the sensor under the k types of robot arm postures of the preferred posture group, and perform sensor calibration based on the k groups of sampling parameters to obtain corresponding calibration parameters; The fitness is used to evaluate the degree of influence of the disturbance of the sampling parameters on the calibration parameters; and in response to each execution of the update operation, at least one calibration posture group in the candidate set is updated to a randomly generated new calibration posture group.

2. The sensor calibration method according to claim 1, characterized in that: The update operation specifically includes: Calculate the fitness of each calibration posture group in the current candidate set; Determining whether the fitness of each of the calibration posture groups meets a preset screening condition; When the screening condition is met, dividing the calibration posture group into a first candidate subset; When the screening condition is not met, dividing the calibration posture group into a second candidate subset; At least one calibration pose group in the second candidate subset is replaced with the randomly generated new calibration pose group.

3. The sensor calibration method according to claim 2, characterized in that: The preset screening conditions are: In the current candidate set, the fitness of the calibration posture group is greater than or equal to the fitness of T calibration posture groups; Wherein, T is a positive integer between 1 and M.

4. The sensor calibration method according to claim 2, characterized in that: The replacing at least one calibration pose group in the second candidate subset with the randomly generated new calibration pose group specifically includes: Performing one or more random processing on the calibration pose groups in the second candidate subset to generate a new calibration pose group; and The new calibration posture group is added to the second candidate subset, and an editing operation is performed on the original calibration posture group in the second candidate subset, so that M remains unchanged before and after each update operation.

5. The sensor calibration method according to claim 4, characterized in that: The robotic arm is composed of a plurality of joints; each posture of the robotic arm is defined by a plurality of corresponding joint parameters; The random processing includes: a first random processing, a second random processing and a third random processing; The first random processing includes: for a pair of selected calibration pose groups, exchanging at least one pair of synonymous joint parameters to generate two new calibration pose groups; The second random processing includes: for a pair of selected calibration posture groups, weightedly superimposing at least one pair of synonymous joint parameters according to a randomly generated weight value to generate a new calibration posture group; The third random processing includes: randomly changing at least one joint parameter in a selected calibration posture group to generate a new calibration posture group; The pair of synonymous joint parameters are: joint parameters corresponding to the same joint in the pair of selected calibration posture groups.

6. The sensor calibration method according to claim 5, characterized in that: The performing one or more random processing on the calibration pose groups in the second candidate subset to generate a new calibration pose group specifically includes: selectively performing the first random processing or the second random processing on the calibration pose groups in the second candidate subset; For each calibration posture group in the second candidate subset after the first random processing or the second random processing is performed, the third random processing is performed with a preset probability to generate a new calibration posture group.

7. The sensor calibration method according to claim 6, characterized in that: The selectively performing the first random processing or the second random processing on the calibration posture group in the second candidate subset specifically includes: randomly generating a decision number for the second candidate subset; When the determination number is greater than a preset value, performing the first random processing on all calibration posture groups in the second candidate subset; When the determination number is less than or equal to a preset value, the second random processing is performed on all calibration posture groups in the second candidate subset.

8. The sensor calibration method according to claim 6, characterized in that: The selectively performing the first random processing or the second random processing on the calibration posture group in the second candidate subset specifically includes: Randomly generating a corresponding decision number for each pair of selected calibration pose groups in the second candidate subset; When the determination number of the pair of selected calibration posture groups is greater than a preset value, performing the first random processing on the pair of selected posture groups; When the determination number of the pair of selected calibration posture groups is less than or equal to a preset value, the second random processing is performed on the pair of selected posture groups.

9. The sensor calibration method according to claim 5, characterized in that: The editing operation specifically includes: When adding two new calibration pose groups generated by the first random processing, replacing two first original calibration pose groups from the second candidate subset; When adding a new calibration pose group generated by the second random processing, replacing a second original calibration pose group from the second candidate subset; When adding a new calibration pose group generated by the third random process, replacing a third original calibration pose group from the second candidate subset; The first original calibration posture group is: a pair of selected calibration posture groups that perform the first random processing or an original calibration posture group randomly selected from the second candidate subset; The second original calibration pose group is: a pair of selected calibration pose groups that perform the second random processing or an original calibration pose group randomly selected from the second candidate subset; The third original calibration posture group is: the calibration posture group selected before performing the third random processing or the original calibration posture group randomly selected from the second candidate subset.

10. The sensor calibration method according to claim 4, characterized in that: The joints constituting the robotic arm include: a rotational joint and a translational joint; The joint parameter of the rotational joint is the rotation angle; the joint parameter of the translational joint is the displacement.

11. The sensor calibration method according to claim 10, characterized in that: Before iterating N update operations, it also includes: Under given constraints, randomly generate M initial calibration pose groups to form the candidate set; The restriction conditions include: the displacement range of the translation joint and the rotation angle range of the rotation joint.

12. The sensor calibration method according to claim 1, characterized in that: The sensor is a six-dimensional sensor for collecting torque and force on mutually perpendicular x-axis, y-axis and z-axis; The calibration parameters include: a first torque zero point calibration value and a first force zero point calibration value on the x-axis, a second torque zero point calibration value and a second force zero point calibration value on the y-axis, and a third torque zero point calibration value and a third force zero point calibration value on the z-axis; The performing sensor calibration based on the k groups of sampling parameters to obtain corresponding calibration parameters specifically includes: Determine a calibration matrix; the calibration matrix is ​​used to represent: the conversion relationship between the zero-point calibration value of the force and the sampling parameter; Based on the k groups of sampling parameters and the calibration matrix, calculating and obtaining the first force zero point calibration value, the second force zero point calibration value, and the third force zero point calibration value; Based on the first force zero point calibration value, the second force zero point calibration value, the third force zero point calibration value and the k groups of sampling parameters, the first torque zero point calibration value, the second torque zero point calibration value and the third torque zero point calibration value are calculated.

13. The sensor calibration method according to claim 12, characterized in that: The fitness is represented by the condition number of the calibration matrix.

14. A surgical robot, characterized in that: The surgical robot comprises: robotic arm; A sensor, the sensor being provided on the robotic arm and configured to obtain sampling parameters characterizing a force state of an end portion of the robotic arm; a processor, the processor being communicatively connected to the sensor and the robotic arm, and configured to: Obtain a candidate set comprising M calibration posture groups, each of which has k robot arm postures; Iteratively perform N update operations based on the candidate set; The calibration posture group with the highest fitness is taken as the preferred posture group; Controlling the movement of the robotic arm so that the robotic arm is sequentially transformed into k robotic arm postures of the preferred posture group; Acquire, by the sensor, k groups of sampling parameters of the robotic arm when the robotic arm is in the k robotic arm postures respectively; Based on the k groups of sampling parameters, calibrate the sensor to obtain corresponding calibration parameters; The fitness is used to evaluate the degree of influence of the disturbance of the sampling parameters on the calibration parameters; and in response to each execution of the update operation, at least one calibration posture group in the candidate set is updated to a randomly generated new calibration posture group.

15. A readable storage medium, characterized in that The readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the sensor calibration method for the robotic arm are implemented.

Citation Information

Patent Citations

  • Robot calibration method for optimizing identification parameters

    CN111360836A

  • Torque sensor calibration method and system for robot joint

    CN115290249A

  • Force sensor calibration method and system, electronic equipment and storage medium

    CN117387834A

  • Placement of physico-chemical parameter sensors in a fluid

    US20210272028A1

  • Calibrating a virtual force sensor of a robot manipulator

    WO2021122749A1