Mechanical arm search type general kinematics reverse solution method

Through the general kinematic reverse solution method of robot arm search, dichotomy and iterative search technology, the problem of inverse solution of high-degree of freedom robot arm is solved, and efficient inverse solution is achieved without sacrificing work space and ability, which is suitable for path planning.

CN120256774APending Publication Date: 2025-07-04TSINGHUA UNIVERSITY
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510396020.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-31
Publication Date
2025-07-04

AI Technical Summary

Technical Problem

The prior art cannot effectively perform inverse solution derivation without sacrificing the working space and other capabilities of the redundant degree of freedom robotic arms, especially in the combined arms of high degree of freedom robotic arms such as the combined arms of the Chinese space station (14 degrees of freedom), which have low computing efficiency and is difficult to achieve automatic path planning.

Method used

The general kinematic reverse solution method of robotic arm search is used to calculate the distance between the current position and the target position, and gradually adjust the search step length of the search accuracy requirements and the degree of freedom of the search, and iterative search is carried out until the accuracy requirements are met, and the target variable value of each degree of freedom is determined.

Benefits of technology

It effectively overcomes the problem of reverse solution of high-degree of freedom robotic arm, fully utilizes the advantages of redundant degree of freedom, improves computing efficiency, is suitable for path planning rather than real-time control, and enhances the operational flexibility and work space of robotic arm.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120256774A_ABST
    Figure CN120256774A_ABST
Patent Text Reader

Abstract

The invention relates to a mechanical arm search type general kinematics reverse solving method which comprises the steps that the distance between a current pose and a target pose is calculated according to the current pose and the target pose of a mechanical arm, and whether the distance meets the target precision requirement or not is judged; if not, searching is carried out according to the current distance and the search precision requirement for gradually reducing each search round according to a dichotomy method; in each round of search, determining the search step length of each degree of freedom based on the search precision requirement and the current pose, and performing iterative search in the movable range of each degree of freedom according to the search sequence from the tail end to the base by using each search step length so as to obtain a target variable value which corresponds to each degree of freedom and meets the search precision requirement; and if the search result of the current round meets the target precision requirement, the search is ended, the target variable value corresponding to each degree of freedom is determined according to the search result, otherwise, the next round of search is carried out, and therefore the problem of inverse solution of the high-degree-of-freedom mechanical arm is solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the technical field of inverse kinematic solution of robotic arms, and particularly relates to a search-based general inverse kinematic solution method for robotic arms. Background Art

[0002] The kinematic calculation of a robotic arm includes forward solution (abbreviated as forward kinematics) and inverse solution (abbreviated as inverse kinematics). Among them, forward kinematics is to calculate the position and pose (abbreviated as pose) of the end effector according to the specific values (mostly angle values, but may also be displacement values) of each degree of freedom (specifically realized through joints). The inverse kinematics is to solve the values of each degree of freedom (joints) in reverse according to the target pose. According to the specific configuration of the robotic arm, the specific formula for calculating the end effector pose variables based on each degree of freedom variable can be deduced. Therefore, the forward kinematics is easy to calculate, and when the values of each degree of freedom are determined, a unique result of the end effector pose will be obtained. However, due to reasons such as trigonometric functions, when the number of degrees of freedom is relatively high, it is often complicated to deduce the formula for calculating the values of each degree of freedom from the end effector pose in reverse, and there may be multiple solutions, or even an infinite number of solutions. The end effector pose is generally described by 6 variables (3 position coordinate variables and 3 attitude variables). Therefore, when the number of degrees of freedom of the robotic arm exceeds 6, that is, there are redundant degrees of freedom, the inverse kinematics often has an infinite number of solutions. Also, because the forward kinematics calculation formula is very complicated, it may be impossible to deduce an accurate inverse kinematics calculation formula. Although redundant degrees of freedom bring some technical problems, they have many benefits for complex applications, such as bypassing obstacles, avoiding singularities, avoiding reaching joint limits, expanding the working space, improving operation flexibility, and supporting various other optimizations. Sometimes redundant degrees of freedom are also adopted for bionic purposes. For example, anthropomorphic robotic arms adopt 7 degrees of freedom, the same as the human arm.

[0003] For the inverse kinematic solution of robotic arms with redundant degrees of freedom, the currently adopted solutions mainly have the following two methods:

[0004] Method 1: Simplify, for example, artificially determine the values of certain degrees of freedom, or introduce parameters such as "arm angle", so that the remaining degrees of freedom can be deduced to have an accurate calculation formula for solution;

[0005] Method 2: Solve by defining an optimization function, for example, requiring the joint angles to be as close as possible to their central positions.

[0006] However, Method 1 sacrifices greatly the benefits brought by redundant degrees of freedom. When performing motion trajectory planning, it may be difficult to artificially determine the restricted degrees of freedom or the values of the introduced parameters. Also, because it requires manual participation in setting parameters, it is not conducive to automatic path planning. For a robotic arm with a high degree of redundant degrees of freedom (for example, for the Chinese Space Station, there are two robotic arms with 7 degrees of freedom for the large arm and the small arm, and the two arms can form a combined arm with 14 degrees of freedom), the algorithm for reducing degrees of freedom means reducing the reachable workspace of the robotic arm and cannot fully utilize the capabilities of the robotic arm. When using Method 2, deriving the accurate inverse solution calculation formula requires relatively complex mathematical skills, which is not only often difficult but may also not result in a method that does not require numerical iterative calculation; the computational efficiency of iterative calculation is relatively low, and if the inverse solution calculation formula is very complex, the efficiency of the optimization algorithm will also be low; if the computational efficiency is low, the significance of deriving the inverse solution calculation formula is reduced; for application scenarios with a high degree of freedom, such as the combined arm of the Chinese Space Station with a degree of freedom as high as 14, it is almost impossible to derive the inverse solution formula without simplification (thus sacrificing the capabilities of the robotic arm).

[0007] In summary, the existing technology cannot effectively perform inverse solution derivation without sacrificing the workspace and other capabilities of a robotic arm with redundant degrees of freedom, which urgently needs to be solved. Summary of the Invention

[0008] This application provides a search-based general kinematic inverse solution method for a robotic arm to solve problems such as the existing technology being unable to effectively perform inverse solution derivation without sacrificing the workspace and other capabilities of a robotic arm with redundant degrees of freedom.

[0009] In a first aspect embodiment of this application, a search-based general kinematic inverse solution method for a robotic arm is provided, including the following steps: determining the current pose and the target pose of the target robotic arm, calculating the distance between the current pose and the target pose, and determining whether the distance meets the target accuracy requirement; if the distance does not meet the target accuracy requirement, then search by gradually reducing the search accuracy requirement for each search round according to the preset dichotomy method based on the distance, and based on the search accuracy requirement corresponding to each search round and the current pose, determine the search step size for each degree of freedom of the target robotic arm, and perform iterative search within the movable range of each degree of freedom in the search order from the end to the base using the search step size for each degree of freedom to obtain the target variable values corresponding to each degree of freedom that meet the search accuracy requirement.

[0010] Optionally, in an embodiment of this application, it further includes: if the search result of the current search round meets the corresponding search accuracy requirement, end the search and determine the target variable values corresponding to each degree of freedom according to the search result; otherwise, perform the search operation for the next search round.

[0011] Optionally, in an embodiment of the present application, if the distance does not meet the target accuracy requirement, then if the distance does not meet the target accuracy requirement, search is performed by gradually reducing the search accuracy requirement of each search round according to the preset dichotomy method based on the distance, and based on the search accuracy requirement corresponding to each search round and the current pose, the search step size of each degree of freedom of the target robotic arm is determined, and the iterative search is performed within the movable range of each degree of freedom in the search order from the end to the base using the search step size of each degree of freedom to obtain the target variable value corresponding to each degree of freedom that meets the search accuracy requirement, including: determining the search accuracy requirement corresponding to each round of search based on the preset dichotomy method, and determining whether a search result that meets the target accuracy requirement is obtained during the search process of the current round; if a search result that meets the corresponding search accuracy requirement is obtained during the search process of the current round, stop the search, return the search result that meets the requirement, and determine the target variable value according to the search result; if a search result that meets the corresponding search accuracy requirement is not obtained during the search process of the current round, end the search, return the search result that is closest to the search accuracy requirement, and use the search result that is closest to the search accuracy requirement as the target variable value.

[0012] Optionally, in an embodiment of the present application, based on the search accuracy requirement corresponding to each search round and the current pose, determining the search step size of each degree of freedom of the target robotic arm, and performing iterative search within the movable range of each degree of freedom in the search order from the end to the base using the search step size of each degree of freedom to obtain the target variable value corresponding to each degree of freedom that meets the search accuracy requirement, including: determining the search step size of the rotational degree of freedom and the translational degree of freedom corresponding to the target robotic arm based on the search accuracy requirement and the current pose of the target robotic arm;

[0013] Take the order from the degrees of freedom near the end to the degrees of freedom near the base corresponding to the target robotic arm as the search order corresponding to the target robotic arm, and number all degrees of freedom from n to 1 according to the search order, where n is the total number of degrees of freedom; determine the current iteration initial value of each degree of freedom corresponding to the target robotic arm, and for degrees of freedom numbered from 1 to n - 1, search sequentially starting from the current iteration initial value corresponding to each degree of freedom; start searching from the current iteration initial value corresponding to the nth degree of freedom, calculate the initial distance between the pose at the current iteration initial values of each degree of freedom and the target pose, and determine whether the initial distance meets the search accuracy requirement corresponding to the current round of the search process. If the initial distance meets the search accuracy requirement corresponding to the current round of the search process, end the current round of the search process and return the search result of the current round. If the nth degree of freedom is locked, end the search for the nth degree of freedom; gradually adjust the current iteration initial value of the nth degree of freedom according to the search step size and the preset adjustment direction to obtain the current value corresponding to the nth degree of freedom, and calculate the distance between the pose at the current values of each degree of freedom and the target pose. If the distance is not greater than the search accuracy requirement corresponding to the current round of the search process, obtain the search result of the current round and end the current round of the search; if the distance is not less than the previous distance, exit the search in the current direction; for any ith degree of freedom among the degrees of freedom numbered from 1 to n - 1, record the minimum distance obtained from the search of the subsequent degree of freedom as the initial distance of the ith degree of freedom, and when the ith degree of freedom is locked, end the search for the ith degree of freedom; gradually adjust the current iteration initial value of the ith degree of freedom according to the search step size and the adjustment direction to obtain the current value corresponding to the ith degree of freedom, and conduct the search for the subsequent degrees of freedom. If the distance corresponding to the search result is not less than the initial distance of the ith degree of freedom, exit the search in the current direction.

[0014] Optionally, in an embodiment of the present application, the obtaining the search result of the current round corresponding to the current search process based on the distance and the search accuracy requirement corresponding to the current search process includes: determining whether the distance meets the search accuracy requirement; if the distance meets the search accuracy requirement corresponding to the current round of the search process, end the current search process and use the current search result as the search result of the current round; if the distance is not less than the distance of the previous search step, exit the search in the corresponding adjustment direction; use the minimum distance obtained when ending the search for a certain degree of freedom as the initial distance of its previous degree of freedom.

[0015] A second aspect of the embodiments of the present application provides an electronic device, including: a memory, a processor, and a computer program stored on the memory and executable on the processor. The processor executes the program to implement the robotic arm search-based general kinematic inverse solution method as described in the above embodiments.

[0016] A third aspect of the embodiments of the present application provides a computer-readable storage medium storing a computer program, which when executed by a processor implements the above robotic arm search-based general kinematic inverse solution method.

[0017] A fourth aspect of the embodiments of the present application provides a computer program product including a computer program, which is executed to implement the above robotic arm search-based general kinematic inverse solution method.

[0018] Therefore, the embodiments of the present application have the following beneficial effects:

[0019] The embodiments of the present application can determine the current pose and the target pose of the target robotic arm, calculate the distance between the current pose and the target pose, and determine whether the distance meets the target accuracy requirement; if the distance does not meet the target accuracy requirement, then according to the current distance, the search accuracy requirement for each search round is gradually reduced according to the dichotomy method for search; during each round of search, based on the target search requirement and the current pose, determine the search step size of each degree of freedom of the target robotic arm, and perform iterative search within the movable range of each degree of freedom in the search order from the end to the base according to each search step size to obtain the target variable value that meets the search accuracy requirement corresponding to each degree of freedom; if the search result of the current round meets the target accuracy requirement, end the search and determine the target variable value corresponding to each degree of freedom according to the search result, otherwise perform the next round of search, so as to give full play to the capabilities brought by high degrees of freedom and overcome the problem of inverse kinematic solution of robotic arms with high degrees of freedom. Thus, it solves the problems in the prior art that it is impossible to effectively perform inverse kinematic derivation without sacrificing the working space and other capabilities of a robotic arm with redundant degrees of freedom.

[0020] The additional aspects and advantages of the present application will be partially given in the following description, partially become apparent from the following description, or be understood through the practice of the present application. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] The above and / or additional aspects and advantages of the present application will become apparent and be easily understood from the following description of the embodiments in conjunction with the drawings, where:

[0022] Figure 1 is a flowchart of a robotic arm search-based general kinematic inverse solution method according to an embodiment of the present application;

[0023] Figure 2 Schematic diagram of the structure of the electronic device provided by the embodiment of the present application. Detailed implementation manners

[0024] The embodiments of the present application will be described in detail below. Examples of the embodiments are shown in the accompanying drawings, where the same or similar reference numerals indicate the same or similar elements or elements with the same or similar functions throughout. The embodiments described below with reference to the accompanying drawings are exemplary and are intended to explain the present application, and should not be construed as a limitation of the present application.

[0025] The robotic arm search-based general kinematic inverse solution method of the embodiments of the present application will be described below with reference to the accompanying drawings. In view of the problems mentioned in the above background art, the present application provides a robotic arm search-based general kinematic inverse solution method. In this method, according to the current pose and target pose of the given target robotic arm, the distance between the current pose and the target pose is calculated, and it is determined whether the distance meets the target accuracy requirement; if the distance does not meet the target accuracy requirement, then according to the current distance, the search accuracy requirement for each search round is gradually reduced according to the dichotomy method for search; in each round of search, based on the search accuracy requirement and the current pose, the search step size of each degree of freedom of the target robotic arm is determined, and iterative search is performed within the movable range of each degree of freedom in the search order from the end to the base according to each search step size to obtain the target variable value corresponding to each degree of freedom that meets the search accuracy requirement; if the search result of the current round meets the target accuracy requirement, the search is ended, otherwise the next round of search is performed, and finally the target variable value corresponding to each degree of freedom is determined through the search result, so that the capabilities brought by high degrees of freedom can be fully utilized, and the problem of inverse kinematics solution of robotic arms with high degrees of freedom is overcome. Thereby, the problems in the prior art that it is impossible to effectively perform inverse solution derivation without sacrificing the working space and other capabilities of a robotic arm with redundant degrees of freedom are solved.

[0026] Specifically, Figure 1 Flowchart of a robotic arm search-based general kinematic inverse solution method provided by the embodiment of the present application.

[0027] As Figure 1 shown, the robotic arm search-based general kinematic inverse solution method includes the following steps:

[0028] In step S101, the current pose and target pose of the target robotic arm are determined, the distance between the current pose and the target pose is calculated, and it is determined whether the distance meets the target accuracy requirement.

[0029] In step S102, if the distance does not meet the target accuracy requirement, search is performed by gradually reducing the search accuracy requirement for each search round according to the preset dichotomy method based on the distance, and the search step size for each degree of freedom of the target robotic arm is determined based on the search accuracy requirement corresponding to each search round and the current pose. Then, iterative search is performed within the movable range of each degree of freedom in the search order from the end to the base using the search step sizes of each degree of freedom to obtain the target variable values that meet the search accuracy requirement for each degree of freedom.

[0030] Optionally, in an embodiment of the present application, it further includes: if the search result of the current search round meets the corresponding search accuracy requirement, end the search and determine the target variable values corresponding to each degree of freedom according to the search result; otherwise, perform the search operation for the next search round.

[0031] In the embodiment of the present application, first, the distance between the current pose and the target pose of the given robotic arm is calculated, and it is determined whether the distance meets the target accuracy requirement (i.e., the final accuracy requirement). Among them, when the distance does not meet the target accuracy requirement, that is, the distance is greater than or equal to the final accuracy requirement, the embodiment of the present application can determine the search step size for each degree of freedom of the robotic arm, and perform iterative search within the movable range of each degree of freedom in the search order from the end to the base to obtain the corresponding target variable values.

[0032] Optionally, in an embodiment of the present application, if the distance does not meet the target accuracy requirement, then search is performed by gradually reducing the search accuracy requirement for each search round according to the preset dichotomy method based on the distance, and the search step size for each degree of freedom of the target robotic arm is determined based on the search accuracy requirement corresponding to each search round and the current pose. Then, iterative search is performed within the movable range of each degree of freedom in the search order from the end to the base using the search step sizes of each degree of freedom to obtain the target variable values that meet the search accuracy requirement for each degree of freedom, including: determining the search accuracy requirement corresponding to each round of search based on the preset dichotomy method, and judging whether a search result that meets the target accuracy requirement is obtained during the search process of the current round; if a search result that meets the corresponding search accuracy requirement is obtained during the search process of the current round, stop the search, return the satisfied search result, and determine the target variable values according to the search result; if a search result that meets the corresponding search accuracy requirement is not obtained during the search process of the current round, end the search, return the search result that is closest to the search accuracy requirement, and use the search result that is closest to the search accuracy requirement as the target variable values.

[0033] It should be noted that the embodiment of the present application can use the dichotomy method for overall search to gradually reduce the search error until the required accuracy is met. The specific process is as described in the following pseudocode:

[0034] Overall Search Algorithm (Bisection Method)

[0035] Calculate the distance d between the current pose and the target pose;

[0036] If d is less than the final precision requirement D, end;

[0037] Otherwise, initialize the current search precision requirement E = d;

[0038] Search for the values of the degrees of freedom variables according to the following steps until the error between the end - effector pose and the target pose is less than the final precision requirement:

[0039] {

[0040] Let the current search precision requirement E = max(E / 2, D), and perform the search according to this requirement; / / Here, taking the maximum value of the halved value and the final precision requirement is because the halved value may be smaller than the final precision requirement value, so it is necessary to avoid using too high a precision requirement

[0041] If the search does not obtain a result that meets the current search precision requirement, end the search and return the current best result;

[0042] If the search result has reached the final precision requirement, end the search and return the current result;

[0043] If the search result is better (with a smaller error) than the result of the previous round of search but has not reached the final precision requirement, record the current result and continue the next round of search.

[0044] }

[0045] Thus, the embodiments of the present application effectively ensure the acquisition of variable values that meet the preset precision requirements by gradually reducing the search error using the bisection method.

[0046] Optionally, in an embodiment of the present application, based on the search accuracy requirement corresponding to each search round and the current pose, the search step size of each degree of freedom of the target robotic arm is determined, and iterative search is performed within the movable range of each degree of freedom in the search order from the end to the base using the search step size of each degree of freedom, so as to obtain the target variable values corresponding to each degree of freedom that meet the search accuracy requirement, including: determining the search step size of the rotational degree of freedom and the translational degree of freedom corresponding to the target robotic arm based on the search accuracy requirement and the current pose of the target robotic arm; taking the order from the degree of freedom close to the end to the degree of freedom close to the base corresponding to the target robotic arm as the search order corresponding to the target robotic arm, and numbering all degrees of freedom from n to 1 according to the search order, where n is the total number of degrees of freedom; determining the current iteration initial value of each degree of freedom corresponding to the target robotic arm, and for the degrees of freedom numbered 1 to n - 1, starting the search from the current iteration initial value corresponding to each degree of freedom in turn; starting the search from the current iteration initial value corresponding to the nth degree of freedom, calculating the initial distance between the pose at the current iteration initial value of each degree of freedom and the target pose, and determining whether the initial distance meets the search accuracy requirement corresponding to the current round of the search process. If the initial distance meets the search accuracy requirement corresponding to the current round of the search process, end the current round of the search process and return the search result of the current round. If the nth degree of freedom is locked, end the search of the nth degree of freedom; gradually adjust the current iteration initial value of the nth degree of freedom according to the search step size and the preset adjustment direction to obtain the current value corresponding to the nth degree of freedom, and calculate the distance between the pose at the current value of each degree of freedom and the target pose. If the distance is not greater than the search accuracy requirement corresponding to the current round of the search process, obtain the search result of the current round and end the current round of the search; if the distance is not less than the previous distance, exit the search in the current direction; for any ith degree of freedom among the degrees of freedom numbered 1 to n - 1, record the minimum distance obtained from the search of the subsequent degree of freedom as the initial distance of the ith degree of freedom, and when the ith degree of freedom is locked, end the search of the ith degree of freedom; gradually adjust the current iteration initial value of the ith degree of freedom according to the search step size and the adjustment direction to obtain the current value corresponding to the ith degree of freedom, and perform the search of the subsequent degrees of freedom. If the distance corresponding to the search result is not less than the initial distance of the ith degree of freedom, exit the search in the current direction.

[0047] It should be noted that the embodiments of the present application also support manually specifying that certain degrees of freedom do not move, or because a certain degree of freedom fails, its value is not changed, that is, the degree of freedom is locked.

[0048] In the specific implementation process, in the specific process of each round of search in the embodiments of the present application, the search step size of each degree of freedom can be set first:

[0049] For the rotational degree of freedom, its search step size is:

[0050] Deltai = E / R i * R2D / 2

[0051] where E is the search accuracy requirement for the current round; R i is the distance from the rotation center of degree of freedom i in the current pose to the end; R2D is the transformation factor from radians to degrees; Delta i means how many degrees of rotation of degree of freedom i when the arc length of the end movement is equal to half of E.

[0052] For translational degrees of freedom, the search step size is: Delta i = E / 2.

[0053] It should be noted that the above search step size setting corresponds to half of the current search accuracy requirement, indicating that the search is performed on both sides from the current pose according to half of the accuracy requirement.

[0054] After that, the embodiments of the present application can search within the movable range of each degree of freedom in the order from the degree of freedom close to the end to the degree of freedom close to the base (referred to as from front to back, numbered from 1 to n, where n is the total number of degrees of freedom).

[0055] It can be understood that the embodiments of the present application can start the search from the values of each degree of freedom variable in the current pose of the robotic arm, reach the target pose with as small a change as possible, reduce the movement of each joint of the robotic arm, and thus reduce energy consumption; in addition, the embodiments of the present application can also change the values of each degree of freedom variable in the order from the end to the base, that is, give priority to changing the joints far from the base, so as to reduce the swept area of the robotic arm moving from the current pose to the target pose, reduce the safety risk, and at the same time, because the joints closer to the base drive a larger mass during movement, the energy consumption is effectively reduced.

[0056] Optionally, in an embodiment of the present application, based on the distance and the search accuracy requirement corresponding to the current search process, the current round search result corresponding to the current search process is obtained, including: judging whether the distance meets the search accuracy requirement; if the distance meets the search accuracy requirement corresponding to the current round search process, end the current search process and use the current search result as the current round search result; if the distance is not less than the distance of the previous search step, exit the search in the corresponding adjustment direction; use the minimum distance obtained when ending the search of a certain degree of freedom as the initial distance of its previous degree of freedom.

[0057] Specifically, the specific process of each round of search in the embodiments of the present application is as described in the following pseudocode:

[0058] {

[0059] For degrees of freedom 1 to n - 1, start the search from their initial values in this round in sequence:

[0060] {

[0061] Search for the degree of freedom \(n\) starting from its initial value in this cycle:

[0062] {

[0063] Calculate the distance \(Dis\) between the pose at the current value of each degree of freedom and the target pose;

[0064] If \(Dis\) is less than the accuracy requirement of this cycle, end the search of this cycle and return the result of this cycle;

[0065] If the degree of freedom \(n\) is locked, end the search for the degree of freedom \(n\);

[0066] Increase the value of the degree of freedom \(n\) step by step according to \(\Delta\) n Gradually increase:

[0067] {

[0068] Calculate the distance \(Dis\) between the pose at the current value of each degree of freedom and the target pose;

[0069] If \(Dis\) is less than the accuracy requirement of this cycle, end the search of this cycle and return the result of this cycle;

[0070] If \(Dis\) is worse than the result of the previous step, exit the search in this direction (increase);

[0071] }

[0072] Decrease the value of the degree of freedom \(n\) step by step according to \(\Delta\) n Gradually decrease:

[0073] {

[0074] Calculate the distance \(Dis\) between the pose at the current value of each degree of freedom and the target pose;

[0075] If \(Dis\) is less than the accuracy requirement of this cycle, end the search of this cycle and return the result of this cycle;

[0076] If \(Dis\) is worse than the result of the previous step, exit the search in this direction (decrease);

[0077] }

[0078] }

[0079] Record the best result obtained from the search of the next degree of freedom as the initial result of this degree of freedom \(i\);

[0080] If the degree of freedom \(i\) is locked, end the search for the degree of freedom \(i\);

[0081] Increase the value of the degree of freedom \(i\) step by step according to \(\Delta\) i Gradually increase:

[0082] {

[0083] Search for the subsequent degrees of freedom starting from their initial values in this round;

[0084] If the obtained result is worse than the initial result of this degree of freedom i, then exit the search in this direction (increase);

[0085] }

[0086] Reduce the value of this degree of freedom i step by step according to Delta i Gradually decrease:

[0087] {

[0088] Search for the subsequent degrees of freedom starting from their initial values in this round;

[0089] If the obtained result is worse than the initial result of this degree of freedom i, then exit the search in this direction (decrease);

[0090] }

[0091] }

[0092] }

[0093] It can be understood that in the embodiments of the present application, if a certain degree of freedom of the robotic arm changes by a small amount in one direction (increase or decrease), and the end pose cannot be made closer to the target pose, there is no need to continue searching in this direction. That is, for a degree of freedom variable, only one exploration is required for both increasing and decreasing its value to clarify, thus avoiding blind exploration in invalid directions and greatly reducing the number of searches.

[0094] In summary, the embodiments of the present application provide a search-based general algorithm for inverse kinematic solution of a robotic arm with redundant degrees of freedom, which solves the problem of inverse solution of a high-degree-of-freedom robotic arm and can give full play to the capabilities brought by high degrees of freedom. However, although the embodiments of the present application try to improve the search efficiency, it is still not applicable to real-time robotic arm control calculations, but is applicable to the application conditions of path planning calculations and then sending them to the robotic arm control system for execution.

[0095] According to the robotic arm search-based general kinematic inverse solution method proposed in the embodiments of the present application, based on the current pose and target pose of a given target robotic arm, the distance between the current pose and the target pose is calculated, and it is determined whether the distance meets the target accuracy requirement; if the distance does not meet the target accuracy requirement, then according to the current distance, the search accuracy requirement for each search round is gradually reduced according to the dichotomy method for search; during each round of search, based on the search accuracy requirement and the current pose, the search step size for each degree of freedom corresponding to the target robotic arm is determined, and iterative search is performed within the movable range of each degree of freedom in the search order from the end to the base at each search step size, so as to obtain the target variable values that meet the search accuracy requirement corresponding to each degree of freedom; if the search result of the current round meets the target accuracy requirement, the search ends, and the target variable values corresponding to each degree of freedom are determined according to the search result, otherwise the next round of search is performed, thereby being able to give full play to the capabilities brought by high degrees of freedom and overcoming the problem of the inverse solution of high-degree-of-freedom robotic arms.

[0096] Figure 2 The structural schematic diagram of the electronic device provided by the embodiments of the present application. The electronic device may include:

[0097] A memory 201, a processor 202, and a computer program stored on the memory 201 and executable on the processor 202.

[0098] When the processor 202 executes the program, it implements the robotic arm search-based general kinematic inverse solution method provided in the above embodiments.

[0099] Furthermore, the electronic device includes:

[0100] A communication interface 203 for communication between the memory 201 and the processor 202.

[0101] The memory 201 is used to store a computer program executable on the processor 202.

[0102] The memory 201 may include a high-speed RAM memory, and may also include non-volatile memory, such as at least one disk memory.

[0103] If the memory 201, the processor 202, and the communication interface 203 are implemented independently, the communication interface 203, the memory 201, and the processor 202 can be interconnected via a bus and communicate with each other. The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 2 only a thick line is used in Figure 2 to represent it, but it does not mean that there is only one bus or one type of bus.

[0104] Optionally, in a specific implementation, if the memory 201, the processor 202, and the communication interface 203 are integrated on a single chip, the memory 201, the processor 202, and the communication interface 203 can communicate with each other through an internal interface.

[0105] The processor 202 may be a Central Processing Unit (CPU), or an Application Specific Integrated Circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of the present application.

[0106] The embodiments of the present application provide a computer-readable storage medium, on which a computer program is stored. When the program is executed by a processor, the above-mentioned robotic arm search-based general kinematic inverse solution method is implemented.

[0107] The embodiments of the present application also provide a computer program product, including a computer program. When the computer program is executed, it is used to implement the above-mentioned robotic arm search-based general kinematic inverse solution method.

[0108] In the description of this specification, the descriptions referring to terms such as "one embodiment", "some embodiments", "example", "specific example", or "some examples", etc., mean that the specific features, structures, materials, or characteristics described in connection with the embodiment or example are included in at least one embodiment or example of this application. In this specification, the schematic representations of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials, or characteristics described can be combined in any one or N embodiments or examples in a suitable manner. In addition, without contradiction, those skilled in the art can combine and combine the different embodiments or examples described in this specification and the features of different embodiments or examples.

[0109] In addition, the terms "first" and "second" are used only for descriptive purposes and cannot be construed as indicating or implying relative importance or implicitly specifying the quantity of the indicated technical features. Thus, the features defined with "first" and "second" may explicitly or implicitly include at least one of such features. In the description of this application, the meaning of "N" is at least two, such as two, three, etc., unless otherwise specifically and clearly defined.

[0110] Any process or method description shown in a flowchart or described in other ways herein can be understood as representing a module, segment, or part of code including one or N executable instructions for implementing a customized logical function or process, and the scope of the preferred embodiments of this application includes additional implementations, where the functions can be executed in a substantially simultaneous manner or in a reverse order according to the involved functions, rather than in the order shown or discussed, which should be understood by those skilled in the art to which the embodiments of this application belong.

[0111] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as a definite sequence list of executable instructions for implementing logical functions, which can be specifically implemented in any computer-readable medium for use by an instruction execution system, apparatus, or device (such as a computer-based system, a system including a processor, or other systems that can fetch and execute instructions from the instruction execution system, apparatus, or device), or used in combination with these instruction execution systems, apparatus, or devices. For the purposes of this specification, a "computer-readable medium" can be any device that can contain, store, communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. More specific examples (a non-exhaustive list) of computer-readable media include the following: an electrical connection part (electronic device) having one or N wirings, a portable computer disk cartridge (magnetic device), a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber device, and a portable compact disc read-only memory (CDROM). Additionally, the computer-readable medium can even be paper or other suitable media on which the program can be printed, because the program can be obtained electronically by optically scanning the paper or other media, followed by editing, interpretation, or other appropriate processing as necessary, and then stored in a computer memory.

[0112] It should be understood that various parts of the present application can be implemented by hardware, software, firmware, or a combination thereof. In the above-described embodiments, the N steps or methods can be implemented by software or firmware stored in a memory and executed by a suitable instruction execution system. If implemented in hardware, as in another embodiment, any one or a combination of the following techniques well known in the art can be used: discrete logic circuits having logic gate circuits for implementing logical functions on data signals, application-specific integrated circuits having appropriate combinational logic gate circuits, programmable gate arrays (PGAs), field programmable gate arrays (FPGAs), etc.

[0113] Those of ordinary skill in the art of this technology can understand that all or part of the steps carried by the method of implementing the above embodiments can be completed by a program instructing relevant hardware, and the program can be stored in a computer-readable storage medium. When the program is executed, it includes one or a combination of the steps of the method embodiments.

[0114] In addition, each functional unit in various embodiments of the present application may be integrated into one processing module, may exist separately as individual physical units, or two or more units may be integrated into one module. The above-mentioned integrated module may be implemented in the form of hardware or in the form of a software functional module. When the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it may also be stored in a computer-readable storage medium.

[0115] The above-mentioned storage medium may be a read-only memory, a magnetic disk, an optical disc, etc. Although the embodiments of the present application have been shown and described above, it can be understood that the above embodiments are exemplary and should not be construed as limiting the present application. Those of ordinary skill in the art can make changes, modifications, substitutions, and variations to the above embodiments within the scope of the present application.

Claims

1. A robotic arm search-based general kinematic inverse solution method, characterized in that, It includes the following steps: Determine the current pose and the target pose of the target robotic arm, calculate the distance between the current pose and the target pose, and determine whether the distance meets the target accuracy requirement; If the distance does not meet the target accuracy requirement, search by gradually reducing the search accuracy requirement for each search round according to the preset dichotomy method based on the distance, determine the search step size for each degree of freedom of the target robotic arm based on the search accuracy requirement corresponding to each search round and the current pose, and perform iterative search within the movable range of each degree of freedom in the search order from the end to the base using the search step sizes of each degree of freedom to obtain the target variable values that meet the search accuracy requirement corresponding to each degree of freedom.

2. The method according to claim 1, wherein It also includes: If the search result of the current search round meets the corresponding search accuracy requirement, end the search and determine the target variable values corresponding to each degree of freedom according to the search result; otherwise, perform the search operation for the next search round.

3. The method according to claim 1, characterized in that The "if the distance does not meet the target accuracy requirement, then if the distance does not meet the target accuracy requirement, search by gradually reducing the search accuracy requirement for each search round according to the preset dichotomy method based on the distance, determine the search step size for each degree of freedom of the target robotic arm based on the search accuracy requirement corresponding to each search round and the current pose, and perform iterative search within the movable range of each degree of freedom in the search order from the end to the base using the search step sizes of each degree of freedom to obtain the target variable values that meet the search accuracy requirement corresponding to each degree of freedom" includes: Based on the preset dichotomy method, determine the search accuracy requirement corresponding to each round of search, and determine whether a search result that meets the target accuracy requirement is obtained during the current round of search; If a search result that meets the corresponding search accuracy requirement is obtained during the current round of search, stop the search, return the search result that meets the requirement, and determine the target variable values according to the search result; If a search result that meets the corresponding search accuracy requirement is not obtained during the current round of search, end the search, return the search result that is closest to the search accuracy requirement, and use the search result that is closest to the search accuracy requirement as the target variable values.

4. The method according to claim 3, wherein The "determine the search step size for each degree of freedom of the target robotic arm based on the search accuracy requirement corresponding to each search round and the current pose, and perform iterative search within the movable range of each degree of freedom in the search order from the end to the base using the search step sizes of each degree of freedom to obtain the target variable values that meet the search accuracy requirement corresponding to each degree of freedom" includes: Based on the search accuracy requirement and the current pose of the target robotic arm, determine the search step sizes for the rotational degrees of freedom and translational degrees of freedom corresponding to the target robotic arm; Take the order from the degrees of freedom near the end to the degrees of freedom near the base corresponding to the target robotic arm as the search order corresponding to the target robotic arm, and number all the degrees of freedom from n to 1 according to the search order, where n is the total number of degrees of freedom; Determine the current iteration initial value of each degree of freedom corresponding to the target robotic arm, and for the degrees of freedom numbered from 1 to n - 1, sequentially search starting from the current iteration initial value corresponding to each degree of freedom; Start the search from the current iteration initial value corresponding to the nth degree of freedom, calculate the initial distance between the pose at the current iteration initial values of each degree of freedom and the target pose, and determine whether the initial distance meets the search accuracy requirement corresponding to the current round of the search process. If the initial distance meets the search accuracy requirement corresponding to the current round of the search process, end the current round of the search process and return the search result of the current round. If the nth degree of freedom is locked, end the search for the nth degree of freedom; Gradually adjust the current iteration initial value of the nth degree of freedom according to the search step size and the preset adjustment direction to obtain the current value corresponding to the nth degree of freedom, and calculate the distance between the pose at the current values of each degree of freedom and the target pose. If the distance is not greater than the search accuracy requirement corresponding to the current round of the search process, obtain the search result of the current round and end the current round of the search; if the distance is not less than the previous distance, exit the search in the current direction; For any ith degree of freedom among the degrees of freedom numbered from 1 to n - 1, record the minimum distance obtained from the search of the subsequent degree of freedom as the initial distance of the ith degree of freedom, and when the ith degree of freedom is locked, end the search for the ith degree of freedom; Gradually adjust the current iteration initial value of the ith degree of freedom according to the search step size and the adjustment direction to obtain the current value corresponding to the ith degree of freedom, and conduct the search for the subsequent degrees of freedom. If the distance corresponding to the search result is not less than the initial distance of the ith degree of freedom, exit the search in the current direction.

5. The method according to claim 4, wherein The obtaining of the current round of search result corresponding to the current search process based on the distance and the search accuracy requirement corresponding to the current search process includes: Determine whether the distance meets the search accuracy requirement; If the distance meets the search accuracy requirement corresponding to the current round of the search process, end the current search process and take the current search result as the search result of the current round; If the distance is not less than the distance in the previous search step, exit the search in the corresponding adjustment direction; Take the minimum distance obtained when ending the search for a certain degree of freedom as the initial distance of its previous degree of freedom.

6. An electronic device, characterized in that, including: A memory, a processor, and a computer program stored on the memory and executable on the processor. The processor executes the program to implement the robotic arm search-based general kinematic inverse solution method according to any one of claims 1 - 5.

7. A computer-readable storage medium having a computer program stored thereon, characterized in that, The program is executed by the processor to be used for implementing the robotic arm search-based general kinematic inverse solution method according to any one of claims 1 - 5.

8. A computer program product comprising a computer program, characterized in that, The computer program is executed to implement the robotic arm search-based general kinematic inverse solution method according to any one of claims 1-5.