Methods, apparatus, and motorized piercing end effector systems for controlling piercing needle motion
Patent Information
- Application Number
- CN202510558921.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-29
- Publication Date
- 2026-10-30
AI Technical Summary
[0003]传统技术提供的方案依靠单一的背隙值进行补偿校正,穿刺针的位置精度有时达不到要求,手术精度和安全性不足
[0049]上述控制穿刺针运动的方法、装置、运算设备、电动穿刺末端执行系统、存储介质和计算机程序产品,根据穿刺针目标位置以及穿刺针当前位置,得到穿刺针的当前运动方向;根据穿刺针的当前运动方向以及上次运动方向,得到当前运动场景;获取与当前运动场景对应的背隙标定值;根据背隙标定值,对电机当前位置进行补偿计算,得到电机目标位置;控制电机运动到电机目标位置,以带动穿刺针到达穿刺针目标位置。本申请提供的方案根据穿刺针运动方向的变化,细分出多种运动场景,每一种运动场景有对应的背隙标定值,由此,后续可以在穿刺手术过程中,确定出穿刺针的当前运动场景,进而得到相应的背隙标定值,以对电机当前位置进行补偿计算,得到电机目标位置,通过控制电机运动到电机目标位置,以带动穿刺针到达穿刺针目标位置,提高穿刺针的位置精度,手术精度和安全性有所提升。
Smart Images

Figure CN122997791A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of puncture assistance technology, and in particular to a method, apparatus, computing device, electric puncture end effector system, storage medium and computer program product for controlling the movement of a puncture needle. Background Technology
[0002] Electric end effectors for puncture procedures are widely used in robotic puncture surgery systems. An electric end effector consists of a motor, a transmission mechanism, and a puncture needle. Because backlash exists during the manufacturing process of the transmission mechanism, the puncture needle may not actually reach the preset target position when the surgical robot controls it. Since the puncture needle will enter the human body, its positional accuracy is crucial to surgical precision and safety.
[0003] Traditional techniques rely on a single backspace value for compensation and correction, which sometimes fails to meet the required accuracy of the puncture needle position, resulting in insufficient surgical precision and safety. Summary of the Invention
[0004] Therefore, it is necessary to provide a method, apparatus, computing device, electric puncture end effector system, storage medium, and computer program product for controlling the movement of a puncture needle to address the above-mentioned technical problems.
[0005] This application provides a method for controlling the movement of a puncture needle, the method comprising:
[0006] Based on the target position and current position of the puncture needle, the current direction of movement of the puncture needle is obtained;
[0007] The current motion scenario is obtained based on the current and previous directions of the puncture needle.
[0008] Obtain the backlash calibration value corresponding to the current motion scenario;
[0009] Based on the backlash calibration value, the current position of the motor is compensated and the target position of the motor is obtained.
[0010] Control the motor to move to the target position of the motor so as to drive the puncture needle to the target position of the puncture needle.
[0011] In one embodiment, obtaining the backlash calibration value corresponding to the current motion scene includes:
[0012] Obtain the correspondence between various motion scenarios and corresponding backlash calibration values;
[0013] Based on the correspondence and the current motion scenario, determine the back clearance calibration value corresponding to the current motion scenario.
[0014] In one embodiment, obtaining the correspondence between various motion scenarios and corresponding backlash calibration values includes:
[0015] During the calibration phase, each motion scenario is taken as the motion scenario to be calibrated in turn.
[0016] The motor is controlled to move the puncture needle along the previous movement direction included in the movement scenario to be calibrated, and then the motor is controlled to move the puncture needle along the current movement direction included in the movement scenario to be calibrated, so that the puncture needle reaches two positions in succession.
[0017] Based on the two positions reached by the puncture needle, the actual displacement corresponding to the motion scenario to be calibrated is obtained;
[0018] Based on the amount of rotation of the motor during the movement of the puncture needle to two positions, the theoretical displacement corresponding to the motion scenario to be calibrated is obtained.
[0019] Based on the difference between the actual displacement and the theoretical displacement corresponding to the motion scenario to be calibrated, the backlash calibration value corresponding to the motion scenario to be calibrated is determined, so as to obtain the correspondence between the motion scenario to be calibrated and the corresponding backlash calibration value.
[0020] In one embodiment, determining the backlash calibration value corresponding to the motion scenario to be calibrated based on the difference between the actual displacement and the theoretical displacement of the motion scenario to be calibrated includes:
[0021] Based on the difference between the actual displacement and the theoretical displacement of the motion scenario to be calibrated during multiple calibrations, multiple difference values are obtained;
[0022] The backlash calibration value corresponding to the motion scene to be calibrated is obtained by averaging multiple difference values.
[0023] In one embodiment, when the motion scenario to be calibrated includes an upward motion direction and a downward motion direction, the two positions reached by the puncture needle successively include an upper electrical limit and a lower electrical limit.
[0024] In one embodiment, the method further includes:
[0025] According to the motor position encoder of the electric puncture end effector equipped with the puncture needle and the motor, the two positions reached by the motor in the process of moving the puncture needle to two positions in succession are obtained.
[0026] The amount of rotation of the motor is obtained based on the two positions the motor reaches in sequence.
[0027] In one embodiment, the target position of the motor is obtained by performing compensation calculations on the current position of the motor based on the backlash calibration value, including:
[0028] Obtain the rotation amount corresponding to the backlash calibration value;
[0029] The target position of the motor is obtained based on the rotation amount corresponding to the backlash calibration value and the current position of the motor.
[0030] In one embodiment, the method further includes:
[0031] During the calibration phase, each motion scenario is used as the motion scenario to be evaluated in turn.
[0032] The distance the puncture needle needs to move is determined by the current direction of movement of the puncture needle along the motion scenario to be evaluated from its current position to the corresponding electrical limit.
[0033] The required position of the motor is obtained based on the distance the puncture needle needs to move, the current position of the motor, and the backlash calibration value corresponding to the motion scenario to be evaluated.
[0034] If the motor does not receive a corresponding electrical limit trigger signal when it moves to the position it needs to reach, the backlash calibration value corresponding to the motion scenario to be evaluated is corrected.
[0035] This application provides a device for controlling the movement of a puncture needle, the device comprising:
[0036] The current motion direction determination module is used to determine the current motion direction of the puncture needle based on the target position and the current position of the puncture needle.
[0037] The current motion scenario determination module is used to determine the current motion scenario based on the current motion direction and the previous motion direction of the puncture needle.
[0038] The backlash value acquisition module is used to acquire the backlash calibration value corresponding to the current motion scene;
[0039] The motor position determination module is used to perform compensation calculations on the current position of the motor based on the backlash calibration value to obtain the target position of the motor.
[0040] The control processing module is used to control the motor to move to the target position of the motor so as to drive the puncture needle to the target position of the puncture needle.
[0041] This application provides a computing device, including a memory and a processor, wherein the memory stores a computer program and the processor executes the above-described method.
[0042] This application provides a computer-readable storage medium having a computer program stored thereon, the computer program being executed by a processor using the methods described above.
[0043] This application provides a computer program product having a computer program stored thereon, the computer program being executed by a processor using the above-described method.
[0044] This application provides an electrically powered puncture end effector system, the system comprising a computing device and an electrically powered puncture end effector;
[0045] The electric puncture end effector includes a motor, a transmission mechanism, a clamping mechanism, a puncture needle, and a computing device;
[0046] The clamping mechanism is used to clamp the puncture needle;
[0047] When the motor moves, it drives the clamping mechanism to move through the transmission mechanism, thereby causing the puncture needle to move.
[0048] The computing device includes a memory and a processor. The memory stores a computer program, and the processor executes the computer program to implement the above method.
[0049] The aforementioned method, apparatus, computing device, electric puncture end effector system, storage medium, and computer program product for controlling the movement of the puncture needle obtain the current movement direction of the puncture needle based on the target position and current position of the puncture needle; obtain the current movement scenario based on the current movement direction and the previous movement direction of the puncture needle; acquire the backlash calibration value corresponding to the current movement scenario; perform compensation calculation on the current position of the motor based on the backlash calibration value to obtain the target position of the motor; and control the motor to move to the target position to drive the puncture needle to the target position. The solution provided in this application subdivides multiple movement scenarios based on the change in the movement direction of the puncture needle, each with a corresponding backlash calibration value. Therefore, during the puncture surgery, the current movement scenario of the puncture needle can be determined, and the corresponding backlash calibration value can be obtained to perform compensation calculation on the current position of the motor to obtain the target position of the motor. By controlling the motor to move to the target position to drive the puncture needle to the target position, the positional accuracy of the puncture needle is improved, thus enhancing surgical accuracy and safety. Attached Figure Description
[0050] To more clearly illustrate the technical solutions in the embodiments or related technologies of this application, the accompanying drawings used in the description of the embodiments or related technologies will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0051] Figure 1 This is a flowchart illustrating a method for controlling the movement of a puncture needle in one embodiment;
[0052] Figure 2 This is a schematic diagram of the structure of an electrically powered puncture end effector in one embodiment;
[0053] Figure 3 This is a flowchart illustrating a method for controlling the movement of a puncture needle in another embodiment;
[0054] Figure 4 This is a schematic diagram of the back clearance calibration process in one embodiment;
[0055] Figure 5 This is a schematic diagram of the tooling environment during offline calibration in one embodiment;
[0056] Figure 6 This is a schematic diagram of a real-time compensation process based on backlash in one embodiment;
[0057] Figure 7 This is a flowchart illustrating the process of determining whether correction is needed in one embodiment;
[0058] Figure 8 This is an internal structural diagram of a computing device in one embodiment. Detailed Implementation
[0059] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0060] The method for controlling the movement of a puncture needle provided in this application includes steps that can be executed by a device with computing capabilities, which can be referred to as a computing device. The method provided in this application includes... Figure 1 The steps are shown.
[0061] Step S101: Based on the target position of the puncture needle and the current position of the puncture needle, obtain the current direction of movement of the puncture needle.
[0062] A puncture needle can be inserted into the body of the punctured object; insertion is one direction of movement for the puncture needle. The puncture needle can also be withdrawn from the body of the punctured object; withdrawal is another direction of movement. In some scenarios, the direction of movement into the body of the punctured object can be called the upward direction of movement, and conversely, the direction of movement withdrawn from the body of the punctured object can be called the downward direction of movement.
[0063] During the puncture procedure, the desired location of the puncture needle can be obtained, which can be called the target location of the puncture needle; the current location of the puncture needle can also be obtained; and the direction of movement required for the puncture needle to move from its current location to its target location can be determined, which is called the current direction of movement of the puncture needle.
[0064] Step S102: Based on the current movement direction of the puncture needle and the previous movement direction, obtain the current movement scenario.
[0065] By pre-combining the two movement directions of the puncture needle, four movement scenarios can be obtained. The first scenario is where the previous movement direction of the puncture needle is upward and the current movement direction is downward; the second scenario is where the previous movement direction is downward and the current movement direction is upward; the third scenario is where both the previous and current movement directions are downward; and the fourth scenario is where both the previous and current movement directions are upward.
[0066] During the puncture procedure, after determining the current direction of the puncture needle, the previous direction of the puncture needle can also be obtained. Based on the current direction of the puncture needle and the previous direction of the puncture needle, the current motion scenario can be determined from the aforementioned four motion scenarios.
[0067] In the initial determination of the current motion scenario, if the puncture needle has not yet moved, it can be initialized. Therefore, the previous motion direction used in the initial determination of the current motion scenario can be obtained from the initialization.
[0068] At the start of the puncture, the puncture needle can be initialized first, and the motor can be controlled to move the puncture needle upward or downward.
[0069] If the puncture needle moves upward during initialization, the previous direction of movement used when determining the current motion scenario for the first time is the upward direction of movement. Combined with the current direction of movement of the puncture needle, the first current motion scenario can be determined. If the puncture needle moves downward during initialization, the previous direction of movement used when determining the current motion scenario for the first time is the downward direction of movement. Combined with the current direction of movement of the puncture needle, the first current motion scenario can be determined.
[0070] Step S103: Obtain the backlash calibration value corresponding to the current motion scene.
[0071] The back clearance value can be pre-calibrated for various motion scenarios, thereby obtaining the corresponding back clearance calibration value for various motion scenarios.
[0072] After determining the current motion scenario, this step can obtain the backlash calibration value corresponding to the current motion scenario.
[0073] Step S104: Based on the backlash calibration value, perform compensation calculation on the current position of the motor to obtain the target position of the motor.
[0074] After determining the backlash calibration value corresponding to the current motion scenario, compensation calculations can be performed on the current position of the motor to calculate the position at which the motor can move the puncture needle from its current position to its target position. The calculated motor position can be called the motor target position.
[0075] It is understandable that if the movement of the motor is rotation and the movement of the puncture needle is translation, then a conversion can be made during the calculation process, and the calculation can be based on the amount of translation caused by one revolution of the motor.
[0076] Step S105: Control the motor to move to the target position of the motor so as to drive the puncture needle to the target position of the puncture needle.
[0077] After determining the target position of the motor, the motor can be controlled to move to that position. The movement of the motor can drive the puncture needle to the target position. During the movement of the motor, the clamping mechanism can be driven to move through the transmission mechanism, thereby moving the puncture needle held by the clamping mechanism.
[0078] In the aforementioned method for controlling the movement of the puncture needle, the current direction of movement of the puncture needle is obtained based on the target position and the current position of the puncture needle; the current movement scenario is obtained based on the current direction of movement and the previous direction of movement; a backlash calibration value corresponding to the current movement scenario is acquired; the motor's current position is compensated based on the backlash calibration value to obtain the motor's target position; and the motor is controlled to move to the motor's target position to drive the puncture needle to the target position. The solution provided in this application subdivides multiple movement scenarios based on changes in the direction of movement of the puncture needle, with each movement scenario having a corresponding backlash calibration value. Therefore, during the subsequent puncture surgery, the current movement scenario of the puncture needle can be determined, and the corresponding backlash calibration value can be obtained to compensate for the motor's current position and obtain the motor's target position. By controlling the motor to move to the motor's target position to drive the puncture needle to the target position, the positional accuracy of the puncture needle is improved, thus enhancing surgical accuracy and safety.
[0079] In one embodiment, obtaining the backlash calibration value corresponding to the current motion scene includes:
[0080] Obtain the correspondence between various motion scenarios and their corresponding back clearance calibration values; based on the correspondence and the current motion scenario, determine the back clearance calibration value corresponding to the current motion scenario.
[0081] Taking the aforementioned four motion scenarios as examples, the correspondence between the first motion scenario and the corresponding back clearance calibration value, the correspondence between the second motion scenario and the corresponding back clearance calibration value, the correspondence between the third motion scenario and the corresponding back clearance calibration value, and the correspondence between the fourth motion scenario and the corresponding back clearance calibration value can be constructed through calibration.
[0082] Among multiple correspondences, determine the correspondence that matches the current motion scene, obtain the back gap calibration value described by the correspondence, and use the back gap calibration value as the back gap calibration value corresponding to the current motion scene.
[0083] This embodiment takes into account that the backlash of the transmission mechanism may vary under different motion scenarios. It sets corresponding backlash calibration values for different motion scenarios, establishes the correspondence between different motion scenarios and corresponding backlash calibration values, and then determines a backlash calibration value that is more suitable for the current motion scenario. This allows for more accurate compensation for the error caused by the backlash of the transmission mechanism, enabling the puncture needle to reach the target position of the puncture needle more accurately.
[0084] In one embodiment, obtaining the correspondence between various motion scenarios and corresponding backlash calibration values includes:
[0085] During the calibration phase, each motion scenario is sequentially taken as the motion scenario to be calibrated. The motor is controlled to move the puncture needle along the previous motion direction included in the motion scenario to be calibrated, and then the motor is controlled to move the puncture needle along the current motion direction included in the motion scenario to be calibrated, so that the puncture needle reaches two positions successively. Based on the two positions reached by the puncture needle, the actual displacement corresponding to the motion scenario to be calibrated is obtained. Based on the amount of rotation of the motor during the movement of the puncture needle to the two positions, the theoretical displacement corresponding to the motion scenario to be calibrated is obtained. Based on the difference between the actual displacement and the theoretical displacement corresponding to the motion scenario to be calibrated, the backlash calibration value corresponding to the motion scenario to be calibrated is determined, so as to obtain the correspondence between the motion scenario to be calibrated and the corresponding backlash calibration value.
[0086] The calibration described in this embodiment can be applied to both online and offline calibration scenarios. In online calibration scenarios, the motor, transmission mechanism, clamping mechanism, and puncture needle are integrated into the entire device. In offline calibration scenarios, these components are not integrated into the entire device.
[0087] The calibration process will be introduced using the first motion scenario of the aforementioned four motion scenarios as an example.
[0088] If we are calibrating the first motion scenario, then we can use the first motion scenario as the motion scenario to be calibrated. The previous motion direction included in the first motion scenario was upward, and the current motion direction included in the first motion scenario is downward. Therefore, we control the motor to move the puncture needle upward to a position (denoted as p_1_1), and then control the motor to move the puncture needle downward to a position (denoted as p_1_2). Positions p_1_1 and p_1_2 are two positions reached by the puncture needle successively. We determine the distance between positions p_1_1 and p_1_2, and use this distance as the actual displacement corresponding to the first motion scenario.
[0089] During the process of the puncture needle reaching positions p_1_1 and p_1_2, the motor rotates to a certain extent, and the amount of rotation of the motor during this process can be obtained. Based on the displacement that the motor can theoretically generate in one revolution, the amount of rotation of the motor is converted to obtain a displacement, which is used as the theoretical displacement corresponding to the first motion scenario.
[0090] Calculate the difference between the actual displacement and the theoretical displacement corresponding to the first motion scenario, and use this difference as the back clearance calibration value corresponding to the first motion scenario, thereby constructing the correspondence between the first motion scenario and the corresponding back clearance calibration value.
[0091] Using the aforementioned method, the backlash calibration values corresponding to other motion scenarios can be determined, and the correspondence between other motion scenarios and their corresponding backlash calibration values can be established.
[0092] In this embodiment, when calibrating a certain motion scenario, the motor is controlled to move sequentially according to the previous motion direction and the current motion direction included in the motion scenario, so that the puncture needle reaches two positions successively. This yields the actual displacement and theoretical displacement corresponding to the motion scenario. By comparing the actual displacement and the theoretical displacement, the backlash calibration value is determined. This can accurately quantify the actual deviation of the puncture needle due to backlash during the motion, providing accurate data support for subsequent error compensation, thereby improving the accuracy of puncture needle motion control.
[0093] In some scenarios, multiple motion scenarios can be randomly sorted, and each motion scenario can be used as the motion scenario to be calibrated in sequence.
[0094] In some scenarios, multiple motion scenarios can be sorted in a certain way, and each motion scenario can be used as a motion scenario to be calibrated in sequence. This allows the calibration to be performed in a more reasonable order, improving calibration efficiency. Specifically, for several motion scenarios that include both upward and downward motion directions, these motion scenarios can be used as the first round of sorting, forming a first-round sorted motion scenario set; for several motion scenarios that only include one motion direction, these motion scenarios can be used as the second round of sorting, forming a second-round sorted motion scenario set.
[0095] First, in the first round of sorting the set of motion scenarios, the current motion scenario to be calibrated can be determined; in the remaining motion scenarios in the first round of sorting the set of motion scenarios, the motion scenarios whose previous motion direction is consistent with the current motion direction included in the current motion scenario to be calibrated can be determined, and the next motion scenario to be calibrated can be obtained.
[0096] Once every motion scene in the first round of sorting has been sorted, then every motion scene in the second round of sorting can be sorted. Specifically, the motion scenes in the second round of sorting can be sorted randomly.
[0097] The above process is illustrated using the four aforementioned motion scenarios as examples:
[0098] Of the four motion scenarios mentioned above, the first and second motion scenarios both include upward and downward motion directions, while the third and fourth motion scenarios only include one motion direction. Therefore, the first round of sorted motion scenario set includes the first and second motion scenarios, and the second round of sorted motion scenario set includes the third and fourth motion scenarios.
[0099] In the first and second motion scenarios, you can choose either one as the first motion scenario.
[0100] If the first motion scene is selected as the primary motion scene, the current motion direction in the first motion scene is downward. The second motion scene includes all previous motion directions as downward; therefore, the second motion scene can be selected as the secondary motion scene.
[0101] After the first round of sorting of each motion scene in the motion scene set is completed, the second round of sorting of each motion scene in the motion scene set can be performed. The third and fourth motion scenes can be sorted randomly. For example, the third motion scene can be ranked third and the fourth motion scene fourth; or the fourth motion scene can be ranked third and the third motion scene fourth.
[0102] Assuming the calibration order for the aforementioned four motion scenarios is: first motion scenario, second motion scenario, third motion scenario, and fourth motion scenario, the calibration process can specifically include the following steps:
[0103] (1) Control the motor to move the puncture needle upward to a position (denoted as p_1_1), and then control the motor to move the puncture needle downward to a position (denoted as p_1_2). Positions p_1_1 and p_1_2 are two positions reached by the puncture needle in succession. Determine the distance between positions p_1_1 and p_1_2, and use this distance as the actual displacement corresponding to the first motion scenario (the previous motion direction was upward, and the current motion direction is downward).
[0104] During the process of the puncture needle reaching positions p_1_1 and p_1_2, the motor rotates to a certain extent, and the amount of rotation of the motor during this process can be obtained. Based on the displacement that the motor can theoretically generate in one revolution, the amount of rotation of the motor is converted to obtain a displacement, which is used as the theoretical displacement corresponding to the first motion scenario.
[0105] Calculate the difference between the actual displacement and the theoretical displacement corresponding to the first motion scenario, and use this difference as the backlash calibration value (denoted as d_backlash_1) corresponding to the first motion scenario, and then construct the correspondence between the first motion scenario and the backlash calibration value d_backlash_1.
[0106] (2) Control the motor to move the puncture needle upward and to a position (denoted as p_2_2). The aforementioned positions p_1_2 and p_2_2 are two positions that the puncture needle reaches successively. Determine the distance between positions p_1_2 and p_2_2, and use this distance as the actual displacement corresponding to the second motion scenario (the previous motion direction was downward, and the current motion direction is upward).
[0107] During the process of the puncture needle reaching positions p_1_2 and p_2_2, the motor rotates to a certain extent, and the amount of rotation of the motor during this process can be obtained. Based on the displacement that can be generated by the motor rotating in one revolution, the amount of rotation of the motor is converted to obtain a displacement, which is used as the theoretical displacement corresponding to the second motion scenario.
[0108] Calculate the difference between the actual displacement and the theoretical displacement corresponding to the second motion scenario, and use this difference as the backlash calibration value (denoted as d_backlash_2) corresponding to the second motion scenario, and then construct the correspondence between the second motion scenario and the backlash calibration value d_backlash_2.
[0109] (3) Take the downward movement direction as the current movement direction. Since the previous movement direction of the puncture needle was upward, the backlash calibration value d_backlash_1 corresponding to the first movement scenario can be obtained. To control the puncture needle to move downward and move a certain distance, if there is a lower electrical limit, the movement distance should not cause the puncture needle to cross the lower electrical limit; the movement distance can be recorded as d_move_low; add the backlash calibration value d_backlash_1 corresponding to the first movement scenario to the movement distance d_move_low to obtain a displacement. According to the displacement that can be generated by the motor rotating one revolution, convert the displacement (d_backlash_1+d_move_low) to obtain the number of revolutions the motor should rotate.
[0110] Based on the motor's current position and the number of revolutions it should make, the desired position for the motor can be determined. The motor is then moved to this desired position. At this point, the puncture needle moves downwards and reaches a position (denoted as p_3_1), and the previous direction of movement is updated to downwards. Next, the motor is controlled to move the puncture needle downwards to a position (denoted as p_3_2). Positions p_3_1 and p_3_2 represent the two positions the puncture needle reaches sequentially. The distance between positions p_3_1 and p_3_2 is determined and used as the actual displacement for the third motion scenario (previous direction downwards, current direction downwards).
[0111] During the process of the puncture needle reaching positions p_3_1 and p_3_2, the motor rotates to a certain extent, and the amount of rotation of the motor during this process can be obtained. Based on the displacement that can be generated by the motor rotating in one revolution, the amount of rotation of the motor is converted to obtain a displacement, which is used as the theoretical displacement corresponding to the third motion scenario.
[0112] Calculate the difference between the actual displacement and the theoretical displacement corresponding to the third motion scenario, and use this difference as the backlash calibration value (denoted as d_backlash_3) corresponding to the third motion scenario. Then, construct the correspondence between the third motion scenario and the backlash calibration value d_backlash_3.
[0113] (4) Take the upward movement direction as the current movement direction. Since the previous movement direction of the puncture needle was downward, the backlash calibration value d_backlash_2 corresponding to the second movement scenario can be obtained. To control the puncture needle to move upward and move a certain distance, if there is an upper electrical limit, the movement distance should not cause the puncture needle to cross the upper electrical limit; the movement distance can be recorded as d_move_up; add the backlash calibration value d_backlash_2 corresponding to the second movement scenario to the movement distance d_move_up to obtain a displacement. According to the displacement that can be generated by the motor rotating one revolution, convert the displacement (d_backlash_2+d_move_up) to obtain the number of revolutions the motor should rotate.
[0114] Based on the motor's current position and the number of revolutions it should make, the desired position for the motor can be determined. The motor is then moved to this desired position. At this point, the puncture needle moves upwards and reaches a position (denoted as p_4_1), and the previous direction of movement is updated to upwards. Next, the motor is controlled to move the puncture needle upwards to a position (denoted as p_4_2). Positions p_4_1 and p_4_2 represent the two positions the puncture needle reaches sequentially. The distance between positions p_4_1 and p_4_2 is determined and used as the actual displacement for the fourth motion scenario (previous direction upwards, current direction upwards).
[0115] During the process of the puncture needle reaching positions p_4_1 and p_4_2, the motor rotates to a certain extent, and the amount of rotation of the motor during this process can be obtained. Based on the displacement that the motor can theoretically generate in one revolution, the amount of rotation of the motor is converted to obtain a displacement, which is used as the theoretical displacement corresponding to the fourth motion scenario.
[0116] Calculate the difference between the actual displacement and the theoretical displacement corresponding to the fourth motion scenario, and use this difference as the backlash calibration value (denoted as d_backlash_4) corresponding to the fourth motion scenario. Then, construct the correspondence between the fourth motion scenario and the backlash calibration value d_backlash_4.
[0117] In one embodiment, determining the backlash calibration value for the motion scenario to be calibrated based on the difference between the actual displacement and the theoretical displacement includes:
[0118] Based on the difference between the actual displacement and the theoretical displacement of the motion scene to be calibrated during multiple calibrations, multiple difference values are obtained; the average of these multiple difference values is then calculated to obtain the backlash calibration value corresponding to the motion scene to be calibrated.
[0119] Taking the first motion scenario as an example, the first motion scenario can be calibrated at least twice in the aforementioned manner. If the first motion scenario is calibrated four times, the difference between the actual displacement and the theoretical displacement of the first motion scenario during the first calibration can be obtained, thus obtaining the difference value corresponding to the first calibration; the difference between the actual displacement and the theoretical displacement of the first motion scenario during the second calibration can be obtained, thus obtaining the difference value corresponding to the second calibration; the difference between the actual displacement and the theoretical displacement of the first motion scenario during the third calibration can be obtained, thus obtaining the difference value corresponding to the third calibration; and the difference between the actual displacement and the theoretical displacement of the first motion scenario during the fourth calibration can be obtained, thus obtaining the difference value corresponding to the fourth calibration.
[0120] The difference values corresponding to the first calibration, the second calibration, the third calibration, and the fourth calibration are averaged, and the average result is used as the back gap calibration value corresponding to the first motion scene.
[0121] In this embodiment, multiple calibrations are performed on the same motion scenario, and the results of the multiple calibrations are averaged to obtain a more accurate backlash calibration value, thereby improving the accuracy of the puncture needle motion control.
[0122] In one embodiment, when the motion scenario to be calibrated includes an upward motion direction and a downward motion direction, the two positions reached by the puncture needle in sequence include an upper electrical limit and a lower electrical limit.
[0123] This embodiment can be applied to online calibration scenarios. In online calibration scenarios, the motor, transmission mechanism, clamping mechanism, and puncture needle are integrated into the whole machine; in addition, the upper and lower electrical limit switches are also integrated into the whole machine.
[0124] If a motion scenario includes both upward and downward motion (such as the first and second motion scenarios in the previous example), then the two positions reached by the puncture needle can be set to include the upper and lower electrical limits. By using the electrical signals triggered by the upper and lower electrical limits, it can be determined whether the puncture needle has reached the correct position and whether the motor has stopped moving. This eliminates the need for monitoring with other equipment and simplifies the calibration process.
[0125] In one embodiment, the method provided in this application further includes:
[0126] Based on the motor position encoder of the electric puncture end effector equipped with a puncture needle and a motor, the two positions reached by the motor during the movement that causes the puncture needle to reach two positions are obtained; based on the two positions reached by the motor, the amount of motor rotation is obtained.
[0127] This embodiment can be applied to online calibration scenarios. In online calibration scenarios, the motor, transmission mechanism, clamping mechanism, and puncture needle are integrated into the whole machine; in addition, the motor position encoder is also integrated into the whole machine.
[0128] The calibration process will be introduced using the first motion scenario of the aforementioned four motion scenarios as an example.
[0129] If we are calibrating the first motion scenario, then we can use the first motion scenario as the motion scenario to be calibrated. The previous motion direction included in the first motion scenario was upward, and the current motion direction included in the first motion scenario is downward. Therefore, we control the motor to move the puncture needle upward to a position (denoted as p_1_1), and then control the motor to move the puncture needle downward to a position (denoted as p_1_2). Positions p_1_1 and p_1_2 are two positions reached by the puncture needle successively. We determine the distance between positions p_1_1 and p_1_2, and use this distance as the actual displacement corresponding to the first motion scenario.
[0130] During the process of the puncture needle reaching positions p_1_1 and p_1_2, the motor rotates to a certain extent. The position of the motor when the puncture needle reaches position p_1_1 can be obtained through the motor position encoder.
[0131] The position of the motor when the puncture needle reaches position p_1_2 is obtained through a motor position encoder. Based on the two positions reached by the motor, the amount of motor rotation can be obtained. According to the theoretical displacement that can be generated by a single rotation of the motor, the amount of motor rotation is converted to obtain a displacement, which is used as the theoretical displacement corresponding to the first motion scenario.
[0132] Calculate the difference between the actual displacement and the theoretical displacement corresponding to the first motion scenario, and use this difference as the back clearance calibration value corresponding to the first motion scenario, thereby constructing the correspondence between the first motion scenario and the corresponding back clearance calibration value.
[0133] In this embodiment, the position reached by the motor can be obtained by the motor position encoder, and then the amount of motor rotation can be calculated. There is no need to set up other equipment for monitoring, which simplifies the calibration process.
[0134] In one embodiment, the target position of the motor is obtained by performing compensation calculations based on the backlash calibration value to determine the current position of the motor, including:
[0135] Obtain the rotation amount corresponding to the backlash calibration value; based on the rotation amount corresponding to the backlash calibration value and the current position of the motor, obtain the target position of the motor.
[0136] The backlash calibration value is a parameter related to translational motion. Therefore, the backlash calibration value is converted according to the displacement produced by a single rotation of the motor to obtain the amount of rotation the motor needs to rotate. This required rotation will produce the same displacement as the backlash calibration value. This required rotation is then used as the rotation amount corresponding to the backlash calibration value. The rotation amount corresponding to the backlash calibration value is added to the current motor position to obtain the target motor position.
[0137] In this embodiment, the back clearance calibration value is converted into the corresponding rotation amount. Combined with the current position of the motor, the obtained target position of the motor is more accurate, thus improving the motion control accuracy of the puncture needle.
[0138] In one embodiment, the method provided in this application further includes:
[0139] During the calibration phase, each motion scenario is sequentially used as the motion scenario to be evaluated. The distance the puncture needle needs to move is obtained by moving the needle from its current position to the corresponding electrical limit along the current motion direction included in the motion scenario to be evaluated. The position the motor needs to reach is obtained based on the distance the puncture needle needs to move, the current position of the motor, and the backlash calibration value corresponding to the motion scenario to be evaluated. If the motor does not receive the trigger signal of the corresponding electrical limit when it reaches the position it needs to reach, the backlash calibration value corresponding to the motion scenario to be evaluated is calibrated.
[0140] After the puncture procedure is completed, it can be determined whether the backlash values for each motion scenario need to be corrected. If correction is required, the calibration process can be initiated to update the backlash values for each motion scenario and save the updated backlash values to the storage unit.
[0141] This embodiment can be applied to online calibration scenarios, in which the motor, transmission mechanism, clamping mechanism and puncture needle are integrated into the whole machine; in addition, the upper electrical limit and lower electrical limit are also integrated into the whole machine.
[0142] The motion scenario to be evaluated includes the current direction of motion, along which the puncture needle can move. The electrical limits that the puncture needle can reach while moving in this direction are the corresponding electrical limits for that motion scenario. For example, if the first motion scenario includes a downward direction of motion, then the electrical limit that the puncture needle can reach while moving downward is the lower electrical limit, and the corresponding electrical limit for the first motion scenario is also the lower electrical limit. Similarly, if the second motion scenario includes an upward direction of motion, then the electrical limit that the puncture needle can reach while moving upward is the upper electrical limit, and the corresponding electrical limit for the second motion scenario is also the upper electrical limit.
[0143] The calibration process will be introduced using the first motion scenario of the aforementioned four motion scenarios as an example.
[0144] If the first motion scenario is not currently being evaluated for correction, then the first motion scenario can be used as the motion scenario to be evaluated. The first motion scenario includes a downward motion direction. Therefore, the distance from the current position of the puncture needle to the lower electrical limit can be determined. This distance is the distance the puncture needle needs to move downward from its current position to the lower electrical limit, and this distance can be called the distance the puncture needle needs to move.
[0145] The sum of the distance the puncture needle needs to move and the back clearance calibration value corresponding to the first motion scenario can be obtained, and the sum can be converted to determine the amount of rotation the motor needs to rotate. The amount of rotation the motor needs to rotate is the amount of rotation that can produce the displacement corresponding to the sum value. The sum of the amount of rotation the motor needs to rotate and the current position of the motor can be obtained, and the result is the position the motor needs to reach.
[0146] Control the motor to move and reach the required position. If a lower electrical limit trigger signal is received when the motor reaches the required position, it indicates that the backlash calibration value corresponding to the first motion scenario is accurate and does not need to be updated. If no lower electrical limit trigger signal is received when the motor reaches the required position, it indicates that the backlash calibration value corresponding to the first motion scenario is inaccurate and needs to be updated. The backlash calibration value corresponding to the first motion scenario can be corrected. The correction method can refer to the aforementioned calibration process.
[0147] The calibration process will be introduced using the second motion scenario of the aforementioned four motion scenarios as an example.
[0148] If the current assessment of the second motion scenario involves correction, then the second motion scenario can be used as the motion scenario to be assessed. The second motion scenario includes an upward motion direction. Therefore, the distance from the current position of the puncture needle to the upper electrical limit can be determined. This distance is the distance the puncture needle needs to move upward from its current position to the upper electrical limit, and this distance can be called the distance the puncture needle needs to move.
[0149] The sum of the distance the puncture needle needs to move and the back clearance calibration value corresponding to the second motion scenario can be obtained, and the sum can be converted to determine the amount of rotation the motor needs to rotate. The amount of rotation the motor needs to rotate is the amount of rotation that can produce the displacement corresponding to the sum value. The sum of the amount of rotation the motor needs to rotate and the current position of the motor can be obtained, and the result is the position the motor needs to reach.
[0150] Control the motor to move and reach the required position. If the upper electrical limit switch trigger signal is received when the motor reaches the required position, it indicates that the backlash calibration value corresponding to the second motion scenario is accurate and does not need to be updated. If the upper electrical limit switch trigger signal is not received when the motor reaches the required position, it indicates that the backlash calibration value corresponding to the second motion scenario is inaccurate and needs to be updated. The backlash calibration value corresponding to the second motion scenario can be corrected. The correction method can refer to the aforementioned calibration process.
[0151] To better understand the above method, an application embodiment of the method for controlling the movement of the puncture needle according to this application is described in detail below. This embodiment relates to an electrically powered puncture end effector system. The electrically powered puncture end effector system includes an electrically powered puncture end effector and a computing device. The electrically powered puncture end effector includes... Figure 2 The motor 201, motor position encoder 202, transmission mechanism 203, clamping mechanism 204, puncture needle 205, upper electrical limit 206 and lower electrical limit 207 are shown.
[0152] The clamping mechanism 204 is used to clamp the puncture needle 205. When the motor 201 rotates, it drives the clamping mechanism 204 to move through the transmission mechanism 203, so that the puncture needle 205 moves upward or downward. When the clamping mechanism 204 reaches the upper electrical limit 206 (which can be regarded as the puncture needle reaching the upper electrical limit), the upper electrical limit 206 will generate a trigger signal (the signal type can be an electrical signal); when the clamping mechanism 204 reaches the lower electrical limit 207 (which can be regarded as the puncture needle reaching the lower electrical limit), the lower electrical limit 207 will generate a trigger signal (the signal type can be an electrical signal).
[0153] This embodiment involves four parts. The first part mainly provides a backlash compensation table. The second part mainly calibrates the backlash. The third part mainly provides real-time backlash compensation. The fourth part mainly provides automatic backlash correction.
[0154] Part One:
[0155] The clockwise or counterclockwise rotation of the motor translates to the upward or downward movement of the puncture needle at the load end. During the puncture procedure, the backlash of the transmission mechanism varies depending on the motor's rotation direction. This embodiment takes into account the difference in backlash size when the motor's rotation direction is different. Compared to processing a single backlash value, this improves the motion control accuracy of the puncture needle under different motion scenarios. This application example obtains different motion scenarios based on the previous and current motion directions of the puncture needle, and records the corresponding backlash calibration values in a backlash compensation table. Using the motion scenario as an index, the corresponding backlash calibration value can be looked up in the backlash compensation table.
[0156] Part Two:
[0157] At the start of the puncture procedure, it can be determined whether backspace calibration has been performed; if not, the calibration process can proceed. If backspace calibration has been performed, the third part, real-time compensation based on the backspace, can then be initiated.
[0158] The calibration process can be online, eliminating the need to measure backlash before assembly or calibrate using specialized tooling before prototype integration. Online calibration can be completed using a motor position encoder, upper and lower electrical limit switches, without the need for additional displacement sensors. This results in a simple structure, low cost, and minimal error.
[0159] The calibration process can also be performed offline.
[0160] Part Three:
[0161] During the puncture procedure, the computing device can receive the target position of the puncture needle in real time. Based on the target position and the current position of the puncture needle, the current direction of movement of the puncture needle can be determined. Based on the current direction of movement and the previous direction of movement of the puncture needle, the current movement scenario can be determined. The corresponding backlash calibration value can be found in the backlash compensation table using the current movement scenario as an index. Based on the found backlash calibration value, the current position of the motor is compensated to obtain the target position of the motor. The motor is controlled to reach the target position, so that the puncture needle accurately reaches the target position.
[0162] During the puncture needle procedure, the target position of the motor can be calculated in real time to ensure real-time control.
[0163] Part Four:
[0164] After the puncture procedure, the motor can be controlled to move according to the current backlash calibration value of the existing storage unit. After the movement is completed, it is determined whether the backlash calibration value needs to be corrected based on whether the upper or lower electrical limit switch issues a trigger signal. If correction is required, the calibration process is re-entered to update the backlash calibration value under the movement scenario. This ensures that backlash correction can be performed automatically when the size of the backlash changes.
[0165] This embodiment provides a scheme for determining whether back gap correction is needed, which can ensure that when the back gap size changes over time, the back gap calibration value can be automatically updated, ensuring that the motion accuracy of the puncture needle does not deteriorate over time.
[0166] The overall flow of this embodiment is as follows: Figure 3 As shown, it mainly includes the following steps:
[0167] In steps S301 to S302, after the puncture surgery begins, it is determined whether backspace calibration has been performed. The marker for determination can be a marker quantity stored in the storage unit.
[0168] If no calibration is performed, proceed to steps S303 to S304. Various motion scenarios are obtained based on the previous and current motion directions of the puncture needle. The motion scenario is used as an index variable to generate a backlash compensation table. Based on the motor position encoder, upper electrical limit, and lower electrical limit, the backlash calibration values corresponding to various motion scenarios are determined. The average of multiple backlash calibration values for the same motion scenario is then stored in the backlash compensation table.
[0169] If calibration is performed, the real-time compensation process based on the backlash value is initiated. Specifically, in step S305, the motor is controlled to move so that the puncture needle reaches the upper electrical limit as the zero position, and the current position of the motor, the current position of the puncture needle, and the previous movement direction of the puncture needle are initialized.
[0170] Step S306: Obtain the target position of the puncture needle, and calculate the current movement direction of the puncture needle, the backlash calibration value, and the target position of the motor.
[0171] Step S307: Control the motor to move to the target position, and update the current position of the motor, the current position of the puncture needle, and the last movement direction of the puncture needle.
[0172] Step S308: Determine whether the puncture procedure is complete.
[0173] If the puncture procedure is not completed, return to steps S306 and S307.
[0174] If the puncture procedure is completed, proceed to step S309 to determine whether the backspace calibration value needs to be corrected.
[0175] If the backlash calibration value needs to be corrected, proceed to step S310, control the motor to move according to the calibration process, and update the backlash compensation table with the new backlash calibration value. After the update is complete, end the process.
[0176] If no backlash calibration is required, the process ends.
[0177] (1) The process of generating the backlash compensation table mentioned above specifically includes the following steps:
[0178] Considering the changes in backlash when the motor rotates clockwise and counterclockwise, four motion scenarios can be obtained by combining the movement directions of the puncture needle to cover various possible working conditions of the puncture needle. These motion scenarios are used as index variables to generate a backlash compensation table. The backlash compensation table can be stored in a storage unit.
[0179] The four motion scenarios are: the first motion scenario (the previous motion direction was upward and the current motion direction is downward), the second motion scenario (the previous motion direction was downward and the current motion direction is upward), the third motion scenario (the previous motion direction was downward and the current motion direction is downward), and the fourth motion scenario (the previous motion direction was upward and the current motion direction is upward).
[0180] (2) Back gap calibration can be performed online or offline.
[0181] Online calibration includes Figure 4 The steps shown are, in detail:
[0182] The distance between the upper and lower electrical limits is obtained by measuring tools. The distance between the upper and lower electrical limits is a fixed length and can be denoted as d_uplowlimitdis.
[0183] The motor is controlled to move so that the puncture needle reaches the upper electrical limit. After receiving the trigger signal from the upper electrical limit, the computing device controls the motor to move so that the puncture needle reaches the lower electrical limit. After receiving the trigger signal from the lower electrical limit, the computing device records the motor's rotation (denoted as d_spin_1); the motor rotation d_spin_1 corresponds to the process of the puncture needle moving from the upper electrical limit to the lower electrical limit. Based on the motor rotation d_spin_1 and the displacement generated by a single rotation of the motor, the theoretical displacement that the motor can generate by rotating at d_spin_1 (denoted as d_motor_1) is obtained. The backlash calibration value for the first motion scenario is calculated as d_backlash_1 = d_motor_1 - d_uplowlimitdis. The backlash calibration value d_backlash_1 for the first motion scenario is stored in the backlash compensation table.
[0184] The motor is controlled to move so that the puncture needle reaches the upper electrical limit. After receiving the trigger signal from the upper electrical limit, the computing device records the motor's rotation (denoted as d_spin_2); the motor rotation d_spin_2 corresponds to the process of the puncture needle moving from the lower electrical limit to the upper electrical limit. Based on the motor rotation d_spin_2 and the displacement generated by a single rotation of the motor, the theoretical displacement that the motor can generate by rotating at d_spin_2 (denoted as d_motor_2) is obtained. The backlash calibration value for the second motion scenario is calculated as d_backlash_2 = d_motor_2 - d_uplowlimitdis. The backlash calibration value d_backlash_2 for the second motion scenario is stored in the backlash compensation table.
[0185] The downward movement is taken as the current direction of movement. Since the previous direction of movement was upward, the backlash calibration value d_backlash_1 of the first movement scenario can be obtained. The distance the puncture needle moves downward by controlling the motor is d_backlash_1 + d_x, and the position of the puncture needle is recorded as p_3. Here, d_x is not greater than d_uplowlimitdis and is greater than the backlash value, so d_x can be set to half of d_uplowlimitdis. When d_x is set to half of d_uplowlimitdis, the puncture needle reaches the midpoint between the upper and lower electrical limits.
[0186] The previous movement direction is updated to downward, and the motor is controlled to move the puncture needle to the lower electrical limit. After receiving the trigger signal of the lower electrical limit, the computing device can record the amount of motor rotation (denoted as d_spin_3); the amount of motor rotation d_spin_3 corresponds to the process of the puncture needle moving from position p_3 to the lower electrical limit. Based on the amount of motor rotation d_spin_3 and the displacement generated by the motor rotating one revolution, the theoretical displacement that the motor can generate by rotating d_spin_3 is obtained (denoted as d_motor_3). The backlash calibration value d_backlash_3 for the third motion scenario is calculated as d_motor_3 - (d_uplowlimitdis - d_x). The backlash calibration value d_backlash_3 for the third motion scenario is stored in the backlash compensation table.
[0187] The upward movement is taken as the current direction of motion. Since the previous direction of motion was downward, the backlash calibration value d_backlash_2 for the second motion scenario can be obtained. The distance the puncture needle moves upward by controlling the motor is d_backlash_1 + d_y, and the position of the puncture needle is recorded as p_4. Here, d_y is not greater than d_uplowlimitdis and is greater than the backlash value, so d_y can be set to half of d_uplowlimitdis. When d_y is set to half of d_uplowlimitdis, the puncture needle reaches the midpoint between the upper and lower electrical limits.
[0188] The previous movement direction is updated to upward, and the motor is controlled to move the puncture needle to the upper electrical limit. After receiving the trigger signal of the upper electrical limit, the computing device can record the amount of motor rotation (denoted as d_spin_4); the amount of motor rotation d_spin_4 corresponds to the process of the puncture needle moving from position p_4 to the upper electrical limit. Based on the amount of motor rotation d_spin_4 and the displacement generated by the motor rotating one revolution, the theoretical displacement that the motor can generate by rotating d_spin_4 is obtained (denoted as d_motor_4). The backlash calibration value d_backlash_4 for the fourth motion scenario is calculated as d_motor_4 - (d_uplowlimitdis - d_y). The backlash calibration value d_backlash_4 for the fourth motion scenario is stored in the backlash compensation table.
[0189] Offline calibration specifically includes the following steps:
[0190] Offline calibration requires setting up a dedicated tooling environment. This tooling environment includes... Figure 5 The diagram shows an end effector fixing unit 208, a power supply enabling unit 209, tooling control software 210, and a three-dimensional spatial measurement device. The three-dimensional spatial measurement device may be a laser tracker 211.
[0191] Before calibration begins, the tooling control software controls the motor to move the puncture needle upwards to a certain position and records the current position of the motor (denoted as p_motor_init). The laser tracker records the position of the puncture needle (denoted as p_needle_init). Next, the motor is controlled to move the puncture needle downwards, with a displacement of d_motor_1. The laser tracker records the position of the puncture needle (denoted as p_needle_1) and calculates the backlash calibration value for the first motion scenario: d_backlash_1 = d_motor_1 - (p_needle_init - p_needle_1). The backlash calibration value d_backlash_1 for the first motion scenario is then stored in the backlash compensation table.
[0192] The motor is controlled to move the puncture needle downwards, with a displacement of d_motor_2. The laser tracker records the position of the puncture needle (denoted as p_needle_2), and the backlash calibration value d_backlash_3 for the third motion scenario is calculated as d_motor_2 - (p_needle_1 - p_needle_2). The backlash calibration value d_backlash_3 for the third motion scenario is stored in the backlash compensation table.
[0193] The motor is controlled to move the puncture needle upwards, with a displacement of d_motor_3. The laser tracker records the position of the puncture needle (denoted as p_needle_3), and the backlash calibration value for the second motion scenario is calculated as d_backlash_2 = d_motor_3 - (p_needle_2 - p_needle_3). The backlash calibration value d_backlash_2 for the second motion scenario is stored in the backlash compensation table.
[0194] The motor is controlled to move the puncture needle upwards, with a displacement of d_motor_4. The laser tracker records the position of the puncture needle (denoted as p_needle_4), and the backlash calibration value for the fourth motion scenario is calculated as d_backlash_4 = d_motor_4 - (p_needle_3 - p_needle_4). The backlash calibration value d_backlash_4 for the fourth motion scenario is stored in the backlash compensation table.
[0195] (3) The real-time compensation process based on backlash includes Figure 6 The steps shown are, in detail:
[0196] Initialization can be performed before the puncture procedure begins. Specifically, the motor can be controlled to move the puncture needle to the upper electrical limit, the current position of the motor (p_motor_current) and the current position of the puncture needle (p_needle_current) can be recorded, and the last movement direction of the puncture needle can be updated to upward.
[0197] During the puncture procedure, the computing device receives the target position p_needle_target of the puncture needle in real time. Based on the current position p_needle_current and the target position p_needle_target, the current direction of movement of the puncture needle can be determined. The current motion scenario is determined based on the current and previous directions of movement. The backlash calibration value d_backlash corresponding to the current motion scenario is looked up in the backlash compensation table. The theoretical displacement d_1 = p_needle_target - p_needle_current + d_backlash is calculated. The theoretical displacement is converted according to the displacement produced by a single motor revolution to determine the theoretical motor rotation. The theoretical motor rotation is added to the current motor position p_motor_current to obtain the target motor position p_motor_target. The motor is controlled to move to the target position p_motor_target, thus ensuring the puncture needle accurately reaches its target position p_needle_target. Additionally, the previous direction of movement of the puncture needle is updated.
[0198] (4) The automatic back gap correction process includes Figure 7 The steps shown are, in detail:
[0199] After the puncture procedure is completed, it can be determined whether the backlash values for each motion scenario need to be corrected. If correction is required, the calibration process can be initiated to update the backlash values for each motion scenario and save the updated backlash values to the backlash compensation table.
[0200] Backlash calibration value evaluation for the first motion scenario: Control the motor to move the puncture needle to the upper electrical limit and update the motor's current position p_motor_current. If the current goal is to control the puncture needle to move downwards to the lower electrical limit, obtain the backlash calibration value d_backlash_1 for the first motion scenario. Calculate the displacement required for the motor to reach the lower electrical limit as d_uplowlimitdis + d_backlash_1. Convert this displacement to obtain the amount of rotation the motor needs to perform. Sum the required rotation amount with the current motor position; the result is the required position the motor needs to reach. Control the motor to move to the required position.
[0201] If the motor reaches the required position and receives a lower electrical limit trigger signal, it indicates that the backlash calibration value corresponding to the first motion scenario is accurate and does not need to be updated. If the motor reaches the required position but does not receive a lower electrical limit trigger signal, it indicates that the backlash calibration value corresponding to the first motion scenario is inaccurate and needs to be updated. The backlash calibration value corresponding to the first motion scenario can be corrected, and the backlash calibration process can be entered to redetermine the backlash calibration value for each motion scenario.
[0202] Backlash calibration value evaluation for the second motion scenario: Update the current motor position p_motor_current. If the desired movement of the puncture needle is to the upper electrical limit, obtain the backlash calibration value d_backlash_2 for the second motion scenario. Calculate the displacement required for the motor to reach the upper electrical limit as d_uplowlimitdis + d_backlash_2. Convert this displacement to obtain the required motor rotation. Sum the required motor rotation with the current motor position; the result is the required position for the motor. Control the motor to move to the required position.
[0203] If the motor reaches the required position and receives a trigger signal from the upper electrical limit switch, it indicates that the backlash calibration value corresponding to the second motion scenario is accurate and does not need to be updated. If the motor reaches the required position but does not receive a trigger signal from the upper electrical limit switch, it indicates that the backlash calibration value corresponding to the second motion scenario is inaccurate and needs to be updated. The backlash calibration value corresponding to the second motion scenario can be corrected, and the backlash calibration process can be entered to redetermine the backlash calibration value for each motion scenario.
[0204] Evaluation of backlash calibration value in the third motion scenario: Update the current motor position p_motor_current. If the desired movement of the puncture needle is to be downwards to the midpoint between the upper and lower electrical limits, then obtain the backlash calibration value d_backlash_1 from the first motion scenario. Calculate the displacement required for the motor to reach the midpoint between the upper and lower electrical limits: d_uplowlimitdis / 2 + d_backlash_1. Convert this displacement to obtain the amount of rotation the motor needs to perform. Calculate the sum of the required rotation and the current motor position; this result is the desired position the motor needs to reach. Control the motor to move to the desired position. After the motor reaches its position, the puncture needle is at the midpoint between the upper and lower electrical limits.
[0205] After the puncture needle reaches the midpoint between the upper and lower electrical limits, the current motor position `p_motor_current` is updated. If the goal is to control the puncture needle to move downwards to the lower electrical limit, the backlash calibration value `d_backlash_3` for the third motion scenario is obtained. The displacement required for the motor to reach the lower electrical limit is calculated as `d_uplowlimitdis / 2 + d_backlash_3`. This displacement is converted to obtain the required motor rotation. The sum of the required motor rotation and the current motor position is used as the desired motor position. The motor is then controlled to move to the desired position.
[0206] If the motor reaches the required position and receives a trigger signal from the lower electrical limit, it indicates that the backlash calibration value corresponding to the third motion scenario is accurate and does not need to be updated. If the motor reaches the required position but does not receive a trigger signal from the lower electrical limit, it indicates that the backlash calibration value corresponding to the third motion scenario is inaccurate and needs to be updated. The backlash calibration value corresponding to the third motion scenario can be corrected, and the backlash calibration process can be entered to redetermine the backlash calibration value for each motion scenario.
[0207] Evaluation of backlash calibration value in the fourth motion scenario: Update the current motor position p_motor_current. If the desired movement of the puncture needle is to be upward to the midpoint between the upper and lower electrical limits, then obtain the backlash calibration value d_backlash_2 from the second motion scenario. Calculate the displacement required for the motor to reach the midpoint between the upper and lower electrical limits: d_uplowlimitdis / 2 + d_backlash_2. Convert this displacement to obtain the amount of rotation the motor needs to perform. Sum the required rotation amount with the current motor position; the result is the required position the motor needs to reach. Control the motor to move to the required position. After the motor reaches the desired position, the puncture needle is at the midpoint between the upper and lower electrical limits.
[0208] After the puncture needle reaches the midpoint between the upper and lower electrical limits, the current motor position `p_motor_current` is updated. If the goal is to control the puncture needle to move upwards to the upper electrical limit, the backlash calibration value `d_backlash_4` for the fourth motion scenario is obtained. The displacement required for the motor to reach the upper electrical limit is calculated as `d_uplowlimitdis / 2 + d_backlash_4`. This displacement is converted to obtain the amount of rotation the motor needs to achieve. The sum of the required rotation and the current motor position is used as the desired motor position. The motor is then controlled to move to the desired position.
[0209] If the motor reaches the required position and receives a trigger signal from the upper electrical limit switch, it indicates that the backlash calibration value corresponding to the fourth motion scenario is accurate and does not need to be updated. If the motor reaches the required position but does not receive a trigger signal from the upper electrical limit switch, it indicates that the backlash calibration value corresponding to the fourth motion scenario is inaccurate and needs to be updated. The backlash calibration value corresponding to the fourth motion scenario can be corrected, and the backlash calibration process can be entered to redetermine the backlash calibration value for each motion scenario.
[0210] This embodiment subdivides various motion scenarios based on the changes in the direction of the puncture needle movement. Each motion scenario has a corresponding backlash calibration value. Therefore, during the subsequent puncture surgery, the current motion scenario of the puncture needle can be determined, and the corresponding backlash calibration value can be obtained. This value is then used to compensate for the current position of the motor, obtain the target position of the motor, and control the motor to move to the target position to drive the puncture needle to the target position, thereby improving the positional accuracy of the puncture needle and enhancing the surgical accuracy and safety.
[0211] It should be understood that although the steps in the flowcharts of the embodiments described above are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the embodiments described above may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.
[0212] Based on the same inventive concept, this application also provides an apparatus for controlling the movement of a puncture needle to implement the method for controlling the movement of a puncture needle as described above. The solution provided by this apparatus is similar to the solution described in the above method. Therefore, the specific limitations of one or more apparatus embodiments for controlling the movement of a puncture needle provided below can be found in the limitations of the method for controlling the movement of a puncture needle described above, and will not be repeated here.
[0213] In one embodiment, a device for controlling the movement of a puncture needle is provided, comprising:
[0214] The current motion direction determination module is used to determine the current motion direction of the puncture needle based on the target position and the current position of the puncture needle.
[0215] The current motion scenario determination module is used to determine the current motion scenario based on the current motion direction and the previous motion direction of the puncture needle.
[0216] The backlash value acquisition module is used to acquire the backlash calibration value corresponding to the current motion scene;
[0217] The motor position determination module is used to perform compensation calculations on the current position of the motor based on the backlash calibration value to obtain the target position of the motor.
[0218] The control processing module is used to control the motor to move to the target position of the motor so as to drive the puncture needle to the target position of the puncture needle.
[0219] In one embodiment, the back gap value acquisition module is further configured to:
[0220] Obtain the correspondence between various motion scenarios and corresponding back clearance calibration values; determine the back clearance calibration value corresponding to the current motion scenario based on the correspondence and the current motion scenario.
[0221] In one embodiment, the back gap value acquisition module is further configured to:
[0222] During the calibration phase, each motion scenario is sequentially taken as the motion scenario to be calibrated. The motor is controlled to move the puncture needle along the previous motion direction included in the motion scenario to be calibrated, and then the motor is controlled to move the puncture needle along the current motion direction included in the motion scenario to be calibrated, so that the puncture needle reaches two positions successively. Based on the two positions reached by the puncture needle, the actual displacement corresponding to the motion scenario to be calibrated is obtained. Based on the rotation of the motor during the movement of the puncture needle to the two positions, the theoretical displacement corresponding to the motion scenario to be calibrated is obtained. Based on the difference between the actual displacement and the theoretical displacement corresponding to the motion scenario to be calibrated, the backlash calibration value corresponding to the motion scenario to be calibrated is determined, so as to obtain the correspondence between the motion scenario to be calibrated and the corresponding backlash calibration value.
[0223] In one embodiment, the back gap value acquisition module is further configured to:
[0224] Based on the difference between the actual displacement and the theoretical displacement of the motion scenario to be calibrated during multiple calibrations, multiple difference values are obtained; the average of the multiple difference values is then calculated to obtain the backlash calibration value corresponding to the motion scenario to be calibrated.
[0225] In one embodiment, when the motion scenario to be calibrated includes an upward motion direction and a downward motion direction, the two positions reached by the puncture needle successively include an upper electrical limit and a lower electrical limit.
[0226] In one embodiment, the device further includes a rotation amount determination module, used for:
[0227] The position encoder of the electric puncture end effector equipped with the puncture needle and the motor is used to obtain the two positions reached by the motor in the process of moving the puncture needle to two positions in succession; the amount of rotation of the motor is obtained based on the two positions reached by the motor in succession.
[0228] In one embodiment, the motor position determination module is used for:
[0229] Obtain the rotation amount corresponding to the backlash calibration value; based on the rotation amount corresponding to the backlash calibration value and the current position of the motor, obtain the target position of the motor.
[0230] In one embodiment, the device further includes a calibration module for:
[0231] During the calibration phase, each motion scenario is sequentially selected as the motion scenario to be evaluated. The distance the puncture needle needs to move is obtained by moving the needle from its current position to the corresponding electrical limit along the current motion direction included in the motion scenario to be evaluated. The position the motor needs to reach is obtained based on the distance the puncture needle needs to move, the current position of the motor, and the backlash calibration value corresponding to the motion scenario to be evaluated. If the motor does not receive a trigger signal from the corresponding electrical limit when it reaches the position it needs to reach, the backlash calibration value corresponding to the motion scenario to be evaluated is calibrated.
[0232] The various modules in the aforementioned device for controlling the movement of the puncture needle can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in the processor of the computing device in hardware form or independent of it, or stored in the memory of the computing device in software form, so that the processor can call and execute the operations corresponding to each module.
[0233] In one exemplary embodiment, a computing device is provided, the internal structure of which can be as follows: Figure 8 As shown, the computing device includes a processor, memory, input / output (I / O) interfaces, and a communication interface. The processor, memory, and I / O interfaces are connected via a system bus, and the communication interface is also connected to the system bus via the I / O interfaces. The processor provides computational and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system, computer programs, and a database. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The database stores the data involved in the aforementioned methods. The I / O interfaces are used for exchanging information between the processor and external devices. The communication interface is used for communicating with external terminals via a network connection. When the computer program is executed by the processor, it implements a method for controlling the movement of a puncture needle.
[0234] Those skilled in the art will understand that Figure 8 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computing device to which the present application is applied. The specific computing device may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0235] In one embodiment, a computing device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in the various method embodiments described above.
[0236] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the steps in the various method embodiments described above.
[0237] In one embodiment, a computer program product is provided having a computer program stored thereon, the computer program being executed by a processor of the steps described in the various method embodiments above.
[0238] In one embodiment, an electrically powered puncture end-effector system is provided. The system includes a computing device and an electrically powered puncture end-effector. The electrically powered puncture end-effector includes a motor, a transmission mechanism, a clamping mechanism, a puncture needle, and the computing device. The clamping mechanism is used to clamp the puncture needle. When the motor moves, it drives the clamping mechanism to move through the transmission mechanism, thereby moving the puncture needle. The computing device includes a memory and a processor. The memory stores a computer program, and the processor executes the computer program to implement the above method.
[0239] In one embodiment, when the processor executes the computer program, it performs the following steps:
[0240] Based on the target position and current position of the puncture needle, the current direction of movement of the puncture needle is obtained; based on the current direction of movement and the previous direction of movement of the puncture needle, the current motion scenario is obtained; the backlash calibration value corresponding to the current motion scenario is obtained; based on the backlash calibration value, the current position of the motor is compensated and calculated to obtain the target position of the motor; the motor is controlled to move to the target position of the motor so as to drive the puncture needle to the target position of the puncture needle.
[0241] In one embodiment, obtaining the backlash calibration value corresponding to the current motion scene includes:
[0242] Obtain the correspondence between various motion scenarios and corresponding back clearance calibration values; determine the back clearance calibration value corresponding to the current motion scenario based on the correspondence and the current motion scenario.
[0243] In one embodiment, obtaining the correspondence between various motion scenarios and corresponding backlash calibration values includes:
[0244] During the calibration phase, each motion scenario is sequentially taken as the motion scenario to be calibrated. The motor is controlled to move the puncture needle along the previous motion direction included in the motion scenario to be calibrated, and then the motor is controlled to move the puncture needle along the current motion direction included in the motion scenario to be calibrated, so that the puncture needle reaches two positions successively. Based on the two positions reached by the puncture needle, the actual displacement corresponding to the motion scenario to be calibrated is obtained. Based on the rotation of the motor during the movement of the puncture needle to the two positions, the theoretical displacement corresponding to the motion scenario to be calibrated is obtained. Based on the difference between the actual displacement and the theoretical displacement corresponding to the motion scenario to be calibrated, the backlash calibration value corresponding to the motion scenario to be calibrated is determined, so as to obtain the correspondence between the motion scenario to be calibrated and the corresponding backlash calibration value.
[0245] In one embodiment, determining the backlash calibration value corresponding to the motion scenario to be calibrated based on the difference between the actual displacement and the theoretical displacement of the motion scenario to be calibrated includes:
[0246] Based on the difference between the actual displacement and the theoretical displacement of the motion scenario to be calibrated during multiple calibrations, multiple difference values are obtained; the average of the multiple difference values is then calculated to obtain the backlash calibration value corresponding to the motion scenario to be calibrated.
[0247] In one embodiment, when the motion scenario to be calibrated includes an upward motion direction and a downward motion direction, the two positions reached by the puncture needle successively include an upper electrical limit and a lower electrical limit.
[0248] In one embodiment, when the processor executes the computer program, it performs the following steps:
[0249] The position encoder of the electric puncture end effector equipped with the puncture needle and the motor is used to obtain the two positions reached by the motor in the process of moving the puncture needle to two positions in succession; the amount of rotation of the motor is obtained based on the two positions reached by the motor in succession.
[0250] In one embodiment, the target position of the motor is obtained by performing compensation calculations on the current position of the motor based on the backlash calibration value, including:
[0251] Obtain the rotation amount corresponding to the backlash calibration value; based on the rotation amount corresponding to the backlash calibration value and the current position of the motor, obtain the target position of the motor.
[0252] In one embodiment, when the processor executes the computer program, it performs the following steps:
[0253] During the calibration phase, each motion scenario is sequentially selected as the motion scenario to be evaluated. The distance the puncture needle needs to move is obtained by moving the needle from its current position to the corresponding electrical limit along the current motion direction included in the motion scenario to be evaluated. The position the motor needs to reach is obtained based on the distance the puncture needle needs to move, the current position of the motor, and the backlash calibration value corresponding to the motion scenario to be evaluated. If the motor does not receive a trigger signal from the corresponding electrical limit when it reaches the position it needs to reach, the backlash calibration value corresponding to the motion scenario to be evaluated is calibrated.
[0254] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data must comply with relevant regulations.
[0255] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, artificial intelligence (AI) processors, etc., and are not limited to these.
[0256] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.
[0257] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.
Claims
1. A method for controlling the movement of a puncture needle, characterized in that, The method includes: Based on the target position and current position of the puncture needle, the current direction of movement of the puncture needle is obtained; The current motion scenario is obtained based on the current and previous directions of the puncture needle. Obtain the backlash calibration value corresponding to the current motion scenario; Based on the backlash calibration value, the current position of the motor is compensated and the target position of the motor is obtained. Control the motor to move to the target position of the motor so as to drive the puncture needle to the target position of the puncture needle.
2. The method according to claim 1, characterized in that, Obtaining the backlash calibration value corresponding to the current motion scene includes: Obtain the correspondence between various motion scenarios and corresponding backlash calibration values; Based on the correspondence and the current motion scenario, determine the back clearance calibration value corresponding to the current motion scenario.
3. The method according to claim 2, characterized in that, Obtain the correspondence between various motion scenarios and corresponding backlash calibration values, including: During the calibration phase, each motion scenario is taken as the motion scenario to be calibrated in turn. The motor is controlled to move the puncture needle along the previous movement direction included in the movement scenario to be calibrated, and then the motor is controlled to move the puncture needle along the current movement direction included in the movement scenario to be calibrated, so that the puncture needle reaches two positions in succession. Based on the two positions reached by the puncture needle, the actual displacement corresponding to the motion scenario to be calibrated is obtained; Based on the amount of rotation of the motor during the movement of the puncture needle to two positions, the theoretical displacement corresponding to the motion scenario to be calibrated is obtained. Based on the difference between the actual displacement and the theoretical displacement corresponding to the motion scenario to be calibrated, the backlash calibration value corresponding to the motion scenario to be calibrated is determined, so as to obtain the correspondence between the motion scenario to be calibrated and the corresponding backlash calibration value.
4. The method according to claim 3, characterized in that, Based on the difference between the actual displacement and the theoretical displacement corresponding to the motion scenario to be calibrated, the backlash calibration value corresponding to the motion scenario to be calibrated is determined, including: Based on the difference between the actual displacement and the theoretical displacement of the motion scenario to be calibrated during multiple calibrations, multiple difference values are obtained; The backlash calibration value corresponding to the motion scene to be calibrated is obtained by averaging multiple difference values.
5. The method according to claim 3, characterized in that, When the motion scenario to be calibrated includes upward and downward motion directions, the two positions reached by the puncture needle successively include the upper electrical limit and the lower electrical limit.
6. The method according to claim 3, characterized in that, The method further includes: According to the motor position encoder of the electric puncture end effector equipped with the puncture needle and the motor, the two positions reached by the motor in the process of moving the puncture needle to two positions in succession are obtained. The amount of rotation of the motor is obtained based on the two positions the motor reaches in sequence.
7. The method according to claim 1, characterized in that, Based on the backlash calibration value, compensation calculations are performed on the current position of the motor to obtain the target position of the motor, including: Obtain the rotation amount corresponding to the backlash calibration value; The target position of the motor is obtained based on the rotation amount corresponding to the backlash calibration value and the current position of the motor.
8. The method according to claim 1, characterized in that, The method further includes: During the calibration phase, each motion scenario is used as the motion scenario to be evaluated in turn. The distance the puncture needle needs to move is determined by the current direction of movement of the puncture needle along the motion scenario to be evaluated from its current position to the corresponding electrical limit. The required position of the motor is obtained based on the distance the puncture needle needs to move, the current position of the motor, and the backlash calibration value corresponding to the motion scenario to be evaluated. If the motor does not receive a corresponding electrical limit trigger signal when it moves to the position it needs to reach, the backlash calibration value corresponding to the motion scenario to be evaluated is corrected.
9. A computing device, comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the method of any one of claims 1 to 8.
10. An electrically powered puncture end effector system, characterized in that, The system includes a computing device and an electrically powered puncture end effector; The electric puncture end effector includes a motor, a transmission mechanism, a clamping mechanism, a puncture needle, and a computing device; The clamping mechanism is used to clamp the puncture needle; When the motor moves, it drives the clamping mechanism to move through the transmission mechanism, thereby causing the puncture needle to move. The computing device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to implement the method of any one of claims 1 to 8.
