Mechanical arm collision detection method and device, computer device and storage medium

CN117754566BActive Publication Date: 2026-10-30WUHAN UNITED IMAGING HEALTHCARE SURGICAL TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311696826.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-02-04
Publication Date
2026-10-30
Estimated Expiration
2041-02-04

AI Technical Summary

Technical Problem

[0005]显然,上述现有技术仍难以很好的规避多机械臂碰撞的问题

Benefits of technology

[0035]上述机械臂碰撞检测方法、装置、计算机设备和存储介质,处理器获取机器人各机械臂的初始摆位以及属性信息,根据各机械臂的初始摆位与属性信息,确定各机械臂的初始摆位对应的构型代价函数,据初始摆位的构型代价函数,求得满足预设条件的构型代价函数所对应的各机械臂初始摆位为各机械臂的目标初始摆位。其中,各机械臂的初始摆位均满足各机械臂的创口约束条件。在本方案中,处理器可以根据各机械臂的初始摆位以及属性信息,确定初始摆位的构型代价函数,并基于构型代价函数进行初始摆位的优化计算,得到符合优化目标以及约束条件的目标初始摆位,基于目标初始摆位,后续机械臂运动规划时,各机械臂拥有更大的运动规划空间,减少了各机械臂之间相互碰撞的概率,有效地避免各机械臂在手术过程中发生碰撞的情况,并且,初始摆位与目标初始摆位均满足预设的创口约束条件,确保碰撞检测过程中的各机械臂的位姿状态满足手术器械处于同一个创口点不改变,避免了病人手术时创口扩大的问题。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117754566B_ABST
    Figure CN117754566B_ABST
Patent Text Reader

Abstract

The application relates to a mechanical arm collision detection method and device, computer equipment and a storage medium. The method comprises the following steps: a processor acquires initial positions and attribute information of each mechanical arm of a robot, determines a configuration cost function corresponding to the initial position of each mechanical arm according to the initial position and the attribute information of each mechanical arm, and obtains the initial position of each mechanical arm corresponding to the configuration cost function satisfying a preset condition as a target initial position of each mechanical arm according to the configuration cost function of the initial position. The initial position of each mechanical arm satisfies a wound constraint condition of each mechanical arm. In the scheme, the processor obtains the target initial position meeting the optimization target and the constraint condition, and based on the target initial position, each mechanical arm has a larger motion planning space when subsequent motion planning of the mechanical arm is performed, the probability of mutual collision between each mechanical arm is reduced, and the collision of each mechanical arm in the surgical process is effectively avoided.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the case filed on February 4, 2021, with application number 202110166245.1 and invention title "Method, Apparatus, Computer Equipment and Storage Medium for Optimizing the Positioning of a Robotic Arm". Technical Field

[0002] This application relates to the field of medical device technology, and in particular to a method, apparatus, computer device, and storage medium for detecting collisions in a robotic arm. Background Technology

[0003] With the development of science and technology, intelligent robots and multi-arm surgical robots are widely used in the medical field. For example, multi-arm surgical robots are applied in various types of surgical scenarios. During the operation, to ensure the smooth progress of the surgery, collisions between the multiple robotic arms should be avoided as much as possible.

[0004] In existing technologies, collision avoidance of multiple robotic arms is generally achieved through interference detection. That is, when interference occurs between robotic arms, the position of the robotic arms is corrected in a timely manner to avoid further interference and collision.

[0005] Clearly, the existing technologies mentioned above still cannot effectively avoid the problem of collisions between multiple robotic arms. Summary of the Invention

[0006] Therefore, it is necessary to provide a robotic arm collision detection method, device, computer equipment, and storage medium that can avoid collisions between multiple robotic arms, in order to address the above-mentioned technical problems.

[0007] Firstly, a method for optimizing the positioning of a robotic arm is provided, the method comprising:

[0008] Obtain the initial positioning and attribute information of each robotic arm;

[0009] The initial positioning of each robotic arm satisfies the wound constraint conditions of each robotic arm.

[0010] Based on the initial position and attribute information of each robotic arm, determine the configuration cost function corresponding to the initial position of each robotic arm;

[0011] Based on the configuration cost function of the initial position, the initial position of each robotic arm corresponding to the configuration cost function that satisfies the preset conditions is the target initial position of each robotic arm.

[0012] In one embodiment, the above-mentioned determination of the configuration cost function corresponding to the initial position of each robotic arm based on the initial position and attribute information of each robotic arm includes:

[0013] Based on the initial positioning and attribute information of the robotic arm, determine at least one motion joint feature point of the robotic arm, and determine the distance between each motion joint feature point of adjacent robotic arms.

[0014] Based on the distance between the feature points of each joint of adjacent robotic arms and the preset weights of each robotic arm's joints under the initial position of each robotic arm, the configuration cost function of the initial position is determined.

[0015] In one embodiment, the aforementioned motion joint feature points are selected as the center of the link model, the center of gravity of the link, the center of mass of the link, the center of the link enclosure box, the farthest point of the link end, or the center of joint rotation.

[0016] In one embodiment, the aforementioned joint weights can be determined based on one or a combination of the following: the number of links corresponding to the joint, the distance between the link and the patient, the size of the link, and the cumulative degrees of freedom of the link.

[0017] In one embodiment, the above-mentioned method of obtaining the initial position of each robotic arm corresponding to the configuration cost function that satisfies the preset conditions based on the configuration cost function of the initial position as the target initial position of each robotic arm includes:

[0018] Calculate the first value of the configuration cost function for the initial setup;

[0019] The iteration operation is performed based on the first value until the first value satisfies the iteration condition, at which point the initial placement is determined as the target initial placement.

[0020] In one embodiment, the above-mentioned iterative operation based on a first value until the first value satisfies the iteration condition, and then determining the initial placement as the target initial placement, includes:

[0021] Based on the first value and the preset difference matrix, determine the next placement and its configuration cost function; the difference matrix is ​​determined according to the wound constraint conditions.

[0022] If the first value of the configuration cost function of the next placement does not satisfy the iteration condition, then the first value of the configuration cost function of the next placement is used as input, and the iteration operation is returned.

[0023] If the first value of the configuration cost function of the next placement satisfies the iteration condition, then the next placement is determined as the target initial placement.

[0024] In one embodiment, the above-mentioned iteration conditions include the difference between the first value of the configuration cost function of the next placement and the first value of the configuration cost function of the initial placement being within a preset difference range, and / or the difference between the first value of the configuration cost function of the next placement and a preset standard value being within a difference range.

[0025] In one embodiment, the initial positioning includes multiple initial positioning positions for each robotic arm under all conditions; based on the configuration cost function of the initial positioning, the initial positioning position of each robotic arm corresponding to the configuration cost function that satisfies preset conditions is obtained as the target initial positioning position for each robotic arm, further comprising:

[0026] Obtain the configuration cost function corresponding to multiple initial placements;

[0027] Iterate through and calculate the first value of the configuration cost function corresponding to each initial placement;

[0028] The initial setup corresponding to the configuration cost function with the largest first value is determined as the target initial setup.

[0029] Secondly, a robotic arm positioning optimization device is provided, the device comprising:

[0030] The acquisition module is used to acquire the initial position and attribute information of each robotic arm; wherein the initial position of each robotic arm satisfies the wound constraint conditions of each robotic arm.

[0031] The first determining module is used to determine the configuration cost function corresponding to the initial position of each robotic arm based on the initial position and attribute information of each robotic arm.

[0032] The second determining module is used to determine the initial position of each robotic arm that satisfies the preset conditions based on the configuration cost function of the initial position.

[0033] Thirdly, a computer device is provided, including a memory and a processor, the memory storing a computer program, the processor executing the computer program to implement the robotic arm positioning optimization method described in any of the first aspects above.

[0034] Fourthly, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the robotic arm positioning optimization method described in any of the first aspects above.

[0035] The aforementioned robotic arm collision detection method, apparatus, computer equipment, and storage medium include a processor that acquires the initial position and attribute information of each robotic arm, determines the configuration cost function corresponding to the initial position of each robotic arm based on the initial position and attribute information, and calculates the target initial position of each robotic arm based on the configuration cost function of the initial position, which satisfies preset conditions. The initial position of each robotic arm satisfies the wound constraint conditions of each robotic arm. In this scheme, the processor can determine the configuration cost function of the initial position based on the initial position and attribute information of each robotic arm, and perform optimization calculations on the initial position based on the configuration cost function to obtain the target initial position that meets the optimization objective and constraints. Based on the target initial position, each robotic arm has a larger motion planning space during subsequent robotic arm motion planning, reducing the probability of collisions between robotic arms and effectively avoiding collisions between robotic arms during surgery. Furthermore, both the initial position and the target initial position satisfy the preset wound constraint conditions, ensuring that the pose state of each robotic arm during the collision detection process remains unchanged so that the surgical instruments remain at the same wound point, thus avoiding the problem of wound enlargement during patient surgery. Attached Figure Description

[0036] Figure 1 This is an application environment diagram of the robotic arm positioning optimization method in one embodiment;

[0037] Figure 2 This is a flowchart illustrating a robotic arm positioning optimization method in one embodiment;

[0038] Figure 3 This is a schematic diagram showing the location of the wound points corresponding to multiple robotic arms in one embodiment;

[0039] Figure 4 This is a schematic diagram of multiple positions of a single robotic arm in one embodiment;

[0040] Figure 5 This is a schematic diagram of multiple robotic arms in various initial positions in one embodiment;

[0041] Figure 6 This is a flowchart illustrating a robotic arm positioning optimization method in one embodiment;

[0042] Figure 7 This is a flowchart illustrating a robotic arm positioning optimization method in one embodiment;

[0043] Figure 8 This is a flowchart illustrating a robotic arm positioning optimization method in one embodiment;

[0044] Figure 9 This is a flowchart illustrating a robotic arm positioning optimization method in one embodiment;

[0045] Figure 10 This is a flowchart illustrating a robotic arm positioning optimization method in one embodiment;

[0046] Figure 11 This is a structural block diagram of a robotic arm positioning optimization device in one embodiment;

[0047] Figure 12 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation

[0048] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0049] The robotic arm positioning optimization method provided in this application can be applied to, for example... Figure 1 The application environment shown is described. The multi-arm robot involved in this solution can be, but is not limited to, various models and manufacturers of multi-arm medical surgical robots. The multi-arm robot includes a processor 101 that controls the robotic arms. The multi-arm robot uses the processor 101 to control the robotic arms 102 for robotic arm positioning optimization.

[0050] The technical solutions of this application and how they solve the aforementioned technical problems will be described in detail below through embodiments and in conjunction with the accompanying drawings. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. It should be noted that this application... Figures 2-10 The robotic arm positioning optimization method provided in this embodiment is executed by the processor 101 of the multi-arm robotic robot, or it can be a robotic arm positioning optimization device. This robotic arm positioning optimization device can be part or all of the multi-arm robotic robot through software, hardware, or a combination of software and hardware. In the following method embodiments, the processor 101 is used as the execution subject for description.

[0051] In one embodiment, such as Figure 2 As shown, a method for optimizing the positioning of robotic arms is provided. This involves using a computer to acquire the initial positioning and attribute information of each robotic arm. Based on the initial positioning and attribute information of each robotic arm, a configuration cost function corresponding to the initial positioning of each robotic arm is determined. Based on the configuration cost function of the initial positioning, the initial positioning of each robotic arm corresponding to a configuration cost function that satisfies preset conditions is obtained as the target initial positioning of each robotic arm. The process includes the following steps:

[0052] S201. Obtain the initial position and attribute information of each robotic arm; wherein the initial position of each robotic arm satisfies the wound constraint conditions of each robotic arm.

[0053] The processor acquires the initial positions of each robotic arm, including the pose information of each arm in its initial position. This includes the pose of each arm's joints and the spatial coordinates of each joint's feature points. Attribute information refers to parameters such as the number of joints, joint volume, and joint weights for each arm.

[0054] In this embodiment, the initial positioning of each robotic arm satisfies preset wound constraint conditions. These wound constraint conditions refer to constraints constructed based on the wound point locations. Wound point locations can include one or more fixed positions. During the robotic arm's movement, to ensure the wound is not aggravated, the movement space or path of the robotic arm needs to be constrained based on the wound point locations. Wound constraint conditions are constructed based on the wound point locations, using the relationships between these locations as the wound constraint conditions. For example, such as... Figure 3 As shown, each robotic arm needs to pass through wound point locations P1 and P2 to contact the lesion point. The spatial relative positions of P1 and P2 are fixed, and the relationship between the wound point locations is used as a wound constraint condition. In this embodiment, the number of wound point locations is not limited.

[0055] In this embodiment, based on the created wound point constraints, the initial positions of each robotic arm that satisfy the wound point constraints are obtained. For example, Figure 4 As shown, a single robotic arm, given the same initial position, has two possible positioning states, and the corresponding motion space of the robotic arm differs depending on the positioning state. In the case of multiple robotic arms, taking a robot with two robotic arms as an example, ... Figure 5 As shown, the robot has two robotic arms, and each arm has two sets of joint values ​​at its initial position. Therefore, the robot has four different initial positions. These different initial positions have varying impacts on the subsequent path planning of the multiple robotic arms.

[0056] Optionally, when the robotic arm is initially positioned relatively close together, for example... Figure 4 In the multi-arm positioning 1 example, the distance between the joints of the robotic arms is too close, making them more prone to interference and collisions in the subsequently planned motion path. Therefore, multi-arm positioning 1 can be considered a poor positioning configuration. In cases where the initial positioning is more extended, for example... Figure 4 In the multi-arm setup 4, the links of each robotic arm are relatively dispersed, making it less likely for the robotic arms to interfere or collide. Therefore, the multi-arm setup 4 can be considered a better setup configuration.

[0057] In the process of determining the initial position, an initial position that meets the wound point constraint conditions can be determined in a better position configuration, and the pose of each robotic arm's joints and the spatial coordinates of each joint feature point can be obtained.

[0058] S202. Based on the initial position and attribute information of each robotic arm, determine the configuration cost function corresponding to the initial position of each robotic arm.

[0059] The configuration cost function refers to the functional expression that constructs the initial setup in a quantifiable form, and the configuration cost function includes the relationship between the attribute information of each robotic arm.

[0060] In this embodiment, the configuration cost function includes the relationship between adjacent robotic arms in the current initial position. Optionally, the processor can construct the configuration cost function in the current initial position based on the relative distance between each joint of each pair of robotic arms and the weights corresponding to each joint of the robotic arms. When the robot has two robotic arms, the configuration cost function refers to the configuration cost function between each pair of robotic arms. When the robot has more than two robotic arms, the configuration cost function can be the configuration cost function of adjacent robotic arms; this embodiment does not limit this.

[0061] S203. Based on the configuration cost function of the initial position, the initial position of each robotic arm corresponding to the configuration cost function that satisfies the preset conditions is obtained as the target initial position of each robotic arm.

[0062] In this embodiment, the preset condition can be a pre-set optimization objective, such as maximizing the motion space. Then, when the processor obtains multiple configuration cost functions, it can determine the configuration cost function that maximizes the motion space based on the function values ​​of the configuration cost functions, and the initial placement corresponding to that function can be determined as the target initial placement. Optionally, the preset condition can also be an iteration condition in a set iterative algorithm. According to the preset iteration condition, the configuration cost function of the initial placement is fed into the iterative algorithm process until a configuration cost function that satisfies the iteration condition is determined, and the placement corresponding to that configuration cost function is determined as the target initial placement. This embodiment does not limit this aspect.

[0063] In the aforementioned robotic arm positioning optimization method, the processor acquires the initial positioning and attribute information of each robotic arm. Based on the initial positioning and attribute information of each robotic arm, it determines the configuration cost function corresponding to the initial positioning of each robotic arm. Using the configuration cost function of the initial positioning, it obtains the target initial positioning of each robotic arm corresponding to the configuration cost function that satisfies preset conditions. The initial positioning of each robotic arm satisfies the wound constraint conditions of each robotic arm. In this scheme, the processor can determine the configuration cost function of the initial position based on the initial position and attribute information of each robotic arm, and perform optimization calculations on the initial position based on the configuration cost function to obtain the target initial position that meets the optimization objective and constraints. Based on the target initial position, each robotic arm has a larger motion planning space during subsequent robotic arm motion planning, reducing the probability of collisions between robotic arms and effectively avoiding collisions between robotic arms during surgery. Furthermore, both the initial position and the target initial position satisfy the preset wound constraint conditions, ensuring that the pose state of each robotic arm during the collision detection process remains unchanged so that the surgical instruments remain at the same wound point, thus avoiding the problem of wound enlargement during patient surgery.

[0064] The processor constructs a corresponding configuration cost function for the initial setup. In one embodiment, such as... Figure 6 As shown, the configuration cost function corresponding to the initial position of each robotic arm, determined based on its initial position and attribute information, includes:

[0065] S301. Determine at least one motion joint feature point of the robotic arm based on the initial position and attribute information of the robotic arm, and determine the distance between each motion joint feature point of adjacent robotic arms.

[0066] Optionally, the selection of the above-mentioned motion joint feature points can be the center of the link model of each robotic arm, the center of gravity of the link, the center of mass of the link, the center of the link enclosure box, the farthest point of the link end, or the center of joint rotation.

[0067] In this embodiment, the spatial coordinates of each motion joint in the robotic arm are determined based on the initial pose of the robotic arm, thereby determining at least one motion joint feature point of the robotic arm. The relative distance between the motion joints of adjacent robotic arms is determined based on the feature points of each motion joint in adjacent robotic arms.

[0068] S302. Based on the distance between the feature points of each motion joint of adjacent robotic arms under the initial position of each robotic arm and the preset weights of each robotic arm motion joint, determine the configuration cost function of the initial position.

[0069] The weights of the joints in each robotic arm are related to the attribute information of each robotic arm. These weights can be determined based on parameters such as the number of link levels corresponding to the joints, the distance between the link and the patient, the size of the link, and the cumulative degrees of freedom of the link. For example, regarding the number of link levels, the robotic arm's base coordinate system is level 0, and the links connected to the base coordinate system are level 1. As the link level increases, the higher the level. Regarding the distance between the link and the patient, the closest distance between the robotic arm and the patient is calculated; the closer the distance, the greater the positioning weight value. Regarding the size of the link, the larger the link volume, the more space it occupies, requiring more positioning space, thus requiring a larger weight value. Regarding the cumulative degrees of freedom, if the robotic arm's base coordinate system has no degrees of freedom, then each level of the robotic arm adds one degree of freedom. The greater the degree of freedom of the link, the more flexible the movement, and thus a larger weight value is assigned. This embodiment does not limit the setting of the weight values.

[0070] In this embodiment, for example, the configuration cost function of the initial position is determined based on the distance between the feature points of each motion joint of adjacent robotic arms under the initial position of each robotic arm and the preset weights of each robotic arm motion joint. The configuration cost function can be expressed as:

[0071]

[0072] in, This represents the distance between the i-th motion joint feature point of robotic arm A and the j-th motion joint feature point of robotic arm B. represents the corresponding weight; where i and j are natural numbers, and n and m are natural numbers.

[0073] In this embodiment, based on the distance between the feature points of each motion joint of adjacent robotic arms under the initial position of each robotic arm and the preset weights of each robotic arm motion joint, the configuration cost function of the initial position is determined. Based on the configuration cost function, the configuration value of the current initial position can be determined, thereby achieving qualitative quantification of the initial position.

[0074] The processor can find the initial target placement that meets the iteration conditions through iterative optimization. In one embodiment, such as... Figure 7 As shown, the above-mentioned method of obtaining the initial positions of each robotic arm corresponding to the configuration cost function that satisfies the preset conditions based on the configuration cost function of the initial position as the target initial positions of each robotic arm includes:

[0075] S401. Calculate the first value of the configuration cost function for the initial setup.

[0076] In this embodiment, the processor calculates the configuration cost function value corresponding to the initial position by substituting the distance and weight between the motion joint feature points of adjacent robotic arms calculated under the initial position into the configuration cost function, which is the first value.

[0077] S402. Perform iterative operations based on the first value until the first value satisfies the iteration condition, then determine the initial placement as the target initial placement.

[0078] Optionally, the iteration conditions include the difference between the first value of the configuration cost function of the next placement and the first value of the configuration cost function of the initial placement being within a preset difference range, and / or the difference between the first value of the configuration cost function of the next placement and a preset standard value being within a difference range.

[0079] In this embodiment, an iterative operation is performed based on the first value calculated from the configuration cost function of the initial placement and a preset iteration coefficient until the difference between the first value of the configuration cost function of the next placement and the first value of the configuration cost function of the initial placement is within a preset difference range, and / or the difference between the first value of the configuration cost function of the next placement and a preset standard value is within a difference range, and the target initial placement is output.

[0080] In this embodiment, based on the iteration condition, the method performs an iterative operation according to the first value of the initial placement until the iteration condition is met, which can effectively determine the target initial placement after iterative optimization.

[0081] During the execution of iterative operations, the processor specifically includes, in one embodiment, such as Figure 8 As shown, the above iterative operation is performed based on the first value until the first value satisfies the iteration condition, thus determining the initial placement as the target initial placement, including:

[0082] S501. Based on the first value and the preset difference matrix, determine the next placement and its configuration cost function; the difference matrix is ​​determined according to the wound constraint conditions.

[0083] The preset difference matrix is ​​an iterative difference matrix constructed based on the wound constraint conditions. In this embodiment, during the iteration process, the processor determines the (i+1)th placement and its corresponding configuration cost function based on the first value of the i-th initial placement and the preset difference matrix, and calculates the first value of the configuration cost function of the (i+1)th placement.

[0084] S502. If the first value of the configuration cost function of the next placement does not satisfy the iteration condition, then take the first value of the configuration cost function of the next placement as input and return to execute the iteration operation.

[0085] In this embodiment, based on the first value of the configuration cost function of the (i+1)th placement, it is determined whether the first value satisfies the iteration condition. If the difference between the first value of the configuration cost function of the (i+1)th placement and the first value of the configuration cost function of the initial placement is outside the preset difference range, and / or the difference between the first value of the configuration cost function of the (i+1)th placement and the preset standard value is outside the difference range, then the first value of the configuration cost function of the (i+1)th placement is used as input, and the iteration operation is returned.

[0086] S503. If the first value of the configuration cost function of the next placement satisfies the iteration condition, then the next placement is determined as the target initial placement.

[0087] In this embodiment, if the difference between the first value of the configuration cost function of the (i+1)th placement and the first value of the configuration cost function of the initial placement is within a preset difference range, and / or the difference between the first value of the configuration cost function of the (i+1)th placement and the preset standard value is within a difference range, then the (i+1)th placement is determined as the target initial placement. This embodiment does not limit this.

[0088] In this embodiment, an iterative operation is performed based on the first value of the configuration cost function of the initial placement and the preset iteration conditions until the first value of the configuration cost function of the placement meets the iteration conditions, and the target output placement is output. This method can effectively determine the target initial placement after iterative optimization.

[0089] The processor can also determine the target initial setup by traversing the configuration cost function of all setups, in one embodiment, such as Figure 9 As shown, the initial positioning includes multiple initial positioning of each robotic arm under all conditions; based on the configuration cost function of the initial positioning, the initial positioning of each robotic arm corresponding to the configuration cost function that satisfies the preset conditions is obtained as the target initial positioning of each robotic arm, and further includes:

[0090] S601. Obtain the configuration cost function corresponding to multiple initial placements.

[0091] In this embodiment, the processor can determine all possible candidate initial positions of the robot based on the number of robotic arms and the number of each joint of the robotic arms, and determine the configuration cost function corresponding to each candidate initial position based on the pose information and attribute information of each robotic arm under all candidate initial positions.

[0092] S602. Iterate through and calculate the first value of the configuration cost function corresponding to each initial placement.

[0093] In this embodiment, the function value of the configuration cost function corresponding to each candidate initial placement is calculated. Optionally, the function values ​​of the configuration cost function corresponding to all candidate initial placements can be stored in a specified storage space.

[0094] S603. The initial setup corresponding to the configuration cost function with the largest first value is determined as the target initial setup.

[0095] In this embodiment, the configuration cost function with the largest function value can be determined from among the function values ​​of the configuration cost functions corresponding to all candidate initial placements by any comparison method, and the placement corresponding to the configuration cost function is determined as the target initial placement.

[0096] In this embodiment, the traversal calculation method is suitable for scenarios with a small scale and a small number of robotic arms. In such scenarios, the initial target position can be determined simply and quickly based on the traversal calculation method.

[0097] After determining the initial position of the target, this embodiment also optionally provides a multi-robotic arm collision detection method, including: performing collision detection on each robotic arm according to the spatial pose of each robotic arm in the initial position of the target and a preset detection mode, and outputting the collision detection results.

[0098] The preset detection modes include collision detection of the robotic arm itself, collision detection between the robotic arm and environmental obstacle models, collision detection between robotic arms, and other collision detection of the robotic arm.

[0099] In one of the detection modes, the above detection mode includes robotic arm self-collision detection; based on the spatial pose of each robotic arm and the preset detection mode, collision detection is performed on each robotic arm, and the collision detection results are output, including:

[0100] Traverse every spatial pose of each robotic arm and perform self-collision detection on each robotic arm; if a robotic arm collides with itself, the collision detection result is determined to be a collision.

[0101] Among them, the self-collision detection of the robotic arm is to ensure that the robotic arm does not collide with itself when it moves to the target position.

[0102] In this embodiment, a traversal approach is adopted to perform self-collision detection on each link of each robotic arm. For example, robotic arm A has four links A1, A2, A3, and A4. Under each spatial pose, it is checked whether there is a collision or interference between A1, A2, A3, and A4. If any two links between A1, A2, A3, and A4 collide or interfere, the collision detection result is determined to be a collision, and the collision detection program is exited.

[0103] In another collision detection mode, the above detection mode includes collision detection between the robotic arm and the environment; based on the spatial pose of each robotic arm and the preset detection mode, collision detection is performed on each robotic arm, and the collision detection results are output, including:

[0104] The spatial pose of each robotic arm is traversed, and environmental collision detection is performed on each robotic arm. If a collision occurs between a robotic arm and an environmental obstacle, the collision detection result is determined to be a collision.

[0105] Environmental collision detection refers to the process of traversing and detecting obstacles between each robotic arm and an environmental obstacle model. The environmental obstacle model is a pre-defined model of obstacles that may exist in the current environment. Examples include operating tables, CT scanners, and spotlights. Similar to the robotic arm model, this model is only used to represent the three-dimensional geometric features of obstacles in the environment and is not limited to any particular form or file format.

[0106] In this embodiment, after the environmental obstacle model is determined, the relative positional relationship between the environmental obstacle model and the robotic arm needs to be determined. This can be achieved through external measurement or calibration to obtain the pose representations of the robotic arm and the environmental obstacle model in the world coordinate system. The coordinates of the environmental obstacle model and the coordinates of each robotic arm are then unified to the same world coordinate system, and environmental collision detection is performed on each robotic arm. The collision detection between each robotic arm and the environment also adopts a traversal approach; for each robotic arm, collision detection is performed between the robotic arm and all environmental obstacle models separately. If the robotic arm interferes with or collides with any environmental obstacle model, the collision detection result is determined to be a collision, and the collision detection program exits.

[0107] In another collision detection mode, the aforementioned detection mode includes robotic arm and robotic arm positioning optimization; based on the spatial pose of each robotic arm and the preset detection mode, collision detection is performed on each robotic arm, and the collision detection results are output, including:

[0108] Traverse the spatial poses of each robotic arm and perform pairwise collision detection on each robotic arm; if there is a collision or interference between any two robotic arms, then the collision detection result is determined to be a collision.

[0109] The detection mode provided in this embodiment refers to collision detection between different robotic arms. For example, a multi-arm robot has four robotic arms, A, B, C, and D. To perform collision detection between robotic arms, two robotic arms can be grouped together and arranged in six combinations: [A, B], [A, C], [A, D], [B, C], [B, D], and [C, D]. Collision detection is iterated for each case. Specifically, robotic arm A has four links A1, A2, A3, and A4, and robotic arm B has five links B1, B2, B3, B4, and B5. The collision detection process for [A, B] is as follows: A1 is checked for collision with B1~B5; A2 is checked for collision with B1~B5, and this process is repeated. If a collision or interference occurs between A1 and any of the robotic arms B1~B5, the program ends, and the collision detection result is determined to be a collision. Optionally, if A1 does not collide with any of B1 to B5, then A1 is replaced with A2, and collision detection is performed between A2 and B1 to B5 to obtain the detection results.

[0110] In this embodiment, under each detection mode, the robot can perform collision detection on each robotic arm in the corresponding mode by traversing the detection process. For example, the robot performs self-collision detection for each robotic arm, collision detection between each robotic arm and environmental obstacle models, and pairwise collision detection between each robotic arm and other robotic arms, etc. This embodiment does not limit the scope of the detection.

[0111] To better illustrate the above methods, such as Figure 10 As shown, this embodiment provides a method for optimizing the positioning of a robotic arm, specifically including:

[0112] S101. Obtain the initial position and attribute information of each robotic arm of the robot;

[0113] S102. Determine at least one motion joint feature point of the robotic arm based on the initial position and attribute information of the robotic arm, and determine the distance between each motion joint feature point of adjacent robotic arms.

[0114] S103. Based on the distance between the feature points of each motion joint of adjacent robotic arms under the initial position of each robotic arm and the preset weights of each robotic arm motion joint, determine the configuration cost function of the initial position.

[0115] S104. Calculate the first value of the configuration cost function for the initial setup;

[0116] S105. Based on the first value and the preset difference matrix, determine the next placement and its configuration cost function;

[0117] S106. If the first value of the configuration cost function of the next placement does not satisfy the iteration condition, then take the first value of the configuration cost function of the next placement as input and return to step S104.

[0118] S107. If the first value of the configuration cost function of the next placement satisfies the iteration condition, then the next placement is determined as the target initial placement.

[0119] S108. Based on the initial target position, traverse every spatial pose of each robotic arm and perform self-collision detection on each robotic arm.

[0120] S109. If the robotic arm itself collides, the collision detection result is determined to be a collision.

[0121] S110. If there is no collision, traverse the spatial pose of each robotic arm and perform environmental collision detection for each robotic arm.

[0122] S111. If the robotic arm collides with an environmental obstacle, the collision detection result is determined to be a collision.

[0123] S112. If there is no collision, traverse the spatial pose of each robotic arm and perform pairwise collision detection on each robotic arm.

[0124] S113. If there is a collision or interference between two robotic arms, the collision detection result is determined to be a collision.

[0125] S114, Output no collision result.

[0126] In this embodiment, the processor obtains the target initial position that meets the optimization objective and constraints. Based on the target initial position, each robotic arm has a larger motion planning space during subsequent robotic arm motion planning, reducing the probability of collisions between robotic arms and effectively avoiding collisions between robotic arms during surgery. Furthermore, both the initial position and the target initial position meet the preset wound constraint conditions, ensuring that the pose state of each robotic arm during the collision detection process remains unchanged, ensuring that the surgical instruments remain at the same wound point, thus avoiding the problem of wound enlargement during patient surgery.

[0127] The robotic arm positioning optimization method provided in the above embodiments has a similar implementation principle and technical effect to the above method embodiments, and will not be described again here.

[0128] It should be understood that, although Figure 2-10 The steps in the flowchart are shown sequentially as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order in which these steps are executed, and they can be performed in other orders. Figure 2-10At least some of the steps in the process may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but may be executed at different times. The execution order of these steps or stages is not necessarily sequential, but may be executed in turn or alternately with other steps or at least some of the steps or stages in other steps.

[0129] In one embodiment, such as Figure 11 As shown, a robotic arm positioning optimization device is provided, comprising: an acquisition module 01, a first determination module 02, and a second determination module 03, wherein:

[0130] The acquisition module 01 is used to acquire the initial position and attribute information of each robotic arm; wherein the initial position of each robotic arm satisfies the wound constraint conditions of each robotic arm.

[0131] The first determining module 02 is used to determine the configuration cost function corresponding to the initial position of each robotic arm based on the initial position and attribute information of each robotic arm.

[0132] The second determining module 03 is used to determine the initial position of each robotic arm that meets the preset conditions based on the configuration cost function of the initial position.

[0133] In one embodiment, the first determining module 02 is used to determine at least one motion joint feature point of the robotic arm based on the initial position and attribute information of the robotic arm, and to determine the distance between each motion joint feature point of adjacent robotic arms; and to determine the configuration cost function of the initial position based on the distance between each motion joint feature point of adjacent robotic arms under the initial position of each robotic arm and the preset weight of each robotic arm motion joint.

[0134] In one embodiment, the aforementioned motion joint feature points are selected as the center of the link model, the center of gravity of the link, the center of mass of the link, the center of the link enclosure box, the farthest point of the link end, or the center of joint rotation.

[0135] In one embodiment, the aforementioned joint weights can be determined based on one or a combination of the following: the number of links corresponding to the joint, the distance between the link and the patient, the size of the link, and the cumulative degrees of freedom of the link.

[0136] In one embodiment, the second determining module 03 is used to calculate a first value of the configuration cost function of the initial placement; perform an iterative operation based on the first value until the first value satisfies the iterative condition, and then determine the initial placement as the target initial placement.

[0137] In one embodiment, the second determining module 03 is used to determine the next placement and its configuration cost function based on the first value and a preset difference matrix; the difference matrix is ​​determined according to the wound constraint condition; if the first value of the configuration cost function of the next placement does not meet the iteration condition, the first value of the configuration cost function of the next placement is used as input, and the iteration operation is returned; if the first value of the configuration cost function of the next placement meets the iteration condition, the next placement is determined as the target initial placement.

[0138] In one embodiment, the iteration conditions include the difference between the first value of the configuration cost function of the next placement and the first value of the configuration cost function of the initial placement being within a preset difference range, and / or the difference between the first value of the configuration cost function of the next placement and a preset standard value being within a difference range.

[0139] In one embodiment, the initial positioning includes multiple initial positioning for each robotic arm under all conditions; the second determining module 03 is further configured to obtain the configuration cost function corresponding to the multiple initial positioning; iterate and calculate the first value of the configuration cost function corresponding to each initial positioning; and determine the initial positioning corresponding to the configuration cost function with the largest first value as the target initial positioning.

[0140] Specific limitations regarding the robotic arm positioning optimization device can be found in the limitations of the robotic arm positioning optimization method described above, and will not be repeated here. Each module in the aforementioned robotic arm positioning optimization device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device in hardware form, or stored in the memory of a computer device in software form, so that the processor can call and execute the operations corresponding to each module.

[0141] In one embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be as follows: Figure 12As shown, the computer device includes a processor, memory, communication interface, display screen, and input devices connected via a system bus. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, carrier networks, NFC (Near Field Communication), or other technologies. When the computer program is executed by the processor, it implements a robotic arm positioning optimization method. The display screen can be an LCD screen or an e-ink screen. The input devices can be a touch layer covering the display screen, buttons, a trackball, or a touchpad mounted on the computer device casing, or an external keyboard, touchpad, or mouse.

[0142] Those skilled in the art will understand that Figure 12 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0143] In one embodiment, a computer device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to perform the following steps:

[0144] Obtain the initial positioning and attribute information of each robotic arm;

[0145] The initial positioning of each robotic arm satisfies the wound constraint conditions of each robotic arm.

[0146] Based on the initial position and attribute information of each robotic arm, determine the configuration cost function corresponding to the initial position of each robotic arm;

[0147] Based on the configuration cost function of the initial position, the initial position of each robotic arm corresponding to the configuration cost function that satisfies the preset conditions is the target initial position of each robotic arm.

[0148] The computer device provided in the above embodiments has similar implementation principles and technical effects to the above method embodiments, and will not be described again here.

[0149] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon, the computer program performing the following steps when executed by a processor:

[0150] Obtain the initial positioning and attribute information of each robotic arm;

[0151] The initial positioning of each robotic arm satisfies the wound constraint conditions of each robotic arm.

[0152] Based on the initial position and attribute information of each robotic arm, determine the configuration cost function corresponding to the initial position of each robotic arm;

[0153] Based on the configuration cost function of the initial position, the initial position of each robotic arm corresponding to the configuration cost function that satisfies the preset conditions is the target initial position of each robotic arm.

[0154] The computer-readable storage medium provided in the above embodiments has similar implementation principles and technical effects to the above method embodiments, and will not be described again here.

[0155] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the methods described above. Any references to memory, storage, databases, or other media used in the embodiments provided in this 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, or optical storage, etc. Volatile memory can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc.

[0156] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0157] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the invention patent. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this patent application should be determined by the appended claims.

Claims

1. A collision detection method for a robotic arm, characterized in that, The method includes: Obtaining the configuration cost function corresponding to the initial position of each robotic arm; including: determining at least one motion joint feature point of each robotic arm based on the initial position of each robotic arm; determining the distance between the motion joint feature points of adjacent robotic arms based on the at least one motion joint feature point of each robotic arm; determining the configuration cost function of the initial position based on the distance between the motion joint feature points of adjacent robotic arms and the motion joint weights of each robotic arm under the initial position of each robotic arm; wherein, the initial position of each robotic arm satisfies the wound constraint condition of each robotic arm; the wound constraint condition is a constraint condition constructed based on the wound point position, and the wound point position is a fixed position; The target initial position of each robotic arm is determined based on the configuration cost function corresponding to the initial position; Based on the spatial pose of each robotic arm in the initial target positioning and the preset detection mode, collision detection is performed on each robotic arm, and the collision detection results are output.

2. The method according to claim 1, characterized in that, The step of determining at least one motion joint feature point of each robotic arm based on the initial positioning of each robotic arm includes: Based on the pose of each robotic arm corresponding to the initial position, determine the spatial coordinates of the motion joints in each robotic arm; Based on the spatial coordinates of the motion joints in each of the robotic arms, at least one motion joint feature point of each robotic arm is determined.

3. The method according to claim 1 or 2, characterized in that, The motion joint feature points include the center of the link model of the robotic arm, the center of gravity of the link, the center of mass of the link, the center of the link enclosure box, the farthest point of the link end, or the center of joint rotation.

4. The method according to claim 1 or 2, characterized in that, The method further includes: For any robotic arm, the joint weights of the robotic arm are determined based on at least one of the following: the number of links corresponding to the joints in the robotic arm, the distance between the link and the patient, the volume of the link, and the cumulative degrees of freedom of the link.

5. The method according to claim 1 or 2, characterized in that, The configuration cost function includes the configuration cost function of each pair of adjacent robotic arms in the initial setup.

6. The method according to claim 1 or 2, characterized in that, The initial positioning includes multiple initial positioning positions for each robotic arm under all conditions; determining the target initial positioning position for each robotic arm based on the configuration cost function corresponding to the initial positioning position includes: Obtain the configuration cost function corresponding to the multiple initial placements; The first value of the configuration cost function corresponding to each of the initial placements is calculated by iterating through the positions. The initial placement corresponding to the configuration cost function with the largest first value is determined as the target initial placement.

7. The method according to claim 1 or 2, characterized in that, The detection mode includes robotic arm self-collision detection. Based on the spatial pose of each robotic arm in the initial target positioning and a preset detection mode, collision detection is performed on each robotic arm, and the collision detection results are output, including: Traverse the spatial poses of each robotic arm and perform self-collision detection on each robotic arm; If the robotic arm itself collides with another object, the collision detection result is determined to be a collision.

8. The method according to claim 1 or 2, characterized in that, The detection mode includes collision detection between the robotic arm and the environment. Based on the spatial pose of each robotic arm in the initial target positioning and the preset detection mode, collision detection is performed on each robotic arm, and the collision detection results are output, including: Traverse the spatial poses of each robotic arm and perform environmental collision detection on each robotic arm; If the robotic arm collides with an environmental obstacle, the collision detection result is determined to be a collision.

9. The method according to claim 1 or 2, characterized in that, The detection mode includes collision detection between robotic arms. Based on the spatial pose of each robotic arm in the initial target positioning and the preset detection mode, collision detection is performed on each robotic arm, and the collision detection results are output, including: Traverse the spatial poses of each robotic arm and perform pairwise collision detection on each robotic arm; If a collision or interference occurs between any two robotic arms, the collision detection result is determined to be a collision.

10. A collision detection device for a robotic arm, characterized in that, The device includes: An acquisition module is used to acquire the configuration cost function corresponding to the initial position of each robotic arm; wherein the initial position of each robotic arm satisfies the wound constraint condition of each robotic arm; the wound constraint condition is a constraint condition constructed based on the wound point position, and the wound point position is a fixed position; wherein the acquisition module includes a first determination unit, a second determination unit, and a third determination unit; the first determination unit is used to determine at least one motion joint feature point of each robotic arm based on the initial position of each robotic arm; the second determination unit is used to determine the distance between each motion joint feature point of adjacent robotic arms based on at least one motion joint feature point of each robotic arm; the third determination unit is used to determine the configuration cost function of the initial position based on the distance between each motion joint feature point of adjacent robotic arms and the motion joint weight of each robotic arm under the initial position of each robotic arm; The determination module is used to determine the target initial position of each robotic arm based on the configuration cost function corresponding to the initial position; The detection module is used to perform collision detection on each of the robotic arms based on the spatial pose of each robotic arm in the initial target positioning and the preset detection mode, and output the collision detection results.

11. The apparatus according to claim 10, characterized in that, The first determining unit includes: A subunit is defined to determine the spatial coordinates of the motion joints in each of the robotic arms based on the pose of each robotic arm corresponding to the initial position; and to determine at least one motion joint feature point of each robotic arm based on the spatial coordinates of the motion joints in each robotic arm.

12. The apparatus according to claim 10 or 11, characterized in that, The motion joint feature points include the center of the link model of the robotic arm, the center of gravity of the link, the center of mass of the link, the center of the link enclosure box, the farthest point of the link end, or the center of joint rotation.

13. The apparatus according to claim 10 or 11, characterized in that, The device is also used to determine the joint weights of any robotic arm based on at least one of the following: the number of links corresponding to the joints in the robotic arm, the distance between the link and the patient, the volume of the link, and the cumulative degrees of freedom of the link.

14. The apparatus according to claim 10 or 11, characterized in that, The configuration cost function includes the configuration cost function of each pair of adjacent robotic arms in the initial setup.

15. The apparatus according to claim 10 or 11, characterized in that, The initial positioning includes multiple initial positioning positions for each robotic arm under all conditions; the determining module includes: The fourth determining unit is used to obtain the configuration cost function corresponding to the plurality of initial placements; to iterate and calculate the first value of the configuration cost function corresponding to each initial placement; and to determine the initial placement corresponding to the configuration cost function with the largest first value as the target initial placement.

16. The apparatus according to claim 10 or 11, characterized in that, The detection mode includes robotic arm self-collision detection, and the detection module includes: The first traversal unit is used to traverse the spatial pose of each robotic arm and perform self-collision detection on each robotic arm. The fifth determining unit is used to determine the collision detection result as a collision if the robotic arm itself collides with the target.

17. The apparatus according to claim 10 or 11, characterized in that, The detection mode includes collision detection between the robotic arm and the environment, and the detection module includes: The second traversal unit is used to traverse the spatial pose of each robotic arm and perform environmental collision detection on each robotic arm. The sixth determining unit is used to determine the collision detection result as a collision if the robotic arm collides with an environmental obstacle.

18. The apparatus according to claim 10 or 11, characterized in that, The detection mode includes collision detection between robotic arms, and the detection module includes: The third traversal unit is used to traverse the spatial pose of each robotic arm and perform pairwise collision detection on each robotic arm. The seventh determining unit is used to determine the collision detection result as a collision if there is a collision or interference between two robotic arms.

19. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 9.

20. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 9.

Citation Information

Patent Citations

  • Moving trajectory planning method for space moving multi-arm robot

    CN106166749A

  • Surgical robot system, adjustment method, storage medium and terminal

    CN112245011A