IP Library Granted Patent US 6,856,319
Granted Patent B2
US 6,856,319 · App. 10/170,751 · Granted Feb 15, 2005

Interpolation using radial basis functions with application to inverse kinematics

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,856,319
App. No.
10/170,751
Granted
Feb 15, 2005
Kind
B2
Abstract

A technique for solving an inverse-kinematic problem by interpolating solutions from examples. Example poses or motions of an object are collected and annotated. The annotations are essentially parameters for a function—i.e., the function X(p) generates degree-of-freedom values of an object that is posed in a manner that satisfies parameters p. The analytic function X is interpolated from these examples and improved automatically based on kinematic measurements. Preferably, the interpolation is created by taking a weighted sum of cardinal basis functions having linear and radial parts. Preferably, the interpolation is a weighted sum of cardinal basis functions having linear and radial portions.

Claims (74)

1. A method of manipulating an object comprising:

collecting a plurality of example manipulations of the object;

annotating the examples with one or more parameters;

creating an interpolation function that passes through the annotated examples, the interpolation being based at least in part on a plurality of radial basis functions;

determining that the interpolation function fails to meet a criterion;

adding at least one additional example;

recomputing the interpolation function based on the original annotated example and the at least one additional example,

wherein the additional example comprises a pseudo-example, and wherein the act of adding at least one additional example comprises:

identifying a value p that produces a maximal value of ∥x e (p)−p∥, wherein p is a set of parameters in an annotation space and x e is a function that produces an end-effector position for the object based on p; and

identifying a value p′ that produces a minimal value of ∥x e (p′)−p∥, wherein p′ is the pseudo-example.

2. A computer-readable medium containing computer-executable instructions for performing a method of interpolating a manipulation of an object from a plurality of examples, the method comprising:

creating a cardinal basis weighting function corresponding to each of the plurality of examples, each cardinal basis weighting function being based on radial basis functions and linear basis functions;

creating a callable function that computes the manipulation based on a sum of the plurality of examples, wherein each example in the sum is multiplied by the cardinal basis weighting function corresponding to the example;

determining that the interpolation function fails to meet a criterion;

adding a pseudo-example; and

recomputing the cardinal basis weighting functions based on the original examples and the pseudo-example,

wherein the act of adding at least one additional example comprises:

identifying a value p that produces a maximal value of ∥x e (p)−p∥, wherein p is a set of parameters in an annotation space and x e is a function that produces an end-effector position for the object based on p; and

identifying a value p′ that produces a minimal value of ∥x e (p′)−p∥, wherein p′ is the pseudo-example.

3. A method of creating function that produces a manipulation of an object based on one or more parameters, the method comprising:

creating a first function based on a plurality of examples;

determining that said first function does not satisfy a criterion;

creating a pseudo-example; and

creating a second function based on the plurality of examples and the pseudo-example, wherein the second function produces the manipulation of the object and satisfies the criterion,

wherein the act of creating a pseudo-example comprises:

identifying a value p that produces a maximal value of ∥x e (p)−p∥, wherein p is a set of parameters and x e is a function that produces an end-effector position for the object based on p; and

identifying a value p′ that produces a minimal value of ∥x e (p′)−p∥, wherein p′ is the pseudo-example.

4. A method of creating function that produces a manipulation of an object based on one or more parameters, the method comprising:

creating a first function based on a plurality of examples;

determining that said first function does not satisfy a criterion;

creating a pseudo-example; and

creating a second function based on the plurality of examples and the pseudo-example, wherein the second function produces the manipulation of the object and satisfies the criterion,

wherein the criterion comprises a measurement of the amount of warp in the first function.

5. A computer-readable medium containing computer-executable instructions for performing a method of creating a function that produces a manipulation of an object based on one or more parameters, the method comprising:

creating a first function based on a plurality of examples;

determining that said first function does not satisfy a criterion;

creating a pseudo-example; and

creating a second function based on the plurality of examples and the pseudo-example, wherein the second function produces the manipulation of the object and satisfies the criterion,

wherein the act of creating a pseudo-example comprises:

identifying a value p that produces a maximal value of ∥x e (p)−p∥, wherein p is a set of parameters and x e is a function that produces an end-effector position for the object based on p; and

identifying a value p′ that produces a minimal value of ∥x e (p′)−p∥, wherein p′ is the pseudo-example.

6. A computer-readable medium containing computer-executable instructions for performing a method of creating a function that produces a manipulation of an object based on one or more parameters, the method comprising:

creating a first function based on a plurality of examples;

determining that said first function does not satisfy a criterion;

creating a pseudo-example; and

creating a second function based on the plurality of examples and the pseudo-example, wherein the second function produces the manipulation of the object and satisfies the criterion,

wherein the criterion comprises a measurement of the amount of warp in the first function.

7. A system for rendering an object on a computing device, the object having one or more degrees of freedom, the system comprising:

a callable function interpolated from a plurality of examples, each example correlating a set of parameters with a manipulation of the object, the function taking one or more parameters as input and producing a resulting manipulation as output,

wherein p is the set of parameters, wherein the callable function computes an error vector v e =x e (p)−p, uses the inverse of v e to locate a point p′ for which x e (p′)=p, and produces the resulting manipulation based on parameters p′, and wherein x e produces the end-effector for a manipulation.

8. A computer-readable medium encoded with computer-executable instructions to perform a method of manipulating an object, the method comprising:

collecting a plurality of example manipulations of the object;

annotating the examples with one or more parameters;

creating an interpolation function that passes through the annotated examples, the interpolation being based at least in part on a plurality of radial basis functions;

determining that the interpolation function fails to meet a criterion;

adding at least one additional example;

recomputing the interpolation function based on the original annotated example and the at least one additional example,

wherein the additional example comprises a pseudo-example, and wherein the act of adding at least one additional example comprises:

identifying a value p that produces a maximal value of ∥x e (p)−p∥, wherein p is a set of parameters in an annotation space and x e is a function that produces an end-effector position for the object based on p; and

identifying a value p′ that produces a minimal value of ∥x e (p′)−p∥, wherein p′ is the pseudo-example.

9. A computer-readable medium encoded with computer-executable instructions to perform a method of creating function that produces a manipulation of an object based on one or more parameters, the method comprising:

creating a first function based on a plurality of examples;

determining that said first function does not satisfy a criterion;

creating a pseudo-example; and

creating a second function based on the plurality of examples and the pseudo-example, wherein the second function produces the manipulation of the object and satisfies the criterion,

wherein the act of creating a pseudo-example comprises:

identifying a value p that produces a maximal value of ∥x e (p)−p∥, wherein p is a set of parameters and x e is a function that produces an end-effector position for the object based on p; and

identifying a value p′ that produces a minimal value of ∥x e (p′)−p∥, wherein p′ is the pseudo-example.

10. A computer-readable medium encoded with computer-executable instructions to perform a method of creating function that produces a manipulation of an object based on one or more parameters, the method comprising:

creating a first function based on a plurality of examples;

determining that said first function does not satisfy a criterion;

creating a pseudo-example; and

creating a second function based on the plurality of examples and the pseudo-example, wherein the second function produces the manipulation of the object and satisfies the criterion,

wherein the criterion comprises a measurement of the amount of warp in the first function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →