Inverse kinematics computational solver system, method, and apparatus
AssigneeKrux Kinematics LLC
InventorJess T. Leonard
Life of this patent
Estimating the term…
Abstract
One or more methods, apparatuses, and systems to perform inverse kinematics to move an end effector of a kinematic chain from a starting location toward a target location and to move mid-joints in response thereto according to a subspace of a mid-joint, wherein the subspace is determined according to objects determined around adjacent joints of the mid-joint. The kinematic chain may comprise branches and the methods, apparatuses, and systems may determine an execution order of the branches.
Claims20
An apparatus for inverse kinematics, comprising:
- a computer processor and a memory having stored therein computer-readable instructions;
- and
- wherein the computer-readable instructions when executed by the processor configures the processor to perform a transformation of a kinematic chain and control movement of the kinematic chain based on the transformation of the kinematic chain, wherein the kinematic chain comprises a root, an effector, and at least a first mid-joint, wherein the first mid-joint is between the root and the effector, wherein the transformation includes moving the effector from a starting location to or toward (“to”) a target location, wherein to perform the transformation of the kinematic chain to move the effector from the starting location to the target location, the processor is configured to determine a subspace of the first mid-joint, and is configured to perform the transformation of the kinematic chain according to the subspace of the first mid-joint, wherein the kinematic chain comprises adjacent joints of the first mid-joint, wherein the adjacent joints of the first mid-joint comprise an effector-proximate joint and a root-proximate joint, wherein the effector-proximate joint is either the effector or a mid-joint closer to the effector than the first mid-joint and wherein the root-proximate joint is either the root or a mid-joint closer to the root than the first mid-joint, and wherein the processor upon executing the computer-readable instructions is configured to determine a first object around the effector-proximate joint and a second object around the root-proximate joint, is configured to determine an intersection of the first object and the second object (“intersection”), and is configured to determine the subspace of the first mid-joint according to a perimeter of the intersection, wherein the first object is determined by determining a three-dimensional space that at least partially surrounds the effector-proximate joint that a first link connected to the effector-proximate joint can freely rotate around the effector-proximate joint, and wherein the second object is determined by determining a three-dimensional space that at least partially surrounds the root-proximate joint that a second link connected to the root-proximate joint can freely rotate around the root-proximate joint.
A computer implemented method for inverse kinematics, comprising:
- performing, by a computer processor, a transformation of a kinematic chain;
- controlling movement of the kinematic chain based on the transformation of the kinematic chain, wherein the kinematic chain comprises a root, an effector, and at least a first mid-joint, wherein the first mid-joint is between the root and the effector, wherein performing the transformation of the kinematic chain includes moving the effector from a starting location to or toward (“to”) a target location by determining a subspace of the first mid-joint and performing the transformation of the kinematic chain according to the subspace of the first mid-joint, wherein the kinematic chain comprises adjacent joints of the first mid-joint, wherein the adjacent joints of the first mid-joint comprise an effector-proximate joint and a root-proximate joint, wherein the effector-proximate joint is either the effector or a mid-joint closer to the effector than the first mid-joint and wherein the root-proximate joint is either the root or a mid-joint closer to the root than the first mid-joint, and further comprising determining a first object around the effector-proximate joint and a second object around the root-proximate joint, determining an intersection of the first object and the second object (“intersection”), and determining the subspace of the first mid-joint according to a perimeter of the intersection, wherein a location of the first object around the effector-proximate joint is based on a new position for the effector-proximate joint and a location of the second object around the root-proximate joint is based on a then-current position of the root-proximate joint and wherein performing the transformation of the kinematic chain according to the subspace of the first mid-joint further comprises moving the effector to the target location and determining a new position for the first mid-joint on the perimeter of the intersection, wherein determining the new position for the first mid-joint on the perimeter of the intersection comprises determining the new position on the perimeter of the intersection closest to a then-current position of the first mid-joint, wherein the first object is determined by determining a three-dimensional space that at least partially surrounds the effector-proximate joint that a first link connected to the effector-proximate joint can freely rotate around the effector-proximate joint, and wherein the second object is determined by determining a three-dimensional space that at least partially surrounds the root-proximate joint that a second link connected to the root-proximate joint can freely rotate around the root-proximate joint.
One or more computer-readable media comprising instructions that cause a computer device, in response to execution of the instructions by a processor of the computer device, to:
- perform a transformation of a kinematic chain;
- control movement of the kinematic chain based on the transformation of the kinematic chain, wherein the kinematic chain comprises a root, the effector, and at least a first mid-joint, wherein the first mid-joint is between the root and the effector, wherein to perform the transformation of the kinematic chain includes moving the effector from a starting location to or toward (“to”) a target location by determining a subspace of the first mid-joint and perform the transformation of the kinematic chain according to the subspace of the first mid-joint, wherein the kinematic chain comprises adjacent joints of the first mid-joint, wherein the adjacent joints of the first mid-joint comprise an effector-proximate joint and a root-proximate joint, wherein the effector-proximate joint is either the effector or a mid-joint closer to the effector than the first mid-joint and wherein the root-proximate joint is either the root or a mid-joint closer to the root than the first mid-joint, and wherein the instructions are further to cause to computer device to determine a first object around the effector-proximate joint and a second object around the root-proximate joint, determine an intersection of the first object and the second object (“intersection”), and determine the subspace of the first mid-joint according to a perimeter of the intersection, wherein a location of the first object around the effector-proximate joint is based on a new position for the effector-proximate joint and a location of the second object around the root-proximate joint is based on a then-current position of the root-proximate joint and wherein to perform the transformation of the kinematic chain according to the subspace of the first mid-joint further comprises moving the effector to the target location and determine a new position for the first mid-joint on the perimeter of the intersection, wherein the first object is determined by determining a three-dimensional space that at least partially surrounds the effector-proximate joint that a first link connected to the effector-proximate joint can freely rotate around the effector-proximate joint, and wherein the second object is determined by determining a three-dimensional space that at least partially surrounds the root-proximate joint that a second link connected to the root-proximate joint can freely rotate around the root-proximate joint.
Dependencies are inferred from the claim text.