Surgical robot, motor zeroing device and storage medium
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-04-28
- Publication Date
- 2026-08-11
AI Technical Summary
由于操作部的结构限制,电机不能采用传统利用光电开关回零方式进行回零,若采用在电机的输出轴安装单圈绝对值编码器的方案,但单圈绝对值编码器存在过零问题,无法实现电机的准确回零
[0061]本申请实施例中手术机器人通过根据编码器在转动范围内两端的读数,获取过零阈值,根据过零阈值对零位数值及当前数值进行校正,分别得到校正零位数值和校正数值,然后通过校正零位数值和校正值得到电机回零的行程,由于校正之后的零位数值和当前数值能够避免由于编码器在转动范围内过零点而导致的电机无法回零的问题,保证了电机能够准确回零。
Smart Images

Figure CN116999175B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of robotics, and in particular to a surgical robot, a motor homing device, and a storage medium. Background Technology
[0002] Minimally invasive surgery refers to a surgical procedure performed inside the human body using modern medical instruments and equipment such as laparoscopes and thoracoscopes. Compared to traditional surgical methods, minimally invasive surgery has advantages such as less trauma, less pain, and faster recovery.
[0003] With the advancement of technology, minimally invasive surgical robot technology has gradually matured and is widely used. Surgical robots typically include a master control panel and slave control devices. The master control panel has a display and control unit, while the slave control devices have multiple operating arms. One of these operating arms is used to acquire images of the surgical area and display them on the display, while the remaining operating arms are used to perform surgical operations.
[0004] In the master-slave control mode, the operating unit sends control commands, which are received and executed by the controlled operating arm. The joints of the operating unit rotate via motors using incremental encoders. When the surgical robot is powered on again, the motors need to return to the zero position before subsequent motor position calculations can be performed. Due to structural limitations of the operating unit, the motors cannot use the traditional photoelectric switch method for zero-crossing. While installing a single-turn absolute encoder on the motor's output shaft is an option, single-turn absolute encoders suffer from zero-crossing issues, making accurate zero-crossing impossible. Summary of the Invention
[0005] The main objective of this application is to provide a surgical robot capable of accurately returning the motor to zero. This application also protects a motor zero-return device and a storage medium.
[0006] In a first aspect, embodiments of this application provide a surgical robot. The surgical robot includes:
[0007] An operating unit, the operating unit including at least one joint assembly, the joint assembly including a drive mechanism, the drive mechanism including a motor and an encoder, the encoder being coupled to the output shaft of the motor, the output shaft of the motor having a rotation range, and the encoder being a single-turn absolute encoder;
[0008] The control device, coupled to the drive mechanism, is configured to perform the following steps:
[0009] The zero-crossing threshold is obtained based on the encoder readings at both ends of the rotation range;
[0010] In response to the determination of the encoder zero position, the zero position value of the encoder is read;
[0011] The zero-bit value is corrected according to the zero-crossing threshold to obtain the corrected zero-bit value;
[0012] In response to the encoder being powered on again, the current value of the encoder is read;
[0013] The current value is corrected based on the zero-crossing threshold to obtain a corrected value;
[0014] The motor's return-to-zero stroke is obtained based on the correction value and the correction zero-position value;
[0015] Drive the motor to rotate and return the stroke to zero.
[0016] In one possible implementation, the control device is configured to, in the step of obtaining the zero-crossing threshold based on the encoder readings at both ends of the rotation range, perform:
[0017] Obtain the readings of the encoder at both ends of the rotation range;
[0018] The zero-crossing state of the encoder when it rotates within the rotation range is determined based on the reading.
[0019] The zero-crossing threshold is obtained by combining the zero-crossing state and the reading.
[0020] In one possible implementation, the control device is configured to perform the following step in determining the zero-crossing state of the encoder during rotation within the rotation range based on the reading:
[0021] Two readings of the encoder are obtained at both ends of the rotation range. If one of the two readings is less than zero, or if one of the two readings is greater than the value obtained by the resolution of the encoder, then the encoder passes through the zero point within the rotation range. If the reading is greater than or equal to zero and less than the value obtained by the resolution of the encoder, then the encoder does not pass through the zero point within the rotation range.
[0022] In one possible implementation, the readings at both ends of the encoder's rotation range include a first value and a second value;
[0023] The step of correcting the zero-bit value according to the zero-crossing threshold includes:
[0024] If the zero-crossing threshold is any value between the first value and the second value, then the zero-position value is compared with the zero-crossing threshold, and the zero-position value is corrected according to the comparison result.
[0025] The step of correcting the current value according to the zero-crossing threshold includes:
[0026] If the zero-crossing threshold is any value between the first value and the second value, then the current value is compared with the zero-crossing threshold, and the current value is corrected according to the comparison result.
[0027] In one possible implementation, the control device is configured to, in the step of comparing the zero-point value with the zero-crossing threshold and correcting the zero-point value based on the comparison result, perform:
[0028] If the first value is less than the second value, the zero-crossing threshold is the first value, and the zero-position value is greater than the zero-crossing threshold, then the corrected zero-position value is configured as the value obtained by subtracting the encoder resolution from the zero-position value; if the zero-position value is less than or equal to the zero-crossing threshold, then the corrected zero-position value is configured as the zero-position value.
[0029] In one possible implementation, the control device is configured to, in the step of comparing the zero-point value with the zero-crossing threshold and correcting the zero-point value based on the comparison result, perform:
[0030] If the first value is less than the second value, the zero-crossing threshold is the second value, and the zero-position value is greater than or equal to the zero-crossing threshold, then the corrected zero-position value is configured as the value obtained by subtracting the encoder resolution from the zero-position value; if the zero-position value is less than the zero-crossing threshold, then the corrected zero-position value is configured as the zero-position value.
[0031] In one possible implementation, the control device is configured to, in the step of comparing the zero-point value with the zero-crossing threshold and correcting the zero-point value based on the comparison result, perform:
[0032] If the first value is less than the second value, the zero-crossing threshold is greater than the first value and less than the second value, and the zero-position value is greater than the zero-crossing threshold, then the corrected zero-position value is configured as the value obtained by subtracting the encoder resolution from the zero-position value; if the zero-position value is less than the zero-crossing threshold, then the corrected zero-position value is configured as the zero-position value.
[0033] In one possible implementation, the control device is configured to, in the step of comparing the zero-point value with the zero-crossing threshold and correcting the zero-point value based on the comparison result, perform:
[0034] If the current value is greater than the zero-crossing threshold, the correction value is configured as the value obtained by subtracting the encoder's resolution from the current value; if the current value is less than the zero-crossing threshold, the correction value is configured as the current value.
[0035] In one possible implementation, the control device is configured to, in the step of comparing the zero-point value with the zero-crossing threshold and correcting the zero-point value based on the comparison result, perform:
[0036] If the first value is less than the second value, the zero-crossing threshold is greater than the first value and less than the second value, and the zero-position value is greater than the zero-crossing threshold, then the corrected zero-position value is configured as the zero-position value; if the zero-position value is less than the zero-crossing threshold, then the corrected zero-position value is configured as the value obtained by adding the zero-position value to the encoder resolution.
[0037] In one possible implementation, the readings at both ends of the encoder's rotation range include a first value and a second value; the correction of the zero-position value based on the zero-crossing threshold includes:
[0038] If the zero-crossing threshold is less than the first value or greater than the second value, then the corrected zero value is configured as the zero value;
[0039] The step of correcting the current value according to the zero-crossing threshold includes:
[0040] If the zero-crossing threshold is less than the first value or greater than the second value, then the correction value is configured to the current value.
[0041] In one possible implementation, the control device is configured to perform the following before or after the step of obtaining the zero-crossing threshold as a zero-crossing threshold:
[0042] Obtain the positive values of a single revolution of the encoder readings at both ends of the rotation range.
[0043] In one possible implementation, the control device is configured to, in the step of acquiring the positive single-turn values of the encoder readings at both ends of the rotation range, perform:
[0044] Two readings of the encoder at both ends of the rotation range are obtained. If the reading is less than zero, the positive value of a single revolution of the reading is configured as the value obtained by adding the resolution of the encoder to the reading. If the reading is greater than the value obtained by the resolution of the encoder, the positive value of a single revolution of the reading is configured as the value obtained by subtracting the resolution of the encoder from the reading. If the reading is greater than or equal to zero and less than the value obtained by the resolution of the encoder, the positive value of a single revolution of the reading is configured as the reading.
[0045] In one possible implementation, the control device is configured to, in the step of obtaining the travel, perform:
[0046] The angle difference is obtained based on the correction value and the correction zero value;
[0047] The travel distance is obtained based on the angle difference.
[0048] Secondly, embodiments of this application also provide a method for motor zeroing. The method for motor zeroing is applied to an operating unit in a robot, the operating unit including at least one joint assembly, the joint assembly including a drive mechanism, the drive mechanism including a motor and an encoder, the encoder being coupled to the output shaft of the motor, the output shaft of the motor having a rotation range, and the encoder being a single-turn absolute encoder; the method includes:
[0049] The zero-crossing threshold is obtained based on the encoder readings at both ends of the rotation range;
[0050] In response to the determination of the encoder zero position, the zero position value of the encoder is read;
[0051] The zero-bit value is corrected according to the zero-crossing threshold to obtain the corrected zero-bit value;
[0052] In response to the encoder being powered on again, the current value of the encoder is read;
[0053] The current value is corrected based on the zero-crossing threshold to obtain a corrected value;
[0054] The motor's return-to-zero stroke is obtained based on the correction value and the correction zero-position value;
[0055] Drive the motor to rotate and return the stroke to zero.
[0056] Thirdly, embodiments of this application also provide a motor zero-return device. The motor zero-return device includes:
[0057] Memory, used to store computer programs;
[0058] and a processor for loading and executing the computer program;
[0059] The computer program is configured to be loaded and executed by the processor to implement the above-described method for returning the motor to zero.
[0060] Fourthly, embodiments of this application also provide a computer-readable storage medium. The computer-readable storage medium stores a computer program configured to be loaded by a processor and executed to implement the above-described method for returning the motor to zero.
[0061] In this embodiment, the surgical robot obtains the zero-crossing threshold based on the encoder readings at both ends of the rotation range. It then corrects the zero-point value and the current value based on the zero-crossing threshold to obtain the corrected zero-point value and the corrected value. Finally, it obtains the motor's return-to-zero stroke based on the corrected zero-point value and the corrected value. Since the corrected zero-point value and the current value can avoid the problem of the motor being unable to return to zero due to the encoder crossing the zero point within the rotation range, it ensures that the motor can accurately return to zero. Attached Figure Description
[0062] Figure 1 The slave operating device of the surgical robot provided in the embodiments of this application;
[0063] Figure 2 The main operating table of the surgical robot provided for the implementation of this application;
[0064] Figure 3A for Figure 2 A partial structural diagram of the operating section of the main control panel is shown.
[0065] Figure 3B for Figure 2 A schematic diagram of the drive mechanism in the operating unit is shown;
[0066] Figure 3C for Figure 2 A schematic diagram of the operation unit in other locations;
[0067] Figure 4 This is a simplified schematic diagram of the encoder in this embodiment;
[0068] Figure 5 This is another simplified schematic diagram of the encoder in this embodiment;
[0069] Figure 6 A flowchart illustrating a method for returning a motor to zero;
[0070] Figure 7 A flowchart illustrating the method for determining the encoder's rotation within its rotation range, provided for this embodiment;
[0071] Figure 8 A flowchart illustrating the method for determining the positive value of a single lap reading provided for this embodiment;
[0072] Figure 9 This is another schematic diagram of the encoder in this embodiment;
[0073] Figure 10 A flowchart illustrating a method for correcting zero-position values provided for this embodiment;
[0074] Figure 11 for Figure 10A schematic diagram of an encoder for the method shown;
[0075] Figure 12 for Figure 10 A schematic diagram of another encoder for the method shown;
[0076] Figure 13 A flowchart illustrating a method for correcting the current value provided in this embodiment;
[0077] Figure 14 for Figure 13 A schematic diagram of an encoder for the method shown;
[0078] Figure 15 for Figure 6 A schematic diagram of an encoder for the method shown;
[0079] Figure 16 A flowchart illustrating another method for correcting zero-point values provided for this embodiment;
[0080] Figure 17 A flowchart illustrating another method for correcting the current value provided in this implementation.
[0081] Figure 18 for Figure 16 A schematic diagram of an encoder for the method shown;
[0082] Figure 19 for Figure 16 A schematic diagram of another encoder for the method shown;
[0083] Figure 20 for Figure 17 A schematic diagram of an encoder for the method shown;
[0084] Figure 21 A flowchart illustrating another method for correcting zero-point values provided for this embodiment;
[0085] Figure 22 A flowchart illustrating another method for correcting the current value provided for this implementation;
[0086] Figure 23 for Figure 22 A schematic diagram of an encoder for the method shown;
[0087] Figure 24 A flowchart illustrating another method for correcting zero-point values provided for this embodiment;
[0088] Figure 25 A flowchart illustrating another method for correcting the current value provided for this implementation;
[0089] Figure 26 for Figure 25A schematic diagram of an encoder for the method shown;
[0090] Figure 27 This is a schematic diagram of the motor zero-return device. Detailed Implementation
[0091] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of the present invention.
[0092] It should be noted that all directional indicators (such as up, down, left, right, front, back, clockwise, counterclockwise, etc.) in the embodiments of the present invention are only used to explain the relative positional relationship and movement of each component in a certain specific posture (as shown in the figure). If the specific posture changes, the directional indicator will also change accordingly.
[0093] In this invention, unless otherwise explicitly specified and limited, the terms "connection," "fixed," etc., should be interpreted broadly. For example, "fixed" can mean a fixed connection, a detachable connection, or an integral part; it can mean a mechanical connection or an electrical connection; it can mean a direct connection or an indirect connection through an intermediate medium; it can mean the internal communication of two components or the interaction between two components, unless otherwise explicitly limited. Those skilled in the art can understand the specific meaning of the above terms in this invention according to the specific circumstances.
[0094] The terms “distal” and “proximal” used in this article are directional terms commonly used in the field of interventional medical devices. “Distal” refers to the end that is farthest from the operator during the procedure, while “proximal” refers to the end that is closest to the operator during the procedure.
[0095] Furthermore, in this invention, descriptions involving "first," "second," etc., are for descriptive purposes only and should not be construed as indicating or implying their relative importance or implicitly specifying the number of technical features indicated. Therefore, a feature defined with "first" or "second" may explicitly or implicitly include at least one of that feature.
[0096] Please see Figure 1 and Figure 2 , Figure 1 This is a slave operating device for the surgical robot provided in the embodiments of this application. Figure 2 The main operating console of the surgical robot provided for the implementation of this application.
[0097] The surgical robot may include a master control console 100 and a slave operating device 200 that are communicatively connected. The master control console 100 sends control commands to the slave operating device 200 based on the surgeon's instructions, thereby controlling the slave operating device 200. The slave operating device 200 responds to the control commands sent by the master control console 100 and performs corresponding surgical operations. Alternatively, in other embodiments, the master control console and the slave operating device may be integrated into a single unit.
[0098] The master control panel 100 and the slave control device 200 can be placed in the same operating room, in different rooms, or even far apart. For example, the master control panel 100 and the slave control device 200 can be located in different cities. Data transmission between the master control panel 100 and the slave control device 200 can be wired or wireless. For instance, if the master control panel 100 and the slave control device 200 are in the same operating room, they can transmit data via a wired connection; conversely, if the master control panel 100 and the slave control device 200 are in different cities, they can transmit data over long distances via wireless signals.
[0099] The main control panel 100 has an operation unit 10 and a display. The doctor sends control commands to the slave operation device 200 through the operation unit 10, so that the slave operation device 200 performs corresponding operations according to the control commands of the doctor operating the operation unit 10, and observes the surgical area through the display.
[0100] Please see Figure 3A , Figure 3A for Figure 2 A partial structural diagram of the operation section 10 of the main control panel is shown.
[0101] The operating unit 10 may include multiple joint assemblies 11, enabling free movement and rotation, providing the doctor with a large operating space. The multiple joint assemblies 11 are connected by linkages. Each joint assembly 11 includes a drive mechanism. It is understood that each joint assembly 11 of the operating unit 10 includes a drive mechanism, and the drive mechanism of each joint assembly 11 includes a motor, an encoder, and an incremental encoder. The output shaft of each motor in each joint assembly 11 has a specific rotation range, i.e., a rotation angle, such as 60 degrees, 100 degrees, 120 degrees, 135 degrees, 270 degrees, 350 degrees, etc. It is understood that by limiting the specific rotation range of the output shaft of each motor, the operating unit 10 is ensured to rotate only within the desired range and not outside the desired range. The specific rotation range of the output shaft of each motor constitutes the operating degrees of freedom of the operating unit 10. The number of joint assemblies may also be at least one.
[0102] The following description focuses on the drive mechanism of one of the joint components 11.
[0103] Please see Figure 3B , Figure 3B for Figure 2 The diagram shows the structure of the drive mechanism in the operating unit. Wherein, Figure 3B The drive mechanism in is Figure 2 The drive mechanism is located at the top center.
[0104] The drive mechanism 1 includes a motor 2, an encoder 3, and an incremental encoder 3. The encoder 3 is coupled to the output shaft of the motor 2, and is a single-turn absolute encoder. Because the encoder 3 is coupled to the output shaft of the motor 2, the rotation range of the motor 2's output shaft is also the rotation range of the encoder 3. The incremental encoder is located inside the motor 2 to record the motor 2's rotation information, such as the rotational speed and position of the motor 2's output shaft. Of course, in other embodiments, the incremental encoder 3 can also be located outside the motor 2.
[0105] In this embodiment, motor 2 is fixed to one end of the first connecting rod. The output shaft of motor 2 is rotatably connected to rotating member 5 via transmission member 4. Rotating member 5 is fixedly connected to one end of the second connecting rod. The rotation of motor 2 drives transmission member 4 to rotate, and transmission member 4 drives rotating member 5 to rotate, so that the second connecting rod is connected relative to the first connecting rod. Encoder 3 is connected to rotating member 5. That is, in this embodiment, encoder 3 is coupled to the output shaft of motor 2 via rotating member 5 and transmission member 4. Of course, in other embodiments, encoder 3 can also be connected to the output shaft of motor 2 via transmission member 4 or directly.
[0106] It should be noted that since motor 2 uses an incremental encoder to record its rotation information, when motor 2 is powered off and then powered on again, its output shaft needs to return to the zero position (i.e., return to zero) in order to facilitate the recording of subsequent rotation information. The zero position refers to the initial position of the motor 2's output shaft, which can also be understood as the initial position of the single-turn absolute encoder 3. This initial position can be any position within the rotation range of the motor 2's output shaft; it is a manually defined position. When the motor 2's output shaft moves relative to its initial position to another position, it indicates how many degrees the output shaft has moved relative to its initial position. Figure 3A and Figure 3B This refers to the state of the motor and its operating unit when motor 2 is in its initial position. Figure 3C The image shows the state of the operating unit when the motor is in other positions.
[0107] Due to the structure and transmission method of the operating unit 10, the motor 2 cannot use a photoelectric switch to return to zero via transmission. Therefore, a single-turn absolute encoder 3 is coupled to the corresponding output shaft of the motor 2 to assist the output shaft of the motor 2 in returning to zero. Of course, in other embodiments, when the structure and transmission method of the operating unit 10 are not limited, the single-turn absolute encoder 3 can also be used to assist the output shaft of the motor 2 in returning to the zero position.
[0108] Understandably, the single-turn absolute encoder 3 has a zero-point crossing issue during rotation. This zero-point crossing occurs when the output shaft of motor 2 crosses zero during its rotational range, leading to inaccurate readings from the single-turn absolute encoder 3. Because of this inaccurate reading, the encoder 3 will also be inaccurate when the output shaft of motor 2 is at zero, preventing the output shaft of motor 2 from returning to zero.
[0109] Among them, the zero point in the zero point passed by the single-turn absolute encoder 3 when it rotates refers to the point where the code disk scale of the single-turn absolute encoder 3 is zero.
[0110] Please see Figure 4 , Figure 4 This is a simplified schematic diagram of the encoder 3 in this embodiment. The encoder 3 includes a code disk 31 and a detection element 32. The output shaft of the motor 2 drives the code disk 31 to rotate via a rotating component, while the detection element 32 remains stationary. The code disk 31 includes multiple channels of etched lines to encode the positions on the code disk 31. Thus, when a certain position on the code disk 31 moves to be opposite the detection element 32, the detection element 32 reads the corresponding position reading (i.e., the code corresponding to that position) based on the multiple channels of etched lines at that position.
[0111] For example, to make it easier to understand, Figure 4 The multiple channels of the code disk 31 are represented by graduations. The values on the code disk 31 are to indicate the code corresponding to that graduation and do not actually exist on the code disk 31; they are only marked on the diagram for ease of understanding. The numbers above the detector 32 are the position readings taken by the detector 32. The solid arrows in the diagram represent the rotation direction of the code disk 31, and the dashed arrows represent the position of the graduations from the beginning to the end during the rotation of the code disk 31.
[0112] In this embodiment, the encoder 3 has a resolution of 4096, and the corresponding scale range of the code disk 31 within the movement range of the motor 2 is 4000 to 904 (inclusive), that is, 4000 to 0, 0 to 904. Figure 4 Let's take the range shown in A as an example for explanation.
[0113] like Figure 4When the drive mechanism 1 is powered on, the output shaft of the motor 2 corresponds to the position of scale 100 on the code disk 31 of the encoder 3. At this moment, the reading of the detection element 32 is 100, that is, the reading of the encoder 3 is 100. When the code disk 31 rotates clockwise, the detection element 32 detects that the code disk 31 passes through scale 0 (i.e., zero point) during the rotation and continues to rotate to the position of scale 4000 on the code disk 31. That is, in the area corresponding to the detection element 32, the code disk 31 moves from scale 100 through scale 0 to scale 4000. Since the code disk 31 passed through scale 0 during rotation, the position that the detection element 32 continues to detect is the position to the left of scale 0, and the reading of the encoder 3 will become negative. Therefore, when the detection element 32 detects that the code disk 31 stops at the position of scale 4000, the reading of the encoder 3 is -96. When the power is turned off and then on again, the position of the code disk 31 remains unchanged. However, since the code disk 31 has not rotated past the 0 mark, the encoder 3 will read 4000 instead of a negative number.
[0114] Please see Figure 5 When the drive mechanism 1 is powered on, the output shaft of the motor 2 corresponds to the position of the encoder 3's code disk 31 at scale 4000. At this moment, the reading of the detection element 32 is 4000, that is, the reading of the encoder 3 is 4000. When the detection element 32 rotates the code disk 31 counterclockwise, the detection element 32 detects that the code disk 31 passes scale 0 during the rotation and continues to rotate to the position of scale 100 on the code disk 31. That is, in the area corresponding to the detection element 32, the code disk 31 moves from scale 4000 through scale 0 to scale 100. Figure 5 (Dashed arrow). Since the code disk 31 passes through scale 0 during rotation, the detection element 32 continues to detect the position to the right of scale 0. The encoder 3 reading will then become the current scale number of the code disk 31 plus the value corresponding to the encoder 3's resolution. Therefore, when the detection element 32 detects that the code disk 31 stops at scale 100, the encoder 3 reading is 100 + 4096 = 4196. After power is turned off and then on again, the position of the code disk 31 remains unchanged, but since the code disk 31 has not rotated past scale 0, the reading will be 100 instead of 4196.
[0115] Therefore, if the encoder 3 reading of 4196 is determined to be the zero position of motor 2 before the power is cut off, that is, the zero position of the output shaft of motor 2, and the reading of that position is 100 after the power is turned on again, no matter how motor 2 moves within its range of motion, it will be unable to find the value of 4196, which will cause motor 2 to be unable to return to zero, that is, the output shaft of motor 2 will be unable to return to zero, or the limiting structure that restricts the rotation range of motor 2 will be damaged.
[0116] Therefore, the surgical robot of this application also includes a control device, which is configured to be coupled to components such as the drive mechanism 1 to receive, process, and send relevant instructions to solve the problem of the single-turn absolute encoder 3 passing through the zero point during rotation. The control device can be integrated into the main control panel 100 or the slave control device 200; alternatively, the control device can be set up independently of the main control panel 100 and the slave control device 200, and can be deployed locally or in the cloud. The control device can consist of one, two, or more controllers.
[0117] It should be noted that the control device is coupled to each drive mechanism 1 of the operation unit 10, which can solve the problem of the single-turn absolute encoder 3 of each drive mechanism 1 passing through the zero point when rotating, so that the output shaft of each motor 2 accurately returns to the zero position. The following explanation takes the solution of the control device to the problem of one of the single-turn absolute encoders 3 passing through the zero point when rotating, so that the output shaft of the corresponding motor 2 accurately returns to the zero position as an example.
[0118] Please see Figure 6 , Figure 6 This is a flowchart illustrating a method for returning a motor to zero using two actuators, executed by a control device. It is understood that this method is also applicable to the zeroing of motors in other robots besides surgical robots, such as robotic arms, instruments, and chassis.
[0119] The method for returning motor 2 to zero includes the following steps:
[0120] S110: Obtain the zero-crossing threshold based on the readings of encoder 3 at both ends of the rotation range.
[0121] In some implementations, step S110 includes:
[0122] S111: Obtain the readings of encoder 3 at both ends of its rotation range.
[0123] The rotation range is the rotation range of the output shaft of motor 2, which is also the rotation range of the encoder. For example... Figure 7 The method for obtaining the readings of encoder 3 at both ends of the rotation range includes: obtaining two readings of encoder 3 at both ends of the rotation range, the two readings being the first reading and the second reading, respectively.
[0124] S112: Determine the zero-crossing state of the encoder when it rotates within the rotation range based on the reading.
[0125] In some implementations, the zero-crossing state includes passing through the zero point and not passing through the zero point. The method for determining the zero-crossing state is as follows: if one of the two readings (the first reading and the second reading) is less than zero, or if one of the two readings is greater than the value obtained by the resolution of the encoder 3, then the encoder 3 passes through the zero point within its rotational range. If the reading (the first reading and the second reading) is greater than or equal to zero and less than the value obtained by the resolution of the encoder 3, then the encoder 3 does not pass through the zero point within its rotational range.
[0126] Of course, in other embodiments, determining whether the encoder 3 passes through or does not pass through the zero point within its rotation range is not limited to the method described above. Other methods can also be used to determine whether the encoder 3 passes through the zero point within its rotation range, as long as it ensures that it can be determined whether the encoder 3 passes through the zero point within its rotation range. For example, the sum of the first and second readings can be compared with the largest value. If the sum is less than the maximum value, or if the resolution of the encoder 3 is subtracted from the first and second readings to obtain a determination value, and if either determination value is greater than zero, then the encoder 3 passes through the zero point within its rotation range. Otherwise, the encoder 3 does not pass through the zero point within its rotation range.
[0127] It should be noted that the first and second readings can be obtained by manually moving the output shaft of motor 2 to one end of its range of motion, acquiring the encoder 3 reading, and then manually moving the output shaft of motor 2 to the other end of its range of motion to acquire the encoder 3 reading, thus obtaining two readings of encoder 3 at both ends of its rotation range. It is understood that obtaining the first and second readings involves the operator manually moving the output shaft of motor 2. When the operator finds that the output shaft cannot be moved further to one end of its range of motion, they will not apply any more force to the output shaft, thus avoiding damage to the limiting component restricting the range of motion of the motor 2's output shaft.
[0128] The first and second readings can also be obtained by controlling the output shaft of motor 2 to move to one end of its range of motion using a control device to acquire the encoder 3 reading, and then controlling the output shaft of motor 2 to move to the other end of its range of motion to acquire the encoder 3 reading, thus obtaining two readings of encoder 3 at both ends of its rotation range. It is understandable that obtaining the first and second readings by controlling the output shaft of motor 2 using a control device eliminates the need for operator intervention, improving the user experience. Furthermore, controlling the output shaft of motor 2 using a control device provides higher precision, resulting in more accurate first and second readings.
[0129] S113: Combine the zero-crossing state and reading to obtain the zero-crossing threshold.
[0130] In some implementations, the method for obtaining the zero-crossing threshold by combining the zero-crossing state and the reading is as follows:
[0131] The encoder readings at both ends of the rotation range include a first value and a second value. The first value and the second value are the positive values of the first reading and the second reading per revolution, respectively. Since the encoder 3 passes through the zero point when rotating within the rotation range, the zero-crossing threshold of the encoder 3 is any value between the first value and the second value (including the first value and the second value). Since the encoder 3 does not pass through the zero point when rotating within the rotation range, the zero-crossing threshold of the encoder 3 is determined to be less than the first value or greater than the second value, wherein the first value is less than the second value.
[0132] If the zero-crossing threshold is any value between the first value and the second value. In some embodiments, the method for obtaining the zero-crossing threshold includes obtaining the positive values of a single revolution of the encoder 3 at both ends of the rotation range (the first value and the second value), and determining the zero-crossing threshold based on the two positive values of the single revolution.
[0133] In some embodiments, the positive values of the single-turn readings of the encoder 3 at both ends of the rotation range can be obtained by: acquiring the readings of the encoder 3 at both ends of the rotation range, namely the first reading and the second reading; converting the first reading into a positive value per turn to obtain the first value; and converting the second reading into a positive value per turn to obtain the second value.
[0134] like Figure 8 Methods for converting the first and second readings into positive single-lap values include:
[0135] If the first reading (or the second reading) is less than zero, the positive value of the first reading (or the second reading) per revolution is configured as the value obtained by adding the resolution of the encoder 3 to the first reading (or the second reading).
[0136] If the first reading (or the second reading) is greater than the value obtained by the resolution of encoder 3, then the positive value of the first reading (or the second reading) per revolution is configured as the first reading (or the second reading) minus the value obtained by the resolution of encoder 3.
[0137] If the first reading (or the second reading) is greater than or equal to zero and less than the value obtained by the resolution of encoder 3, then the positive value of a single turn of the first reading (or the second reading) is configured as the first reading (or the second reading).
[0138] For example, such as Figure 9When motor 2 is powered on, the detection element 32 detects that the code disk 31 is located to the right of scale 0. When the code disk 31 is rotated counterclockwise until it can no longer rotate, the first reading is obtained. The first reading is 904. Then, when the code disk 31 is rotated clockwise until it can no longer rotate, the second reading is obtained. The second reading is -96. Since the first reading is greater than or equal to 0 and less than the value obtained by the resolution of encoder 3, the positive value of the first reading per revolution is configured as 904. Since the second reading is less than 0, the positive value of the second reading per revolution is configured as -96 + 4096, that is, the positive value of the second reading per revolution is configured as 4000.
[0139] The positive values of the first and second readings per revolution are obtained using the method described above; that is, the first value and the second value. In other words, the positive values of the single revolution of the encoder 3 at both ends of its rotation range include the first value and the second value.
[0140] In this embodiment, the zero-crossing threshold is greater than a first value and less than a second value, wherein the first value is less than the second value. It should be noted that the zero-crossing threshold can be an integer or a non-integer, as long as it is any value between the first and second values (excluding the first and second values). Of course, in other embodiments, the zero-crossing threshold can also be either the first or the second value.
[0141] It should be noted that obtaining the single-turn positive value of the encoder 3 at both ends of the rotation range can also be performed in step S111.
[0142] If encoder 3 rotates within its rotation range without passing through the zero point, then the zero-crossing threshold is obtained as either less than a first value or greater than a second value, where the first value is less than the second value. The zero-crossing threshold can be, for example, 0, or it can be a letter or a special symbol.
[0143] Of course, in other embodiments, S110 may also be used to obtain a zero-crossing threshold based on whether the encoder passes through or does not pass through the zero point when rotating within the rotation range. If the encoder passes through the zero point when rotating within the rotation range, the zero-crossing threshold is any value between a first value and a second value (inclusive). If the encoder does not pass through the zero point when rotating within the rotation range, the zero-crossing threshold is less than the first value or greater than the second value, wherein the first value is less than the second value.
[0144] S120: In response to the determination of the encoder zero position, read the zero position value of encoder 3.
[0145] In some implementations, before determining the encoder zero position, the operator moves the output shaft of motor 2 to its initial position and then fixes the encoder 3 at the zero position. For example, the encoder 3 can be fixed at the zero position using a limiting structure such as a pin. Then, the operator clicks the input interface of the surgical robot to read the encoder's zero position value. The control device reads the encoder's zero position value in response to the click information on the input interface; this click information is the determination of the encoder's zero position.
[0146] It should be noted that the zero position of encoder 3 is also the zero position of the output shaft of motor 2, that is, the initial position of the output shaft of motor 2. The initial positions of all the output shafts of motor 2 in the operation unit 10 constitute the initial position of the operation unit 10. After obtaining the zero position value when encoder 3 is in the zero position, encoder 3 can be released from the zero position so that the output shaft of motor 2 can rotate freely within the rotation range.
[0147] In this embodiment, step S110 is performed before step S120, that is, the zero-crossing threshold of encoder 3 is obtained first, and then the reading of encoder 3 when encoder 3 is at zero position is obtained. Of course, in other embodiments, step S120 can also be performed before step S110, that is, the reading of encoder 3 when encoder 3 is at zero position is obtained first, and then the zero-crossing threshold of encoder 3 is obtained.
[0148] S130: Correct the zero-point value according to the zero-crossing threshold to obtain the corrected zero-point value.
[0149] In some implementations, if the zero-crossing threshold is any value between the first value and the second value (including the first value and the second value), then the zero value is compared with the zero-crossing threshold, and the zero value is corrected according to the comparison result.
[0150] The method of comparing the zero-crossing value with the zero-crossing threshold varies depending on the value of the zero-crossing threshold. In this embodiment, the zero-crossing threshold is any value between the first value and the second value (excluding the first and second values), that is, the zero-crossing threshold is greater than the first value and less than the second value, where the first value is less than the second value. Figure 10 The zero-position value is compared with the zero-crossing threshold, and the zero-position value is corrected according to the comparison result. The specific steps to obtain the corrected zero-position value are as follows: if the zero-position value is greater than the zero-crossing threshold, that is, the zero-position value is greater than any value between the first value and the second value, then the corrected zero-position value is configured as the value obtained by subtracting the resolution of encoder 3 from the zero-position value; if the zero-position value is less than the zero-crossing threshold, that is, the zero-position value is less than any value between the first value and the second value, then the corrected zero-position value is configured as the zero-position value.
[0151] For example, such as Figure 11The first value is 904, and the second value is 4000. The zero-crossing threshold is any value between the first and second values (excluding the first and second values), such as 904.5, 905, 2000, (4000-904) / 2 = 2452, 3999, 3999.8, etc. For ease of reference, we will use the average of the first and second values, 2452, as an example. When the motor 2 is powered on, the detection element 32 detects that the code disk 31 is located to the left of scale 0. The code disk 31 rotates counterclockwise to the zero position and is fixed in this position. The reading of the encoder 3 at the zero position is 4496, that is, the zero position value is 4496. The zero position value 4496 is greater than the zero-crossing threshold 2452, so the zero position correction value = 4496 - 4096, that is, the zero position correction value is configured as 400.
[0152] like Figure 12 When motor 2 is powered on, the detection element 32 detects that the code disk 31 is located to the right of scale 0. The code disk 31 rotates clockwise to the zero position and is fixed in this position. The reading of encoder 3 at the zero position is 400, that is, the zero position value is 400. Since the zero position value 400 is less than the zero-crossing threshold 2452, the zero position value is configured to 400.
[0153] Therefore, in this embodiment, the zero-position value is compared with the zero-crossing threshold, and the zero-position value is corrected according to the comparison result to obtain the corrected zero-position value. Regardless of whether the encoder 31 is detected to be on the left or right of scale 0 when the motor 2 is powered on, the corrected zero-position value is the same. The corrected zero-position value will not be different due to different power-on positions, ensuring that the motor 2 can accurately return to zero in subsequent steps.
[0154] If the zero-crossing threshold is less than the first value or greater than the second value, where the first value is less than the second value, then the zero-crossing value will be configured as the zero-crossing value.
[0155] S140: In response to encoder 3 being powered on again, read the current value of encoder 3.
[0156] In some implementations, when encoder 3 is re-energized, the output shaft of motor 2 is also re-energized. Each time motor 2's output shaft is re-energized, it needs to return to its initial position (i.e., motor 2 returns to zero) to facilitate subsequent calculation of the motor 2's output shaft rotation information. When the control device receives information that encoder 3 has been re-energized, it reads the current value of encoder 3 in response to this information.
[0157] It should be noted that reading the current value of encoder 3 in response to encoder 3 being powered on again means that the current value of encoder 3 needs to be read every time encoder 3 is powered off and then powered on again, so as to enable motor 2 to return to zero in the subsequent steps.
[0158] S150: Correct the current value based on the zero-crossing threshold to obtain the corrected value.
[0159] In some implementations, if the zero-crossing threshold is any value between the first value and the second value (excluding the first value and the second value), then the current value is compared with the zero-crossing threshold, and the current value is corrected according to the comparison result.
[0160] like Figure 13 In this embodiment, the current value is compared with the zero-crossing threshold, and the current value is corrected according to the comparison result. Specifically, if the current value is greater than the zero-crossing threshold, that is, the current value is greater than any value between the first value and the second value, the correction value is configured as the value obtained by subtracting the resolution of encoder 3 from the current value; if the current value is less than the zero-crossing threshold, that is, the current value is less than any value between the first value and the second value, the correction value is configured as the current value.
[0161] For example, such as Figure 14 When motor 2 is powered on, for example, the encoder 3 reads 4060, meaning the current value is 4060 and the zero-crossing threshold is 2452. Since the current value 4060 is greater than the zero-crossing threshold 2452, the correction value is configured as 4060-4096, which is equivalent to configuring the correction value as -36.
[0162] If the zero-crossing threshold is less than the first value or greater than the second value, where the first value is less than the second value, then the correction value will be configured to the current value.
[0163] S160: Obtain the motor's second return stroke based on the correction value and the correction zero position value.
[0164] In some implementations, the method for obtaining the stroke of motor 2 returning to zero includes: first obtaining the angle difference based on the correction value and the correction zero position value, and then obtaining the stroke based on the angle difference.
[0165] For example, the angle difference can be obtained using Formula 1, Formula 1:
[0166] Angle difference = (correction value - correction zero value) * 360 / value obtained from encoder 3 resolution.
[0167] For example, such as Figure 15 , angle difference=(-36-400)*360 / 4096=-38.32 degrees.
[0168] The travel distance can be obtained using Formula 2, Formula 2:
[0169] Stroke = Current angle of motor 2 - Angle difference.
[0170] It should be noted that the current angle value of motor 2 is obtained through the incremental encoder inside motor 2.
[0171] S170: Drive motor 2 rotates back to zero.
[0172] In some embodiments, after the control device obtains the stroke, it drives motor 2 to rotate that stroke until motor 2 reaches the zero position, completing the return to zero. In this embodiment, after motor 2 completes the return to zero, the control device drives motor 2 to reciprocate to test whether motor 2 moves normally, and then drives motor 2 back to zero. If motor 2 returns to the zero position after reciprocating, it indicates that motor 2 has returned to zero normally. By testing whether motor 2 moves normally, obstacles are cleared from the surgical robot before surgery, ensuring the smooth progress of the surgery. Of course, in other embodiments, the control device may not drive motor 2 to reciprocate or return to zero after motor 2 completes the return to zero.
[0173] The method for returning motor 2 to zero in this embodiment obtains the zero-crossing threshold based on the readings of encoder 3 at both ends of the rotation range. The zero-crossing threshold is used to correct the zero-position value and the current value to obtain the corrected zero-position value and the corrected value. Then, the stroke for returning motor 2 to zero is obtained through the corrected zero-position value and the corrected value. Since the corrected zero-position value and the current value can avoid the problem that motor 2 cannot return to zero due to encoder 3 passing through the zero point when rotating within the rotation range, it ensures that motor 2 can return to zero accurately.
[0174] It should be noted that while coupling encoder 3 to the output shaft of motor 2 during installation can prevent encoder 3 from passing through zero during its rotation range, ensuring this requires multiple adjustments to the encoder 3's position and obtaining readings at both ends of its rotation range. This cumbersome process reduces assembly personnel's productivity and increases product time costs. This application solves the problem of encoder 3 passing through zero by using a motor 2 zeroing method, ensuring accurate zeroing of motor 2. Assembly personnel no longer need to adjust the encoder 3's position during installation, improving production efficiency and reducing production costs.
[0175] Of course, in other embodiments, the method for returning motor 2 to zero may also include steps S110, S120, S130, S140, S150, S160, and S170. The difference is that whether encoder 3 passes through zero or not during its rotation within the rotation range can be manually input by the operator. The control device obtains this manually input information and determines the zero-crossing threshold based on it. Alternatively, the information regarding whether encoder 3 passes through zero or not during its rotation within the rotation range can also be obtained and transmitted to the control device through other means.
[0176] This application also provides another method for returning motor 2 to zero, which is similar to... Figure 6 The methods shown are largely the same. The difference lies in the method used for correcting the zero-digit value and the current value. Please refer to [link / reference]. Figure 16 and Figure 17 , Figure 16 A flowchart illustrating another method for correcting zero-bit values provided in this embodiment. Figure 17 A flowchart illustrating another method for correcting the current value provided in this implementation.
[0177] In this embodiment, as Figure 16 If the zero-crossing threshold is any value between the first and second values (excluding the first and second values), the zero-position value is compared with the zero-crossing threshold, and the zero-position value is corrected according to the comparison result. Specifically, if the zero-position value is greater than the zero-crossing threshold, that is, the zero-position value is greater than any value between the first and second values, then the corrected zero-position value is configured as the zero-position value; if the zero-position value is less than the zero-crossing threshold, that is, the zero-position value is less than any value between the first and second values, then the corrected zero-position value is configured as the zero-position value plus the value obtained by the resolution of encoder 3.
[0178] For example, such as Figure 18 The first value is 904, the second value is 4000, the encoder 3 obtains a value of 4096 at its resolution, and the zero-crossing threshold is 2452. When the motor 2 is powered on, the code disk 31 detector 32 detects that the code disk 31 is located to the left of scale 0. The code disk 31 rotates counterclockwise to the zero position and is fixed in this position. The encoder 3 reading at the zero position is 4496, that is, the zero position value is 4496. Since the zero position value 4496 is greater than the zero-crossing threshold 2452, the zero position correction value is configured to 4496.
[0179] like Figure 19 When motor 2 is powered on, the encoder 31 detector 32 detects that the encoder 31 is located to the right of scale 0. The encoder 31 rotates clockwise to the zero position and is fixed in this position. The encoder 3 then reads 400, meaning the zero position value is 400. Since the zero position value of 400 is less than the zero-crossing threshold of 2452, the zero position correction value is 400 + 4096, i.e., the zero position correction value is configured as 4496.
[0180] Therefore, in this embodiment, the zero-position value is compared with the zero-crossing threshold, and the zero-position value is corrected according to the comparison result to obtain the corrected zero-position value. Regardless of whether the encoder 31 detects that the encoder 31 is located to the left or right of the scale 0 when the motor 2 is powered on, the corrected zero-position value is the same and will not be different due to different power-on positions.
[0181] like Figure 17 The method for correcting the current value includes: if the current value is greater than the zero-crossing threshold, that is, the current value is greater than any value between the first value and the second value (excluding the first value and the second value), then the correction value is configured as the current value; if the current value is less than the zero-crossing threshold, that is, the current value is less than any value between the first value and the second value, then the correction value is configured as the current value plus the value obtained by the resolution of encoder 3.
[0182] For example, such as Figure 20 When motor 2 is powered on, for example, the encoder 3 reads 4060, meaning the current value is 4060 and the zero-crossing threshold is 2452. If the current value 4060 is greater than the zero-crossing threshold 2452, then the correction value is configured to 4060.
[0183] Therefore, the angle difference in this embodiment is (4060-4496)*360 / 4096 = -38.32 degrees.
[0184] The method for correcting the zero-point value and the current value in this implementation is as follows: Figure 6 The embodiments shown are different, but this embodiment and Figure 6 The angle differences obtained in the illustrated embodiments are all the same, thus it can be seen that this embodiment and Figure 6 The methods for correcting the zero position value and the current value in the illustrated embodiment can solve the problem of the encoder 3 passing through the zero point when rotating within the rotation range, ensuring that the motor 2 accurately returns to zero.
[0185] If the zero-crossing threshold is less than the first value or greater than the second value, where the first value is less than the second value, then the zero-point value is configured as the zero-point value, and the correction value is configured as the current value.
[0186] It should be noted that the zero-position value and the current value are corrected using the same method and the same zero-crossing threshold in order to achieve the effect of motor 2 accurately returning to zero.
[0187] This application also provides another method for returning motor 2 to zero, which is similar to... Figure 6 The methods shown are largely the same. The difference lies in the zero-crossing threshold and the method used to correct the zero-point value and the current value. Please refer to [link / reference]. Figure 21 and Figure 22 , Figure 21 A flowchart illustrating another method for correcting zero-bit values provided in this embodiment. Figure 22 A flowchart illustrating another method for correcting the current value provided in this implementation.
[0188] In this embodiment, as Figure 21When the zero-crossing threshold is a first value and the first value is less than the second value, the zero-position value is compared with the zero-crossing threshold. The zero-position value is corrected according to the comparison result. The specific steps to obtain the corrected zero-position value are as follows: if the zero-position value is greater than the zero-crossing threshold, that is, the zero-position value is greater than the first value, then the corrected zero-position value is configured as the value obtained by subtracting the resolution of encoder 3 from the zero-position value; if the zero-position value is less than or equal to the zero-crossing threshold, that is, the zero-position value is less than or equal to the first value, then the corrected zero-position value is configured as the zero-position value.
[0189] For example, such as Figure 11 The first value is 904, the second value is 4000, and the value obtained by the encoder 3 at its resolution is 4096. The zero-crossing threshold is the first value, 904. When the motor 2 is powered on, the code disk 31 detects that it is located to the left of scale 0, as detected by the scale detection element 32. The code disk 31 rotates counterclockwise to the zero position and is fixed in this position. The reading of the encoder 3 at the zero position is 4496, that is, the zero position value is 4496. Since the zero position value 4496 is greater than the zero-crossing threshold 904, the zero position correction value is 4496 - 4096, that is, the zero position correction value is configured to 400.
[0190] like Figure 12 When motor 2 is powered on, the code disk 31 detects that the code disk 31 is located to the right of scale 0. The code disk 31 rotates clockwise to the zero position and is fixed in this position. The encoder 3 reads 400, that is, the zero position value is 400. The zero position value 400 is less than or equal to the zero-crossing threshold 904, so the zero position value is configured to 400.
[0191] Therefore, in this embodiment, the zero-position value is compared with the zero-crossing threshold, and the zero-position value is corrected according to the comparison result to obtain the corrected zero-position value. Regardless of whether the encoder 31 detects that the encoder 31 is located to the left or right of the scale 0 when the motor 2 is powered on, the corrected zero-position value is the same and will not be different due to different power-on positions.
[0192] like Figure 22 The method for correcting the current value includes: if the current value is greater than the zero-crossing threshold, that is, the current value is greater than the first value, then the correction value is configured as the value obtained by subtracting the resolution of encoder 3 from the current value; if the current value is less than or equal to the zero-crossing threshold, that is, the current value is less than or equal to the first value, then the correction value is configured as the current value.
[0193] For example, such as Figure 23 When motor 2 is powered on, for example, the encoder 3 reads 904, meaning the current value is 904. The zero-crossing threshold is 904. If the current value 904 is less than or equal to the zero-crossing threshold 904, then the correction value is configured to 904.
[0194] Therefore, the angle difference in this embodiment is (904-400)*360 / 4096 = 44.29 degrees.
[0195] If the zero-crossing threshold is less than the first value or greater than the second value, where the first value is less than the second value, then the zero-point value is configured as the zero-point value, and the correction value is configured as the current value.
[0196] Of course, in other embodiments, when the zero-crossing threshold is a first value and the first value is less than a second value, the method for correcting the zero position value can also be: if the zero position value is greater than the zero-crossing threshold, that is, the zero position value is greater than the first value, then the corrected zero position value is configured as the zero position value; if the zero position value is less than or equal to the zero-crossing threshold, that is, the zero position value is less than or equal to the first value, then the corrected zero position value is configured as the zero position value plus the value obtained by the resolution of the encoder 3.
[0197] Another method for correcting the current value is: if the current value is greater than the zero-crossing threshold, that is, the current value is greater than the first value, then the correction value is configured to the current value; if the current value is less than or equal to the zero-crossing threshold, that is, the current value is less than or equal to the first value, then the correction value is configured to the current value plus the value obtained by the resolution of encoder 3.
[0198] This application also provides another method for returning motor 2 to zero, which is similar to... Figure 6 The methods shown are largely the same. The difference lies in the zero-crossing threshold and the method used to correct the zero-point value and the current value. Please refer to [link / reference]. Figure 24 and Figure 25 , Figure 24 A flowchart illustrating another method for correcting zero-bit values provided in this embodiment. Figure 25 A flowchart illustrating another method for correcting the current value provided in this implementation.
[0199] In this embodiment, as Figure 24 When the zero-crossing threshold is the second value and the first value is less than the second value, the zero-position value is compared with the zero-crossing threshold, and the zero-position value is corrected according to the comparison result. The specific steps to obtain the corrected zero-position value are as follows: if the zero-position value is greater than or equal to the zero-crossing threshold, that is, the zero-position value is greater than or equal to the second value, then the corrected zero-position value is configured as the value obtained by subtracting the resolution of encoder 3 from the zero-position value; if the zero-position value is less than the zero-crossing threshold, that is, the zero-position value is less than the second value, then the corrected zero-position value is configured as the zero-position value.
[0200] For example, such as Figure 11The first value is 904, the second value is 4000, the encoder 3's resolution obtains a value of 4096, and the zero-crossing threshold is the second value of 4000. When the motor 2 is powered on, the code disk 31 detects that it is to the left of scale 0, as detected by the scale detection element 32. The code disk 31 rotates counterclockwise to the zero position and is fixed in this position. The encoder 3's reading at the zero position is 4496, meaning the zero-position value is 4496. Since the zero-position value 4496 is greater than or equal to the zero-crossing threshold 4000, the zero-position correction value is 4496 - 4096, i.e., the zero-position correction value is configured to 400.
[0201] like Figure 12 When motor 2 is powered on, the code disk 31 detects that it is located to the right of scale 0, as detected by scale detection element 32. The code disk 31 rotates clockwise to the zero position and is fixed in this position. The encoder 3 then reads 400, meaning the zero position value is 400. Since the zero position value of 400 is less than the zero-crossing threshold of 4000, the zero position correction value is set to 400.
[0202] Therefore, in this embodiment, the zero-position value is compared with the zero-crossing threshold, and the zero-position value is corrected according to the comparison result to obtain the corrected zero-position value. Regardless of whether the encoder 31 detects that the encoder 31 is located to the left or right of the scale 0 when the motor 2 is powered on, the corrected zero-position value is the same and will not be different due to different power-on positions.
[0203] like Figure 25 The correction of the current value specifically includes: if the current value is greater than or equal to the zero-crossing threshold, that is, the current value is greater than or equal to the second value, then the correction value is configured as the value obtained by subtracting the resolution of encoder 3 from the current value; if the current value is less than the zero-crossing threshold, that is, the current value is less than the second value, then the correction value is configured as the current value.
[0204] For example, such as Figure 26 When motor 2 is powered on, for example, the encoder 3 reads 4000, meaning the current value is 4000. If the current value 4000 is greater than or equal to the zero-crossing threshold of 4000, then the correction value is configured to 4000-4096, that is, the correction value is configured to -96.
[0205] Therefore, the angle difference in this embodiment is (-96-400)*360 / 4096 = -43.59 degrees.
[0206] If the zero-crossing threshold is less than the first value or greater than the second value, where the first value is less than the second value, then the zero-point value is configured as the zero-point value, and the correction value is configured as the current value.
[0207] Of course, in other embodiments, when the zero-crossing threshold is the second value and the first value is less than the second value, the method for correcting the zero position value can also be: if the zero position value is greater than or equal to the zero-crossing threshold, that is, the zero position value is greater than or equal to the second value, then the corrected zero position value is configured as the zero position value; if the zero position value is less than the zero-crossing threshold, that is, the zero position value is less than the second value, then the corrected zero position value is configured as the zero position value plus the value obtained by the resolution of the encoder 3.
[0208] Another method for correcting the current value is: if the current value is greater than or equal to the zero-crossing threshold, that is, if the current value is greater than or equal to the second value, then the correction value is configured to the current value; if the current value is less than the zero-crossing threshold, that is, if the current value is less than the second value, then the correction value is configured to the current value plus the value obtained by the resolution of encoder 3.
[0209] This application also provides a computer-readable storage medium storing a computer program configured to be loaded by a processor and executed to implement the steps of the method for returning motor 2 to zero as described in any of the above embodiments.
[0210] This application also provides a motor 2 zeroing device for a surgical robot, comprising: a memory for storing a computer program; and a processor for loading and executing the computer program; wherein the computer program is configured to be loaded by the processor and execute steps to implement the method for motor 2 zeroing as described in any of the above embodiments.
[0211] In some embodiments, such as Figure 27 As shown, the motor 2 zero-return device may include: processor 501, communication interface 502, memory 503, and communication bus 504.
[0212] The processor 501, communication interface 502, and memory 503 communicate with each other through the communication bus 504.
[0213] The communication interface 502 is used to communicate with other network elements such as various sensors, motors 2, solenoid valves, or other clients or servers.
[0214] The processor 501 is used to execute program 505, which can specifically perform the relevant steps in the above method embodiments.
[0215] Specifically, program 505 may include program code that includes computer operation instructions.
[0216] The processor 505 may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), one or more integrated circuits configured to implement embodiments of the present invention, or a graphics processing unit (GPU). The detection device includes one or more processors, which may be processors of the same type, such as one or more CPUs or one or more GPUs; or they may be processors of different types, such as one or more CPUs and one or more GPUs.
[0217] Memory 503 is used to store program 505. Memory 503 may include high-speed RAM memory, and may also include non-volatile memory, such as at least one disk storage device.
[0218] Specifically, program 505 can be used to cause processor 501 to perform the following operations: acquire an operation image of the surgical area captured by the camera arm; identify the feature parts of the surgical arm from the operation image and designate the identified feature parts as the first feature parts; acquire control commands input by the control unit and obtain a kinematic model of the surgical arm according to the control commands; obtain a second feature part matching the first feature part in the kinematic model; obtain the actual motion information of the first feature part and the target motion information of the second feature part; compare the actual motion information and the target motion information to determine whether there is a motion error in the surgical robot.
[0219] Specifically, program 505 can also be used to cause processor 501 to perform the following operations: acquire monitoring images of the camera arm and / or surgical arm captured by the second image end-effector; identify feature parts of the camera arm and / or surgical arm from the monitoring images, and designate the identified feature parts as first feature parts; acquire control commands input by the control unit, and obtain a kinematic model of the surgical arm according to the control commands; obtain a second feature part matching the first feature part in the kinematic model; and display at least the second feature part on the display for comparison with the first feature part to determine whether there is a motion error in the camera arm and / or surgical arm.
[0220] 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 specification.
[0221] The above are merely optional embodiments of the present invention and do not limit the patent scope of the present invention. All equivalent structural transformations made using the contents of the present invention specification and drawings under the inventive concept of the present invention, or direct / indirect applications in other related technical fields, are included within the patent protection scope of the present invention.
Claims
1. A surgical robot, characterized in that, The surgical robot includes: The operating unit includes at least one joint assembly, the joint assembly includes a drive mechanism, the drive mechanism includes a motor and an encoder, the encoder is coupled to the output shaft of the motor, the output shaft of the motor has a rotation range, the encoder is a single-turn absolute encoder; the encoder passes through zero point within the rotation range, and the single-turn positive values of the encoder readings at both ends of the rotation range are a first value and a second value, respectively. The control device, coupled to the drive mechanism, is configured to perform the following steps: The zero-crossing threshold and the zero-position correction value of the encoder are obtained. The zero-crossing threshold is any value between the first value and the second value. The value of the encoder when the motor returns to the zero position is the zero position value. The zero-position correction value is determined based on the zero-crossing threshold and the zero position value. In response to the encoder being powered on again, the current value of the encoder is read; The current value is compared with the zero-crossing threshold, and the current value is corrected according to the comparison result to obtain the corrected value; The motor's return-to-zero stroke is obtained based on the correction value and the correction zero-position value; Drive the motor to rotate and return the stroke to zero.
2. The surgical robot according to claim 1, characterized in that, The control device is configured to obtain a zero-crossing threshold based on the encoder readings at both ends of the rotation range, including the following steps: Obtain the readings of the encoder at both ends of the rotation range; The zero-crossing state of the encoder when it rotates within the rotation range is determined based on the reading. The zero-crossing threshold is obtained by combining the readings and the zero-crossing state.
3. The surgical robot according to claim 2, characterized in that, The control device is configured to perform the following step in determining the zero-crossing state of the encoder when it rotates within the rotation range based on the reading: If one of the two readings at both ends of the rotation range is less than zero, or one of the two readings is greater than the value obtained by the encoder's resolution, then the encoder passes through the zero point within the rotation range. If the reading is greater than or equal to zero and less than the value obtained by the encoder's resolution, then the encoder does not pass through the zero point within the rotation range.
4. The surgical robot according to any one of claims 1 to 3, characterized in that, The control device is also configured to perform the following steps: Correcting the zero-bit value according to the zero-crossing threshold to obtain a corrected zero-bit value includes: The zero-digit value is compared with the zero-crossing threshold, and the zero-digit value is corrected based on the comparison result to obtain the corrected zero-digit value.
5. The surgical robot according to claim 4, characterized in that, The control device is configured to, in the step of comparing the zero-point value with the zero-crossing threshold and correcting the zero-point value based on the comparison result, perform the following: If the first value is less than the second value, the zero-crossing threshold is the first value, and the zero-position value is greater than the zero-crossing threshold, then the corrected zero-position value is configured as the value obtained by subtracting the encoder resolution from the zero-position value; if the zero-position value is less than or equal to the zero-crossing threshold, then the corrected zero-position value is configured as the zero-position value.
6. The surgical robot according to claim 4, characterized in that, The control device is configured to, in the step of comparing the zero-point value with the zero-crossing threshold and correcting the zero-point value based on the comparison result, perform the following: If the first value is less than the second value, the zero-crossing threshold is the second value, and the zero-position value is greater than or equal to the zero-crossing threshold, then the corrected zero-position value is configured as the value obtained by subtracting the encoder resolution from the zero-position value; if the zero-position value is less than the zero-crossing threshold, then the corrected zero-position value is configured as the zero-position value.
7. The surgical robot according to claim 4, characterized in that, The control device is configured to, in the step of comparing the zero-point value with the zero-crossing threshold and correcting the zero-point value based on the comparison result, perform the following: If the first value is less than the second value, the zero-crossing threshold is greater than the first value and less than the second value, and the zero-position value is greater than the zero-crossing threshold, then the corrected zero-position value is configured as the value obtained by subtracting the encoder resolution from the zero-position value; if the zero-position value is less than the zero-crossing threshold, then the corrected zero-position value is configured as the zero-position value.
8. The surgical robot according to claim 4, characterized in that, The control device is configured to, in the step of comparing the zero-point value with the zero-crossing threshold and correcting the zero-point value based on the comparison result, perform the following: If the first value is less than the second value, the zero-crossing threshold is greater than the first value and less than the second value, and the zero-position value is greater than the zero-crossing threshold, then the corrected zero-position value is configured as the zero-position value; if the zero-position value is less than the zero-crossing threshold, then the corrected zero-position value is configured as the value obtained by adding the zero-position value to the encoder resolution.
9. A motor homing device, characterized in that, The motor zero-return device includes: Memory, used to store computer programs; and a processor for loading and executing the computer program; The computer program is configured to be loaded and executed by the processor: The zero-crossing threshold is obtained based on the readings of the encoder at both ends of the rotation range; wherein, the encoder is coupled to the output shaft of the motor, the rotation range is the rotation range of the output shaft of the motor, the encoder is a single-turn absolute encoder, the encoder passes through the zero point in the rotation range, and the positive single-turn values of the encoder readings at both ends of the rotation range are the first value and the second value, respectively. The zero-crossing threshold and the zero-position correction value of the encoder are obtained. The zero-crossing threshold is any value between the first value and the second value. The value of the encoder when the motor returns to the zero position is the zero position value. The zero-position correction value is determined based on the zero-crossing threshold and the zero position value. In response to the encoder being powered on again, the current value of the encoder is read; The current value is compared with the zero-crossing threshold, and the current value is corrected according to the comparison result to obtain the corrected value; The motor's return-to-zero stroke is obtained based on the correction value and the correction zero-position value; Drive the motor to rotate and return the stroke to zero.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program configured to be loaded and executed by a processor: The zero-crossing threshold is obtained based on the readings of the encoder at both ends of the rotation range; wherein, the encoder is coupled to the output shaft of the motor, the rotation range is the rotation range of the output shaft of the motor, and the encoder is a single-turn absolute encoder; the encoder passes through the zero point within the rotation range, and the positive single-turn values of the encoder readings at both ends of the rotation range are the first value and the second value, respectively. The zero-crossing threshold and the zero-position correction value of the encoder are obtained. The zero-crossing threshold is any value between the first value and the second value. The value of the encoder when the motor returns to the zero position is the zero position value. The zero-position correction value is determined based on the zero-crossing threshold and the zero position value. In response to the encoder being powered on again, the current value of the encoder is read; The current value is compared with the zero-crossing threshold, and the current value is corrected according to the comparison result to obtain the corrected value; The motor's return-to-zero stroke is obtained based on the correction value and the correction zero-position value; Drive the motor to rotate and return the stroke to zero.
Citation Information
Patent Citations
Method for finding back zero position after starting of quadruped robot
CN112936284A
Industrial robot zero point calibration method, calibration device and electronic equipment
CN114102580A