Paden–Kahan subproblems

From testwiki
Jump to navigation Jump to search

Template:Short description Paden–Kahan subproblems are a set of solved geometric problems which occur frequently in inverse kinematics of common robotic manipulators.[1] Although the set of problems is not exhaustive, it may be used to simplify inverse kinematic analysis for many industrial robots.[2] Beyond the three classical subproblems several others have been proposed.[3][4]

Simplification strategies

For a structure equation defined by the product of exponentials method, Paden–Kahan subproblems may be used to simplify and solve the inverse kinematics problem. Notably, the matrix exponentials are non-commutative.

Generally, subproblems are applied to solve for particular points in the inverse kinematics problem (e.g., the intersection of joint axes) in order to solve for joint angles.

Eliminating revolute joints

Simplification is accomplished by the principle that a rotation has no effect on a point lying on its axis. For example, if the point p is on the axis of a revolute twist ξ, its position is unaffected by the actuation of the twist. To wit:eξ^θp=p

Thus, for a structure equationeξ^1θ1eξ^2θ2eξ^3θ3=gwhere ξ1, ξ2 and ξ3 are all zero-pitch twists, applying both sides of the equation to a point p which is on the axis of ξ3 (but not on the axes of ξ1 or ξ2) yieldseξ^1θ1eξ^2θ2eξ^3θ3p=gpBy the cancellation of ξ3, this yieldseξ^1θ1eξ^2θ2p=gpwhich, if ξ1 and ξ2 intersect, may be solved by Subproblem 2.

Norm

In some cases, the problem may also be simplified by subtracting a point from both sides of the equation and taking the norm of the result.

For example, to solveeξ^1θ1eξ^2θ2eξ^3θ3=gfor ξ3, where ξ1 and ξ2 intersect at the point q, both sides of the equation may be applied to a point p that is not on the axis of ξ3. Subtracting q and taking the norm of both sides yieldsδi=gpq=eξ^1θ1eξ^2θ2eξ^3θ3pq=eξ^1θ1eξ^2θ2(eξ^3θ3pq)=eξ^3θ3pq This may be solved using Subproblem 3.

List of subproblems

Each subproblem is presented as an algorithm based on a geometric proof. Code to solve a given subproblem, which should be written to account for cases with multiple solutions or no solution, may be integrated into inverse kinematics algorithms for a wide range of robots.

Subproblem 1: Rotation about a single axis

An illustration of the first Paden–Kahan subproblem.
Let ξ be a zero-pitch twist with unit magnitude and p,q3 be two points. Find θ such that eξ^θp=q.

In this subproblem, a point

p

is rotated around a given axis

ξ

such that it coincides with a second point

q

.

An illustration of the projected circle in the first Paden–Kahan subproblem.

Solution

Let r be a point on the axis of ξ. Define the vectors u=(pr) and v=(qr). Since r is on the axis of ξ, eξ^θr=r. Therefore, eω^θu=v.

Next, the vectors u and v are defined to be the projections of u and v onto the plane perpendicular to the axis of ξ. For a vector ω in the direction of the axis of ξ,u=uωωTuandv=vωωTv.In the event that u=0, p=q and both points lie on the axis of rotation. The subproblem therefore yields an infinite number of possible solutions in that case.

In order for the problem to have a solution, it is necessary that the projections of u and v onto the ω axis and onto the plane perpendicular to ω have equal lengths. It is necessary to check, to wit, that:ωTu=ωTvand thatu=v

If these equations are satisfied, the value of the joint angle θ may be found using the atan2 function:θ=atan2(ωT(u×v),u'Tv).Provided that u0, this subproblem should yield one solution for θ.

Subproblem 2: Rotation about two subsequent axes

Illustration of Paden–Kahan Subproblem 2. The subproblem yields two solutions in the event that the circles intersect at two points; one solution if the circles are tangential; and no solution if the circles fail to intersect.
Let ξ1 and ξ2 be two zero-pitch twists with unit magnitude and intersecting axes. Let p,q3 be two points. Find θ1 and θ2 such that eξ^1θ1eξ^2θ2p=q.

This problem corresponds to rotating p around the axis of ξ2 by θ2, then rotating it around the axis of ξ1 by θ1, so that the final location of p is coincident with q. (If the axes of ξ1 and ξ2 are coincident, then this problem reduces to Subproblem 1, admitting all solutions such that θ1+θ2=θ.)

Solution

Provided that the two axes are not parallel (i.e., ω1ω2), let c be a point such that eξ^2θ2p=c=eξ^1θ1q. In other words, c represents the point to which p is rotated around one axis before it is rotated around the other axis to be coincident with q. Each individual rotation is equivalent to Subproblem 1, but it's necessary to identify one or more valid solutions for c in order to solve for the rotations.

Let

r

be the point of intersection of the two axes:

eξ^2θ2(pr)=cr=eξ^1θ1(qr).
An illustration of Paden–Kahan subproblem 2, showing the tangential case in which the subproblem yields only one solution.

Define the vectors

u=(pr)

,

v=(qr)

and

z=(cr)

. Therefore,

eξ^2θ2u=z=eξ^1θ1v.

This implies that ω2Tu=ω2Tz, ω1Tv=ω1Tz, and u2=z2=v2. Since ω1, ω2 and ω1×ω2 are linearly independent, z can be written asz=αω1+βω2+γ(ω1×ω2).

The values of the coefficients may be solved thus:

An illustration of Paden–Kahan subproblem 2, showing a case with two intersecting circles and therefore two solutions. Both solutions (c, c2) are highlighted.
α=(ω1Tω2)ω2Tuω1Tv(ω1Tω2)21β=(ω1Tω2)ω1Tvω2Tu(ω1Tω2)21

, and

γ2=u2α2β22αβω1Tω2ω1×ω22.

The subproblem yields two solutions in the event that the circles intersect at two points; one solution if the circles are tangential; and no solution if the circles fail to intersect.

Subproblem 3: Rotation to a given distance

Let ξ be a zero-pitch twist with unit magnitude; let p,q3 be two points; and let δ be a real number greater than 0. Find θ such that qeξ^θp=δ.

In this problem, a point p is rotated about an axis ξ until the point is a distance δ from a point q. In order for a solution to exist, the circle defined by rotating p around ξ must intersect a sphere of radius δ centered at q.

Solution

Let r be a point on the axis of ξ. The vectors u=(pr) and v=(qr) are defined so thatveξ^θu2=δ2.

The projections of u and v are u=uωωTu and v=vωωTv. The “projection” of the line segment defined by δ is found by subtracting the component of pq in the ω direction:δ'2=δ2|ωT(pq)|2.The angle θ0 between the vectors u and v is found using the atan2 function:θ0=atan2(ωT(u×v),u'Tv).The joint angle θ is found by the formulaθ=θ0±cos1(u2+v2δ'22uv).This subproblem may yield zero, one, or two solutions, depending on the number of points at which the circle of radius u intersects the circle of radius δ.

Subproblem 4: Rotation about two axes to a given distance

Let ξ1 and ξ2 be two zero-pitch twists with unit magnitude and intersecting axes. Let p,q1,q23 be points. Find θ1 and θ2 such that eξ^1θ1eξ^2θ2pq1=δ1 and eξ^1θ1eξ^2θ2pq2=δ2.

This problem is analogous to Subproblem 2, except that the final point is constrained by distances to two known points.

Subproblem 5: Translation to a given distance

Let ξ be an infinite-pitch unit magnitude twist; p,q3 two points; and δ a real number greater than 0. Find θ such that qeξ^θp=δ.

References

Template:Reflist