[go: up one dir, main page]

CN110531866B - Method for performing attitude calculation based on improved inverse kinematics and related equipment - Google Patents

Method for performing attitude calculation based on improved inverse kinematics and related equipment Download PDF

Info

Publication number
CN110531866B
CN110531866B CN201911033145.0A CN201911033145A CN110531866B CN 110531866 B CN110531866 B CN 110531866B CN 201911033145 A CN201911033145 A CN 201911033145A CN 110531866 B CN110531866 B CN 110531866B
Authority
CN
China
Prior art keywords
iteration
preset
error vector
updating
parameter set
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911033145.0A
Other languages
Chinese (zh)
Other versions
CN110531866A (en
Inventor
杭建伟
许秋子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Realis Multimedia Technology Co Ltd
Original Assignee
Shenzhen Realis Multimedia Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Realis Multimedia Technology Co Ltd filed Critical Shenzhen Realis Multimedia Technology Co Ltd
Priority to CN201911033145.0A priority Critical patent/CN110531866B/en
Publication of CN110531866A publication Critical patent/CN110531866A/en
Application granted granted Critical
Publication of CN110531866B publication Critical patent/CN110531866B/en
Priority to PCT/CN2020/117614 priority patent/WO2021082827A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

The invention relates to the technical field of motion capture, and discloses a method for carrying out attitude calculation based on improved inverse kinematics and related equipment, which are used for improving the accuracy of moving and rotating the tail end of a human skeleton to a target position. The method for carrying out attitude solution based on the improved inverse kinematics comprises the following steps: acquiring a rotation parameter set of a preset joint point, a current position of a bone terminal and a target position of the bone terminal; calculating a Jacobian matrix and a transposition of the Jacobian matrix according to the current position and the rotation parameter set; obtaining an error vector according to the current position and the target position; updating the current position according to the error vector, the Jacobian matrix, the transposition of the Jacobian matrix and the preset offset vector, judging whether the modulus of the updated error vector is reduced, if so, updating the rotation parameter set according to a preset iteration formula, and stopping iteration and updating the rotation parameter set until the iteration times are not less than a preset iteration threshold or the updated error vector converges to 0.

Description

Method for performing attitude calculation based on improved inverse kinematics and related equipment
Technical Field
The invention relates to the technical field of motion capture, in particular to a method for carrying out attitude calculation based on improved inverse kinematics and related equipment.
Background
The human body motion capture technology is an important way for making movie special effects, realizing human-computer interaction activities such as virtual reality and the like, and for realizing the applications, the motion tracks of human body joint points need to be tracked through the measurement of motion postures, so that in the motion capture process based on mark points, posture calculation needs to be carried out to obtain the rotation information of each joint in a human body skeleton.
In the prior art, an Inverse Kinematics (IK) algorithm is often used to calculate the bone pose, bone motion parameters can be obtained through the IK algorithm, the motion parameters make the actual motion trajectory of the human bone end substantially consistent with the target motion trajectory, newton method can be used to calculate the IK, but an inverse matrix of a jacobian matrix needs to be calculated, however, the situation that the jacobian matrix is not reversible usually exists, and therefore the pose information of the bone cannot be calculated.
Disclosure of Invention
The invention mainly aims to solve the problem of improving the accuracy by avoiding matrix inversion and optimizing a single transposition method under the condition that the matrix is irreversible in a reverse kinematics algorithm.
To achieve the above object, a first aspect of the present invention provides a method for performing attitude solution based on improved inverse kinematics, comprising: acquiring a set of rotation parameters of a preset articulation point, a current position of a bone end and a target position of the bone end, the set of rotation parameters being used to indicate the amount of rotation of the preset articulation point, the bone end gradually approaching the target position from the current position according to the set of rotation parameters; calculating a Jacobian matrix and a transpose of the Jacobian matrix according to the current position of the bone end and the set of rotation parameters; obtaining an error vector according to the current position of the bone end and the target position of the bone end; updating the current position of the skeleton end according to the error vector, the Jacobian matrix, the transposition of the Jacobian matrix and a preset offset vector, judging whether the modulus of the updated error vector is reduced, if so, updating the rotating parameter set according to a preset iteration formula, and stopping iteration and updating the rotating parameter set until the iteration number is not less than a preset iteration threshold or the updated error vector converges to 0.
Optionally, in a first implementation manner of the first aspect of the present invention, the updating the current position of the bone end according to the error vector, the jacobian matrix, the transpose of the jacobian matrix, and a preset offset vector includes updating the current position of the bone end according to an update formula, where s' ═ s + α (JJ) is the update formulaTe + β e), 0 < α < 1, wherein s' is the updated current position of the bone end, s is the current position of the bone end, e is the error vector, J is the Jacobian matrix, J is the error vector, andTfor the transpose of the jacobian, β e is the preset offset vector.
Optionally, in a second implementation manner of the first aspect of the present invention, the initial setting value of β in the preset offset vector is greater than 0, where β changes the value with iteration, and if the modulus of the error vector e decreases, β increases, and if the modulus of the error vector e increases, β takes a negative value.
Optionally, in a third implementation manner of the first aspect of the present invention, the determining whether the updated norm of the error vector is reduced includes determining the updated error vector according to the current position of the updated bone end and the target position of the bone end, determining whether the updated norm of the error vector is reduced compared with the norm of the error vector generated in the last iteration, if yes, determining that the update policy introducing the preset offset vector β e is valid, and if not, determining that the update policy introducing the preset offset vector β e is invalid.
Optionally, in a fourth implementation manner of the first aspect of the present invention, the determining an updated error vector according to the updated current position of the bone end and the target position of the bone end includes: and obtaining the updated error vector according to the difference between the updated current position of the bone end and the target position of the bone end.
Optionally, in a fifth implementation manner of the first aspect of the present invention, if the rotation parameter set is updated according to a preset iteration formula, and the rotation parameter set is stopped being updated according to a preset iteration formula until the iteration number is not less than a preset iteration threshold or the updated error vector converges to 0, where updating the rotation parameter set by stopping iteration includes updating the rotation parameter set according to a preset iteration formula if an update policy of introducing the preset offset vector β e is determined to be valid, obtaining the iteration number, and performing a 1-addition calculation on the iteration number, where an initial value of the iteration number is 0, determining whether the iteration number is less than a preset iteration threshold, stopping updating the rotation parameter set by stopping iteration if the iteration number is not less than the preset iteration threshold, and determining whether the updated error vector converges to 0 if the iteration number is less than the preset iteration threshold, stopping updating the rotation parameter set by iteration, and if the iteration number is not, continuing to update the rotation parameter set.
Optionally, in a sixth implementation manner of the first aspect of the present invention, the updating the rotation parameter set according to a preset iteration formula includes: calculating a parameter set used for updating in each iteration according to the preset iteration formula; and obtaining an updated rotation parameter set θ' according to the parameter set used for updating in each iteration, where θ is the rotation parameter set and d θ is the parameter set used for updating in each iteration.
Optionally, in a seventh implementation manner of the first aspect of the present invention, the calculating, according to the preset iteration formula, a parameter set for updating in each iteration includes: setting the preset iteration formula: jd θ ═ JJT(e + Δ e), the parameter set used for updating in each iteration is obtained according to the preset iteration formula, wherein Δ e is a correction vector.
Optionally, in an eighth implementation manner of the first aspect of the present invention, the setting of the preset iterative formula: jd θ ═ JJT(e + Δ e), deriving the parameter set for updating in each iteration according to the preset iteration formula, where Δ e is a correction vector including: setting up a JJT(e+Δe)=JJTe + β e, then JJTΔ e- β e ═ 0, and combining JJTPerforming singular value decomposition to obtain JJT=UDVTWherein U and VTTransposing a left singular matrix and a right singular matrix respectively, wherein D is a diagonal matrix; obtaining the correction vector: Δ e ═ VEUTβ e, wherein D isTReplacing the non-zero value in the matrix E with the reciprocal of the non-zero value to obtain a matrix E; inputting the Δ e into the preset iteration formula to obtain the parameter set used for updating in each iteration: d θ ═ JT(I+VEUTβ) e, where I is the identity matrix.
Optionally, in a ninth implementation manner of the first aspect of the present invention, the determining whether the updated error vector converges to 0 includes: judging whether the modulus of the updated error vector is larger than a preset error threshold value; if yes, determining that the updated error vector does not converge to 0; if not, obtaining an error vector after current iteration and an error vector after last iteration, and calculating the error vector after current iteration and the error vector after last iteration according to a preset formula to obtain a calculation result; judging whether the calculation result is smaller than a preset threshold value or not; if yes, determining that the updated error vector converges to 0; if not, determining that the updated error vector does not converge to 0.
Optionally, in a tenth implementation manner of the first aspect of the present invention, the calculating the error vector after the current iteration and the error vector after the last iteration according to a preset formula to obtain a calculation result includes: according to a preset formula, the error vector delta after the last iteration is carried out1And the error vector delta after the current iteration2And calculating to obtain a calculation result gamma, wherein the preset formula is as follows:
Figure GDA0002328895840000031
the second aspect of the present invention provides an apparatus for performing attitude solution based on improved inverse kinematics, comprising: an acquisition unit configured to acquire a set of rotation parameters of a preset joint point, a current position of a bone end, and a target position of the bone end, the set of rotation parameters being used to indicate a rotation amount of the preset joint point, the bone end gradually approaching the target position from the current position according to the set of rotation parameters; a calculation unit, configured to calculate a jacobian matrix and a transpose of the jacobian matrix according to the current position of the bone end and the set of rotation parameters; obtaining an error vector according to the current position of the bone end and the target position of the bone end; and the iteration updating unit is used for updating the current position of the tail end of the skeleton according to the error vector, the Jacobian matrix, the transposition of the Jacobian matrix and a preset offset vector, judging whether the modulus of the updated error vector is reduced, if so, updating the rotating parameter set according to a preset iteration formula, and stopping iteration and updating the rotating parameter set until the iteration frequency is not less than a preset iteration threshold or the updated error vector converges to 0.
A third aspect of the present invention provides an apparatus for performing attitude resolution based on improved inverse kinematics, comprising: a memory having instructions stored therein and at least one processor, the memory and the at least one processor interconnected by a line; the at least one processor invokes the instructions in the memory to cause the improved inverse kinematics based pose solution apparatus to perform the method of the first aspect.
A fourth aspect of the present invention provides a computer-readable storage medium having stored therein instructions which, when run on a computer, cause the computer to perform the method of the first aspect described above.
According to the technical scheme, the invention has the following advantages:
according to the technical scheme, a rotation parameter set of a preset joint point, the current position of a bone tail end and the target position of the bone tail end are obtained, the rotation parameter set is used for indicating the rotation amount of the preset joint point, and the bone tail end is gradually close to the target position from the current position according to the rotation parameter set; calculating a Jacobian matrix and a transpose of the Jacobian matrix according to the current position of the bone end and the set of rotation parameters; obtaining the updated current position of the tail end of the skeleton according to the updated rotation parameter set of the preset joint point; obtaining an error vector according to the updated current position of the bone end and the target position of the bone end; updating the current position of the skeleton end according to the error vector, the Jacobian matrix, the transposition of the Jacobian matrix and a preset offset vector, judging whether the modulus of the updated error vector is reduced, if so, updating the rotating parameter set according to a preset iteration formula, and stopping iteration and updating the rotating parameter set until the iteration number is not less than a preset iteration threshold or the updated error vector converges to 0. In the embodiment of the invention, the inverse matrix of the Jacobian matrix is replaced by the transposition of the Jacobian matrix, so that the condition that the Jacobian matrix is not possible to be irreversible is avoided, and the updating is more directional by presetting the offset vector, so that after the updating direction is optimized, the whole algorithm is simplified, the calculation precision is further improved, and the precision of moving and rotating the tail end of the skeleton to the target position is further improved.
Drawings
FIG. 1 is a schematic diagram of an embodiment of a method for improved inverse kinematics based pose solution according to an embodiment of the present invention;
FIG. 2 is a schematic diagram of another embodiment of a method for improved inverse kinematics based pose solution in an embodiment of the present invention;
FIG. 3 is a schematic diagram of an embodiment of an improved inverse kinematics based attitude solution apparatus according to an embodiment of the present invention;
FIG. 4 is a schematic diagram of another embodiment of an apparatus for improved inverse kinematics based attitude solution in an embodiment of the present invention;
FIG. 5 is a schematic diagram of an embodiment of an apparatus for performing attitude resolution based on improved inverse kinematics according to an embodiment of the present invention.
Detailed Description
The embodiment of the invention provides a method for posture calculation based on improved inverse kinematics and related equipment, which are used for replacing an inverse matrix of a Jacobian matrix with the transpose of the Jacobian matrix, avoiding the situation that the Jacobian matrix is not possible to be irreversible, and enabling the updating to be more directional through presetting an offset vector, so that after the updating direction is optimized, the whole algorithm can be simplified, the calculation precision is further improved, and the precision of moving and rotating the tail end of a skeleton to a target position is further improved.
In order to make the technical field of the invention better understand the scheme of the invention, the embodiment of the invention will be described in conjunction with the attached drawings in the embodiment of the invention.
The terms "first," "second," "third," "fourth," and the like in the description and in the claims, as well as in the drawings, if any, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It will be appreciated that the data so used may be interchanged under appropriate circumstances such that the embodiments described herein may be practiced otherwise than as specifically illustrated or described herein. Furthermore, the terms "comprises," "comprising," or "having," and any variations thereof, are intended to cover non-exclusive inclusions, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed, but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
For ease of understanding, a specific flow of an embodiment of the present invention is described below, with reference to fig. 1, where an embodiment of a method for improved inverse kinematics based attitude solution in an embodiment of the present invention includes:
101. acquiring a rotation parameter set of a preset joint point, a current position of a bone terminal and a target position of the bone terminal, wherein the rotation parameter set is used for indicating the rotation amount of the preset joint point, and the bone terminal gradually approaches to the target position from the current position according to the rotation parameter set, namely along with the rotation of the preset joint point;
the server acquires a current rotation parameter set of the preset joint point, a current position of a bone end and a target position of the bone end, wherein the rotation parameter set is used for indicating the rotation amount of the preset joint point, for example, the rotation amount comprises the movement amount of the bone joint points of all parts of a body such as a shoulder, an elbow, a wrist, a finger and the like on XYZ axes, and the bone end is gradually close to the target position from the current position along with the rotation of the preset joint point. Wherein the bone end rotates along with the rotation of the preset joint point. Specifically, the server sets a rotation parameter set θ including preset joint points, θ is a high-dimensional vector, the whole skeleton can move according to the rotation parameter set θ so as to reach an expected target position from the current position, and meanwhile, the server can detect that the current position of the end of the skeleton is s and the target position of the end of the skeleton is t.
It should be noted that the reverse kinematics is to reversely calculate the above-mentioned rotation parameter set θ according to the terminal position of the bone, the working efficiency of the reverse kinematics is high, and the number of joints that need to be manually controlled is greatly reduced.
102. Calculating a Jacobian matrix and a transpose of the Jacobian matrix according to the current position of the tail end of the skeleton and the set of the rotation parameters;
the server calculates a jacobian matrix and a transpose of the jacobian matrix according to the current position of the bone end and the set of rotation parameters. Specifically, the server calculates according to a preset rotation parameter set theta of the joint point and the current position s of the tail end of the skeleton to obtain a Jacobian matrix of s relative to theta, and sets the Jacobian matrix as J; the server transposes the Jacobian matrix to obtain a transpose of the Jacobian matrix, and sets the transpose of the Jacobian matrix to JT
It should be noted that, in the vector calculus, the jacobian matrix is a matrix in which the first-order partial derivatives are arranged in a certain manner, and its determinant is called jacobian. The significance of the jacobian matrix is that it embodies an optimal linear approximation of the micro-equation to a given point, and thus, the jacobian matrix resembles the derivative of a multivariate function.
103. Obtaining an error vector according to the current position of the bone end and the target position of the bone end;
the server obtains an error vector according to the current position of the bone end and the target position of the bone end. Wherein the error vector is used to indicate a deviation value and a direction between a current position of the bone end and a target position of the bone end. Specifically, the server compares a current position s of the bone end with a target position t of the bone end to obtain a current error vector e, wherein the error vector e is t-s.
It can be understood that the server calculates the updated current position of the bone end according to the rotation parameter set of the preset joint point and the current position of the bone end, an error vector e exists between the updated current position of the bone end and the target position of the bone end, and when the modulus of the error vector e gradually decreases, the server determines that the current position of the bone end is at the target position close to the bone end; as the modulus of the error vector e gradually increases, the server determines that the current position of the bone end is moving away from the target position of the bone end.
104. Updating the current position of the skeleton end according to the error vector, the Jacobian matrix, the transposition of the Jacobian matrix and the preset offset vector, judging whether the modulus of the updated error vector is reduced, if so, updating the rotation parameter set according to a preset iteration formula, and stopping iteration to update the rotation parameter set until the iteration times is not less than a preset iteration threshold or the updated error vector converges to 0.
Updating the current position of the bone end according to the error vector, the Jacobian matrix, the transpose of the Jacobian matrix and the other preset offset vector obtained in the step 101-. It should be understood that the current position of the bone end is updated according to the set iterative update strategy, and then the current position can be used to find the error vector, and whether the set iterative update strategy is effective can be determined by judging whether the modulus of the updated error vector is reduced. And after the set updating strategy is determined to be effective, updating the rotation parameter set according to a preset iteration formula, namely solving the rotation information of each joint point in the skeleton, stopping iteration and updating the rotation parameter set until the iteration times are not less than a preset iteration threshold value or the updated error vector converges to 0, and reversely deriving the rotation information of each joint point in the skeleton through the motion track of the tail end of the skeleton.
It can be understood that, the more the iteration times, the longer the consumed time is, the longer the frame rate of the image is decreased, and the image fluency is affected, therefore, in this embodiment, to ensure the frame rate, an iteration upper limit threshold is set, and when the iteration times exceeds the preset iteration threshold, the iteration is automatically stopped no matter whether the error vector converges to 0, where an initial value of the iteration times is 0. Specifically, the server repeatedly executes steps 101 to 104 until the number of iterations is not less than the preset iteration threshold or the error vector converges to 0, and stops iterating and updating the rotation parameter set.
It is understood that when the error vector converges to 0, the server determines that the bone end is precisely rotationally moved to the target position. For example, the server detects that the updated error vector has a modulus of 0.0001, and the server determines that the error vector converges to 0, thereby determining that the current position of the bone end reaches the target position. That is, the iterative update strategy is set to make the error vector gradually converge to 0, so as to obtain the rotation parameter set theta and complete the solution of inverse kinematics.
In the embodiment of the invention, the inverse matrix of the Jacobian matrix is replaced by the transposition of the Jacobian matrix, so that the condition that the Jacobian matrix is not possible to be irreversible is avoided, and the updating is more directional by presetting the offset vector, so that after the updating direction is optimized, the whole algorithm is simplified, the calculation precision is further improved, and the precision of moving and rotating the tail end of the skeleton to the target position is further improved.
Referring to fig. 2, another embodiment of the method for performing attitude solution based on improved inverse kinematics according to the embodiment of the present invention includes:
201. acquiring a rotation parameter set of a preset joint point, a current position of a bone terminal and a target position of the bone terminal, wherein the rotation parameter set is used for indicating the rotation amount of the preset joint point, and the bone terminal is gradually close to the target position from the current position according to the rotation parameter set; this step is the same as step 101 and will not be described here.
202. Calculating a Jacobian matrix and a transpose of the Jacobian matrix according to the current position of the tail end of the skeleton and the set of the rotation parameters;
the server calculates a Jacobian matrix J and a transpose J of the Jacobian matrix according to the current position of the bone end and the set of rotation parametersT. The jacobian matrix is a matrix in which first-order partial derivatives are arranged in a certain manner, and the determinant thereof is called jacobian. The importance of the jacobian matrix is that it embodies an optimal linear approximation of a given point to a differentiable equation, and therefore, in vector calculus, the jacobian matrix resembles the derivative of a multivariate function.
And the server performs transposition calculation on the Jacobian matrix to obtain the Jacobian transposition matrix. It is understood that, in theory, the error vector e can be understood as e — Jd θ (analytical expression), and d θ — J-1e, from which d θ can be solved to determine the rotation information of the joint point, but J-1J is likely to be irreversible, being the inverse of J, and, when J is large in dimension,the inverse matrix calculation consumes a large amount of calculation power, and affects the real-time performance. Therefore, J is to be avoided as much as possible-1One of which avoids J-1By means of a transpose J of JTAlternative J-1I.e. let d θ equal JTe, the rotation information of the joint point is calculated.
203. Obtaining an error vector according to the current position of the bone end and the target position of the bone end;
the server obtains an error vector according to the current position of the bone end and the target position of the bone end. Wherein the error vector is used to indicate a deviation value and a direction between a current position of the bone end and a target position of the bone end. Specifically, the server sets a target position of the tail end of the skeleton as t; and the server compares the current position s of the tail end of the skeleton with the target pose t of the tail end of the skeleton to obtain an error vector e.
It will be appreciated that as the modulus of the error vector e progressively decreases, the server determines that the current position of the bone end is at a target position near the bone end; as the modulus of the error vector e gradually increases, the server determines that the current position of the bone end is moving away from the target position of the bone end. As the iterative update progresses, the updated current position of the bone end is closer to the target position of the bone end.
204. Updating the current position of the tail end of the skeleton according to the error vector, the Jacobian matrix, the transposition of the Jacobian matrix and a preset offset vector;
in this embodiment, the current position of the bone end can be gradually updated according to an update formula of s' ═ s + α (JJ)Te + β e), 0 < α < 1, wherein s' is the updated current position of the bone end, s is the current position of the bone end, e is the error vector, J is the Jacobian matrix, J is the error vector, andTfor the transpose of the jacobian matrix, β e is a preset offset vector, that is, on the basis of obtaining the transpose of the error vector, the jacobian matrix and the jacobian matrix, β e is introduced to update the current position of the bone end, so that the update of the current position can be more directionalDetermined by s' ═ s + α Jd θ, 0 < α < 1, i.e., theoretically Jd θ ═ JJTe + β e, d θ is related to pose information, where d θ is unknown because it is the pose information for the unknown joint points that is solved using the inverse kinematics.
Updating the current position of the bone end can be realized by setting β in the preset offset vector, and the initially set value of β is greater than 0, wherein β changes the value with iteration, if the modulus of the error vector e is continuously reduced, β is continuously increased, if the modulus of the error vector e is increased, β takes a negative value, for example, the server obtains the modulus of the error vector e as 1 in the first iteration calculation, the server obtains the modulus of the error vector e as 2 in the second iteration calculation, which shows that the error is increased, the server directly sets β to be-1, if the modulus of the error vector obtained in the first iteration calculation of the server is 1, the modulus of the error vector obtained in the second iteration calculation of the server is 0.8, which shows that the error is reduced, the server can then continuously increase the value of β.
It will be appreciated that the updated current position of the bone end is gradually brought closer to the target position of the bone end, while by continuously adjusting the preset offset vector it is ensured that the updated current position of the bone end is closer to the target position in the direction of the error vector.
The server can reversely push out the current posture, namely the rotation information, of the preset joint point on the human skeleton chain according to the updated current position of the tail end of the skeleton, for example, the server controls the arm of the character to touch a fixed object, namely, the current position of the arm is adjusted to reach the target position, and the posture information of the arm joint point can be reversely calculated through the current position.
205. Judging whether the modulus of the updated error vector is reduced;
updating the current position of the bone end to obtain the updated current position of the bone end, and determining an updated error vector according to the updated current position of the bone end and the target position of the bone end; wherein the updated error vector e 'is a difference between the updated current position s' of the bone end and the target position t of the bone end: e '═ t-s'. It will be appreciated that as the norm of the error vector continues to decrease, the current position representing the updated bone end gradually approaches the target position of the bone end.
Judging whether the modulus of the updated error vector e' is reduced compared with the modulus of the error vector e generated in the last iteration;
if so, the update strategy introducing the preset offset vector β e is determined to be valid, and if not, the update strategy is determined to be invalid, that is, whether the update strategy is valid is determined by judging whether the modulus of the error vector is reduced.
206. If the updating strategy of introducing the preset offset vector β e is determined to be effective, updating the rotation parameter set according to a preset iteration formula;
in this embodiment, if it is determined that the update policy introducing the preset offset vector β e is valid, a parameter set d θ (related to the posture information) for updating in each iteration may be calculated according to a preset iteration formula, specifically, the preset iteration formula is set such that Jd θ is JJTBefore obtaining the parameter set d theta used for updating in each iteration, the next step of solving the d theta needs to be carried out by verifying whether the modulus of the corresponding error vector after the current position of the tail end of the skeleton is updated is reduced, if so, the updating strategy of introducing the preset offset vector β e is effective, and then the d theta can be solved, so that the aim of solving the posture information through inverse kinematics is fulfilled.
As mentioned above, d θ may be JTe, but due to JTObviously not equal to J-1If according to s' ═ s + α Jd θ ═ s + α JJTe, using JTOnly s can be ensured to be close to t, and the updated current position s' cannot be ensured to reach the target position t, namely only JTAlternative J-1Updating the current position does allow s' to be close to t, but more closely, the optimal way s is close to t should be in the direction of e, and then Jd θ JJTe is only consistent with the direction of e, i.e. the inner product of the two is positive, the difference of the two directions, i.e. the included angle, may be large, and finally, satisfactory results may not be achieved.
At this time, a preset offset vector β e is needed, wherein β changes the value with iterative update, if the modulus of the error vector e increases, it is determined that the orientation of Jd θ and e are not consistent, the included angle between the Jd θ and e increases, the included angle can be reduced by adjusting β value in the preset offset vector, i.e., the update is more directional by introducing the preset offset vector, the iteration efficiency is improved, and further, the difference of the orientation of Jd θ and e can be reduced by β e, i.e., the difference of Jd θ and e is made to be JJTe + β e, but J is still required according to these formulae-1To find d θ, to avoid using J-1Further introducing a correction vector delta e, and setting a preset iteration formula as follows: jd θ ═ JJT(e + Δ e), d θ is determined to be JT(e + Δ e). Since the correction vector Δ e is unknown, the Δ e solving method is as follows:
setting up a JJT(e+Δe)=JJTe + β e, then JJTΔ e- β e ═ 0, and combining JJTPerforming singular value decomposition to obtain JJT=UDVTWherein U and V are respectively a left singular matrix and a right singular matrix, D is a diagonal matrix, and the upper right corner markTRepresents a transposed symbol; from U, D, V, a correction vector is obtained: Δ e ═ VEUTβ e, wherein D isTReplacing the non-zero value in (a) with the reciprocal of the non-zero value to obtain a matrix E, and then calculating delta E; then inputting Δ e into a preset iteration formula to obtain a parameter set for updating in each iteration: d θ ═ JT(e+Δe)=JT(I+VEUTβ) e, where I is the identity matrix.
When d θ is obtained, an updated rotation parameter set θ 'is obtained, where θ is a rotation parameter set θ + d θ, and the obtained θ' represents the rotation (posture) information of the joint point in the bone. And then obtaining an expected rotation parameter set theta' after a plurality of iterations according to the iteration step, wherein the expected rotation parameter set refers to the rotation (posture) information of the corresponding bone joint point when the current position of the bone end reaches the target position.
207. Acquiring iteration times, and adding 1 to the iteration times for calculation, wherein the initial value of the iteration times is 0;
the server acquires the iteration times, and adds 1 to the iteration times for calculation, wherein the initial value of the iteration times is 0. For example, when the initial value of the iteration number is 0, the server updates the current position of the bone end for the first time, and then the iteration number is 1; and after the server updates the current position of the bone end for the second time, the iteration number is 2, and by analogy, after the server updates the current position of the bone end each time, the iteration number is calculated by adding 1.
208. Judging whether the iteration times are smaller than a preset iteration threshold value or not;
the server judges whether the iteration times are smaller than a preset iteration threshold value. Wherein, the preset iteration threshold is used for ensuring the image frame rate. For example, the server sets a preset iteration threshold to 50, and when the iteration number is accumulated from 0 to 49, the server ensures that the iteration number is smaller than the preset iteration threshold.
209. If the iteration times are not less than the preset iteration threshold, stopping iteration and updating the rotating parameter set;
for example, the server sets a preset iteration threshold to be 50, when the iteration times are accumulated from 0 to 50, the server determines that the iteration times are not less than the preset iteration threshold, and then directly stops iterating and updating the rotation parameter set, namely, the iteration of calculating the rotation parameter set is stopped no matter whether the end of the bone reaches the target position or not.
210. If the iteration times are smaller than a preset iteration threshold, judging whether the updated error vector converges to 0;
if the iteration times are smaller than the preset iteration threshold, the iteration can be continued, and the server judges whether the updated error vector is converged to 0. Specifically, the server judges whether the modulus of the updated error vector is less than or equal to a preset error threshold; if the modulus of the updated error vector is larger than the preset error threshold, the server determines that the updated error vector does not converge to 0; if the modulus of the updated error vector is less than or equal to a preset error threshold value, the server acquires the error vector after the current iteration and the error vector after the last iteration, and calculates the error vector after the current iteration and the error vector after the last iteration according to a preset formula to obtain a calculation result; judging whether the calculation result is smaller than a preset threshold value or not; if the calculation result is greater than or equal to the preset threshold value, determining that the updated error vector does not converge to 0; and if the calculation result is smaller than the preset threshold value, determining that the updated error vector is converged to 0.
Further, the server performs error vector delta after the last iteration according to a preset formula1And the error vector delta after the current iteration2And calculating to obtain a calculation result gamma, wherein the preset formula is as follows:
Figure GDA0002328895840000121
it is understood that, the determining process may set a certain determining threshold range, for example, the modulus of the updated error vector is smaller than the preset error threshold by 5mm, and the calculation result γ is 0.000000001 according to the preset formula, and the calculation result is smaller than the preset threshold by 0.00000001, which may be considered as satisfying the condition of converging to 0, indicating that the updated current position has reached the target position.
211. And if the updated error vector converges to 0, stopping the iteration and updating the rotation parameter set, and if not, continuing to iteratively update the rotation parameter set.
If the updated error vector converges to 0, the server stops the iterative calculation of the rotation parameter set, and if not, the iterative calculation of the rotation parameter set is continued, i.e., the operation of step 201 and step 211 is performed in a loop.
It should be noted that, for the iterative updating of the human skeleton chain with multiple joints, the rotation angle of each joint may be changed step by step starting from the bone end of the human skeleton chain, wherein the human skeleton chain includes the root node, each intermediate joint point and the bone end. Specifically, firstly, rotating a joint at the tail end of a skeleton to obtain the current position of the tail end of the skeleton; and if the current position of the tail end of the skeleton does not reach the target position of the tail end of the skeleton, acquiring the previous joint of the current joint, and changing the rotating angle of the previous joint of the current joint until the root node of the skeleton chain of the human body. And if the current position of the bone end does not reach the target position of the bone end, rotating the angle from the joint point of the bone end until the error vector between the current position of the bone end and the target position of the bone end approaches 0, stopping iteratively updating the current position of the bone end, and stopping iteratively calculating the rotation parameter set.
In the embodiment of the invention, the inverse matrix of the Jacobian matrix is replaced by the transpose of the Jacobian matrix, so that the condition that the Jacobian matrix is not possible to be irreversible is avoided, and the updating is more directional by presetting the offset vector, so that after the updating direction is optimized, the whole algorithm is simplified, the calculation precision is further improved, the precision of moving and rotating the tail end of the skeleton to the target position is further improved, and the expected rotation parameter set is convenient to calculate after the correction vector is further introduced.
In the above description of the method for performing attitude calculation based on improved inverse kinematics according to the embodiment of the present invention, referring to fig. 3, a device for performing attitude calculation based on improved inverse kinematics according to the embodiment of the present invention is described below, and an embodiment of the device for performing attitude calculation based on improved inverse kinematics according to the embodiment of the present invention includes:
an obtaining unit 301, configured to obtain a set of rotation parameters of a preset joint point, a current position of a bone end, and a target position of the bone end, where the set of rotation parameters is used to indicate a rotation amount of the preset joint point, and the bone end gradually approaches the target position from the current position according to the set of rotation parameters;
a calculating unit 302, configured to calculate a jacobian matrix and a transpose of the jacobian matrix according to the current position of the bone end and the set of rotation parameters; obtaining an error vector according to the current position of the bone end and the target position of the bone end;
and an iteration updating unit 303, configured to update the current position of the skeleton end according to the error vector, the jacobian matrix, the transpose of the jacobian matrix, and the preset offset vector, and determine whether a modulus of the updated error vector is reduced, if yes, update the rotation parameter set according to a preset iteration formula, and stop iterating and updating the rotation parameter set until the iteration number is not less than a preset iteration threshold or the updated error vector converges to 0.
In the embodiment of the invention, the inverse matrix of the Jacobian matrix is replaced by the transpose of the Jacobian matrix, so that the condition that the Jacobian matrix is not possible to be irreversible is avoided, and the updating is more directional by presetting the offset vector, so that after the updating direction is optimized, the whole algorithm is simplified, the calculation precision is further improved, the precision of moving and rotating the tail end of the skeleton to the target position is further improved, and the expected rotation parameter set is convenient to calculate after the correction vector is further introduced.
Referring to fig. 4, another embodiment of the apparatus for performing attitude resolution based on improved inverse kinematics according to an embodiment of the present invention,
referring to the iteration update unit 303 in fig. 3, the iteration update unit further includes:
an iterative update subunit 3031, configured to update the current position of the bone end according to an update formula of s' ═ s + α (JJ)Te + β e), 0 < α < 1, wherein s' is the updated current position of the bone end, s is the current position of the bone end, e is the error vector, J is the Jacobian matrix, J is the error vector, andTsetting β initial value in the preset offset vector to be larger than 0, wherein β changes value along with iteration, if the modulus of the error vector e is continuously reduced, β is continuously increased, if the modulus of the error vector e is increased, β takes negative value.
An iterative computation subunit 3032, configured to obtain an updated error vector according to a difference between the updated current position of the bone end and the target position of the bone end.
A determining subunit 3033, configured to determine whether a modulus of the updated error vector is reduced compared with a modulus of the error vector generated in the previous iteration, if so, determine that an update policy introducing the preset offset vector β e is valid, if not, determine that the update policy introducing the preset offset vector β e is invalid, if it is determined that the update policy introducing the preset offset vector β e is valid, update the rotation parameter set according to a preset iteration formula, obtain an iteration number, add 1 to the iteration number, where an initial value of the iteration number is 0, determine whether the iteration number is smaller than a preset iteration threshold, stop updating the rotation parameter set through iteration if the iteration number is not smaller than the preset iteration threshold, if the iteration number is smaller than the preset iteration threshold, determine whether the updated error vector converges to 0, if the updated error vector converges to 0, stop updating the rotation parameter set through iteration, and if not, continue updating the rotation parameter set through iteration, i.e., perform the operation of step 201 and 211 circularly.
Optionally, the iterative update subunit 3031 may further be specifically configured to:
calculating a parameter set used for updating in each iteration according to a preset iteration formula; setting a preset iteration formula as follows: jd θ ═ JJT(e + Δ e), if d θ is a parameter set used for updating in each iteration, obtaining d θ according to a preset iteration formula, wherein Δ e is a correction vector; further, to find Δ e, JJ is providedT(e+Δe)=JJTe + β e, then JJTΔ e- β e ═ 0, and combining JJTPerforming singular value decomposition to obtain JJT=UDVTWherein U and VTTransposing a left singular matrix and a right singular matrix respectively, wherein D is a diagonal matrix; obtaining a correction vector: Δ e ═ VEUTβ e, wherein D isTReplacing the non-zero value in the matrix E with the reciprocal of the non-zero value to obtain a matrix E; inputting the calculated delta e into a preset iteration formula to obtain a parameter set used for updating in each iteration: d θ ═ JT(I+VEUTβ) e, where I is the identity matrix, and finally the updated rotation parameter set θ' is obtained from the parameter set for updating at each iteration, where θ is the rotation parameter set and d θ is the parameter set for updating at each iteration.
Optionally, the determining subunit 3033 may further specifically be configured to:
judging whether the modulus of the updated error vector is larger than a preset error threshold value or not;
if the modulus of the updated error vector is larger than a preset error threshold, determining that the updated error vector does not converge to 0;
if the updated error vector is less than or equal to the preset error threshold, acquiring the error vector after the current iteration and the error vector after the last iteration, and calculating the error vector after the current iteration and the error vector after the last iteration according to a preset formula to obtain a calculation result;
judging whether the calculation result is smaller than a preset threshold value or not;
if the calculation result is greater than or equal to the preset threshold value, determining that the updated error vector does not converge to 0;
and if the calculation result is smaller than the preset threshold value, determining that the updated error vector is converged to 0.
Optionally, the iterative computation subunit 3032 may be further specifically configured to:
according to a preset formula, the error vector delta after the last iteration is carried out1And the error vector delta after the current iteration2And calculating to obtain a calculation result gamma, wherein the preset formula is as follows:
Figure GDA0002328895840000151
in the embodiment of the invention, the inverse matrix of the Jacobian matrix is replaced by the transpose of the Jacobian matrix, so that the condition that the Jacobian matrix is not possible to be irreversible is avoided, and the updating is more directional by presetting the offset vector, so that after the updating direction is optimized, the whole algorithm is simplified, the calculation precision is further improved, the precision of moving and rotating the tail end of the skeleton to the target position is further improved, and the expected rotation parameter set is convenient to calculate after the correction vector is further introduced.
The above fig. 3 and fig. 4 describe in detail the apparatus for performing posture solution based on improved inverse kinematics in the embodiment of the present invention from the perspective of a modular functional entity, and the following describes in detail the apparatus for performing posture solution based on improved inverse kinematics in the embodiment of the present invention from the perspective of a hardware process.
Fig. 5 is a schematic structural diagram of an apparatus for performing posture solution based on improved inverse kinematics according to an embodiment of the present invention, where the apparatus 500 may generate relatively large differences due to different configurations or performances, and may include one or more processors (CPUs) 501 (e.g., one or more processors) and a memory 509, and one or more storage media 508 (e.g., one or more mass storage devices) for storing applications 507 or data 506. Memory 509 and storage medium 508 may be, among other things, transient storage or persistent storage. The program stored on the storage medium 508 may include one or more modules (not shown), each of which may include a series of instruction operations in a device for improved inverse kinematics based pose solution. Still further, the processor 501 may be configured to communicate with the storage medium 508 to execute a series of instruction operations in the storage medium 508 on the improved inverse kinematics based pose solution apparatus 500.
The apparatus 500 for improved inverse kinematics based pose solution may also include one or more power supplies 502, one or more wired or wireless network interfaces 503, one or more input-output interfaces 504, and/or one or more operating systems 505, such as Windows Server, Mac OS X, Unix, Linux, FreeBSD, and the like. Those skilled in the art will appreciate that the configuration of the improved inverse kinematics based attitude solution machine illustrated in fig. 5 does not constitute a limitation of the improved inverse kinematics based attitude solution machine and may include more or fewer components than illustrated, or some components in combination, or a different arrangement of components.
It is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the embodiments provided in the present invention, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present invention may be embodied in the form of a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned storage medium includes: various media capable of storing program codes, such as a usb disk, a removable hard disk, a read-only memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.
The above-mentioned embodiments are only used for illustrating the technical solutions of the present invention, and not for limiting the same; although the present invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present invention.

Claims (14)

1. A method for improved inverse kinematics based pose solution, comprising:
acquiring a set of rotation parameters of a preset articulation point, a current position of a bone end and a target position of the bone end, the set of rotation parameters being used to indicate the amount of rotation of the preset articulation point, the bone end gradually approaching the target position from the current position according to the set of rotation parameters;
calculating a Jacobian matrix and a transpose of the Jacobian matrix according to the current position of the bone end and the set of rotation parameters;
obtaining an error vector according to the current position of the bone end and the target position of the bone end;
updating the current position of the skeleton end according to the error vector, the Jacobian matrix, the transposition of the Jacobian matrix and a preset offset vector, judging whether the modulus of the updated error vector is reduced, if so, updating the rotating parameter set according to a preset iteration formula, and stopping iteration and updating the rotating parameter set until the iteration number is not less than a preset iteration threshold or the updated error vector converges to 0.
2. The method of claim 1, wherein said updating the current position of the bone end according to the error vector, the jacobian matrix, the transpose of the jacobian matrix, and a preset offset vector comprises:
updating the current position of the bone end according to an update formula, wherein the update formula is as follows:
s′=s+α(JJTe+βe),0 < α < 1, wherein s' is the updated current position of the bone end, s is the current position of the bone end, e is the error vector, J is the Jacobian matrix, J is the error vectorTFor the transpose of the jacobian, β e is the preset offset vector.
3. The method of claim 2 wherein β in the preset offset vector is initially set to a value greater than 0, wherein β changes values with iteration, and wherein β increases if the modulus of the error vector e decreases and wherein β takes a negative value if the modulus of the error vector e increases.
4. The method of claim 2 or 3, wherein said determining whether the modulus of the updated error vector decreases comprises:
determining an updated error vector according to the updated current position of the bone end and the target position of the bone end;
judging whether the modulus of the updated error vector is reduced compared with the modulus of the error vector generated in the last iteration;
if yes, the updating strategy of the introduced preset offset vector β e is determined to be effective, and if not, the updating strategy is determined to be ineffective.
5. The method of claim 4, wherein determining an updated error vector based on the updated current position of the bone end and the target position of the bone end comprises:
and obtaining the updated error vector according to the difference between the updated current position of the bone end and the target position of the bone end.
6. The method of claim 4, wherein if so, updating the rotation parameter set according to a preset iteration formula until the number of iterations is not less than a preset iteration threshold or the updated error vector converges to 0, and stopping iteratively updating the rotation parameter set comprises:
if the updating strategy of introducing the preset offset vector β e is determined to be effective, updating the rotation parameter set according to a preset iteration formula;
acquiring iteration times, and adding 1 to the iteration times for calculation, wherein the initial value of the iteration times is 0;
judging whether the iteration times are smaller than a preset iteration threshold value or not;
if the iteration times are not less than the preset iteration threshold, stopping iteration and updating the rotating parameter set;
if the iteration times are smaller than the preset iteration threshold, judging whether the updated error vector converges to 0;
if so, stopping iteration and updating the rotation parameter set, and if not, continuing to iteratively update the rotation parameter set.
7. The method of claim 6, wherein the updating the set of rotation parameters according to a preset iteration formula comprises:
calculating a parameter set used for updating in each iteration according to the preset iteration formula;
and obtaining an updated rotation parameter set θ' according to the parameter set used for updating in each iteration, where θ is the rotation parameter set and d θ is the parameter set used for updating in each iteration.
8. The method of claim 7, wherein calculating the parameter set for updating at each iteration according to the preset iteration formula comprises:
setting the preset iteration formula: jd θ ═ JJT(e + Δ e), the parameter set used for updating in each iteration is obtained according to the preset iteration formula, wherein Δ e is a correction vector.
9. The method of claim 8, wherein the setting the preset iterative formula: jd θ ═ JJT(e + Δ e), then obtaining said each iteration according to said predetermined iteration formulaReplacing the parameter set for updating, wherein Δ e is a correction vector comprising:
setting up a JJT(e+Δe)=JJTe + β e, then JJTΔe-βe=0;
Will JJTPerforming singular value decomposition to obtain JJT=UDVTWherein U and VTTransposing a left singular matrix and a right singular matrix respectively, wherein D is a diagonal matrix;
obtaining the correction vector: Δ e ═ VEUTβ e, wherein D isTReplacing the non-zero value in the matrix E with the reciprocal of the non-zero value to obtain a matrix E;
inputting the Δ e into the preset iteration formula to obtain the parameter set used for updating in each iteration: d θ ═ JT(I+VEUTβ) e, where I is the identity matrix.
10. The method of claim 6, wherein the determining whether the updated error vector converges to 0 comprises:
judging whether the modulus of the updated error vector is larger than a preset error threshold value;
if yes, determining that the updated error vector does not converge to 0;
if not, obtaining an error vector after current iteration and an error vector after last iteration, and calculating the error vector after current iteration and the error vector after last iteration according to a preset formula to obtain a calculation result;
judging whether the calculation result is smaller than a preset threshold value or not;
if yes, determining that the updated error vector converges to 0;
if not, determining that the updated error vector does not converge to 0.
11. The method according to claim 10, wherein the calculating the error vector after the current iteration and the error vector after the last iteration according to a preset formula to obtain the calculation result comprises:
according to a preset formula, the error vector delta after the last iteration is carried out1And the error vector delta after the current iteration2And calculating to obtain a calculation result gamma, wherein the preset formula is as follows:
Figure FDA0002328895830000041
12. an apparatus for improved inverse kinematics based attitude solution, comprising:
an acquisition unit configured to acquire a set of rotation parameters of a preset joint point, a current position of a bone end, and a target position of the bone end, the set of rotation parameters being used to indicate a rotation amount of the preset joint point, the bone end gradually approaching the target position from the current position according to the set of rotation parameters;
a calculation unit, configured to calculate a jacobian matrix and a transpose of the jacobian matrix according to the current position of the bone end and the set of rotation parameters; obtaining an error vector according to the current position of the bone end and the target position of the bone end;
and the iteration updating unit is used for updating the current position of the tail end of the skeleton according to the error vector, the Jacobian matrix, the transposition of the Jacobian matrix and a preset offset vector, judging whether the modulus of the updated error vector is reduced, if so, updating the rotating parameter set according to a preset iteration formula, and stopping iteration updating of the rotating parameter set until the iteration times are not less than a preset iteration threshold or the updated error vector converges to 0.
13. An apparatus for improved inverse kinematics based attitude solution, comprising: a memory having instructions stored therein and a processor, the memory and the processor interconnected by a line;
the processor invokes the instructions in the memory to cause the device to perform the method of any of claims 1-11.
14. A computer-readable storage medium having stored thereon a computer program, characterized in that: the computer program realizing the steps of the method according to any of claims 1-11 when executed by a processor.
CN201911033145.0A 2019-10-29 2019-10-29 Method for performing attitude calculation based on improved inverse kinematics and related equipment Active CN110531866B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911033145.0A CN110531866B (en) 2019-10-29 2019-10-29 Method for performing attitude calculation based on improved inverse kinematics and related equipment
PCT/CN2020/117614 WO2021082827A1 (en) 2019-10-29 2020-09-25 Posture calculation method employing improved inverse kinematics, and related apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911033145.0A CN110531866B (en) 2019-10-29 2019-10-29 Method for performing attitude calculation based on improved inverse kinematics and related equipment

Publications (2)

Publication Number Publication Date
CN110531866A CN110531866A (en) 2019-12-03
CN110531866B true CN110531866B (en) 2020-03-13

Family

ID=68672118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911033145.0A Active CN110531866B (en) 2019-10-29 2019-10-29 Method for performing attitude calculation based on improved inverse kinematics and related equipment

Country Status (2)

Country Link
CN (1) CN110531866B (en)
WO (1) WO2021082827A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110531866B (en) * 2019-10-29 2020-03-13 深圳市瑞立视多媒体科技有限公司 Method for performing attitude calculation based on improved inverse kinematics and related equipment
CN111539300A (en) * 2020-04-20 2020-08-14 上海曼恒数字技术股份有限公司 Human motion capture method, device, medium and equipment based on IK algorithm
CN111583366B (en) * 2020-05-07 2020-12-29 江苏原力数字科技股份有限公司 Rapid reverse dynamics angle hard constraint method
CN111571586B (en) * 2020-05-07 2020-12-11 江苏原力数字科技股份有限公司 Dynamic constraint method for inverse dynamics freedom degree
CN112200893B (en) * 2020-12-10 2021-03-02 成都完美时空网络技术有限公司 Animation generation method, device and equipment for virtual article and storage medium
CN114147714B (en) * 2021-12-02 2023-06-09 浙江机电职业技术学院 Method and system for calculating control parameters of mechanical arm of autonomous robot
CN117542123B (en) * 2024-01-09 2024-04-26 轻威科技(绍兴)有限公司 Human skeleton resolving method and system based on sparse 6 nodes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101390351A (en) * 2004-11-15 2009-03-18 高通股份有限公司 Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation
CN101927495A (en) * 2010-08-25 2010-12-29 中山大学 A repetitive motion planning method for a redundant manipulator
CN108876815A (en) * 2018-04-28 2018-11-23 深圳市瑞立视多媒体科技有限公司 Bone computation method for attitude, personage's dummy model driving method and storage medium

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2188685B1 (en) * 2007-08-28 2012-02-22 The University of Surrey Inverse kinematics
CN102426709B (en) * 2011-08-19 2013-12-25 北京航空航天大学 Real-time motion synthesis method based on fast inverse kinematics
US9911219B2 (en) * 2015-05-13 2018-03-06 Intel Corporation Detection, tracking, and pose estimation of an articulated body
CN106844985B (en) * 2017-02-06 2019-08-16 中国科学院计算技术研究所 A kind of fast solution method and system of high-freedom degree Robotic inverse kinematics
CN107030698B (en) * 2017-05-09 2018-06-01 中国科学院计算技术研究所 The inverse kinematics system of robot
CN107972030B (en) * 2017-11-10 2020-07-07 浙江科技学院 Initial position correction method in redundant mechanical arm repeated movement
CN110531866B (en) * 2019-10-29 2020-03-13 深圳市瑞立视多媒体科技有限公司 Method for performing attitude calculation based on improved inverse kinematics and related equipment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101390351A (en) * 2004-11-15 2009-03-18 高通股份有限公司 Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation
CN101927495A (en) * 2010-08-25 2010-12-29 中山大学 A repetitive motion planning method for a redundant manipulator
CN108876815A (en) * 2018-04-28 2018-11-23 深圳市瑞立视多媒体科技有限公司 Bone computation method for attitude, personage's dummy model driving method and storage medium

Also Published As

Publication number Publication date
CN110531866A (en) 2019-12-03
WO2021082827A1 (en) 2021-05-06

Similar Documents

Publication Publication Date Title
CN110531866B (en) Method for performing attitude calculation based on improved inverse kinematics and related equipment
CN114641375B (en) Dynamic Programming Controller
US11667035B2 (en) Path-modifying control system managing robot singularities
Terze et al. Lie-group integration method for constrained multibody systems in state space
JP4896276B2 (en) ROBOT, ROBOT CONTROL DEVICE, CONTROL METHOD, AND CONTROL PROGRAM
CN109625118B (en) Impedance control method and device for biped robot
CN113400305A (en) Control method and device for contusion tool, electronic equipment and storage medium
US11410402B2 (en) Computer-implemented method for making a skeleton of a modeled body take a posture
CN113021347A (en) Mechanical arm control method and device, operation control equipment and readable storage medium
Song et al. A closed-loop framework for the inverse kinematics of the 7 degrees of freedom manipulator
CN100437643C (en) Method for correcting noises and errors in human sports trapped data
CN116141330A (en) Robot motion control method, device, robot equipment and storage medium
CN114502338A (en) Techniques for generating controllers for robots
Yang et al. Model-free 3-d shape control of deformable objects using novel features based on modal analysis
Sheng et al. Hybrid vision-force robot force control for tasks on soft tissues
Huang et al. An efficient energy transfer inverse kinematics solution
CN116597056B (en) Animation processing method, device, equipment and storage medium
Erleben et al. Inverse kinematics problems with exact hessian matrices
CN116175557B (en) Robot door opening method and device, readable storage medium and robot
CN118003322A (en) SSRMS mechanical arm position level inverse solution algorithm based on improved arm angle method
Pomares et al. Dynamic visual servo control of a 4-axis joint tool to track image trajectories during machining complex shapes
Kingston et al. Kinematically constrained workspace control via linear optimization
Guthikonda et al. Shape servoing of deformable objects using model estimation and Barrier Lyapunov function
CN115153734B (en) Plane cutting control method, device and storage medium
CN114800503B (en) Multi-joint robot motion control method and device, electronic equipment and storage medium

Legal Events

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