CN116999175A - Surgical robot, motor zeroing device, and storage medium - Google Patents

Surgical robot, motor zeroing device, and storage medium Download PDF

Info

Publication number
CN116999175A
CN116999175A CN202210462032.8A CN202210462032A CN116999175A CN 116999175 A CN116999175 A CN 116999175A CN 202210462032 A CN202210462032 A CN 202210462032A CN 116999175 A CN116999175 A CN 116999175A
Authority
CN
China
Prior art keywords
value
zero
encoder
crossing threshold
motor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210462032.8A
Other languages
Chinese (zh)
Inventor
王深辉
高元倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Edge Medical Co Ltd
Original Assignee
Shenzhen Edge Medical Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Edge Medical Co Ltd filed Critical Shenzhen Edge Medical Co Ltd
Priority to CN202210462032.8A priority Critical patent/CN116999175A/en
Publication of CN116999175A publication Critical patent/CN116999175A/en
Pending legal-status Critical Current

Links

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B34/00Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
    • A61B34/30Surgical robots
    • A61B34/37Master-slave robots
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02KDYNAMO-ELECTRIC MACHINES
    • H02K11/00Structural association of dynamo-electric machines with electric components or with devices for shielding, monitoring or protection
    • H02K11/20Structural association of dynamo-electric machines with electric components or with devices for shielding, monitoring or protection for measuring, monitoring, testing, protecting or switching
    • H02K11/21Devices for sensing speed or position, or actuated thereby
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P29/00Arrangements for regulating or controlling electric motors, appropriate for both AC and DC motors
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B34/00Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
    • A61B34/30Surgical robots
    • A61B2034/302Surgical robots specifically adapted for manipulations within body cavities, e.g. within abdominal or thoracic cavities

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Robotics (AREA)
  • Power Engineering (AREA)
  • Surgery (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Manipulator (AREA)

Abstract

The application provides a surgical robot, a motor zeroing device and a storage medium. The control device of the surgical robot is configured to perform the steps of: acquiring a zero crossing threshold according to readings of the encoder at two ends in a rotation range; in response to the determination of the encoder zero, reading a zero value of the encoder; correcting the zero position value according to the zero crossing threshold value to obtain a corrected zero position value; in response to the encoder being powered up again, reading a current value of the encoder; correcting the current value according to the zero crossing threshold value to obtain a corrected value; obtaining the return-to-zero stroke of the motor according to the correction value and the correction zero value; the rotation stroke of the driving motor returns to zero. The surgical robot can realize accurate return-to-zero of the motor.

Description

Surgical robot, motor zeroing device, and storage medium
Technical Field
The application relates to the field of robots, in particular to a surgical robot, a motor zeroing device and a storage medium.
Background
Minimally invasive surgery refers to a surgical mode for performing surgery in a human cavity by using modern medical instruments such as laparoscopes, thoracoscopes and related devices. Compared with the traditional operation mode, the minimally invasive operation has the advantages of small wound, light pain, quick recovery and the like.
With the advancement of technology, minimally invasive surgical robotic techniques are becoming mature and widely used. Surgical robots generally include a master console having a display and an operating section, and a slave operating device having a plurality of operating arms, one of which is used to collect an image of a surgical field and is displayed by the display, and the other of which is used to perform a surgical operation.
In the master-slave control scheme, the operation unit transmits a control command and is received and executed by the controlled operation arm. The joint of the operation part is rotated through the motor, the motor adopts an incremental encoder, and after the surgical robot is electrified again, the motor needs to return to the zero position before the calculation of the position of the subsequent motor is convenient. Because the structure of the operation part is limited, the motor can not return to zero in a traditional mode of returning to zero by utilizing a photoelectric switch, if a scheme of installing a single-circle absolute value encoder on an output shaft of the motor is adopted, the single-circle absolute value encoder has the zero crossing problem, and the accurate return to zero of the motor can not be realized.
Disclosure of Invention
The application mainly aims to provide a surgical robot which can realize accurate return-to-zero of a motor. The application also provides a motor zeroing device and a storage medium.
In a first aspect, an embodiment of the present application provides a surgical robot. The surgical robot includes:
the operation part comprises at least one joint assembly, the joint assembly comprises a driving mechanism, the driving mechanism comprises a motor and an encoder, the encoder is coupled with an output shaft of the motor, the output shaft of the motor has a rotation range, and the encoder is a single-circle absolute value encoder;
a control device coupled to the drive mechanism and configured to perform the steps of:
acquiring a zero crossing threshold according to readings of the encoder at two ends in the rotation range;
reading a zero value of the encoder in response to the determination of the encoder zero;
correcting the zero-position numerical value according to the zero-crossing threshold value to obtain a corrected zero-position numerical value;
reading a current value of the encoder in response to the encoder being powered up again;
correcting the current value according to the zero crossing threshold value to obtain a corrected value;
obtaining the return-to-zero stroke of the motor according to the correction value and the correction zero position value;
and driving the motor to rotate the stroke to return to zero.
In a possible implementation, the control device is configured to perform, in the step of obtaining the zero crossing threshold value, from readings of the encoder at both ends of the rotation range:
Acquiring readings of two ends of the encoder in the rotation range;
determining a zero crossing state of the encoder when rotating within the rotation range according to the reading;
and combining the zero crossing state and the reading to obtain the zero crossing threshold value.
In a possible implementation, the control device is configured to perform, in the step of determining, from the reading, a zero crossing state of the encoder when rotating within the rotation range:
obtaining two readings of the encoder at two ends of the rotation range, wherein if one of the two readings is smaller than zero or one of the two readings is larger than a value obtained by the resolution of the encoder, the encoder passes through the zero point in the rotation range, and if the reading is larger than or equal to zero and smaller than the value obtained by the resolution of the encoder, the encoder does not pass through the zero point in the rotation range.
In one possible implementation, the readings at both ends of the range of rotation of the encoder include a first value and a second value;
the correcting the zero value according to the zero crossing threshold value comprises:
if the zero crossing threshold is any value between the first value and the second value, comparing the zero position value with the zero crossing threshold, and correcting the zero position value according to a comparison result;
Said correcting said current value according to said zero crossing threshold comprises:
and if the zero crossing threshold is any value between the first value and the second value, comparing the current value with the zero crossing threshold, and correcting the current value according to a comparison result.
In a possible implementation manner, the control device is configured to perform, in the step of comparing the zero value with the zero crossing threshold value and correcting the zero value according to a comparison result, the following steps:
if the first value is smaller than the second value, the zero crossing threshold is the first value, and the zero crossing value is larger than the zero crossing threshold, the corrected zero crossing value is configured to be a value obtained by subtracting the resolution of the encoder from the zero crossing value; and if the zero value is smaller than or equal to the zero crossing threshold value, configuring the corrected zero value into the zero value.
In a possible implementation manner, the control device is configured to perform, in the step of comparing the zero value with the zero crossing threshold value and correcting the zero value according to a comparison result, the following steps:
If the first value is smaller than the second value, the zero crossing threshold is the second value, and the zero position value is larger than or equal to the zero crossing threshold, the corrected zero position value is configured to be a value obtained by subtracting the resolution of the encoder from the zero position value; and if the zero position value is smaller than the zero crossing threshold value, configuring the corrected zero position value into the zero position value.
In a possible implementation manner, the control device is configured to perform, in the step of comparing the zero value with the zero crossing threshold value and correcting the zero value according to a comparison result, the following steps:
if the first value is smaller than the second value, the zero crossing threshold is larger than the first value and smaller than the second value, and the zero position value is larger than the zero crossing threshold, the corrected zero position value is configured to be a value obtained by subtracting the resolution of the encoder from the zero position value; and if the zero position value is smaller than the zero crossing threshold value, configuring the corrected zero position value into the zero position value.
In a possible implementation manner, the control device is configured to perform, in the step of comparing the zero value with the zero crossing threshold value and correcting the zero value according to a comparison result, the following steps:
If the current value is greater than the zero crossing threshold, configuring the corrected value to be the current value minus the value obtained by the resolution of the encoder; and if the current value is smaller than the zero crossing threshold value, configuring the correction value into the current value.
In a possible implementation manner, the control device is configured to perform, in the step of comparing the zero value with the zero crossing threshold value and correcting the zero value according to a comparison result, the following steps:
if the first value is smaller than the second value, the zero crossing threshold is larger than the first value and smaller than the second value, and the zero position value is larger than the zero crossing threshold, the corrected zero position value is configured to be the zero position value; and if the zero position value is smaller than the zero crossing threshold value, configuring the corrected zero position value into a value obtained by adding the zero position value to the resolution of the encoder.
In one possible implementation, the readings at both ends of the range of rotation of the encoder include a first value and a second value; the correcting the zero value according to the zero crossing threshold value comprises:
if the zero crossing threshold is less than the first value or greater than the second value, configuring the corrected zero value as the zero value;
Said correcting said current value according to said zero crossing threshold comprises:
and if the zero crossing threshold is smaller than the first value or larger than the second value, configuring the correction value to be the current value.
In a possible implementation manner, before or after the step of obtaining the zero crossing threshold value as the zero crossing threshold value, the control device is configured to perform:
a single positive value of the reading of the encoder across the range of rotation is taken.
In a possible implementation, the control device is configured to perform, in the step of obtaining a single positive value of the reading of the encoder at both ends of the rotation range:
and obtaining two readings of the encoder at two ends of the rotation range, if the readings are smaller than zero, configuring a single circle positive value of the readings as a value obtained by adding the resolution of the encoder to the readings, if the readings are larger than the value obtained by adding the resolution of the encoder to the readings, configuring the single circle positive value of the readings as a value obtained by subtracting the resolution of the encoder from the readings, and if the readings are larger than or equal to zero and smaller than the value obtained by adding the resolution of the encoder to the readings, configuring the single circle positive value of the readings as the readings.
In a possible implementation, the control device is configured to perform, in the step of obtaining the stroke:
obtaining an angle difference according to the correction value and the correction zero value;
and obtaining the stroke according to the angle difference.
In a second aspect, the embodiment of the application also provides a motor zeroing method. The motor zeroing method is applied to an operation part in a robot, the operation part comprises at least one joint assembly, the joint assembly comprises a driving mechanism, the driving mechanism comprises a motor and an encoder, the encoder is coupled with an output shaft of the motor, the output shaft of the motor has a rotation range, and the encoder is a single-circle absolute value encoder; the method comprises the following steps:
acquiring a zero crossing threshold according to readings of the encoder at two ends in the rotation range;
reading a zero value of the encoder in response to the determination of the encoder zero;
correcting the zero-position numerical value according to the zero-crossing threshold value to obtain a corrected zero-position numerical value;
reading a current value of the encoder in response to the encoder being powered up again;
correcting the current value according to the zero crossing threshold value to obtain a corrected value;
Obtaining the return-to-zero stroke of the motor according to the correction value and the correction zero position value;
and driving the motor to rotate the stroke to return to zero.
In a third aspect, the embodiment of the application further provides a motor zeroing device. The motor zeroing device comprises:
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 to perform a method of achieving motor zeroing as described above.
In a fourth aspect, embodiments of the present 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 to perform a method of achieving motor zeroing as described above.
According to the embodiment of the application, the zero-crossing threshold value is obtained according to the readings of the encoder at the two ends in the rotation range, the zero-crossing value and the current value are corrected according to the zero-crossing threshold value, the corrected zero-crossing value and the corrected value are respectively obtained, and then the zero return stroke of the motor is obtained through correcting the zero-crossing value and the corrected value.
Drawings
Fig. 1 is a slave operating device of a surgical robot provided by an embodiment of the present application;
FIG. 2 is a main console of a surgical robot embodying the present application;
FIG. 3A is a schematic view of a portion of the operation portion of the main console shown in FIG. 2;
fig. 3B is a schematic structural view of the driving mechanism in the operation portion shown in fig. 2;
FIG. 3C is a schematic view of the operation part shown in FIG. 2 in other positions;
FIG. 4 is a simplified schematic diagram of an encoder in this embodiment;
FIG. 5 is another simplified schematic diagram of an encoder in this embodiment;
FIG. 6 is a flow chart of a method of zeroing a motor;
FIG. 7 is a flow chart of a method for determining rotation of an encoder in a rotation range according to the present embodiment;
FIG. 8 is a flow chart of a method for determining a single positive value of a reading provided in the present embodiment;
FIG. 9 is another schematic diagram of the encoder in the present embodiment;
FIG. 10 is a flow chart of a method for calibrating zero values according to the present embodiment;
FIG. 11 is a schematic diagram of an encoder of the method of FIG. 10;
FIG. 12 is a schematic diagram of another encoder of the method of FIG. 10;
FIG. 13 is a flow chart of a method for correcting a current value according to the present embodiment;
FIG. 14 is a schematic diagram of an encoder of the method of FIG. 13;
FIG. 15 is a schematic diagram of an encoder of the method of FIG. 6;
FIG. 16 is a flow chart of another method for calibrating zero values according to the present embodiment;
fig. 17 is a flowchart of another method for correcting a current value according to the present embodiment.
FIG. 18 is a schematic diagram of an encoder of the method shown in FIG. 16;
FIG. 19 is a schematic diagram of another encoder of the method shown in FIG. 16;
FIG. 20 is a schematic diagram of an encoder of the method shown in FIG. 17;
FIG. 21 is a flow chart of another method for calibrating zero values according to the present embodiment;
FIG. 22 is a flowchart of another method for correcting a current value according to the present embodiment;
FIG. 23 is a schematic diagram of an encoder of the method shown in FIG. 22;
FIG. 24 is a flow chart of another method for calibrating zero values according to the present embodiment;
FIG. 25 is a flowchart of another method for correcting a current value according to the present embodiment;
FIG. 26 is a schematic diagram of an encoder of the method shown in FIG. 25;
fig. 27 is a schematic structural view of the motor zeroing apparatus.
Detailed Description
The following description of the embodiments of the present invention will be made clearly and fully with reference to the accompanying drawings, in which it is evident that the embodiments described are only some, but not all embodiments of the invention. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
It should be noted that all directional indicators (such as up, down, left, right, front, rear, clockwise, counterclockwise) in the embodiments of the present invention are merely used to explain the relative positional relationship, movement conditions, etc. between the components in a particular posture (as shown in the drawings), and if the particular posture is changed, the directional indicators are correspondingly changed.
In the present invention, unless specifically stated and limited otherwise, the terms "connected," "affixed," and the like are to be construed broadly, and for example, "affixed" may be a fixed connection, a removable connection, or an integral body; can be mechanically or electrically connected; either directly or indirectly, through intermediaries, or both, may be in communication with each other or in interaction with each other, unless expressly defined otherwise. The specific meaning of the above terms in the present invention can be understood by those of ordinary skill in the art according to the specific circumstances.
The terms "distal" and "proximal" are used herein as directional terms that are conventional in the art of interventional medical devices, wherein "distal" refers to the end of the procedure that is distal to the operator and "proximal" refers to the end of the procedure that is proximal to the operator.
Furthermore, descriptions such as those referred to as "first," "second," and the like, are provided for descriptive purposes only and are not to be construed as indicating or implying a relative importance or implying an order of magnitude of the indicated technical features in the present disclosure. Thus, a feature defining "a first" or "a second" may explicitly or implicitly include at least one such feature.
Referring to fig. 1 and 2, fig. 1 is a slave operation device of a surgical robot according to an embodiment of the present application, and fig. 2 is a master operation table of a surgical robot according to an embodiment of the present application.
The surgical robot may include a master console 100 and a slave manipulator 200 that are communicatively coupled to each other. Wherein the master console 100 is used to transmit a control command to the slave operating device 200 according to the operation of the doctor to control the slave operating device 200. The slave operation device 200 is used for responding to the control command sent from the master operation console 100 and performing the corresponding surgical operation. Of course, in other embodiments, the master console and the slave console may be combined into a single unit.
The master console 100 and the slave console 200 may be placed in one operating room, or may be placed in different rooms, and even the master console 100 and the slave console 200 may be far apart. For example, the master console 100 and the slave console 200 are located in different cities, and the master console 100 and the slave console 200 can transmit data by wired or wireless means. For example, the master console 100 and the slave console 200 are located in an operating room, and data transmission is performed between the master console 100 and the slave console 200 in a wired manner, and for example, the master console 100 and the slave console 200 can be respectively located in different cities, and remote data transmission is performed between the master console and the slave console through wireless signals.
The master console 100 has an operation section 10 and a display, and a doctor transmits a control command to the slave operation device 200 by operating the operation section 10, so that the slave operation device 200 performs a corresponding operation according to the control command of the doctor operating the operation section 10, and observes the operation region through the display.
Referring to fig. 3A, fig. 3A is a schematic view of a portion of the operation portion 10 of the main console shown in fig. 2.
The operation part 10 may include a plurality of joint assemblies 11 so as to be freely movable and rotatable, thereby providing a doctor with a large operation space. The plurality of joint assemblies 11 are connected by links. The joint assembly 11 includes a drive mechanism. It will be appreciated that the plurality of joint assemblies 11 of the operating portion 10 each include 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 of each joint assembly 11 has a particular range of rotation, i.e., a rotational angle, such as 60 degrees, 100 degrees, 120 degrees, 135 degrees, 270 degrees, 350 degrees, etc. It will be appreciated that by defining a specific rotation range for the output shaft of each motor, it is ensured that the operating portion 10 rotates only within a desired range and does not rotate within a range other than the desired range. The specific rotation range of the output shaft of each motor constitutes the degree of freedom of operation of the operation section 10. The number of joint components may also be at least one.
The drive mechanism of one of the joint assemblies 11 will be described below.
Referring to fig. 3B, fig. 3B is a schematic structural diagram of a driving mechanism in the operation portion shown in fig. 2. The driving mechanism in fig. 3B is the driving mechanism located at the uppermost position in fig. 2.
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, the encoder 3 being a single-turn absolute value encoder. Since the encoder 3 is coupled with the output shaft of the motor 2, the rotation range of the output shaft of the motor 2 is also the rotation range of the encoder 3. The incremental encoder is provided inside the motor 2 to record rotation information of the motor 2, such as a rotation speed and a rotation position of an output shaft of the motor 2. Of course, in other embodiments, the incremental encoder 3 may also be provided outside the motor 2.
In this embodiment, the motor 2 is fixed at one end of the first link, the output shaft of the motor 2 is rotationally connected to the rotating member 5 through the transmission member 4, the rotating member 5 is fixedly connected to one end of the second link, the motor 2 rotates to drive the transmission member 4 to rotate, and the transmission member 4 drives the rotating member 5 to rotate, so that the second link is connected with the first link. The encoder 3 is connected to the rotary member 5, that is, in this embodiment, the encoder 3 is coupled to the output shaft of the motor 2 via the rotary member 5 and the transmission member 4. Of course, in other embodiments, the encoder 3 may also be connected to the output shaft of the motor 2 via the transmission 4 or directly.
It should be noted that, since the motor 2 adopts the incremental encoder to record the rotation information of the motor 2, when the motor 2 is powered off and powered on again, the output shaft of the motor 2 needs to return to the zero position (i.e. return to zero), so that the subsequent rotation information of the motor 2 can be recorded conveniently. The zero position of the output shaft of the motor 2 to be returned to the zero position is referred to as an initial position of the output shaft of the motor 2, and may be understood as an initial position of the single-turn absolute value encoder 3, and the initial position may be any position within a rotation range of the output shaft of the motor 2, and may be a manually specified position, and when the output shaft of the motor 2 moves relatively to the initial position to another position, the output shaft of the motor 2 may be moved by a certain degree with respect to the initial position. Fig. 3A and 3B show the motor 2 in the initial position, and the motor and the operating portion are in the state. Fig. 3C shows a state in which the operation portion is in the other position of the motor.
Because the motor 2 cannot return to zero by adopting a transmission manner using a photoelectric switch due to the structure and transmission manner of the operation portion 10, the output shaft of the motor 2 is assisted to return to zero by coupling the single-turn absolute value encoder 3 to the output shaft of the corresponding motor 2. Of course, in other embodiments, the single-turn absolute value encoder 3 may also be used to assist the return of the output shaft of the motor 2 to zero when the structure and manner of transmission of the operating portion 10 is not limited.
It will be appreciated that the single-turn absolute value encoder 3 has a zero-crossing problem during rotation, i.e. when the output shaft of the motor 2 rotates within a rotation range, the single-turn absolute value encoder 3 passes through the zero-crossing point, which may cause inaccurate readings of the single-turn absolute value encoder 3. Due to inaccurate readings of the single-turn absolute value encoder 3, when the output shaft of the motor 2 is in a zero position, the readings of the single-turn absolute value encoder 3 are also inaccurate, so that the output shaft of the motor 2 cannot return to the zero position.
Wherein, zero point in zero crossing points when the single-turn absolute value encoder 3 rotates refers to the point that the code wheel scale of the single-turn absolute value encoder 3 is zero.
Referring to fig. 4, fig. 4 is a simplified schematic diagram of the encoder 3 in the present embodiment. The encoder 3 comprises a code wheel 31 and a detecting piece 32, the output shaft of the motor 2 drives the code wheel 31 to rotate through the rotating piece, and the detecting piece 32 is fixed. The code wheel 31 includes a plurality of channel reticles to encode positions on the code wheel 31 such that when a certain position of the code wheel 31 moves to be opposite to the detecting member 32, the detecting member 32 reads out a corresponding position reading (i.e., a code corresponding to the position) from the plurality of channel reticles at the corresponding position.
For example, for ease of understanding, fig. 4 illustrates that the multi-channel score lines of the code wheel 31 are replaced with graduations, and the numerical values on the code wheel 31 are for indicating the codes corresponding to the graduations, and are not actually present on the code wheel 31, but are merely marked on the figure for ease of understanding. The number above the detecting member 32 is a position reading read by the detecting member 32, and a solid arrow in the figure represents a rotation direction of the code wheel 31 and a broken arrow represents a position of the code wheel 31 from the beginning to the end of the scale during rotation.
This embodiment is described by taking the example that the resolution of the encoder 3 is 4096, and the scale of the encoder 3 corresponding to the code wheel 31 in the movement range of the motor 2 is 4000 to 904 (including 4000 and 904), that is, 4000 to 0, and 0 to 904 (the range shown as a in fig. 4).
As shown in fig. 4, when the driving mechanism 1 is powered on, the position of the output shaft of the motor 2 corresponds to the position of the scale of 100 of the code wheel 31 of the encoder 3, and at this time, the reading of the detecting member 32 is 100, that is, the reading of the encoder 3 is 100. When the code wheel 31 rotates clockwise, the detecting element 32 detects that the code wheel 31 passes through the scale 0 (i.e. zero point) in the rotating process, and continues to rotate to the position where the scale of the code wheel 31 is 4000, i.e. the code wheel 31 moves from the scale 100 to the position where the scale 4000 passes through the scale 0 in the corresponding area of the detecting element 32. Since the encoder 31 passes the scale 0 while rotating, the position that the detecting member 32 continues to detect is the position to the left of the scale 0, and the reading of the encoder 3 becomes negative, when the detecting member 32 detects that the encoder 31 stops to the position of 4000, the reading of the encoder 3 is-96. At this time, after power-off, the power is applied, the position of the code wheel 31 is unchanged, but since the code wheel 31 does not rotate past the scale 0, the reading of the encoder 3 is read as 4000, and not as a negative number.
Referring to fig. 5, when the driving mechanism 1 is powered on, the position of the output shaft of the motor 2 corresponds to the position of the scale of 4000 of the code wheel 31 of the encoder 3, and at this moment, the reading of the detecting member 32 is 4000, that is, the reading of 4000 of the encoder 3. When the detecting member 32 detects that the code wheel 31 rotates counterclockwise, the detecting member 32 detects that the code wheel 31 passes through the scale 0 during rotation and continues to rotate to the position where the scale of the code wheel 31 is 100, that is, the code wheel 31 moves from the scale 4000 to the position where the scale 100 passes through the scale 0 in the area corresponding to the detecting member 32 (dashed arrow in fig. 5). Since the code wheel 31 passes through the scale 0 when rotating, the position continuously detected by the detecting element 32 is the position on the right side of the scale 0, the reading of the encoder 3 is changed to the value corresponding to the scale number of the code wheel 31 and the resolution of the encoder 3, and therefore, when the detecting element 32 detects that the code wheel 31 stops to the position with the scale 100, the reading of the encoder 3 is 100+4096=4196. After power-off, the power is applied again, and the position of the code wheel 31 is unchanged, but since the code wheel 31 does not rotate past the scale 0, the reading will be read as 100, and will not be read as 4196.
Therefore, if it is determined that the encoder 3 is at the zero position of the motor 2 when the encoder 3 is at 4196 before power-off, that is, the zero position of the output shaft of the motor 2, the reading of this position is 100 after power-on again, no matter how the motor 2 moves within the movement range, the reading of 4196 cannot be found, which results in that the motor 2 cannot return to zero, that is, the output shaft of the motor 2 cannot return to zero, or that the limit structure limiting the rotation range of the motor 2 is damaged.
In view of this, the surgical robot of the present application further comprises a control device configured to be coupled with the driving mechanism 1 and the like to receive, process and transmit related instructions, solving the problem of zero crossing when the single-turn absolute value encoder 3 rotates. The control means may be integrated in the master console 100 or the slave operating device 200; the control device may also be provided independently of the master console 100 and the slave operating device 200, and may be deployed locally or at the cloud. The control means may be constituted by more than one controller, such as one, two, or more.
It should be noted that, the control device is coupled to each driving mechanism 1 of the operation portion 10, so that the problem that the single-turn absolute value encoder 3 of each driving mechanism 1 passes through the zero point when rotating can be solved, and the output shaft of each motor 2 accurately returns to the zero point. The following description will be given by taking as an example that the control device solves the zero-crossing problem when one of the single-turn absolute value encoders 3 rotates, so that the output shaft of the corresponding motor 2 accurately returns to the zero position.
Referring to fig. 6, fig. 6 is a flow chart of a method for zeroing the motor 2, which is executed by the control device. It will be appreciated that the method of zeroing the motor 2 is also applicable to motor zeroing of other robots, robotic arms, instruments, chassis, etc. other than surgical robots, which have a motor.
The method for zeroing the motor 2 comprises the following steps:
and S110, acquiring a zero crossing threshold according to the readings of the encoder 3 at the two ends in the rotation range.
In some embodiments, step S110 includes:
s111: a reading is taken of the encoder 3 at both ends of the rotation range.
The rotation range is the rotation range of the output shaft of the motor 2 and is also the rotation range of the encoder. As shown in fig. 7, the method for obtaining readings of both ends of the encoder 3 in the rotation range includes: two readings of the encoder 3 at both ends of the rotation range are taken, the two readings being a first reading and a second reading, respectively.
S112: and determining the zero crossing state of the encoder when the encoder rotates in the rotation range according to the reading.
In some embodiments, the zero crossing state includes zero crossing and no zero crossing. The method for determining the zero crossing state comprises the following steps: if one of the two readings (first reading and second reading) is less than zero, or one of the two readings is greater than the value obtained by the resolution of the encoder 3, the encoder 3 passes through zero in the rotation range. If the readings (the first reading and the second reading) are equal to or greater than zero and less than the value obtained by the resolution of the encoder 3, the encoder 3 does not pass through zero in the rotation range.
Of course, in other embodiments, determining zero or no zero crossing when the encoder 3 rotates within the rotation range is not limited to the above-described method. The method of determining whether the encoder 3 passes through the zero point or does not pass through the zero point when rotating in the rotation range may be other methods as long as it is ensured that whether the encoder 3 passes through the zero point in the rotation range can be judged. For example, the sum of the first reading and the second reading is compared with the maximum one, and if the sum is smaller than the maximum value, or the value obtained by subtracting the resolution of the encoder 3 from the first reading and the second reading is used to obtain a determination value, and if one of the determination values is larger than zero, the encoder 3 passes through the zero point in the rotation range. Otherwise the encoder 3 does not pass through zero in the rotation range.
It should be noted that the first reading and the second reading may be obtained by manually moving the output shaft of the motor 2 so that the output shaft of the motor 2 moves to one end within the movement range thereof, obtaining the reading of the encoder 3, and then manually moving the output shaft of the motor 2 to the other end of the movement range thereof, obtaining the reading of the encoder 3, thereby obtaining two readings of the encoder 3 at both ends of the rotation range. It can be understood that the output shaft of the motor 2 is manually moved by an operator when the first reading and the second reading are obtained, so that when the operator finds that the output shaft of the motor 2 cannot move any more to one end within the movement range of the output shaft of the motor 2, the operator can not apply force to the output shaft of the motor 2 any more, and the limit piece for limiting the movement range of the output shaft of the motor 2 is prevented from being damaged.
The first reading and the second reading can also be controlled by the control device to firstly move the output shaft of the motor 2 to one end in the movement range of the output shaft to obtain the reading of the encoder 3, and then to control the output shaft of the motor 2 to move to the other end in the movement range of the output shaft to obtain the reading of the encoder 3, so that two readings of the encoder 3 at two ends of the rotation range are obtained. It can be understood that when the first reading and the second reading are obtained, the output shaft of the motor 2 is controlled to move through the control device, the intervention of operators is not needed, the user experience is improved, the accuracy of the movement of the output shaft of the motor 2 is controlled through the control device is higher, and the obtained first reading and second reading are more accurate.
S113: and combining the zero crossing state and the reading to obtain a zero crossing threshold value.
In some embodiments, the method for obtaining the zero crossing threshold value by combining the zero crossing state and the reading is as follows:
the readings of the encoder at both ends in the rotation range include a first value and a second value, the first value and the second value are single positive values of the first reading and the second reading respectively, the zero crossing threshold of the encoder 3 is any value (including the first value and the second value) between the first value and the second value according to zero crossing when the encoder 3 rotates in the rotation range, and the zero crossing threshold of the encoder 3 is determined to be smaller than the first value or larger than the second value according to zero crossing when the encoder 3 rotates in the rotation range, wherein the first value is smaller than the second value.
If the zero crossing threshold is any value between the first value and the second value. In some embodiments, the method of obtaining the zero crossing threshold includes obtaining a single positive turn (first and second values) of the readings of the encoder 3 across the range of rotation, and determining the zero crossing threshold based on the two single positive turns.
In some embodiments, a single positive value of the reading of the encoder 3 across the range of rotation may be obtained by: acquiring readings of two ends of the encoder 3 in a rotation range, namely a first reading and a second reading; and converting the first reading into a single positive value to obtain a first value, and converting the second reading into a single positive value to obtain a second value.
As shown in fig. 8, the method for converting the first reading and the second reading into single circle positive values comprises the following steps:
if the first reading (or the second reading) is smaller than zero, a single positive value of the first reading (or the second reading) is configured as a value obtained by adding the resolution of the encoder 3 to the first reading (or the second reading).
If the first reading (or the second reading) is greater than the value obtained by the resolution of the encoder 3, a single positive value of the first reading (or the second reading) is configured as the value obtained by subtracting the resolution of the encoder 3 from the first reading (or the second reading).
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 the encoder 3, a single positive turn of the first reading (or the second reading) is configured as the first reading (or the second reading).
For example, as shown in fig. 9, when the motor 2 is powered on, the detecting member 32 detects that the code wheel 31 is located at the right side of the scale 0, the code wheel 31 is rotated counterclockwise to obtain a first reading when it cannot be rotated, the first reading is 904, then the code wheel 31 is rotated clockwise to obtain a second reading when it cannot be rotated, the second reading is-96, and because the first reading is equal to or greater than 0 and less than the value obtained by the resolution of the encoder 3, the single positive value of the first reading is configured as 904, and the second reading is less than 0, the single positive value of the second reading is configured as-96+4096, i.e., the single positive value of the second reading is configured as 4000.
A single positive value of the first reading and the second reading, i.e. the first value and the second value, is obtained according to the method described above. In other words, a single positive value of the reading of the encoder 3 at both ends of the rotation range includes a first value and a second value.
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. The zero-crossing threshold value may be an integer or a non-integer, and may be any value (excluding the first value and the second value) between the first value and the second value. Of course, in other embodiments, the zero crossing threshold may be the first value or the second value.
It should be noted that, a single positive value of the readings of the encoder 3 at both ends of the rotation range may be obtained in step S111.
If the encoder 3 does not pass through the zero point when rotating within the rotation range, the zero crossing threshold value is smaller than the first value or larger than the second value, wherein the first value is smaller than the second value. The zero crossing threshold may be, for example, 0, but may also be a letter or a special symbol.
Of course, in other embodiments, S110 may also be a zero crossing threshold obtained according to zero crossing or no zero crossing when the encoder rotates within the rotation range. If the encoder passes through the zero point when rotating in the rotation range, acquiring the zero crossing threshold value as any value between the first value and the second value (including the first value and the second value). If the encoder does not pass through the zero point when rotating in the rotation range, acquiring that the zero crossing threshold is smaller than a first value or larger than a second value, wherein the first value is smaller than the second value.
And S120, in response to the determination of the encoder zero position, reading the zero position value of the encoder 3.
In some embodiments, in response to determining the encoder zero position, the operator moves the output shaft of the motor 2 to the initial position, then zero fixes the encoder 3, for example, the encoder 3 may be zero fixed by a limiting structure such as a pin, and then clicks on the input interface of the surgical robot to read the encoder zero value. The control device responds to click information of the input interface, and reads the zero digit value of the encoder, wherein the click information is the determination of the encoder zero digit.
The zero position of the encoder 3 is also the zero position of the output shaft of the motor 2, that is, the initial position of the output shaft of the motor 2. The initial positions of the output shafts of all the motors 2 of the operation section 10 constitute the initial position of the operation section 10. After the zero value of the encoder 3 when it is in the zero position is obtained, the encoder 3 can be released from the zero position so that the output shaft of the subsequent motor 2 can rotate freely within the rotation range.
In this embodiment, step S110 is performed before step S120, i.e. the zero crossing threshold of the encoder 3 is acquired, and then the reading of the encoder 3 is acquired when the encoder 3 is at the zero position. Of course, in other embodiments, step S120 may also be performed before step S110, that is, the readings of the encoder 3 are obtained when the encoder 3 is at the zero position, and then the zero crossing threshold of the encoder 3 is obtained.
And S130, correcting the zero-position numerical value according to the zero-crossing threshold value to obtain a corrected zero-position numerical value.
In some embodiments, if the zero crossing threshold is any value between the first value and the second value (including the first value and the second value), the zero value is compared with the zero crossing threshold, and the zero value is corrected according to the comparison result.
The zero-crossing threshold values are different, and the zero-crossing values are different from zero-crossing threshold values in comparison mode. In this embodiment, the zero crossing threshold is any value (excluding the first value and the second value) between the first value and the second value, 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, as shown in fig. 10, the zero position value is compared with the zero crossing threshold, and the zero position value is corrected according to the comparison result, where the obtaining the corrected zero position value specifically includes: if the zero value is greater than the zero threshold, i.e. the zero value is greater than any value between the first value and the second value, configuring the corrected zero value as the zero value minus the value obtained by the resolution of the encoder 3; the zero value is less than the zero threshold, i.e. the zero value is less than any value between the first value and the second value, the corrected zero value is configured as the zero value.
For example, as shown in fig. 11, the first value is 904 and the second value is 4000. The zero-crossing threshold is any value between the first value and the second value (excluding the first value and the second value), for example, 904.5, 905, 2000, (4000-904)/2=2452, 3999, 3999.8, and for convenience of taking the value, the zero-crossing threshold is an average value 2452 of the first value and the second value. When the motor 2 is powered on, the detecting member 32 detects that the code wheel 31 is positioned at the left side of the scale 0, the code wheel 31 rotates anticlockwise to a zero position, and after the code wheel 31 is fixed at the position, the reading of the encoder 3 at the zero position is 4496, namely the zero position value is 4496. Zero value 4496 is greater than zero threshold 2452, then zero value = 4496-4096 is corrected, i.e. the corrected zero value is configured to 400.
As shown in fig. 12, when the motor 2 is powered on, the detecting member 32 detects that the code wheel 31 is located at the right side of the scale 0, the code wheel 31 rotates clockwise to the zero position, and after being fixed at this position, the reading of the encoder 3 at the zero position is 400, that is, the zero position value is 400. Zero value 400 is less than zero threshold 2452, then the corrected zero value is configured to 400.
Therefore, in this embodiment, by comparing the zero-position value with the zero-crossing threshold value, the zero-position value is corrected according to the comparison result, so as to obtain the corrected zero-position value, no matter whether the code wheel 31 is detected to be positioned at the left or right position of the scale 0 when the motor 2 is powered on, the corrected zero-position value is the same, and the situation that the corrected zero-position value is different due to different powered-on positions is avoided, so that the motor 2 can return to zero accurately in the subsequent steps is ensured.
And if the zero crossing threshold is smaller than the first value or larger than the second value, wherein the first value is smaller than the second value, configuring the corrected zero position value as the zero position value.
And S140, in response to the encoder 3 being powered up again, reading the current value of the encoder 3.
In some embodiments, when the encoder 3 is re-energized, the output shaft of the motor 2 is also re-energized, and the output shaft of the motor 2 needs to return to the initial position after each re-energization, i.e. the motor 2 returns to zero, so as to calculate the rotation information of the output shaft of the motor 2. When the control device receives information that the encoder 3 is powered up again, the current value of the encoder 3 is read in response to this information.
It should be noted that, in response to the encoder 3 being powered up again, reading the current value of the encoder 3 means that the current value of the encoder 3 needs to be read every time the encoder 3 is powered up again after being powered down, so as to achieve the return to zero of the motor 2 in the subsequent step.
And S150, correcting the current value according to the zero crossing threshold value to obtain a corrected value.
In some embodiments, if the zero crossing threshold is any value between the first value and the second value (excluding the first value and the second value), the current value is compared with the zero crossing threshold, and the current value is corrected according to the comparison result.
As shown in fig. 13, in this embodiment, comparing the current value with the zero-crossing threshold value, and correcting the current value according to the comparison result specifically includes: if the current value is greater than the zero crossing threshold, i.e. the current value is greater than any value between the first value and the second value, configuring the corrected value as the value obtained by subtracting the resolution of the encoder 3 from the current value; if the current value is less than the zero crossing threshold, i.e. 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.
For example, as shown in fig. 14, when the motor 2 is powered on, for example, the encoder 3 reads 4060, i.e., the current value is 4060, and the zero crossing threshold is 2452. The current value 4060 is greater than the zero crossing threshold 2452, the correction value is configured to 4060-4096, i.e., the correction value is configured to-36.
If 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, the correction value is configured to be the current value.
And S160, obtaining the return-to-zero stroke of the motor 2 according to the correction value and the correction zero position value.
In some embodiments, the method of obtaining a return-to-zero stroke of the motor 2 comprises: firstly, an angle difference is obtained according to the correction value and the correction zero position value, and then a stroke is obtained according to the angle difference.
By way of example, the angular difference may be obtained by equation 1, equation 1:
angle difference= (correction value-correction zero value) ×360/value obtained by the resolution of the encoder 3.
As an example, as in fig. 15, the angular difference= (-36-400) ×360/4096= -38.32 degrees.
The stroke can be obtained by equation 2, equation 2:
travel = current angle of motor 2-angle difference.
The current angle of the motor 2 is obtained by an incremental encoder inside the motor 2.
S170, the rotation stroke of the driving motor 2 returns to zero.
In some embodiments, after the control device obtains the stroke, the driving motor 2 rotates the stroke, and the motor 2 reaches the zero position, so as to complete zero returning. In this embodiment, after the motor 2 finishes the zeroing, the control device drives the motor 2 to perform the reciprocating motion to test whether the motor 2 moves normally, then drives the motor 2 to return to zero again, and if the motor 2 returns to the zero position after the reciprocating motion, it indicates that the motor 2 returns to zero normally. By testing whether the motor 2 moves normally or not, the surgical robot is used for removing the obstacle before the operation, so that the operation is ensured to be carried out smoothly. Of course, in other embodiments, the control device may not drive the motor 2 to reciprocate and return to zero after the motor 2 completes the return to zero.
According to the zero-returning method of the motor 2, the zero-crossing threshold value is obtained according to the readings of the encoder 3 at the two ends in the rotation range, the zero-crossing threshold value is corrected according to the zero-crossing threshold value, the corrected zero-crossing value and the corrected value are obtained respectively, and then the zero-returning stroke of the motor 2 is obtained through correcting the zero-crossing value and the corrected value.
It should be noted that, in the installation process of coupling the encoder 3 to the output shaft of the motor 2, the encoder 3 can be prevented from passing through a zero point when rotating in the rotation range, but the encoder 3 is ensured not to pass through the zero point when rotating in the rotation range in the installation process, the position of the encoder 3 needs to be debugged for many times, the readings of the two ends of the encoder 3 in the rotation range also need to be obtained, the installation process is very complicated, the production efficiency of assembly personnel is reduced, and the time cost of products is increased. The application solves the zero-crossing problem during the rotation of the encoder 3 by the method of zeroing the motor 2, ensures the accurate zeroing of the motor 2, does not need to debug the position of the encoder 3 when the encoder 3 is installed by an assembly staff, improves the production efficiency of products and reduces the production cost of the products.
Of course, in other embodiments, the method of zeroing the motor 2 may further include steps S110, S120, S130, S140, S150, S160, and S170, except that the encoder 3 may or may not pass through the zero point when rotating within the rotation range, and the control device may manually input the zero point by an operator, and may acquire the zero-crossing threshold value according to the information by acquiring the information manually input by the operator. Of course, the encoder 3 may or may not pass through a zero point when rotating within the rotation range, and may be transmitted to the control device by other means.
The application also provides another method of zeroing the motor 2, which is substantially the same as the method shown in fig. 6. The difference is that the present implementation differs in the way the zero value is corrected from the current value. Referring to fig. 16 and 17, fig. 16 is a flowchart of another method for correcting a zero value according to the present embodiment, and fig. 17 is a flowchart of another method for correcting a current value according to the present embodiment.
In this embodiment, as shown in fig. 16, if the zero crossing threshold is any value between the first value and the second value (excluding the first value and 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, where the obtaining the corrected zero position value specifically includes: if the zero position value is greater than the zero crossing threshold, i.e., the zero position value is greater than any value between the first value and the second value, configuring the corrected zero position value as the zero position value; if the zero value is smaller than the zero threshold, i.e. the zero value is smaller than any value between the first value and the second value, the corrected zero value is configured as the zero value plus the value obtained by the resolution of the encoder 3.
For example, as shown in fig. 18, the first value is 904, the second value is 4000, the resolution of the encoder 3 obtains a value of 4096, and the zero crossing threshold is 2452. When the motor 2 is powered on, the detecting member 32 of the code wheel 31 detects that the code wheel 31 is positioned at the left side of the scale 0, the code wheel 31 rotates anticlockwise to a zero position, and after the code wheel 31 is fixed at the position, the reading of the encoder 3 at the zero position is 4496, namely the zero position value is 4496. Zero value 4496 is greater than zero threshold 2452, then the corrected zero value is configured as 4496.
As shown in fig. 19, when the motor 2 is powered on, the code wheel 31 detecting member 32 detects that the code wheel 31 is located at the right position of the scale 0, the code wheel 31 rotates clockwise to the zero position, and after being fixed at the position, the reading of the encoder 3 is 400, that is, the zero value is 400. Zero value 400 is less than zero threshold 2452, then zero value = 400+4096 is corrected, i.e., the corrected zero value is configured as 4496.
Therefore, in this embodiment, by comparing the zero-position value with the zero-crossing threshold value, the zero-position value is corrected according to the comparison result, so as to obtain the corrected zero-position value, no matter whether the code wheel 31 detects that the code wheel 31 is located at the left position or the right position of the scale 0 when the motor 2 is powered on, the corrected zero-position value is the same, and no situation that the corrected zero-position value is different due to different power-on positions can occur.
As shown in fig. 17, the method of correcting the current value includes: if the current value is greater than the zero crossing threshold, i.e., the current value is greater than any value between the first value and the second value (excluding the first value and the second value), configuring the corrected value as the current value; if the current value is smaller than the zero crossing threshold, i.e. the current value is smaller than any value between the first value and the second value, the correction value is configured as the current value plus the value obtained by the resolution of the encoder 3.
For example, as shown in fig. 20, when the motor 2 is powered on, for example, the encoder 3 reads 4060, i.e., the current value is 4060, and the zero crossing threshold is 2452. The current value 4060 is greater than the zero crossing threshold 2452, the correction value is configured to 4060.
Therefore, the angle difference in this embodiment= (4060-4496) ×360/4096= -38.32 degrees.
The method for correcting the zero value and the current value in this embodiment is different from the embodiment shown in fig. 6, but the angle differences obtained in this embodiment are the same as those obtained in the embodiment shown in fig. 6, so that it can be known that the method for correcting the zero value and the current value in this embodiment and the embodiment shown in fig. 6 can solve the problem that the encoder 3 passes through the zero point when rotating within the rotation range, and ensure that the motor 2 returns to zero accurately.
And if the zero crossing threshold is smaller than the first value or larger than the second value, configuring the corrected zero position value as the zero position value and configuring the corrected value as the current value.
It should be noted that, the zero-position value and the current value are corrected by the same method, and the zero-crossing threshold is the same, so that the effect of accurately resetting the motor 2 can be achieved.
The application also provides another method of zeroing the motor 2, which is substantially the same as the method shown in fig. 6. The difference is that the zero crossing threshold of the present implementation is different, and the method of correcting the zero value and the current value is also different. Referring to fig. 21 and 22, fig. 21 is a flowchart of another method for correcting a zero value according to the present embodiment, and fig. 22 is a flowchart of another method for correcting a current value according to the present embodiment.
In this embodiment, as shown in fig. 21, when the zero crossing threshold is a first value and the first value is smaller than a 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, where the obtaining the corrected zero position value specifically includes: if the zero value is greater than the zero threshold, i.e. the zero value is greater than the first value, configuring the corrected zero value as the value obtained by subtracting the resolution of the encoder 3 from the zero value; and if the zero value is smaller than or equal to the zero threshold, namely, the zero value is smaller than or equal to the first value, configuring the corrected zero value into the zero value.
As an example, as shown in fig. 11, the first value is 904, the second value is 4000, the resolution of the encoder 3 obtains a value of 4096, and the zero crossing threshold is the first value 904. When the motor 2 is powered on, the code wheel 31 detects that the code wheel 31 is positioned at the left side of the scale 0 and the scale detecting piece 32 detects that the code wheel 31 is positioned at the left side of the scale 0, the code wheel 31 rotates anticlockwise to a zero position, and after the code wheel 31 is fixed at the zero position, the reading of the encoder 3 at the zero position is 4496, namely the zero position value is 4496. Zero value 4496 is greater than zero crossing threshold 904, then zero value = 4496-4096 is corrected, i.e., the corrected zero value is configured to 400.
As shown in fig. 12, when the motor 2 is powered on, the code wheel 31 detects that the code wheel 31 is located at the position where the scale detecting member 32 detects that the code wheel 31 is located at the right side of the scale 0, the code wheel 31 rotates clockwise to the zero position, after being fixed at the position, the reading of the encoder 3 is 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, and the corrected zero position value is 400.
Therefore, in this embodiment, by comparing the zero-position value with the zero-crossing threshold value, the zero-position value is corrected according to the comparison result, so as to obtain the corrected zero-position value, no matter whether the code wheel 31 detects that the code wheel 31 is located at the left position or the right position of the scale 0 when the motor 2 is powered on, the corrected zero-position value is the same, and no situation that the corrected zero-position value is different due to different power-on positions can occur.
As shown in fig. 22, the method of correcting the current value includes: if the current value is greater than the zero crossing threshold, i.e. the current value is greater than the first value, configuring the corrected value as the current value minus the value obtained by the resolution of the encoder 3; the current value is less than or equal to the zero crossing threshold, i.e. the current value is less than or equal to the first value, the correction value is configured as the current value.
For example, as shown in fig. 23, when the motor 2 is powered on, for example, the encoder 3 reads 904, i.e., the current value is 904. If the zero crossing threshold is 904 and the current value 904 is less than or equal to the zero crossing threshold 904, the correction value is configured as 904.
Therefore, the angle difference in this embodiment= (904-400) x 360/4096= 44.29 degrees.
And if the zero crossing threshold is smaller than the first value or larger than the second value, configuring the corrected zero position value as the zero position value and configuring the corrected value as the current value.
Of course, in other embodiments, when the zero crossing threshold is a first value and the first value is smaller than the second value, the method of correcting the zero value may further be: if the zero position value is greater than the zero crossing threshold, namely the zero position value is greater than the first value, configuring the corrected zero position value into the zero position value; the zero value is less than or equal to the zero crossing threshold, i.e. the zero value is less than or equal to the first value, the corrected zero value is configured as the zero value plus the value obtained by the resolution of the encoder 3.
The method for correcting the current value can also be as follows: if the current value is greater than the zero crossing threshold, i.e. the current value is greater than the first value, configuring the corrected value as the current value; the current value is less than or equal to the zero crossing threshold, i.e. the current value is less than or equal to the first value, the correction value is configured as the current value plus the value obtained by the resolution of the encoder 3.
The application also provides another method of zeroing the motor 2, which is substantially the same as the method shown in fig. 6. The difference is that the zero crossing threshold of the present implementation is different, and the method of correcting the zero value and the current value is also different. Referring to fig. 24 and 25, fig. 24 is a flowchart of another method for correcting a zero value according to the present embodiment, and fig. 25 is a flowchart of another method for correcting a current value according to the present embodiment.
In this embodiment, as shown in fig. 24, when the zero crossing threshold is a second value and the first value is smaller 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, where the obtaining the corrected zero position value specifically includes: if the zero value is greater than or equal to the zero threshold, i.e. the zero value is greater than or equal to the second value, configuring the corrected zero value as the zero value minus the value obtained by the resolution of the encoder 3; and if the zero value is smaller than the zero threshold, namely, the zero value is smaller than the second value, configuring the corrected zero value into the zero value.
As an example, as shown in fig. 11, the first value is 904, the second value is 4000, the resolution of the encoder 3 obtains a value of 4096, and the zero crossing threshold is 4000. When the motor 2 is powered on, the code wheel 31 detects that the code wheel 31 is positioned at the left side of the scale 0 and the scale detecting piece 32 detects that the code wheel 31 is positioned at the left side of the scale 0, the code wheel 31 rotates anticlockwise to a zero position, and after the code wheel 31 is fixed at the zero position, the reading of the encoder 3 at the zero position is 4496, namely the zero position value is 4496. Zero value 4496 is greater than or equal to zero crossing threshold 4000, then zero value = 4496-4096 is corrected, i.e. the corrected zero value is configured to 400.
As shown in fig. 12, when the motor 2 is powered on, the code wheel 31 detects that the code wheel 31 is located at the position where the scale detecting member 32 detects that the code wheel 31 is located at the right side of the scale 0, the code wheel 31 rotates clockwise to the zero position, and after the code wheel 31 is fixed at the zero position, the reading of the encoder 3 is 400, that is, the zero position value is 400. The zero value 400 is less than the zero crossing threshold 4000, the corrected zero value is configured to 400.
Therefore, in this embodiment, by comparing the zero-position value with the zero-crossing threshold value, the zero-position value is corrected according to the comparison result, so as to obtain the corrected zero-position value, no matter whether the code wheel 31 detects that the code wheel 31 is located at the left position or the right position of the scale 0 when the motor 2 is powered on, the corrected zero-position value is the same, and no situation that the corrected zero-position value is different due to different power-on positions can occur.
As shown in fig. 25, correcting the current value specifically includes: if the current value is greater than or equal to the zero crossing threshold, i.e. the current value is greater than or equal to the second value, the correction value is configured as the current value minus the value obtained by the resolution of the encoder 3; the current value is less than the zero crossing threshold, i.e. the current value is less than the second value, the correction value is configured as the current value.
For example, as shown in fig. 26, when the motor 2 is powered on, for example, the encoder 3 reads 4000, i.e., the current value is 4000. The current value 4000 is equal to or greater than the zero crossing threshold 4000, the correction value is configured to 4000-4096, i.e., the correction value is configured to-96.
Therefore, the angular difference in this embodiment= (-96-400) ×360/4096= -43.59 degrees.
And if the zero crossing threshold is smaller than the first value or larger than the second value, configuring the corrected zero position value as the zero position value and configuring the corrected value as the current value.
Of course, in other embodiments, when the zero crossing threshold is the second value and the first value is smaller than the second value, the method of correcting the zero value may further be: if the zero position value is greater than or equal to the zero crossing threshold, namely the zero position value is greater than or equal to the second value, configuring the corrected zero position value into the zero position value; the zero value is less than the zero threshold, i.e. the zero value is less than the second value, the corrected zero value is configured as the zero value plus the value obtained by the resolution of the encoder 3.
The method for correcting the current value can also be as follows: the current value is greater than or equal to the zero crossing threshold, i.e., the current value is greater than or equal to the second value, then configuring the corrected value as the current value; the current value is smaller than the zero crossing threshold, i.e. the current value is smaller than the second value, the correction value is configured as the current value plus the value obtained by the resolution of the encoder 3.
The application also provides a computer readable storage medium storing a computer program configured to be loaded by a processor and to perform the steps of the method of achieving zeroing of a motor 2 as described in any of the embodiments above.
The application also provides a motor 2 zeroing device of the surgical robot, which comprises: 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 a processor and to perform the steps of the method of achieving zeroing of the electric machine 2 as described in any of the embodiments above.
In some embodiments, as shown in fig. 27, the motor 2 zeroing apparatus may include: a processor (processor) 501, a communication interface (Communications Interface) 502, a memory (memory) 503, and a communication bus 504.
The processor 501, the communication interface 502, and the memory 503 perform communication with each other via the communication bus 504.
A communication interface 502 for communication with other devices such as various types of sensors or motors 2 or solenoid valves or other network elements of clients or servers etc.
The processor 501 is configured to execute the program 505, and may specifically perform relevant steps in the above-described method embodiments.
In particular, program 505 may comprise program code comprising computer operating instructions.
The processor 505 may be a central processing unit CPU, or a specific integrated circuit ASIC (Application Specific Integrated Circuit), or one or more integrated circuits configured to implement embodiments of the present invention, or a graphics processor GPU (Graphics Processing Unit). The one or more processors included in the detection device may be the same type of processor, such as one or more CPUs, or one or more GPUs; but may also be different types of processors such as one or more CPUs and one or more GPUs.
A memory 503 for storing a program 505. The memory 503 may comprise high-speed RAM memory or may further comprise non-volatile memory (non-volatile memory), such as at least one disk memory.
The program 505 may be particularly useful for causing the processor 501 to: acquiring an operation image of an operation area acquired by a camera arm; identifying a characteristic part of the operation arm from the operation image, and taking the identified characteristic part as a first characteristic part; acquiring a control instruction input by a control part, and acquiring a kinematic model of the surgical arm according to the control instruction; obtaining a second characteristic part matched with the first characteristic part in the kinematic model; obtaining actual motion information of the first characteristic part and obtaining target motion information of the second characteristic part; the actual motion information and the target motion information are compared to judge whether the surgical robot has a motion error or not.
The program 505 may also be specifically operable to cause the processor 501 to: acquiring a monitoring image of a camera arm and/or a surgical arm acquired by the second image end instrument; identifying characteristic parts of the camera arm and/or the operation arm from the monitoring image, and taking the identified characteristic parts as first characteristic parts; acquiring a control instruction input by a control part, and acquiring a kinematic model of the surgical arm according to the control instruction; obtaining a second characteristic part matched with the first characteristic part in the kinematic model; at least a second characteristic part is displayed in the display for comparison with the first characteristic part so as to judge whether the camera arm and/or the operation arm have motion errors.
The technical features of the above embodiments may be arbitrarily combined, and all possible combinations of the technical features in the above embodiments are not described for brevity of description, however, as long as there is no contradiction between the combinations of the technical features, they should be considered as the scope of the description.
The foregoing description of the embodiments of the present invention is merely an optional embodiment of the present invention, and is not intended to limit the scope of the invention, and all equivalent structural modifications made by the present invention in the light of the present invention, the description of which and the accompanying drawings, or direct/indirect application in other related technical fields are included in the scope of the invention.

Claims (12)

1. A surgical robot, the surgical robot comprising:
the operation part comprises at least one joint assembly, the joint assembly comprises a driving mechanism, the driving mechanism comprises a motor and an encoder, the encoder is coupled with an output shaft of the motor, the output shaft of the motor has a rotation range, and the encoder is a single-circle absolute value encoder;
a control device coupled to the drive mechanism and configured to perform the steps of:
acquiring a zero crossing threshold according to readings of the encoder at two ends in the rotation range;
Reading a zero value of the encoder in response to the determination of the encoder zero;
correcting the zero-position numerical value according to the zero-crossing threshold value to obtain a corrected zero-position numerical value;
reading a current value of the encoder in response to the encoder being powered up again;
correcting the current value according to the zero crossing threshold value to obtain a corrected value;
obtaining the return-to-zero stroke of the motor according to the correction value and the correction zero position value;
and driving the motor to rotate the stroke to return to zero.
2. The surgical robot of claim 1, wherein the control device is configured to perform, in the step of obtaining a zero crossing threshold from readings of the encoder at both ends of the range of rotation:
acquiring readings of two ends of the encoder in the rotation range;
determining a zero crossing state of the encoder when rotating within the rotation range according to the reading;
and combining the reading and the zero crossing state to obtain the zero crossing threshold value.
3. A surgical robot as claimed in claim 2, wherein the control means is configured to perform, in the step of determining a zero crossing condition of the encoder as it rotates within the rotation range from the readings:
Obtaining two readings of the encoder at two ends of the rotation range, wherein if one of the two readings is smaller than zero or one of the two readings is larger than a value obtained by the resolution of the encoder, the encoder passes through the zero point in the rotation range, and if the reading is larger than or equal to zero and smaller than the value obtained by the resolution of the encoder, the encoder does not pass through the zero point in the rotation range.
4. A surgical robot as claimed in any one of claims 1 to 3, wherein the readings of the encoder at both ends of the range of rotation comprise a first value and a second value;
the correcting the zero value according to the zero crossing threshold value comprises:
if the zero crossing threshold is any value between the first value and the second value, comparing the zero position value with the zero crossing threshold, and correcting the zero position value according to a comparison result;
said correcting said current value according to said zero crossing threshold comprises:
and if the zero crossing threshold is any value between the first value and the second value, comparing the current value with the zero crossing threshold, and correcting the current value according to a comparison result.
5. A surgical robot as claimed in claim 4, wherein the control means is configured to perform, in the step of comparing the zero value with the zero crossing threshold value and correcting the zero value based on the comparison result:
if the first value is smaller than the second value, the zero crossing threshold is the first value, and the zero crossing value is larger than the zero crossing threshold, the corrected zero crossing value is configured to be a value obtained by subtracting the resolution of the encoder from the zero crossing value; and if the zero value is smaller than or equal to the zero crossing threshold value, configuring the corrected zero value into the zero value.
6. A surgical robot as claimed in claim 4, wherein the control means is configured to perform, in the step of comparing the zero value with the zero crossing threshold value and correcting the zero value based on the comparison result:
if the first value is smaller than the second value, the zero crossing threshold is the second value, and the zero position value is larger than or equal to the zero position threshold, the corrected zero position value is configured to be a value obtained by subtracting the resolution of the encoder from the zero position value; and if the zero position value is smaller than the zero crossing threshold value, configuring the corrected zero position value into the zero position value.
7. A surgical robot as claimed in claim 4, wherein the control means is configured to perform, in the step of comparing the zero value with the zero crossing threshold value and correcting the zero value based on the comparison result:
if the first value is smaller than the second value, the zero crossing threshold is larger than the first value and smaller than the second value, and the zero position value is larger than the zero crossing threshold, the corrected zero position value is configured to be a value obtained by subtracting the resolution of the encoder from the zero position value; and if the zero position value is smaller than the zero crossing threshold value, configuring the corrected zero position value into the zero position value.
8. A surgical robot as claimed in claim 7, wherein the control means is configured to perform, in the step of comparing the zero value with the zero crossing threshold value and correcting the zero value based on the comparison result:
if the current value is greater than the zero crossing threshold, configuring the corrected value to be the current value minus the value obtained by the resolution of the encoder; and if the current value is smaller than the zero crossing threshold value, configuring the correction value into the current value.
9. A surgical robot as claimed in claim 4, wherein the control means is configured to perform, in the step of comparing the zero value with the zero crossing threshold value and correcting the zero value based on the comparison result:
if the first value is smaller than the second value, the zero crossing threshold is larger than the first value and smaller than the second value, and the zero position value is larger than the zero crossing threshold, the corrected zero position value is configured to be the zero position value; and if the zero position value is smaller than the zero crossing threshold value, configuring the corrected zero position value into a value obtained by adding the zero position value to the resolution of the encoder.
10. A surgical robot as claimed in any one of claims 1 to 3, wherein the readings of the encoder at both ends of the range of rotation comprise a first value and a second value;
the correcting the zero value according to the zero crossing threshold value comprises:
if the zero crossing threshold is less than the first value or greater than the second value, configuring the corrected zero value as the zero value;
said correcting said current value according to said zero crossing threshold comprises:
And if the zero crossing threshold is smaller than the first value or larger than the second value, configuring the correction value to be the current value.
11. A motor zeroing apparatus, wherein the motor zeroing apparatus comprises:
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 and executed by the processor:
acquiring a zero crossing threshold according to readings of the encoder at two ends in the rotation range; the encoder is coupled with 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-circle absolute value encoder.
Reading a zero value of the encoder in response to the determination of the encoder zero;
correcting the zero-position numerical value according to the zero-crossing threshold value to obtain a corrected zero-position numerical value;
reading a current value of the encoder in response to the encoder being powered up again;
correcting the current value according to the zero crossing threshold value to obtain a corrected value;
obtaining the return-to-zero stroke of the motor according to the correction value and the correction zero position value;
And driving the motor to rotate the stroke to return to zero.
12. A computer readable storage medium storing a computer program, the computer program configured to be loaded and executed by a processor to:
acquiring a zero crossing threshold according to readings of the encoder at two ends in the rotation range; the encoder is coupled with 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-circle absolute value encoder.
Reading a zero value of the encoder in response to the determination of the encoder zero;
correcting the zero-position numerical value according to the zero-crossing threshold value to obtain a corrected zero-position numerical value;
reading a current value of the encoder in response to the encoder being powered up again;
correcting the current value according to the zero crossing threshold value to obtain a corrected value;
obtaining the return-to-zero stroke of the motor according to the correction value and the correction zero position value;
and driving the motor to rotate the stroke to return to zero.
CN202210462032.8A 2022-04-28 2022-04-28 Surgical robot, motor zeroing device, and storage medium Pending CN116999175A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210462032.8A CN116999175A (en) 2022-04-28 2022-04-28 Surgical robot, motor zeroing device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210462032.8A CN116999175A (en) 2022-04-28 2022-04-28 Surgical robot, motor zeroing device, and storage medium

Publications (1)

Publication Number Publication Date
CN116999175A true CN116999175A (en) 2023-11-07

Family

ID=88564045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210462032.8A Pending CN116999175A (en) 2022-04-28 2022-04-28 Surgical robot, motor zeroing device, and storage medium

Country Status (1)

Country Link
CN (1) CN116999175A (en)

Similar Documents

Publication Publication Date Title
JP5855423B2 (en) Surgery support device
CN108115683B (en) Calculation of calibration parameters for a robotic tool
US20210196397A1 (en) Method for bone registration and surgical robot
CN109109018B (en) Device and method for detecting working state of sensing equipment on mechanical arm, mechanical arm and medical robot
EP3685787B1 (en) Surgical robot system
EP2104455A2 (en) Haptic feedback medical scanning methods and systems
GB2589458A (en) A virtual reality surgical system including a surgical tool assembly with haptic feedback
JP7258516B2 (en) Calibration method and gripping system
EP3444078B1 (en) Method for tracking a hand-guided robot, hand-guided robot, computer program, and electronically readable storage medium
US9924855B2 (en) Endoscopic instrument
CN116999175A (en) Surgical robot, motor zeroing device, and storage medium
CN111936078B (en) Arm device, control method, and program
JP2018089759A (en) Robot system, positional relationship acquiring device, positional relationship acquiring method, and program
EP4219087A1 (en) Flexible mechanical arm control method and robot system
CN114274180A (en) Mechanical arm joint structure and control method and system
CN111920522B (en) Operation monitoring method and device
CN213851026U (en) Surgical robot
US20050187538A1 (en) Remote control device for a medical probe
CN117503363A (en) Self-calibration method of moving arm system and surgical robot system
CN116531107A (en) Force sensing device, medical instrument, medical control system and master-slave medical control system
JP2022549347A (en) Method and system for controlling flexible devices in the presence of abnormal sensor signals
CN216777221U (en) Force feedback mechanism suitable for blood vessel intervention operation
Guo et al. A novel master-slave robotic system with close loop control for vascular interventional surgery
Rhode Contact Force Prediction for a Robotic Transesophageal Ultrasound Probe via Operating Torque Sensing
CN117796920A (en) Mechanical arm joint structure, mechanical arm, medical system and data processing method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination