Robot position determination method and device and surgical robot system
By obtaining the relative position relationship between the terminal activity space and the target work space and the base of the robot, and determining and controlling the target position of the robot, the problem of low accuracy in determining the position of the surgical robot in the prior art is solved, and the operability of the robot in the operation is improved. sex.
Patent Information
- Application Number
- CN202311089373.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-25
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2043-08-25
AI Technical Summary
The existing surgical robot position determination method is not very accurate, which affects the operability of the robot during the operation.
By obtaining the relative positional relationship between the end active space and the base at the end and the relative positional relationship between the target working space and the base, the target position of the robot is determined and the robot is controlled to move to that position.
Improves the accuracy of the robot's position, thereby enhancing the operability of the robot during the surgery.
Smart Images

Figure CN119498950A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of robotics technology, and in particular to a robot position determination method, device and surgical robot system. Background Art
[0002] With the development of robotic technology, surgical robots are often used as the main auxiliary tools in preoperative planning, intraoperative guidance and operation during surgical medical procedures.
[0003] Before a surgical robot is used in a medical operation, it is usually necessary to place the robot in a suitable position to ensure that the working space of the robot arm is compatible with the surgical space, so as to improve the operability of the robot in the assisted surgery process. Existing planning methods usually rely on experience and feeling to determine the position of the robot, and the accuracy of the robot position determination is not high. Summary of the invention
[0004] Based on this, it is necessary to provide a robot position determination method, device and surgical robot system that can improve the robot position accuracy in order to address the above technical problems.
[0005] In a first aspect, the present application provides a robot position determination method, which is applied to a robot, wherein the robot comprises a base and a mechanical arm mounted on the base, wherein the mechanical arm comprises an end and a plurality of joints, and the method comprises:
[0006] Acquire a first relative position relationship between the terminal activity space and the base of the terminal;
[0007] Acquire a second relative position relationship between the target workspace and the base;
[0008] Based on the first relative position relationship and the second relative position relationship, a target position of the robot is determined and the robot is controlled to move to the target position.
[0009] In one embodiment, before obtaining the first relative position relationship between the terminal activity space and the base, the method includes:
[0010] Obtain the original activity space of the terminal; the original activity space includes multiple original posture point clouds, the original posture point clouds are obtained through the corresponding joint value set, and the joint value set is obtained through the joint values corresponding to multiple joints;
[0011] Determine the operable index for the terminal according to the set of joint values, and filter the original pose point cloud according to the operable index to obtain the target pose point cloud of the terminal;
[0012] According to the target posture point cloud of the terminal, the terminal activity space of the terminal is determined.
[0013] In one embodiment, determining an operational indicator for the end according to each joint value set includes:
[0014] Obtain a current joint value set from multiple sets of joint value sets; the current joint value set is any one of the multiple sets of joint value sets;
[0015] Confirm the joint boundary index value, end collision index value and joint singular configuration index value corresponding to the current joint value set;
[0016] Obtaining a first index weight corresponding to the joint boundary index value, a second index weight corresponding to the end collision index value, and a third index weight corresponding to the singular configuration index value;
[0017] According to the first index weight, the second index weight and the third index weight, the joint boundary index value, the end collision index value and the joint singular configuration index value are weighted respectively;
[0018] The smallest index value among the weighted joint boundary index value, terminal collision index value and joint singular configuration index value is used as the operable index of the terminal.
[0019] In one embodiment, determining the joint boundary indicator value includes:
[0020] From the current joint value set, obtain the current joint value and the current joint boundary value corresponding to the current joint; the current joint is any joint of the robotic arm; the current joint boundary value is the boundary value of the joint range corresponding to the current joint;
[0021] Determine how much the current joint value differs from the current joint boundary value;
[0022] According to the degree of difference, the joint boundary index value is obtained.
[0023] In one embodiment, determining the degree of difference between the current joint value and the current joint boundary value includes:
[0024] Get the joint maximum value and joint minimum value contained in the current joint boundary value;
[0025] Get the boundary difference between the joint maximum value and the joint minimum value;
[0026] Get the first difference between the maximum value of the joint and the current joint value, and the second difference between the current joint value and the minimum value of the joint;
[0027] Based on the boundary difference, the first difference, and the second difference, a degree of difference is determined.
[0028] In one embodiment, determining the end collision index value includes:
[0029] Based on the current joint value set, obtain the position and posture information of multiple robot arm links and ends; wherein the robot arm link is a link between two joints;
[0030] Determine the relative distances between the multiple robot arm links and a preset virtual collision model and between the end and the preset virtual collision model according to the posture information of the multiple robot arm links and the end; the virtual collision model is a virtual model of an object that has a collision risk with the robot arm;
[0031] According to each relative distance and the preset collision distance threshold, the end collision index value corresponding to the current joint value set is obtained.
[0032] In one embodiment, according to each relative distance and a preset collision distance threshold, an end collision index value corresponding to the current joint value set is obtained, including:
[0033] According to the ratio of each relative distance to the collision distance threshold, a collision index value corresponding to each relative distance is obtained;
[0034] The smallest collision index value among the multiple collision index values is used as the end collision index value corresponding to the current joint value set.
[0035] In one embodiment, determining the joint singular configuration indicator value includes:
[0036] Get the Jacobian matrix for the current set of joint values;
[0037] Based on the current joint value set and the Jacobian matrix, obtain the singular values corresponding to the current joint value set;
[0038] According to the singular value, the joint singular configuration index value corresponding to the current joint value set is obtained.
[0039] In one embodiment, determining the terminal activity space of the terminal according to the target posture point cloud of the terminal includes:
[0040] Determine a candidate activity space of the terminal according to the target posture point cloud of the terminal, the candidate activity space includes multiple candidate posture point clouds;
[0041] Get the distance and angle interval between each candidate pose point cloud;
[0042] Clustering each candidate pose point cloud according to the distance and the preset distance threshold, the angle interval and the preset angle interval threshold;
[0043] According to the multiple candidate pose point clouds obtained by clustering, the terminal activity space of the terminal is determined.
[0044] In one embodiment, determining a candidate activity space of the terminal according to the target pose point cloud of the terminal includes:
[0045] Obtain the joint ranges corresponding to multiple joints to form a maximum joint value set and a minimum joint value set;
[0046] Get the joint value set corresponding to each target pose point cloud;
[0047] If the operable index corresponding to the target pose point cloud satisfies the first preset condition, and the joint value set corresponding to the target pose point cloud satisfies the second preset condition, the target pose point cloud is used as the candidate pose point cloud; the first preset condition is used to characterize that the operable index is less than or equal to the preset operable index threshold; the second preset condition is used to characterize that the joint value set is greater than or equal to the minimum joint value set, and the joint value set is less than or equal to the maximum joint value set;
[0048] Based on the candidate pose point cloud, the candidate activity space of the terminal is generated.
[0049] In one embodiment, obtaining the original activity space of the terminal includes:
[0050] Obtaining the joint range corresponding to each joint, and generating multiple joint value sets based on the joint range corresponding to each joint; each joint value set includes the joint value corresponding to each joint, and each joint value satisfies the corresponding joint range;
[0051] Based on multiple joint value sets, generate corresponding multiple original pose point clouds;
[0052] Based on multiple original pose point clouds, the original activity space of the terminal is obtained.
[0053] In one embodiment, determining a target position of the robot based on the first relative position relationship and the second relative position relationship includes:
[0054] Determine a movement vector for indicating a change in the position of the robot and determine a target position of the robot according to the first relative position relationship and the second relative position relationship;
[0055] After determining the target position of the robot, control the robot to move to the target position.
[0056] In a second aspect, the present application further provides a robot position determination device, which is applied to a robot, wherein the robot comprises a base and a mechanical arm mounted on the base, wherein the mechanical arm comprises an end and a plurality of joints, and the device comprises:
[0057] A first relationship acquisition module, used to acquire a first relative position relationship between the terminal activity space and the base of the terminal;
[0058] A second relationship acquisition module, used to acquire a second relative position relationship between the target workspace and the base;
[0059] The target position determination module is used to determine the target position of the robot based on the first relative position relationship and the second relative position relationship and control the robot to move to the target position.
[0060] In a third aspect, the present application further provides a surgical robot system, which includes a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the above method when executing the computer program.
[0061] The above-mentioned robot position determination method, device and surgical robot system are applied to a robot, wherein the robot includes a base and a robotic arm installed on the base, the robotic arm includes an end and multiple joints, by obtaining a first relative position relationship between the end activity space of the end and the base, and obtaining a second relative position relationship between the target working space and the base; in this way, the target position of the robot can be accurately determined based on the first relative position relationship between the movable space of the end and the robot base, and the second relative position relationship between the target working position of the end and the robot base, so that the positioning information of the robot can be accurately and effectively determined, thereby improving the operability of the robot. BRIEF DESCRIPTION OF THE DRAWINGS
[0062] Figure 1 A schematic diagram of a flow chart of a method for determining a robot position in one embodiment;
[0063] Figure 2 It is a flowchart of the steps before obtaining the first relative position relationship between the terminal activity space and the base in one embodiment;
[0064] Figure 3 A schematic diagram of a flow chart of a step of confirming a joint boundary index value in one embodiment;
[0065] Figure 4 A schematic diagram of a flow chart of a step of confirming a terminal collision index value in an embodiment;
[0066] Figure 5a A schematic diagram of a terminal activity space obtained by clustering in one embodiment;
[0067] Figure 5b A schematic diagram of a terminal activity space obtained by clustering in another embodiment;
[0068] Figure 6a is a schematic diagram of an original activity space in one embodiment;
[0069] Figure 6b A schematic diagram of a terminal activity space in one embodiment;
[0070] Figure 7This is a schematic diagram of the structure of a preoperative positioning guidance interface in one embodiment;
[0071] Figure 8 A schematic diagram of the structure of a robot system in one embodiment;
[0072] Fig. 9 A schematic diagram of a robot's preoperative positioning guidance process method in one embodiment;
[0073] Fig.10a is a schematic diagram of the conversion relationship between multiple different coordinate systems in one embodiment;
[0074] Fig.10b is a schematic diagram of the direction distance relationship in one embodiment;
[0075] Fig.11 is a structural block diagram of a robot position determination device in one embodiment;
[0076] Fig.12 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION
[0077] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0078] Due to the requirements of clinical surgical precision and stability, surgical robots are widely used as the main auxiliary tools for preoperative planning, intraoperative guidance and operation. Since the robot's own range of motion is limited by joints and its configuration in the accessible space is different, its motion performance and operability are also different. When the robot moves to the joint boundary or singular configuration during surgery, its ability in each direction of motion will be greatly reduced, which will seriously affect the surgical process and results. Therefore, before surgery, the surgical space and the relative position of the space and the robot will be planned according to the robot's range of motion to improve the robot's operability during assisted surgery. Existing planning methods usually rely on experience and feeling to determine the robot's position information. Due to the many factors that affect the robot's operability, the existing robot position determination method cannot guarantee that the robot can successfully complete the auxiliary work in the workspace, resulting in low operability of the robot during surgery.
[0079] Based on the above reasons, the applicant provides a robot position determination method, device and surgical robot system that can improve the robot position accuracy.
[0080] In one embodiment, Figure 1As shown, a method for determining the position of a robot is provided, which is applied to a robot, wherein the robot includes a base and a mechanical arm mounted on the base, wherein the mechanical arm includes a terminal and a plurality of joints. In this embodiment, the method is applied to a terminal, and the terminal is used as an execution subject for illustration. It can be understood that the method can also be executed by a server, or by a system including a terminal and a server, and is implemented through the interaction between the terminal and the server.
[0081] In this embodiment, the method includes the following steps:
[0082] S102, obtaining a first relative position relationship between the terminal activity space and the base of the terminal.
[0083] The end may be the end of the robot's mechanical arm. The end may carry a working instrument so that the robot can assist in the work during the operation. The base may be a moving component for carrying the robot, and may be used to move the robot for positioning. The first relative position relationship may be the relative position relationship between the end activity space of the mechanical arm and the base of the robot. For example, the center position of the end activity space of the mechanical arm may be position A, and the position of the base of the robot may be position B. Then the first relative position relationship may be the relative position between position A and position B.
[0084] Exemplarily, the end activity space of the end of the robotic arm can be obtained. For example, the space in which the end of the robotic arm can move can be obtained through the movable index of the end of the robotic arm as the end activity space. As an example, the movable index of the end of the robotic arm can be determined by the joints of the robotic arm. For example, if the robotic arm includes 7 joints, the movable index of the end of the robotic arm can be determined based on the 7 joints.
[0085] The terminal activity space and the base may be transformed into the same coordinate system, and further the relative positional relationship between the terminal activity space and the base may be determined in the same coordinate system as the first positional relationship.
[0086] S104: Acquire a second relative position relationship between the target workspace and the base.
[0087] The target workspace may be a collection of target work positions of the end of the robot arm, and the target workspace may be a space where the end of the robot arm needs to work (move). The second relative position relationship may be a relative relationship between the position of the target workspace and the position of the base.
[0088] For example, before surgery, the space required for the robot's mechanical arm end to work and move can be determined as the target workspace, and the position of the target workspace can be determined. At the same time, the position of the robot's base can be determined before surgery. Based on the position of the target workspace and the position of the robot's base, the relative position relationship between the target workspace and the base can be obtained as the second relative position relationship.
[0089] S106: Based on the first relative position relationship and the second relative position relationship, determine a target position of the robot and control the robot to move to the target position.
[0090] The target position may be a target position where the robot needs to be placed. For example, the robot may be moved to the target position to achieve the positioning of the robot.
[0091] Exemplarily, the target position of the robot can be determined by the first relative position relationship between the terminal activity space and the base, and the second relative position relationship between the target workspace and the base. For example, the position information where the robot needs to be positioned can be determined by the terminal activity space, the target workspace, and the current position of the robot. As an example, the terminal activity space of the manipulator can be used as the desired target workspace, and the target position of the base of the robot can be determined based on the first relative position relationship between the terminal activity space and the base, and the position information of the target workspace. The robot can be further controlled to move to the target position to achieve accurate preoperative positioning of the robot, which can improve the operability of the robot.
[0092] In the present embodiment, the robot is applied to a robot including a base and a robotic arm mounted on the base, the robotic arm including an end and a plurality of joints, by obtaining a first relative position relationship between the end activity space of the end and the base, and obtaining a second relative position relationship between the target workspace and the base; in this way, the target position of the robot can be accurately determined based on the first relative position relationship between the movable space of the end and the base of the robot, and the second relative position relationship between the target work position of the end and the base of the robot, so that the positioning information of the robot can be accurately and effectively determined, thereby improving the operability of the robot.
[0093] In one embodiment, Figure 2 As shown, before obtaining the first relative position relationship between the terminal activity space and the base, it includes:
[0094] S202, obtaining the original activity space of the terminal; the original activity space includes a plurality of original posture point clouds, the original posture point clouds are obtained through corresponding joint value sets, and the joint value set is obtained through joint values corresponding to a plurality of joints.
[0095] Among them, the original activity space can be the space where the end of the robot arm can initially move or work. The original pose point cloud can be the pose point cloud contained in the original activity space, and the original activity space can be obtained based on multiple original pose point clouds. The original pose point cloud can be obtained through the corresponding joint value set. The joint value set can be obtained by the joint values corresponding to multiple joints; for example, the robot arm can include 7 joints, and the joint value set can include the joint values corresponding to the 7 joints respectively. The joint value of a joint can be any value within the range of joint values corresponding to the joint. A joint value set can obtain the joint configuration of a robot arm.
[0096] Exemplarily, the joint value of the joint can be randomly generated within the joint value range specified for each joint based on the Monte Carlo method. The joint value ranges corresponding to each joint can be the same or different, or partially the same. A joint value set can be obtained based on each group of randomly generated joint values; each group of joint values should include a joint value corresponding to each joint; for example, if there are 7 joints, each group of joint values includes randomly generated joint values corresponding to the 7 joints, that is, the 7 randomly generated joint values correspond to the 7 joints one by one, and a joint value set can be obtained based on the 7 joint values.
[0097] Based on multiple joint value sets, multiple original pose point clouds can be obtained. Further, based on multiple original pose point clouds, the original activity space corresponding to the end of the robot arm can be obtained. At this time, the original activity space can be an activity space obtained by limiting only the joint value range of each joint. The original activity space can be further restricted to obtain a highly operable end activity space of the robot's robot arm end, thereby improving the accuracy of the robot's position.
[0098] S204, determining an operable index for the terminal according to each joint value set, and screening the original pose point cloud according to the operable index to obtain a target pose point cloud of the terminal.
[0099] The operability index may be an index constraining the operation space of the end of the robot arm. The target pose point cloud may be a pose point cloud that satisfies the operability index of the end after screening.
[0100] Exemplarily, for each joint value set, the operational indicators corresponding to the joint value set can be determined based on the multiple joint values contained in the joint value set. If the operational indicators corresponding to the joint value set meet pre-set indicator conditions, the original pose point cloud corresponding to the joint value set can be used as the target pose point cloud.
[0101] Optionally, the operable indicators corresponding to the joint value sets can be determined according to the joint value sets, and based on the operable indicators corresponding to the joint value sets, the multiple joint value sets are screened, and the joint value sets that meet the preset operable indicator conditions are used as the target joint value sets, and the original pose point cloud corresponding to the target joint value set is used as the target pose point cloud of the terminal. The operable indicator condition can be a condition preset for the operable indicator.
[0102] S206, determining the terminal activity space of the terminal according to the target posture point cloud of the terminal.
[0103] Exemplarily, the terminal activity space of the terminal can be obtained based on the target posture point cloud of the terminal. For example, the terminal activity space of the terminal can be formed by the target posture point cloud of the terminal. The target posture point cloud included in the terminal activity space can all meet the preset operability index conditions.
[0104] In this embodiment, the original activity space of the terminal is obtained; and the original posture point cloud contained in the original activity space is screened according to the operable index to obtain the target posture point cloud of the terminal to determine the terminal activity space of the terminal. In this way, based on the operable index, the target posture point cloud is screened from the original activity space, which can ensure the operability of the robot, thereby ensuring the accuracy of the robot's position.
[0105] In one embodiment, determining the operable indicators for the end according to each joint value set includes:
[0106] Get the current joint value set from multiple sets of joint value sets; the current joint value set is any one of the multiple sets of joint value sets.
[0107] The current joint value set may be any one of multiple joint value sets.
[0108] Exemplarily, a joint value set is determined from multiple joint value sets as the current joint value set. For any joint value set, its corresponding operable index can be obtained through the embodiments provided in this application.
[0109] Confirm the joint boundary index value, end collision index value and joint singular configuration index value corresponding to the current joint value set.
[0110] The joint boundary index value may be a value of a joint boundary index corresponding to a joint value set. The end collision index value may be an index value corresponding to an end collision corresponding to a joint value set. The joint singular configuration index value may be an index value corresponding to a singular configuration corresponding to a joint value set.
[0111] Exemplarily, the joint boundary index value corresponding to the current joint value set, the end collision index value corresponding to the current joint value set, and the joint singular configuration index value corresponding to the current joint value set can be determined through the multiple joint values included in the current joint value set.
[0112] Obtain a first index weight corresponding to the joint boundary index value, a second index weight corresponding to the end collision index value, and a third index weight corresponding to the singular configuration index value.
[0113] The first indicator weight may be an indicator weight pre-set for the joint boundary indicator value, the second indicator weight may be an indicator weight pre-set for the end collision indicator value, and the third indicator weight may be an indicator weight pre-set for the singular configuration indicator value.
[0114] According to the first index weight, the second index weight and the third index weight, the joint boundary index value, the end collision index value and the joint singular configuration index value are weighted respectively.
[0115] Exemplarily, the joint boundary index value can be weighted using the first index weight to obtain a weighted joint boundary index value, the terminal collision index value can be weighted using the second index weight to obtain a weighted terminal collision index value, and the joint singular configuration index value can be weighted using the third index weight to obtain a weighted joint singular configuration index value.
[0116] The smallest index value among the weighted joint boundary index value, terminal collision index value and joint singular configuration index value is used as the operable index of the terminal.
[0117] Exemplarily, the minimum index value can be obtained from the weighted joint boundary index value, the weighted end collision index value and the weighted joint singular configuration index value, and the minimum index value can be used as the operable index of the end of the robotic arm corresponding to the current joint value set.
[0118] In one embodiment, the operable index of the end corresponding to the current joint value set may be determined according to the following expression (1):
[0119] KCI(q)=min(a×KCI JntLimit (q),b×KCI Singular (q),c×KCI Collision (q)(1)
[0120] Among them, KCI(q) is the operational index of the terminal corresponding to the current joint value set q; KCI JntLimit (q) is the joint boundary index value of the current joint value set q; a is the first index weight; KCI Singular(q) is the joint singular configuration index value of the current joint value set q; b is the second index weight; KCI Collision (q) is the end collision index value of the current joint value set q; c is the third index weight.
[0121] Optionally, the KCI(q) range can be [0, 1], KCI(q) = 0 means that the robot is in one or more of the above three situations under the joint configuration q of the current joint value set. At this time, the robot's operability is most limited. The closer KCI(q) is to 1, the higher the overall operability of the robot.
[0122] Optionally, the configuration of the robot in the workspace can be constrained according to the needs of assisted surgery. Taking a seven-degree-of-freedom robotic arm as an example, the constraint range of its redundant angle can be specified.
[0123] In this embodiment, the joint boundary index value, the terminal collision index value, and the joint singular configuration index value are weighted according to the first index weight, the second index weight, and the third index weight. And the smallest index value among the weighted joint boundary index value, the terminal collision index value, and the joint singular configuration index value is used as the operable index of the terminal. In this way, the smallest index value is used as the operable index from multiple weighted index values, and the effective range of the terminal of the manipulator can be limited, thereby improving the operability of the terminal of the manipulator, and then effectively obtaining the positioning information of the robot to improve the accuracy of the robot position.
[0124] In one embodiment, Figure 3 As shown, confirm the joint boundary index values, including:
[0125] S302, obtaining a current joint value and a current joint boundary value corresponding to a current joint from a current joint value set; the current joint is any joint of the robotic arm; the current joint boundary value is a boundary value of a joint range corresponding to the current joint;
[0126] S304, determining the degree of difference between the current joint value and the current joint boundary value;
[0127] S306, obtaining a joint boundary index value according to the degree of difference.
[0128] Among them, the current joint can be any joint of the robot. The current joint value can be the joint value corresponding to the current joint in the current joint value set. The current joint boundary value can be the boundary value of the joint range corresponding to the current joint; the current joint boundary value can be the maximum angle or position that the joint of the robot can reach. The current joint boundary value can include a joint upper boundary value and a shutdown lower boundary value; the joint upper boundary value can be the maximum angle or position that the joint of the robot can reach, and the shutdown lower boundary value can be the minimum angle or position that the joint of the robot can reach. The current joint boundary value can be a boundary value determined by the joint design of the robot. The specific upper or lower boundary depends on the design and structure of the robot, and the upper or lower boundary of different types of robot joints may be different. In general, the upper or lower boundary of the robot joint will be determined according to the purpose and work requirements of the robot during design to ensure that the robot can complete the required actions and tasks.
[0129] The difference degree may be a difference value between the current joint value and the current joint boundary value. The difference value may be a variance, a difference, etc.
[0130] Exemplarily, the current joint values corresponding to each joint and the boundary values of the joint ranges corresponding to each joint can be determined from the current joint value set. The degree of difference between each current joint value and the corresponding joint boundary value can be determined as the degree of difference corresponding to each joint. The joint boundary index value of the current joint value set can be obtained based on the degree of difference corresponding to each joint. For example, the degree of difference corresponding to each joint can be averaged to obtain the joint boundary index value of the current joint value set.
[0131] In this embodiment, the degree of difference between the joint value of each joint in the current joint value set and the joint boundary value of the joint can be determined; further, based on the degree of difference of each joint, the joint boundary index value of the current joint value set can be determined. In this way, the end activity space of the robot's mechanical arm can be effectively constrained, thereby improving the operability of the robot, which is conducive to accurately determining the robot's positioning, thereby improving the accuracy of the robot's position.
[0132] In one embodiment, determining the degree of difference between the current joint value and the current joint boundary value includes:
[0133] Get the joint maximum value and joint minimum value contained in the current joint boundary value;
[0134] Get the boundary difference between the joint maximum value and the joint minimum value;
[0135] Get the first difference between the maximum value of the joint and the current joint value, and the second difference between the current joint value and the minimum value of the joint;
[0136] Based on the boundary difference, the first difference, and the second difference, a degree of difference is determined.
[0137] Among them, the joint maximum value can be the maximum angle or position that the current joint can reach. The joint minimum value can be the minimum angle or position that the current joint can reach. The boundary difference can be the difference between the joint maximum value and the joint minimum value. The first difference can be the difference between the joint maximum value that the current joint can reach and the joint value of the current joint in the current joint value set. The second difference can be the difference between the joint value of the current joint in the current joint value set and the joint minimum value that the current joint can reach.
[0138] Exemplarily, the current joint boundary value includes a joint maximum value and a joint minimum value. The difference between the joint maximum value and the joint minimum value can be calculated as the boundary difference, the difference between the joint maximum value and the current joint value can be calculated as the first difference, and the second difference between the current joint value and the joint minimum value can be calculated. Further, the degree of difference can be obtained according to the boundary difference, the first difference, and the second difference.
[0139] In this embodiment, the boundary difference between the joint maximum value and the joint minimum value is obtained; the first difference between the joint maximum value and the current joint value, and the second difference between the current joint value and the joint minimum value are obtained; based on the boundary difference, the first difference and the second difference, the degree of difference is determined. The end activity space of the robot's mechanical arm can be effectively constrained, thereby improving the operability of the robot, facilitating accurate determination of the robot's position, and thereby improving the accuracy of the robot's position.
[0140] In one embodiment, the joint boundary index value corresponding to the current joint value set can be determined according to the following expression (2):
[0141]
[0142] in, is the joint boundary index value; JntNum is the number of joints (degrees of freedom) of the robot arm; q imax is the maximum value of the joint of the i-th joint of the robot; q imin is the minimum value of the joint of the i-th joint of the robot; q i is the joint value of the i-th joint of the robot in the current joint value set.
[0143] For example, the joint boundary index value range may be [0, 1], KCI JntLimit (q)=0 means that a joint in the joint configuration q (current joint value set) is on the boundary. The closer it is to 1, the farther the combined distance of the joint values of the joint configuration q (current joint value set) is from the boundary.
[0144] In this embodiment, the configuration of the robot in the original activity space can be constrained according to the needs of assisted surgery, thereby improving the operability of the robot's mechanical arm end, and the robot position can be determined based on the accurate end activity space, thereby improving the accuracy of the robot position.
[0145] In one embodiment, Figure 4 As shown, confirm the terminal collision index value, including:
[0146] S402, based on the current joint value set, obtain the posture information of multiple robot arm links and the end; wherein the robot arm link is a link between two joints.
[0147] The robot arm link may be a link parameter obtained by the joint values of two connected joints in the current joint value set. For example, if there are 7 joints, the robot arm link may have 6. The end position information may be information related to the position of the operating tool installed at the end of the robot arm.
[0148] S404, determining the relative distances between the multiple robot arm links and a preset virtual collision model and between the end and the preset virtual collision model based on the posture information of the multiple robot arm links and the end; the virtual collision model is a virtual model of an object that has a collision risk with the robot arm.
[0149] The virtual collision model may be a virtual model of a collision object that may collide with the end of the robot arm under each joint value included in the current joint value set, that is, the virtual collision model may have a collision risk with the robot arm connecting rod and the end of the robot arm. The collision object may be each joint of the robot arm, the base of the robot, etc. The virtual collision model can be specifically constructed according to the actual situation of the robot.
[0150] S406, obtaining the terminal collision index value corresponding to the current joint value set according to each relative distance and a preset collision distance threshold.
[0151] The collision distance threshold may be a threshold preset for the relative distance.
[0152] Exemplarily, the parameters of the multiple robot arm links corresponding to the current joint value set can be determined based on the joint values included in the current joint value set. A virtual collision model that may collide with the end of the robot arm can be predetermined, and the relative distance between each robot arm link and the virtual collision model can be obtained based on the virtual collision model and the robot arm link. The end collision index value corresponding to the current joint value set can be obtained by calculating each relative distance with a preset collision distance threshold.
[0153] In this embodiment, by obtaining the relative distances between multiple robot arm links and the preset virtual collision model, and according to each relative distance and the preset collision distance threshold, the end collision index value corresponding to the current joint value set can be obtained, so that the end activity space of the robot's robot arm can be effectively constrained, thereby improving the operability of the robot. Furthermore, while ensuring the operability of the robot, the target position of the robot can be accurately determined.
[0154] In one embodiment, according to each relative distance and a preset collision distance threshold, the end collision index value corresponding to the current joint value set is obtained, including:
[0155] According to the ratio of each relative distance to the collision distance threshold, a collision index value corresponding to each relative distance is obtained;
[0156] The smallest collision index value among the multiple collision index values is used as the end collision index value corresponding to the current joint value set.
[0157] The collision index value corresponding to the relative distance may be a collision index corresponding to the robot arm connecting rod.
[0158] Exemplarily, for each relative distance, the ratio between the relative distance and the collision distance threshold can be obtained, and the collision index value corresponding to the relative distance can be determined based on the ratio between the relative distance and the collision distance threshold. The smallest collision index value among multiple collision index values can be used as the end collision index value corresponding to the current joint value set. In this way, the end of the robotic arm can be effectively prevented from colliding with an object that may collide (an object with a collision risk), and the end activity space of the robotic arm that constrains the robot can be effectively limited.
[0159] In this embodiment, the collision index value corresponding to each relative distance is obtained according to the ratio of each relative distance to the collision distance threshold; the smallest collision index value among multiple collision index values is used as the terminal collision index value corresponding to the current joint value set, so that the terminal collision index value corresponding to the current joint value set can be effectively and accurately obtained, thereby improving the operability of the robot. Furthermore, while ensuring the operability of the robot, the target position of the robot can be accurately determined, so that the robot can achieve high operability work at the target position.
[0160] In one embodiment, the end collision index value corresponding to the current joint value set can be determined according to the following expression (3):
[0161]
[0162] Among them, i is the robot arm connecting rod or the end of the robot arm; List Collision(q) is the set of collision index values corresponding to each robot link or robot end when the joint sequence is q (the current joint value set); dis ij is the relative distance between the robot arm link i and the virtual collision model j, or the relative distance between the robot arm end i and the virtual collision model j; thres is the collision distance threshold; KCI Collision (q) is the end collision index value corresponding to the current joint value set.
[0163] For example, the end collision index value KCI of the relative distance at which the tool at the end of the robot's mechanical arm collides with each joint of the mechanical arm and the cart array at the robot base can be determined under the joint configuration q (current joint value set) of the robot: Collision (q), the index range can be [0, 1], KCI Collision (q)=0 can indicate that the installed end tool of the robot collides with a joint under the joint configuration q (current joint value set). The closer it is to 1, the further away the joint configuration q (current joint value set) is from the collision.
[0164] In this embodiment, expression (3) can effectively determine the end collision index value corresponding to the current joint value set, thereby effectively limiting the activity space of the robot's mechanical arm end, thereby improving the operability of the robot.
[0165] In one embodiment, determining the joint singular configuration index value includes:
[0166] Get the Jacobian matrix for the current set of joint values;
[0167] Based on the current joint value set and the Jacobian matrix, obtain the singular values corresponding to the current joint value set;
[0168] According to the singular value, the joint singular configuration index value corresponding to the current joint value set is obtained.
[0169] Exemplarily, the singular values corresponding to the current joint value set may be determined according to the Jacobian matrix corresponding to the current joint value set. The joint singular configuration index value corresponding to the current joint value set may be determined based on the singular values corresponding to the current joint value set.
[0170] Optionally, the joint singular configuration index value corresponding to the current joint value set may be determined according to the following expression (4):
[0171]
[0172] J B (q) is the Jacobian matrix of the robot when the joint sequence is q (the current joint value set); KCI Singluar(q) is the joint singular configuration index value corresponding to the current joint value set; M is the degree of freedom of motion; N is the number of joints; R can be a group or set of Jacobian matrices; J N ∈R m×n Can be used to characterize J N is an m×n matrix.
[0173] For example, the index range of the joint singular configuration index value of the robot joint configuration q (current joint value set) relative to the singular configuration distance can be [0, 1], KCI Singular (q)=0 indicates that the joint configuration q (the current joint value set) is a singular configuration. The closer it is to 1, the farther the comprehensive distance of the joint configuration q is relative to the singular configuration.
[0174] In this embodiment, the Jacobian matrix for the current joint value set is obtained; based on the current joint value set and the Jacobian matrix, the singular value corresponding to the current joint value set is obtained; according to the singular value, the joint singular configuration index value corresponding to the current joint value set is obtained. In this way, the robot's mechanical arm joints can be prevented from having singular configurations, thereby improving the robot's operability.
[0175] In one embodiment, determining the terminal activity space of the terminal according to the target posture point cloud of the terminal includes:
[0176] Determine a candidate activity space of the terminal according to the target posture point cloud of the terminal, the candidate activity space includes multiple candidate posture point clouds;
[0177] Get the distance and angle interval between each candidate pose point cloud;
[0178] Clustering each candidate pose point cloud according to the distance and the preset distance threshold, the angle interval and the preset angle interval threshold;
[0179] According to the multiple candidate pose point clouds obtained by clustering, the terminal activity space of the terminal is determined.
[0180] Among them, the target pose point cloud can be a pose point cloud that meets the operability index of the terminal after screening. The candidate activity space of the terminal can be an activity space obtained through the target pose point cloud. For example, the candidate activity space can be determined based on further screening of the target pose point cloud. The candidate pose point cloud can be a pose point cloud contained in the candidate activity space; for example, the candidate activity space can be formed by multiple candidate pose point clouds. The distance between the candidate pose point clouds can be the Euclidean distance. The angle interval can be the angle interval under the axis-angle representation. The multiple candidate pose point clouds obtained by clustering can be candidate pose point clouds that meet the clustering conditions.
[0181] For example, the terminal's candidate activity space can be further determined based on the terminal's target pose point cloud, and the pose point cloud contained in the candidate activity space can be used as the candidate pose point cloud. The distance and angle interval between adjacent candidate pose point clouds can be obtained, and a pre-set distance threshold corresponding to the distance and an angle interval threshold corresponding to the angle interval can be obtained.
[0182] Each candidate posture point cloud can be clustered according to the distance and the preset distance threshold, the angle interval and the preset angle interval threshold. The candidate posture point cloud can be divided into several clustering spaces, and the sizes of the spatial coordinate axes (such as X-axis, Y-axis, and Z-axis) of each clustering space can be compared. The space that best meets the expectations can be selected as the surgical reference space (the terminal activity space of the terminal).
[0183] In this embodiment, each candidate pose point cloud can be clustered according to the distance and the preset distance threshold, the angle interval and the preset angle interval threshold; and the terminal activity space of the terminal is determined according to the multiple candidate pose point clouds obtained by clustering. In this way, when the robot moves in the terminal activity space of the terminal, it can maintain continuous movement, so that the robot can stay away from boundaries, singularities and collisions in the desired configuration, and maintain continuous movement, thereby improving the operability of the robot.
[0184] In one embodiment, taking a seven-degree-of-freedom robot as an example, when the Euclidean distance of 1 mm is specified as the distance threshold and the axis angle interval of 1° is specified as the angle interval threshold, the clustering result is obtained as follows: Figure 5a , Figure 5b As shown, Figure 5a When cluster 7 shown is used as the terminal activity space of the terminal, the position relationship relative to the base coordinate system is [300, -500, 950]; Figure 5b When the cluster 26 shown is used as the terminal activity space of the terminal, the position relationship relative to the base coordinate system is [400, -200, 1000]. This position relationship is used to determine the appropriate robot base coordinate system according to the target workspace in the actual operation, so as to guide the operator to swing the robot cart so that the robotic arm can assist the operation in the appropriate position.
[0185] In one embodiment, determining the candidate activity space of the terminal according to the target pose point cloud of the terminal includes:
[0186] Get the joint ranges corresponding to multiple joints respectively to form a maximum joint value set and a minimum joint value set.
[0187] Get the set of joint values corresponding to each target pose point cloud.
[0188] If the operable indicator corresponding to the target pose point cloud satisfies the first preset condition, and the joint value set corresponding to the target pose point cloud satisfies the second preset condition, the target pose point cloud is used as a candidate pose point cloud; the first preset condition is used to characterize that the operable indicator is less than or equal to the preset operable indicator threshold; the second preset condition is used to characterize that the joint value set is greater than or equal to the minimum joint value set, and the joint value set is less than or equal to the maximum joint value set.
[0189] Based on the candidate pose point cloud, the candidate activity space of the terminal is generated.
[0190] The joint range may be an angle range or a position range that the joint of the manipulator can reach. The maximum joint value set may include joint maximum values of multiple joints. The minimum joint value set may include joint minimum values of multiple joints. The joint maximum value may be the maximum angle or position that the joint can reach. The joint minimum value may be the minimum angle or position that the joint can reach.
[0191] Among them, the joint value set can generate the corresponding target pose point cloud.
[0192] Among them, the first preset condition may be less than or equal to the operable indicator threshold. The operable indicator threshold may be a threshold preset for the operable indicator, so that the robot has high operability. The second preset condition may be that the joint value set corresponding to the target pose point cloud is greater than or equal to the minimum joint value set, and the joint value set is less than or equal to the maximum joint value set.
[0193] Exemplarily, the joint ranges corresponding to the multiple joints can be determined, and based on the joint ranges of the multiple joints, the maximum joint value set and the minimum joint value set can be obtained. The joint value set corresponding to each target pose point cloud is obtained. If the target pose point cloud satisfies the constraint condition, the target pose point cloud can be used as the target pose point cloud. The constraint condition can be obtained according to the first preset condition and the second preset condition.
[0194] Optionally, if the operable index corresponding to the target pose point cloud satisfies the first preset condition, and the joint value set corresponding to the target pose point cloud satisfies the second preset condition, the target pose point cloud is used as the candidate pose point cloud. Based on multiple candidate pose point clouds, a candidate activity space of the terminal can be obtained.
[0195] Optionally, the candidate pose point cloud can be determined by the following expression (5):
[0196]
[0197] Where q is the joint value set (current joint value set) corresponding to the target pose point cloud; KCI(q) is the operational index corresponding to the joint value set (current joint value set) corresponding to the target pose point cloud; KCI thres is the operational indicator threshold; q low is the minimum joint value set; q up is the maximum joint value set.
[0198] The constraint conditions for screening the end tool pose point cloud are specified, which can be determined by the above expression (5) and can include the operability evaluation index KCI (q) and the robot configuration constraint conditions. Through the constraint conditions, the workspace point cloud calculated by the Monte Carlo method is screened.
[0199] Alternatively, if Figure 6a As shown, forward kinematics can be used to calculate the end pose corresponding to the joint configuration, and the end pose point cloud (target pose point cloud) mapped to the specified joint range can be obtained to obtain the original activity space. The target pose point cloud can be filtered by the above expression (5) to obtain: Figure 6b The candidate pose point cloud shown in the figure is used to obtain the terminal activity space. Figure 6b An example of a seven-degree-of-freedom robotic arm.
[0200] In this embodiment, the candidate pose point cloud is determined by the operable indicators corresponding to the target pose point cloud and the first preset condition, as well as the joint value set corresponding to the target pose point cloud and the second preset condition, so that the candidate activity space of the terminal can be accurately obtained, thereby improving the accuracy of the terminal activity space, and further improving the operability of the robot.
[0201] In one embodiment, obtaining the original activity space of the terminal includes:
[0202] Obtaining the joint range corresponding to each joint, and generating multiple joint value sets based on the joint range corresponding to each joint; each joint value set includes the joint value corresponding to each joint, and each joint value satisfies the corresponding joint range;
[0203] Based on multiple joint value sets, generate corresponding multiple original pose point clouds;
[0204] Based on multiple original pose point clouds, the original activity space of the terminal is obtained.
[0205] Exemplarily, the joint ranges corresponding to the multiple joints can be determined, and the number of pose point clouds can be set. The joint values corresponding to the joints can be randomly generated within the joint range specified by each joint based on the Monte Carlo method. The joint values of the multiple joints generated each time can obtain a joint value set, and multiple joint value sets can be obtained by randomly generating joint values multiple times. Based on the multiple joint value sets, multiple corresponding original pose point clouds can be generated. Each joint value set can correspond one-to-one to each original pose point cloud. Furthermore, the original activity space of the terminal can be formed by multiple original pose point clouds.
[0206] Alternatively, the joint value set can be generated by the following expression (6):
[0207] q=q low +q up -q low )×rand(0,1)(6)
[0208] Among them, q is the set of joint values, that is, the joint configuration of the robot arm. low is the minimum joint value set; q up is the maximum joint value set; rand(0,1) is a random function.
[0209] In this embodiment, by using forward kinematics to calculate the end pose corresponding to the joint configuration, the end pose point cloud mapped within the specified joint range can be obtained. Compared with the inverse kinematics method, the calculation time can be greatly reduced, thereby improving the efficiency of determining the target position of the robot.
[0210] In one embodiment, determining a target position of the robot based on the first relative position relationship and the second relative position relationship includes:
[0211] Determine a movement vector for indicating a change in the position of the robot and determine a target position of the robot according to the first relative position relationship and the second relative position relationship;
[0212] After determining the target position of the robot, control the robot to move to the target position.
[0213] The movement vector is the amount the robot needs to move.
[0214] Exemplarily, the target position of the robot can be determined by the first relative position relationship between the terminal activity space and the base, and the second relative position relationship between the target workspace and the base. For example, the unknown amount that the robot needs to move can be determined by the terminal activity space, the target workspace, and the current position of the robot. After determining the target position of the robot, the robot can be controlled to move to the target position.
[0215] In this embodiment, according to the first relative position relationship and the second relative position relationship, a movement vector for instructing the robot to change its position is determined, and the target position of the robot is determined; after the target position of the robot is determined, the robot is controlled to move to the target position. In this way, the robot can be accurately moved to the target position, so as to prepare for assisting the surgical operation.
[0216] In one embodiment, obtaining a second relative position relationship between the target activity space and the base includes:
[0217] Obtaining a first pose of the base in the navigation coordinate system, and obtaining a second pose of the target activity space in the navigation coordinate system;
[0218] Based on the first posture and the second posture, a second relative position relationship between the target activity space and the base is determined.
[0219] The navigation coordinate system may be a coordinate system determined by a navigation device. The navigation device may be a device used for navigating a robot in a surgical system. The navigation device may be an optical navigation device.
[0220] In one embodiment, after determining a movement vector for indicating a change in the position of the robot and determining a target position of the robot, the method further includes:
[0221] Send a movement vector to the terminal; the terminal is used to display the movement vector to instruct the robot to move to the target position.
[0222] In this embodiment, the movement vector is sent to the terminal; the terminal is used to display the movement vector to instruct the robot to move to the target position. In this way, the movement vector can be displayed on the front end to instruct the robot to move to the target position, thereby improving the accuracy of the robot movement.
[0223] In one embodiment, if Figure 7 As shown in the figure, a preoperative positioning guidance interface is designed. Since the height of the operating table controls the position relationship between the base coordinate system and the pelvic array in the Z direction, the main guiding direction of the cart positioning is the X and Y directions. The interface compares the relative position relationship between the base coordinate system and the pelvic array obtained in real time by the above-mentioned optical navigation device with the calculated reference surgical space (the terminal activity space of the end) and the base coordinate system of the robot, obtains the moving direction and distance of the XY plane base coordinate system, and displays it on the interface to guide the operator to operate the cart for positioning, as shown in the figure. Figure 7As shown, the preoperative positioning guidance interface includes: direction distance guidance 710, which may include two parts: XYZ direction distance and positioning range distance threshold. The XYZ direction distance can prompt the operator the distance between the current base coordinate system and the reference base coordinate system in each direction during the positioning process, and the XYZ direction distance can display the threshold of the positioning range; positioning direction prompt 720, which can be used to prompt the operator of the positive and negative relationship between the positioning direction and the distance; surgical cart module 730, which is used to visualize the simple graphics of the surgical cart and the base coordinate system of the current robot acquired in real time; reference coordinate module 740, which is used to visualize the reference base coordinate system and the positioning range (dashed box). When the robot arm base coordinate system enters the positioning range, the dashed box is highlighted, prompting the user that the positioning has been completed. The positional relationship of the reference base coordinate system relative to the pelvic array is calculated and obtained by the above algorithm; operating table module 750, which visualizes the simple graphics of the operating table and the pelvic array.
[0224] In one embodiment, Figure 8 As shown, a robot system for implementing a robot position determination method is provided, and the robot system includes: a cart 810, a robotic arm 820, a cart array 830, surgical tools 840, a pelvis array 850, a navigation system 860, a display screen 870, a virtual surgical space 880, and an operating table 890.
[0225] The cart 810 can be used as the base of the robot, used to carry the moving parts of the robot, and used to move the robot for positioning; the robotic arm 820 can be used to drive each joint to control the position of the surgical tool 840 at the end to assist in precise operation; the cart array 830, installed on the cart 810 carrying the robotic arm 820, can be used to identify the real-time position of the robot and assist in obtaining the base coordinates of the robot. For example, the navigation system 860 can determine the position end of the base coordinate system of the robotic arm in the navigation coordinate system by observing the cart array 830; the surgical tool 840 can be used to assist in surgical operations, such as grinding the affected part of the acetabulum; the pelvis array 850 can be used as a target workspace and installed on the patient's pelvis. The navigation system 860 can be used to observe the pelvis. Array 850, to determine the position of the pelvis in the navigation coordinate system and its position relative to the robot arm base coordinate system; navigation system 860, which can be used to locate the robot arm base coordinate system and the position of the pelvis; display screen 870, which can be used to display the preoperative positioning prompt interface, and display the relative position of the current robot arm and pelvis in the preoperative positioning prompt interface, and prompt the positioning direction; virtual operating space 880, which can be the terminal activity space of the terminal, can be a virtual point cloud space generated based on the Monte Carlo method, screened by operational indicators and obtained by clustering method, and the relative position relationship between the virtual operating space 880 and the pelvic array 850 is used as a reference to guide the operator's positioning; operating table 890, which can be an operating table with lifting capability, can be used to determine the Z-direction distance between the pelvic array and the base coordinate system in the base coordinate system.
[0226] In one embodiment, Fig. 9 As shown, a robot preoperative positioning guidance process method is provided. A possible application of this embodiment is total hip replacement surgery. The purpose of this surgery is to replace the diseased hip joint with a joint prosthesis. The surgery requires a high installation position accuracy of the acetabular cup prosthesis. The robot-assisted surgery system needs to ensure that it is away from the joint boundary and the position with restricted movement such as the singular configuration during the operation to ensure the accuracy, stability and success rate of the operation. The robot preoperative positioning guidance process method includes:
[0227] S910, according to the desired direction of the operating table and the cart (generally the operating table is in front of the cart), determine the joint range of the robot, and determine the transformation matrix of the tool center point installed at the end of the robot relative to the flange coordinate system;
[0228] S920, randomly generate joint values within the joint range by using the Monte Carlo method, calculate the position and posture of the end using forward kinematics based on the transformation matrix relative to the flange coordinate system, and obtain the original position and posture point cloud corresponding to the joint range;
[0229] S930, obtaining an operational index KCI, which can be used to evaluate the distance between the robot and the joint boundary, singular configuration, and collision under the current joint configuration. For a redundant degree of freedom robot, the range of redundant angles can be specified to optimize the joint configuration. The original pose point cloud is screened based on the KCI and the range of redundant angles;
[0230] S940, according to the Euclidean distance clustering method, the angle error threshold of the Euclidean distance and the axis angle representing the posture is specified, the screened candidate posture point cloud is clustered, and the subspace of the aggregated candidate posture point cloud that meets the required range is used as the reference space (terminal activity space) for positioning planning. The motion continuity and operability of the robot in this space meet the threshold requirements. The relative position relationship between the center point of the terminal activity space and the base coordinate system is P bref ;
[0231] S950, the navigation system determines the coordinates of the current cart array and the pelvis array, and determines the relative position relationship P between the current robot base coordinate system and the pelvis array in real time according to the conversion relationship between the cart array and the robot base coordinate system obtained through registration. aref ;
[0232] S960, determine the orientation and distance between the current robot base coordinate system and the pelvis array according to the relative relationship between the center position of the reference space (end activity space) and the base coordinate system: diS9 =P bref -P aref Finally, the positioning direction and distance value are displayed on the display screen of the navigation system, which can guide the operator to move the surgical cart for positioning.
[0233] In this embodiment, the specified operable indicators enable the robot to completely avoid joint boundaries and singular configurations in the surgical space, thereby improving operability during surgery; by constraining the joint range and configuration type, the working area obtained using forward kinematics greatly reduces the calculation time compared to inverse kinematics.
[0234] In one embodiment, the robot system can obtain the position of the cart array and the pelvis array (target workspace) in the navigation coordinate system through an optical navigation device, thereby obtaining the relative position relationship between the robot's base coordinate system and the pelvis array, such as Fig.10a As shown. guide The navigation coordinate system, F base represents the base coordinate system of the robot, F acet represents the pelvis array coordinate system, F trolley represents the cart array coordinate system, T represents the conversion relationship between the coordinate systems. When the relative relationship between the cart array and the robot's base coordinate system is known, the real-time relative relationship between the robot's base coordinate system and the pelvic array (expressed in the base coordinate system) is as shown in the following expression (7):
[0235]
[0236] in, is the cart array F trolley Relative pelvic array F acet The transformation matrix of is the navigation coordinate F guide Relative pelvic array F acet The transformation matrix of is the cart array F trolley Relative navigation coordinate F guide The transformation matrix of is the pelvic array F acet Relative to the robot base coordinate system F base The transformation matrix of is the cart array F trolley Relative to the robot base coordinate system F base The transformation matrix.
[0237] Alternatively, if Fig.10b As shown in the figure, assuming that the position relationship between the reference space (end activity space) and the base coordinate system of the robot is Pref = [Xref, Yref, Zref], then the real-time distance in the X direction of the base coordinate system relative to the reference coordinate system is (1, 4), real-time distance in Y direction (2, 4), real-time distance in Z direction (3, 4).
[0238] In this embodiment, the position and posture of the cart array and the pelvis array (target workspace) in the navigation coordinate system are obtained through an optical navigation device, and the relative position relationship between the robot's base coordinate system and the pelvis array can be obtained, thereby improving the accuracy of obtaining the robot's target position.
[0239] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.
[0240] Based on the same inventive concept, the embodiment of the present application also provides a robot position determination device for implementing the robot position determination method involved above. The implementation solution provided by the device to solve the problem is similar to the implementation solution recorded in the above method, so the specific limitations in one or more robot position determination device embodiments provided below can refer to the limitations of the robot position determination method above, and will not be repeated here.
[0241] In one embodiment, Fig.11 As shown, a robot position determination device 500 is provided, which is applied to a robot. The robot includes a base and a mechanical arm installed on the base. The mechanical arm includes an end and multiple joints. The device includes: a first relationship acquisition module 510, a second relationship acquisition module 520 and a target position determination module 530, wherein:
[0242] The first relationship acquisition module 510 is used to acquire a first relative position relationship between the terminal activity space and the base of the terminal.
[0243] The second relationship acquisition module 520 is used to acquire a second relative position relationship between the target workspace and the base.
[0244] The target position determination module 530 is used to determine the target position of the robot based on the first relative position relationship and the second relative position relationship and control the robot to move to the target position.
[0245] In one embodiment, the robot position determination device further includes an original activity space acquisition module, an operable index determination module and an end activity space determination module.
[0246] The original activity space acquisition module is used to obtain the original activity space of the terminal; the original activity space includes multiple original posture point clouds, the original posture point clouds are obtained through the corresponding joint value set, and the joint value set is obtained through the joint values corresponding to multiple joints. The operable indicator determination module is used to determine the operable indicators for the terminal according to each joint value set, and screen the original posture point cloud according to the operable indicators to obtain the target posture point cloud of the terminal. The terminal activity space determination module is used to determine the terminal activity space of the terminal according to the target posture point cloud of the terminal.
[0247] In one embodiment, the operational indicator determination module includes a current set determination unit, an indicator value determination unit, an indicator weight acquisition unit, a weighted processing unit and an operational indicator determination unit.
[0248] The current set determination unit is used to obtain the current joint value set from multiple sets of joint value sets; the current joint value set is any one of the multiple sets of joint value sets. The index value determination unit is used to confirm the joint boundary index value, the terminal collision index value and the joint singular configuration index value corresponding to the current joint value set. The index weight acquisition unit is used to obtain the first index weight corresponding to the joint boundary index value, the second index weight corresponding to the terminal collision index value and the third index weight corresponding to the singular configuration index value. The weighted processing unit is used to perform weighted processing on the joint boundary index value, the terminal collision index value and the joint singular configuration index value according to the first index weight, the second index weight and the third index weight, respectively. The operable index determination unit is used to use the smallest index value among the weighted joint boundary index value, the terminal collision index value and the joint singular configuration index value as the operable index of the terminal.
[0249] In one embodiment, the index value determination unit includes a current joint unit, a difference degree determination unit and a joint boundary index unit.
[0250] The current joint unit is used to obtain the current joint value and the current joint boundary value corresponding to the current joint from the current joint value set; the current joint is any joint of the robot arm; the current joint boundary value is the boundary value of the joint range corresponding to the current joint. The difference degree determination unit is used to determine the difference degree between the current joint value and the current joint boundary value. The joint boundary index unit is used to obtain the joint boundary index value according to the difference degree.
[0251] In one embodiment, the difference degree determination unit includes a joint maximum value acquisition unit, a boundary difference acquisition unit, a first and second difference determination unit and a difference degree calculation unit.
[0252] The joint maximum value acquisition unit is used to acquire the joint maximum value and the joint minimum value contained in the current joint boundary value. The boundary difference acquisition unit is used to acquire the boundary difference between the joint maximum value and the joint minimum value. The first and second difference determination unit is used to acquire the first difference between the joint maximum value and the current joint value, and the second difference between the current joint value and the joint minimum value. The difference degree calculation unit is used to determine the difference degree based on the boundary difference, the first difference, and the second difference.
[0253] In one embodiment, the index value determination unit includes a robot arm link determination unit, a relative distance acquisition unit and an end collision index unit.
[0254] The robot arm link determination unit is used to obtain the posture information of multiple robot arm links and the end based on the current joint value set; wherein the robot arm link is a link between two joints. The relative distance acquisition unit is used to determine the relative distances between the multiple robot arm links and the preset virtual collision model and between the end and the preset virtual collision model according to the posture information of the multiple robot arm links and the end; the virtual collision model is a virtual model of the object that collides with the robot arm end. The end collision index unit is used to obtain the end collision index value corresponding to the current joint value set according to each relative distance and the preset collision distance threshold.
[0255] In one embodiment, the terminal collision index unit includes a ratio determination unit and a minimum collision index unit.
[0256] The ratio determination unit is used to obtain the collision index value corresponding to each relative distance according to the ratio of each relative distance to the collision distance threshold. The minimum collision index unit is used to use the minimum collision index value among multiple collision index values as the terminal collision index value corresponding to the current joint value set.
[0257] In one embodiment, the index value determination unit includes a Jacobian matrix determination unit, a singular value acquisition unit and a singular configuration index unit.
[0258] The Jacobian matrix determination unit is used to obtain the Jacobian matrix for the current joint value set. The singular value acquisition unit is used to obtain the singular values corresponding to the current joint value set based on the current joint value set and the Jacobian matrix. The singular configuration index unit is used to obtain the joint singular configuration index value corresponding to the current joint value set based on the singular value.
[0259] In one embodiment, the terminal activity space determination module includes a candidate activity space determination unit, a distance angle determination unit, a clustering unit, and a terminal activity space acquisition unit.
[0260] The candidate activity space determination unit is used to determine the candidate activity space of the terminal according to the target pose point cloud of the terminal, and the candidate activity space includes multiple candidate pose point clouds. The distance angle determination unit is used to obtain the distance and angle interval between each candidate pose point cloud. The clustering unit is used to cluster each candidate pose point cloud according to the distance and the preset distance threshold, the angle interval and the preset angle interval threshold. The terminal activity space acquisition unit is used to determine the terminal activity space of the terminal according to the multiple candidate pose point clouds obtained by clustering.
[0261] In one embodiment, the candidate activity space determination unit includes a joint range determination unit, a target set acquisition unit, a condition judgment unit and a candidate activity space generation unit.
[0262] The joint range determination unit is used to obtain the joint ranges corresponding to multiple joints respectively, forming a maximum joint value set and a minimum joint value set. The target set acquisition unit is used to obtain the joint value set corresponding to each target pose point cloud. The condition judgment unit is used to use the target pose point cloud as a candidate pose point cloud if the operable index corresponding to the target pose point cloud meets the first preset condition and the joint value set corresponding to the target pose point cloud meets the second preset condition; the first preset condition is used to characterize that the operable index is less than or equal to the preset operable index threshold; the second preset condition is used to characterize that the joint value set is greater than or equal to the minimum joint value set, and the joint value set is less than or equal to the maximum joint value set. The candidate activity space generation unit is used to generate a candidate activity space of the terminal based on the candidate pose point cloud.
[0263] In one embodiment, the original activity space acquisition module includes a joint value set generation unit, an original posture point cloud generation unit and an original activity space generation unit.
[0264] The joint value set generation unit is used to obtain the joint range corresponding to each joint, and generate multiple joint value sets based on the joint range corresponding to each joint; each joint value set includes the joint value corresponding to each joint, and each joint value satisfies the corresponding joint range. The original pose point cloud generation unit is used to generate multiple corresponding original pose point clouds based on multiple joint value sets. The original activity space generation unit is used to obtain the original activity space of the terminal based on multiple original pose point clouds.
[0265] In one embodiment, the target position determination module includes a motion vector determination unit and a robot motion control unit.
[0266] The movement vector determination unit is used to determine the movement vector for indicating the change of the robot position according to the first relative position relationship and the second relative position relationship, and determine the target position of the robot. The robot movement control unit is used to control the robot to move to the target position after determining the target position of the robot.
[0267] Each module in the above-mentioned robot position determination device can be implemented in whole or in part by software, hardware or a combination thereof. Each of the above-mentioned modules can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute the operations corresponding to each of the above modules.
[0268] In one embodiment, a surgical robot system is provided, which includes a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the above method when executing the computer program.
[0269] In one embodiment, a computer device is provided. The computer device may be a terminal, and its internal structure diagram may be as follows: Fig.12 As shown. The computer device includes a processor, a memory, an input / output interface, a communication interface, a display unit and an input device. The processor, the memory and the input / output interface are connected via a system bus, and the communication interface, the display unit and the input device are connected to the system bus via the input / output interface. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and an external device. The communication interface of the computer device is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, NFC (near field communication) or other technologies. When the computer program is executed by the processor, a method for determining the position of a robot is implemented. The display unit of the computer device is used to form a visually visible picture, which can be a display screen, a projection device or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen, and the input device of the computer device can be a touch layer covering the display screen, or a button, trackball or touchpad set on the computer device shell, or an external keyboard, touchpad or mouse.
[0270] Those skilled in the art will understand that Fig.12 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.
[0271] In one embodiment, a computer device is further provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above-mentioned method embodiments when executing the computer program.
[0272] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments are implemented.
[0273] In one embodiment, a computer program product is provided, including a computer program, which implements the steps in the above method embodiments when executed by a processor.
[0274] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but are not limited to this.
[0275] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0276] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.
Claims
1. A method for determining a robot position, characterized in that: Applied to a robot, the robot comprises a base and a mechanical arm mounted on the base, the mechanical arm comprises an end and a plurality of joints, the method comprises: Acquire a first relative position relationship between the terminal activity space of the terminal and the base; Acquiring a second relative position relationship between the target workspace and the base; Based on the first relative position relationship and the second relative position relationship, a target position of the robot is determined and the robot is controlled to move to the target position.
2. The method according to claim 1, characterized in that Before obtaining the first relative position relationship between the terminal activity space of the terminal and the base, the method includes: Acquire the original activity space of the terminal; the original activity space includes a plurality of original posture point clouds, the original posture point clouds are obtained through corresponding joint value sets, and the joint value set is obtained through joint values corresponding to the plurality of joints; Determining an operable index for the terminal according to each of the joint value sets, and screening the original pose point cloud according to the operable index to obtain a target pose point cloud for the terminal; According to the target posture point cloud of the terminal, the terminal activity space of the terminal is determined.
3. The method according to claim 2, characterized in that Determining the operable index for the terminal according to each of the joint value sets includes: Obtaining a current joint value set from multiple sets of joint value sets; the current joint value set is any one of the multiple sets of joint value sets; Confirming the joint boundary index value, the end collision index value and the joint singular configuration index value corresponding to the current joint value set; Obtaining a first index weight corresponding to the joint boundary index value, a second index weight corresponding to the end collision index value, and a third index weight corresponding to the singular configuration index value; According to the first indicator weight, the second indicator weight and the third indicator weight, weighted processing is performed on the joint boundary indicator value, the end collision indicator value and the joint singular configuration indicator value respectively; The smallest index value among the weighted joint boundary index value, the terminal collision index value and the joint singular configuration index value is used as the operability index of the terminal.
4. The method according to claim 3, characterized in that Confirming the joint boundary index value includes: From the current joint value set, obtain the current joint value and the current joint boundary value corresponding to the current joint; the current joint is any joint of the robotic arm; the current joint boundary value is the boundary value of the joint range corresponding to the current joint; Determining a degree of difference between the current joint value and the current joint boundary value; The joint boundary index value is obtained according to the difference degree.
5. The method according to claim 4, characterized in that Determining the difference between the current joint value and the current joint boundary value includes: Obtaining the joint maximum value and the joint minimum value contained in the current joint boundary value; Obtaining a boundary difference between the joint maximum value and the joint minimum value; Obtaining a first difference between the joint maximum value and the current joint value, and a second difference between the current joint value and the joint minimum value; The degree of difference is determined based on the boundary difference, the first difference, and the second difference.
6. The method according to claim 3, characterized in that Confirming the terminal collision index value includes: Based on the current joint value set, obtaining the position information of multiple robot arm links and ends; wherein the robot arm link is a link between two joints; Determine, according to the position information of the plurality of robot arm links and the end, the relative distances between the plurality of robot arm links and a preset virtual collision model and between the end and a preset virtual collision model; the virtual collision model is a virtual model of an object that has a collision risk with the robot arm; According to each of the relative distances and a preset collision distance threshold, an end collision index value corresponding to the current joint value set is obtained.
7. The method according to claim 6, characterized in that The step of obtaining the terminal collision index value corresponding to the current joint value set according to each of the relative distances and a preset collision distance threshold comprises: Obtaining a collision index value corresponding to each relative distance according to a ratio of each relative distance to the collision distance threshold; The smallest collision index value among the multiple collision index values is used as the end collision index value corresponding to the current joint value set.
8. The method according to claim 3, characterized in that Confirming the joint singular configuration index value includes: Obtaining a Jacobian matrix for the current set of joint values; Based on the current joint value set and the Jacobian matrix, obtaining singular values corresponding to the current joint value set; According to the singular value, the joint singular configuration index value corresponding to the current joint value set is obtained.
9. The method according to claim 2, characterized in that: Determining the terminal activity space of the terminal according to the target posture point cloud of the terminal includes: Determining a candidate activity space of the terminal according to the target posture point cloud of the terminal, wherein the candidate activity space includes a plurality of candidate posture point clouds; Obtaining the distance and angle interval between each of the candidate pose point clouds; Clustering each of the candidate pose point clouds according to the distance and a preset distance threshold, the angle interval and a preset angle interval threshold; According to the plurality of candidate pose point clouds obtained by clustering, a terminal activity space of the terminal is determined.
10. The method according to claim 9, characterized in that The step of determining the candidate activity space of the terminal according to the target posture point cloud of the terminal includes: Acquire the joint ranges corresponding to the multiple joints respectively to form a maximum joint value set and a minimum joint value set; Obtaining a set of joint values corresponding to each of the target pose point clouds; If the operable index corresponding to the target pose point cloud satisfies a first preset condition, and the joint value set corresponding to the target pose point cloud satisfies a second preset condition, the target pose point cloud is used as the candidate pose point cloud; the first preset condition is used to characterize that the operable index is less than or equal to a preset operable index threshold; the second preset condition is used to characterize that the joint value set is greater than or equal to the minimum joint value set, and the joint value set is less than or equal to the maximum joint value set; Based on the candidate pose point cloud, a candidate activity space of the terminal is generated.
11. A robot position determination device, characterized in that: Applied to a robot, the robot comprises a base and a mechanical arm mounted on the base, the mechanical arm comprises an end and a plurality of joints, and the device comprises: A first relationship acquisition module, used to acquire a first relative position relationship between the terminal activity space of the terminal and the base; A second relationship acquisition module, used to acquire a second relative position relationship between the target workspace and the base; A target position determination module is used to determine the target position of the robot based on the first relative position relationship and the second relative position relationship and control the robot to move to the target position.
12. A surgical robot system, comprising a memory and a processor, wherein the memory stores a computer program, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 10 are implemented.
Citation Information
Patent Citations
CONTROL METHODS FOR ROBOTS USING GEOMETRIC CONSTRAINTS AND RANDOM SEARCH METHODS
ATA64095A
Surgical robotic systems and methods
CN115089302A
Configuration group generation method and system for industrial robot calibration
CN115179277A
Robot singularity avoidance method and device, terminal and medium
CN115284298A
Surgical robot positioning method and device and computer equipment
CN115363762A