Plucker Coordinates PDF
Plucker Coordinates PDF
Plucker Coordinates PDF
Yan-Bin Jia
Before presenting the material, it helps to go over some identities involving cross and dot
products. Let a, b, c be three vectors in R3 . The following identities hold:
a · b = b · a, (1)
a × b = −b × a, (2)
a · (b × c) = (a × b) · c, (3)
a × (b × c) = (a · c)b − (a · b)c. (4)
Applying the above identities, we can remove concatenation of cross product operators. For exam-
ple, letting d be a fourth vector, we apply (4) as follows:
(a × b) × (c × d) = (a × b) · d c − (a × b) · c d.
1 Plücker Coordinates
A rigid body in the space is known to have six degrees of freedom: three translational and three
rotational. It can translate along either one of x-, y-, and z-axes, or rotate about either one of them
or any of other three orthogonal directions. A line ℓ in the space, however, has only four degrees
of freedom. This is because it will remain the same line when undergoing a rotation about itself as
the axis or translation in its own direction.
As shown in Figure 1, a line ℓ can be represented by its direction l and a point p that it passes
through. The Plücker coordinates [1, 2] of the line ℓ is defined to be (l, m), where m = p × l is
referred to as the moment vector. These coordinates were introduced by Julius Plücker in the 19th
century. They are also known as the Grassmann coordinates, or referred to as the homogeneous
line coordinates. The second coordinate m is independent of the choice of p, for a different point
p′ on the line satisfies p′ − p = λl for some λ, and induces
p′ × l = p + (p′ − p) × l
= p × l + (p′ − p) × l
= m + λl × l
= m.
∗
You need only know how to apply the theorems in this handout. You are not required to follow their proofs.
1
l
z p⊥
p
p×l
y ℓ
O
x
Figure 1: Plücker coordinates (l, p × l) of a line. Here p⊥ is the closest point on the line to the origin O.
A point q lies on the line ℓ if and only if q ×l = m. The necessity follows from the independence
of m from the point location on the line as reasoned above. For the sufficiency, we see that q×l = m
implies (q − r) × l = m − m = 0, where r is a point on the line. Thus, the vector q − r is collinear
with the line direction l. So q must be on the line as well.
When l is a unit vector, the moment kmk gives the distance from the origin to the line.
Generally, such distance is given by kmk/klk. If m is zero, the line is through the origin.
The six coordinates in (l, m) have two redundancies. Since m scales with l, the Plücker co-
ordinates (l, m) and (cl, cm), c 6= 0, describe the same line. First, we can choose l to be a unit
vector. Second, l · m = l · (p × l) = 0. The constraints klk = 1 and l · m = 0 essentially remove
two variables from (l, m), reflecting the line’s four degrees of freedom in the space.
From now on, we will write the Plücker coordinates as (l̂, m) with l̂ being a unit vector. Under
such a choice, m = p × l̂ is called the moment of the line. It is the moment of a unit force acting
at p in the direction l̂ with respect to the origin. The norm kmk gives the distance from the origin
to the line, achieved at its closest point p⊥ on the line, where
p⊥ = p − (l̂ · p)l̂
= (l̂ · l̂)p − (l̂ · p)l̂
= l̂ × (p × l̂)
= l̂ × m.
For a line with general Plücker coordinates (l, m), its distance to the origin is kmk/klk. Hence,
the line passes through the origin if m = 0. If l = 0, we can view the coordinates as representing
a line is at infinity.
mq = (p − q) × l̂
2
l̂
q⊥
z ℓ
q
y
O
x
= p × l̂ − q × l̂
= m − q × l̂. (5)
Zero dot product of l̂ with (5) shows that the moment is orthogonal to l̂. Its norm km − q × l̂k is
the distance from q to the line.
Let q⊥ be the foot of the perpendicular from q to the line ℓ. Hence, q ⊥ − q is orthogonal to l̂,
implying
l̂ × mq = l̂ × (q ⊥ − q) × l̂
= (l̂ · l̂)(q ⊥ − q) − l̂ · (q ⊥ − q) l̂
= q ⊥ − q.
We obtain
q ⊥ = q + l̂ × mq . (6)
3 Reciprocal Product
Suppose there are two lines ℓ1 and ℓ2 described by Plücker coordinates (l̂1 , m1 ) and (l̂2 , m2 ),
respectively. The moment of ℓ2 about a point p1 on ℓ1 is m2 − p1 × l̂2 according to (5). Its
projection along the latter line’s direction l̂1 is then calculated as follows using (5):
The result, independent of the location of p1 on ℓ1 , is called the moment of ℓ2 about ℓ1 . The sum
in (7) is called be the reciprocal product of the Plücker coordinates of the two lines:
def
(l̂1 , m1 ) ∗ (l̂2 , m2 ) = l̂1 · m2 + l̂2 · m1 . (8)
3
ℓ2
l̂2
l̂1
p1
ℓ1
This sum stays the same even if we switch the subscripts 1 and 2, which implies that the moment
of ℓ2 about ℓ1 is equal to that of ℓ1 about ℓ2 . Nevertheless, the reciprocal product depends on the
directions l̂1 and l̂2 chosen for the two lines.
m21 Π
l̂1 α l̂2
p∗2
ℓ2
ℓ⊥
l̂1
p∗1
ℓ1
Figure 4: Distance between lines ℓ1 and ℓ2 . The common perpendicular intersects the two lines at p∗1 and
p∗2 , respectively.
common perpendicular ℓ⊥ . These two points are called the feet of the common perpendicular. The
distance between the two lines equals that between p∗1 and p∗2 , which are the closest pair of points
from different lines. The distance is equal to that from p∗1 to ℓ2 , or from p∗2 to ℓ1 . That from p∗1 to
ℓ2 is equal to the norm of the moment m21 of the line ℓ2 about p∗1 which, by (5), is
4
We can make use of reciprocal products to determine the relative location of the two lines. If
they intersect, we can find their intersection. If they are skew, we can compute their distance,
construct their common perpendicular, and its intersections with the two lines.
Theorem 1 Two lines ℓ1 and ℓ2 , in Plücker coordinates (l1 , m1 ) and (l2 , m2 ), has the distance
|(l1 , m1 ) ∗ (l2 , m2 )|
, if l1 × l2 6= 0;
kl1 × l2 k
d= (10)
kl1 × (m1 − m2 /s)k
, otherwise, where l2 = sl1 for some s 6= 0.
kl1 k2
Proof Denote by l̂1 and l̂2 the unit vectors in the directions of l1 and l2 , respectively. First, we
assume that the two lines ℓ1 and ℓ2 are not parallel to each other; in other words, l1 × l2 6= 0. We
will consider the case of them being parallel later. Refer to Figure 4, because p∗1 is the closest point
on ℓ1 to ℓ2 , (p∗2 − p∗1 ) ⊥ l̂2 , i.e., ℓ⊥ ⊥ ℓ2 . The plane Π containing ℓ∗2 and m21 = m2 /kl2 k − p∗1 × l̂2
is orthogonal to ℓ⊥ and thus parallel to ℓ1 . It consequently contains l̂1 . When the latter gets
translated to p∗2 , let α be the angle of rotation from l̂1 to l̂2 . Since both are unit vectors, it trivially
holds that | sin α| = kl̂1 × l̂2 k. Since m21 ⊥ l̂2 , we derive the moment of ℓ2 about ℓ1 below:
π
l̂1 · m21 = km21 k cos α + (11)
2
= km21 k(− sin α). (12)
d = km21 k
|l̂1 · m21 |
= (by (12))
| sin α|
|l̂1 · (m2 /kl2 k − p∗1 × l̂2 )|
= (by (9))
kl̂1 × l̂2 k
|l̂1 · (m2 /kl1 k) − (l̂1 × p∗1 ) · l̂2 )|
=
kl̂1 × l̂2 k
|(l̂1 , m1 /kl1 k) ∗ (l̂2 , m2 /kl2 k)|
= . (by (7) and (8)) (13)
kl̂1 × l̂2 k
If the two lines intersect, then d = 0 and equation (13) implies that the reciprocal product is zero,
that is,
(l1 , m1 ) ∗ (l2 , m2 ) = 0. (14)
When the two lines ℓ1 and ℓ2 are parallel to each other. That l̂1 = ±l̂2 immediately implies the
following:
l̂1 · m2 = ±l̂2 · m2 = 0;
l̂2 · m1 = ±l̂1 · m1 = 0,
By definition (8) the reciprocal product vanishes. Consequently, (13) yields d = 0, which is incor-
rect. In this case, we let l̂ = l̂1 . With l2 = sl1 for some s, we rewrite the Plücker coordinates as
5
(l̂, m′1 ) and (l̂, m′2 ), where m′1 = m1 /kl1 k and m′2 = m2 /(skl1 k). Let p∗1 and p∗2 be two points on
ℓ1 and ℓ2 , respectively, such that p∗1 − p∗2 is orthogonal to l̂. The distance between the two lines is
thus kp∗1 − p∗2 k. We have that
m′1 − m′2 = (p∗1 − p∗2 ) × l̂,
from which we obtain
p∗1 − p∗2 = (l̂ · l̂)(p∗1 − p∗2 ) − l̂ · (p∗1 − p∗2 ) l̂
= l̂ × (p∗1 − p∗2 ) × l̂
= l̂ × (m′1 − m′2 )
l1 m1 m2 /s
= × −
kl1 k kl1 k kl1 k
l1 × (m1 − m2 /s)
= . (15)
kl1 k2
Now, we combine the above result with (13) into the formula (10) for the line distance, taking
into account that the direction vectors are not unit in general.
The proof of Theorem 1 also establishes a condition for checking if two lines are co-planar.
Corollary 2 Two lines ℓ1 and ℓ2 are co-planar if and only if the reciprocal product of their Plücker
coordinates is zero.
6
ℓ⊥
ℓ1 p∗2 l̂2
d
ℓ2
p∗1
l̂1
n̂ m21
û
l̂2
l̂2 ℓ1
o p∗1 , p∗2 l̂1
l̂1 ℓ2
(a) (b)
Figure 5: Two skew lines ℓ1 and ℓ2 at distance d: (a) with their common perpendicular ℓ⊥ , and (b) in a
top-down view. The local frame in (a) is formed by l̂1 , n̂ = l̂1 × l̂2 /kl̂1 × l̂2 k, and û = n̂ × l̂1 .
by the definition of the reciprocal product. In Figure 5(b), we see that (p∗2 − p∗1 ) · n̂ and m21 · l̂1
always have opposite signs. Namely, (p∗1 − p∗2 ) · n̂ and the reciprocal product always have the same
sign.
Theorem 4 Let ℓ1 and ℓ2 be two skew lines in the Plücker coordinates (l1 , m1 ) and (l2 , m2 ). Their
common perpendicular ℓ⊥ has the Plücker coordinates (l⊥ , m⊥ ), where
l⊥ = l 1 × l 2 , (17)
(l1 , m1 ) ∗ (l2 , m2 ) (l1 · l2 )
m⊥ = m1 × l2 − m2 × l1 + l1 × l2 . (18)
kl1 × l2 k2
7
Proof The line ℓ⊥ is already known to be in the direction of l̂1 × l̂2 . We need only determine
the cross product of a point on ℓ⊥ with l̂1 × l̂2 . Choosing this point to be p∗2 , we have
Theorem 5 Let ℓ1 and ℓ2 be two skew lines in Plücker coordinates (l1 , m1 ) and (l2 , m2 ). Their
common perpendicular l⊥ intersects with ℓ1 and ℓ2 respectively at the following points:
−m1 × l2 × (l1 × l2 ) + m2 · (l1 × l2 ) l1
p∗1 = , (20)
kl1 × l2 k2
m2 × l1 × (l1 × l2 ) − m1 · (l1 × l2 ) l2
p∗2 = . (21)
kl1 × l2 k2
Proof We need only derive an expression for p∗2 and then obtain that for p∗1 by switching the
subscripts 1 and 2. The idea is to project p∗2 onto the three orthogonal axes l̂1 , û, and n̂ in
Figure 5(a). First, we observe
m2 · l̂1
p∗2 · n̂ = − . (22)
kl̂1 × l̂2 k
8
Next, we derive the projection onto n̂ as follows:
Last, we determine the projection of p∗2 onto l̂1 . The vector l̂2 lies in the plane spanned by l̂1
and û (cf. Figure 5(a)) such that
It follows that
p∗2 · l̂2 = (l̂1 · l̂2 )(p∗2 · l̂1 ) + kl̂1 × l̂2 k(p∗2 · û)
= (l̂1 · l̂2 )(p∗2 · l̂1 ) − m1 · (l̂1 × l̂2 ), (25)
to obtain
p∗2 = (p∗2 · l̂2 )l̂2 + l̂2 × m2 .
Take the dot products of the both sides of the above equation with l̂1 :
9
Now we are ready to assemble the projections (22), (24), and (26) to form the intersection point
between l2 and l⊥ as follows:
p∗2 = (p∗2 · n̂)n̂ + (p∗2 · û)û + (p∗2 · l̂1 )l̂1
!
m2 · l̂1 m2 − (l̂1 · l̂2 )m1
= − n̂ − (m1 · n̂)n̂ × l̂1 + · n̂ l̂1
kl̂1 × l̂2 k kl̂1 × l̂2 k
!
−(m2 · l̂1 )n̂ + (m2 · n̂)l̂1 l̂1 · l̂2
= − (m1 · n̂) n̂ × l̂1 + l̂1
kl̂1 × l̂2 k kl̂1 × l̂2 k
m2 × (l̂1 × n̂) (l̂1 × l̂2 ) × l̂1 + (l̂1 · l̂2 )l̂1
= − (m1 · n̂)
kl̂1 × l̂2 k kl̂1 × l̂2 k
m2 × (l̂1 × n̂) (l̂1 · l̂1 )l̂2 − (l̂1 · l̂2 )l̂1 + (l̂1 · l̂2 )l̂1
= − (m1 · n̂)
kl̂1 × l̂2 k kl̂1 × l̂2 k
m2 × (l̂1 × n̂) − (m1 · n̂)l̂2
=
kl̂1 × l̂2 k
m2 × l̂1 × (l̂1 × l̂2 ) − m1 · (l̂1 × l̂2 ) l̂2
= . (27)
kl̂1 × l̂2 k2
The expression for the intersection point p∗1 of l1 and l⊥ is obtained by simply switching the
subscripts 1 and 2 in the above expression:
−m1 × l̂2 × (l̂1 × l̂2 ) + m2 · (l̂1 × l̂2 ) l̂1
p∗1 = . (28)
kl̂1 × l̂2 k2
It is straightforward to verify (16) using (27) and (28).
The expressions (27) and (28) will still be valid even if the vectors l̂1 and l̂2 are replaced with
general direction vectors l1 and l2 , respectively. This is because the moment vectors m1 and m2
will scale by the magnitudes of the direction vectors.
The derivation of (27) and (28) was independent of the distance value d. Hence these formulae
(and subsequently (20) and (21)) hold when d = 0, that is, when ℓ1 and ℓ2 intersect. In this case,
the reciprocal product l̂1 · m2 + l̂2 · m1 = 0, and it is easy to verify that p∗1 = p∗2 . We can extract
l̂1 × l̂2 out from the numerator and rewrite the expression as a matrix product.
Corollary 6 Suppose two lines ℓ1 and ℓ2 in Plücker coordinates (l1 , m1 ) and (l2 , m2 ) intersect
each other. Therefore, l1 · m2 + l2 · m1 = 0 and l1 × l2 6= 0 hold. The intersection point is given as
l ×l
1 2
p = (m1 · l2 )I3 + l1 mT2 − l2 mT1 , (29)
kl1 × l2 k2
where I3 is the 3 × 3 identity matrix.
10
1. Check if l1 × l2 = 0 holds. If so, they are parallel with distance given in (10).
2. Otherwise, evaluate the reciprocal product (l1 , m1 ) ∗ (l2 , m2 ), and check if it is zero.
(a) If zero, then the two lines intersect at the point p∗ given by (29).
(b) If not zero, then the two lines are not co-planar. We can evaluate their distance according
to (10), common perpendicular in the Plüker coordinates (l⊥ , m⊥ ) according to (17)
and (18), and its two feet p∗1 and p∗2 according to (20) and (21).
References
[1] W. V. D. Hodge and D. Pedoe. Methods of Algebraic Geometry, volume 1 (reprint of the 1947
original). Cambridge University Press, 1994.
[2] Matthew T. Mason. Mechanics of Robotic Manipulation. The MIT Press, 2001.
11