19
Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Embed Size (px)

Citation preview

Page 1: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Kinematic Synthesis 2October 8, 2015

Mark Plecnik

Page 2: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Planar Kinematics With Complex Numbers

θ

{𝑎𝑥

𝑎𝑦}+{𝑏𝑥

𝑏𝑦}={𝑎𝑥+𝑏𝑥

𝑎𝑦+𝑏𝑦}

[c os𝜃 −sin 𝜃sin𝜃 cos𝜃 ]{𝑎𝑥

𝑎𝑦}={𝑎𝑥 c os𝜃−𝑎𝑦 s∈𝜃

𝑎𝑥sin 𝜃+𝑎𝑦 cos𝜃 }

(ax + iay) + (bx + iby) = (ax+bx) + i(ay+by)

eiθ(ax + iay) = (cosθ + isinθ)(ax + iay) = (axcosθ – aysinθ) + i(axsinθ + aycosθ)

a

b

x

y

x

y

Re

Im

Re

Im

a

Page 3: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Motion Generation of a Crank

Any two planar positions define a pole

A

P0

P1

θ1

T1(P0−A)T1=eiθ₁

Sum up this vector loop:

A+T1(P0−A)=P1

A is the only unknown and this equation is linear

Page 4: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Path Generation of a Crank

P2

P1P0

θ1

θ2

T1(P

0−A)

T 2(P 0

−A)

T2=eiθ2T1=eiθ1 ,

Now we can sum 2 loop equations:

A+T1(P0−A)=P1

A+T2(P0−A)=P2

This time as unknowns, we don’t know A, T1, or T2

Since T1 and T2 are rotation operators, we know they must satisfy constraints

𝑇 𝑗𝑇 𝑗=𝑒𝑖 𝜃 𝑗𝑒−𝑖 𝜃 𝑗= (cos𝜃+𝑖 sin𝜃 ) ( cos𝜃− 𝑖 sin𝜃 )=sin2𝜃+cos2𝜃=1 ,

This introduces new unknowns .

A

𝑇 1𝑇 1=1 ,𝑇2𝑇 2=1 , because

4 equations & 5 unknowns

Page 5: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

In order to accommodate these new conjugate unknowns, we append new conjugate loop equations.

Path Generation of a Crank -2

𝐴+𝑇 𝑗 (𝑃0+𝐴 )=𝑃 𝑗 , 𝑗=1,2In all we have 6 equations in 6 unknowns:

We consider and to be unknowns, which makes the system polynomials

𝐴 ,𝐴 ,𝑇1 ,𝑇1 ,𝑇2 ,𝑇2

Unknowns:

Bézout’s Theorem: the maximum number of roots of a polynomial system is the product of the degrees of each equation

In this case, the degree is 26 = 64. Meaning there are 64 solutions. Which means there are 64 cranks which travel through 3 points. That can’t be true!

Page 6: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Path Generation of a Crank -3𝐴+𝑇 𝑗 (𝑃0+𝐴 )=𝑃 𝑗 𝐴+𝑇 𝑗 (𝑃0+𝐴 )=𝑃 𝑗

𝑇 𝑗𝑇 𝑗=1

solve for solve for

substitute into

to eliminate and

𝑃 𝑗𝑃 𝑗−𝑃0𝑃0 −𝐴 (𝑃 𝑗−𝑃0 ) −𝐴 (𝑃 𝑗−𝑃0 )=0 , 𝑗=1,2which are 2 linear equations in 2 unknowns, therefore there is 1 solution

Phew! That’s good because we know there is only 1 circle that goes through 3 points,

and its coordinates will be at A = Ax + iAy.

Looks like our original estimate of 64 was a vast overestimation!

, and obtain

Page 7: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Motion Generation of a Four-bar0

1

2

3 4

Graphical method: It exists but it’s cumbersomeSee Geometric Design of Linkages by McCarthy and Soh

…and where does the number 5 come from?

Page 8: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Motion Generation of a Four-bar -2

θj

A

B

CD

P0

ψj

ϕj

Pj

Qj (C−A)

T j(P0−

C)

Sj (D

−B)

Tj(P

0−D)

Tj=eiθj Qj=eiϕj , Sj=eiψj ,

A + Qj(C−A) + Tj(P0−C) = Pj

B + Sj(D−B) + Tj(P0−D) = Pj

Then append conjugate loop equations:

and unit magnitude equations for the unknown rotation operators:

𝐴+𝑄 𝑗 (𝐶−𝐴 )+𝑇 𝑗 (𝑃0 −𝐶 )=𝑃 𝑗

𝐵+𝑆 𝑗 (𝐷−𝐵 )+𝑇 𝑗 (𝑃0 −𝐷 )=𝑃 𝑗

𝑄 𝑗𝑄 𝑗=1 𝑆 𝑗𝑆 𝑗=1

Knowns: Unknowns:𝑃 𝑗 ,𝑃 𝑗 ,𝑇 𝑗 ,𝑇 𝑗

N is no. of positions

Page 9: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Motion Generation of a Four-bar -3

θj

A

B

CD

P0

ψj

ϕj

Pj

Qj (C−A)

T j(P0−

C)

Sj (D

−B)

Tj(P

0−D)

The equations corresponding to the 2 halves of the linkage are symmetric:

A + Qj(C−A) + Tj(P0−C) = Pj

B + Sj (D−B) + Tj(P0−D) = Pj

A Qj(C−A) C

As well, the unknowns can be partitioned so that we can focus on one half of the linkage at a time

Each half is called an RR chain. If we can find at least two RR chains, we can combine them to create a four-bar linkage.

𝑗=1 , …,𝑁−1

Page 10: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Solving for an RR ChainEquations to solve:

N is no. of positions

Find N such that there is an equal number of equations and unknowns: N−1=44 This system consists of 12 quadratic equations. According to Bézout’s theorem, a maximum of 212 = 4096 roots exist. This is an overestimation, and by eliminating some variables we can compute a lower Bézout degree.

𝐴+𝑄 𝑗 (𝐶− 𝐴 )+𝑇 𝑗 (𝑃0−𝐶 )=𝑃 𝑗 𝐴+𝑄 𝑗 (𝐶−𝐴 )+𝑇 𝑗 (𝑃0 −𝐶 )=𝑃 𝑗

𝑄 𝑗𝑄 𝑗=1

solve for solve for

substitute into

to eliminate and , and obtain

(𝐶−𝐴 ) (𝐶− 𝐴 )=( 𝐴+𝑇 𝑗 (𝑃0 −𝐶 ) −𝑃 𝑗 ) ( 𝐴+𝑇 𝑗 (𝑃0 −𝐶 )−𝑃 𝑗 ) , 𝑗=1 , …, 4

That is 4 quadratic equations in 4 unknowns with a Bézout degree of 24 = 16

Page 11: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Solving for an RR Chain -2However, it turns out that 16 is also an overestimation to number of roots. So how do we find the real number of roots?

We must analyze the monomial structure of the polynomial system. If we were to expand

(𝐶−𝐴 ) (𝐶− 𝐴 )=( 𝐴+𝑇 𝑗 (𝑃0 −𝐶 ) −𝑃 𝑗 ) ( 𝐴+𝑇 𝑗 (𝑃0 −𝐶 )−𝑃 𝑗 ) , 𝑗=1 , …, 4

We would find the following list of monomials in each polynomial

⟨ 𝐴𝐶 , 𝐴𝐶 , 𝐴 , 𝐴 ,𝐶 ,𝐶 , 1 ⟩Note that a general quadratic that contains the variables and would have monomials

⟨ 𝐴2 ,𝐴2 ,𝐶2,𝐶2 , 𝐴𝐴 ,𝐶𝐶 , 𝐴𝐶 , 𝐴𝐶 , 𝐴𝐶 , 𝐴𝐶 , 𝐴 , 𝐴 ,𝐶 ,𝐶 ,1 ⟩It is because of this sparse monomial structure that the system does not have 16 roots.So how do we figure out how many roots we have? Say we piece together another dummy system that looks like this:

Page 12: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

…another dummy system that looks like this:

Counting the Number of Roots

where the monomials in red are extra from our original system. Therefore, if we can figure out the number of roots of our dummy system (which is more general than our original system), we can conjecture that our original system will not have more roots than that.

⟨ 𝐴 𝐴 ,𝐶𝐶 , 𝐴𝐶 , 𝐴𝐶 , 𝐴 ,𝐴 ,𝐶 ,𝐶 , 1 ⟩

where s are stand-ins for random coefficients. It has a monomial structure which looks like this:

Our dummy system has an easy solution. We can simply solve a sequence of linear systems.

Page 13: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Solving the Dummy System

1 : (∎ 𝐴+∎𝐶+1 )=02 : (∎ 𝐴+∎𝐶+1 )=03 : (∎ 𝐴+∎𝐶+1 )=04 : (∎ 𝐴+∎𝐶+1 )=0

1 : (∎ 𝐴+∎𝐶+1 )=03 : (∎ 𝐴+∎𝐶+1 )=02 : (∎ 𝐴+∎𝐶+1 )=04 : (∎ 𝐴+∎𝐶+1 )=0

1 : (∎ 𝐴+∎𝐶+1 )=04 : (∎ 𝐴+∎𝐶+1 )=02 : (∎ 𝐴+∎𝐶+1 )=03 : (∎ 𝐴+∎𝐶+1 )=0

2 : (∎ 𝐴+∎𝐶+1 )=03 : (∎ 𝐴+∎𝐶+1 )=01 : (∎ 𝐴+∎𝐶+1 )=04 : (∎ 𝐴+∎𝐶+1 )=0

2 : (∎ 𝐴+∎𝐶+1 )=04 : (∎ 𝐴+∎𝐶+1 )=01 : (∎ 𝐴+∎𝐶+1 )=03 : (∎ 𝐴+∎𝐶+1 )=0

3 : (∎ 𝐴+∎𝐶+1 )=04 : (∎ 𝐴+∎𝐶+1 )=01 : (∎ 𝐴+∎𝐶+1 )=02 : (∎ 𝐴+∎𝐶+1 )=0

The dummy system can be solved by solving a sequence of linear systems:

The number of combinations is 4 choose 2 = 6.

There can be no more than 6 solutions to our original system!

Page 14: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Solving for RR ChainsNow that we know the max number of roots to our system is 6. Let’s solve it!

(𝐶−𝐴 ) (𝐶− 𝐴 )=( 𝐴+𝑇 𝑗 (𝑃0 −𝐶 ) −𝑃 𝑗 ) ( 𝐴+𝑇 𝑗 (𝑃0 −𝐶 )−𝑃 𝑗 ) , 𝑗=1 , …, 4

GOAL: Turn this system into a single univariate polynomial in terms of A. We begin solving it by expanding the equations and writing them in this form:

𝑘1 𝑗 𝐴𝐶+𝑘2 𝑗 𝐴+𝑘3 𝑗𝐶+𝑘4 𝑗𝐶+𝑘5 𝑗=0 , 𝑗=1 , …, 4

where

where A is the suppressed variable which is only found inside of the k coefficients Written this way, the system is linear in terms of monomial unknowns

Page 15: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Creating a Resultant Matrix

5 monomial quantities are considered unknowns

For the time being, we are going to pretend each monomial is an independent unknown

Matrix is rank 4

System is underdetermined

Now for the trick: multiply all the equations by C and append them to the system

vector must live in the null space

must have nullity > 0, therefore the determinant must equal 0

A is the only variable suppressed inside here

Page 16: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Building Four-bars from RR ChainsThe determinant of the matrix is a degree 4 univariate polynomial f(A) = 0. Which can be solved by standard approaches e.g. the quartic equation or numpy.roots

So it ends up that the real number of solutions is even less than our estimate of 6, this is because our dummy system used for counting had a more general monomial structure

⟨ 𝐴 𝐴 ,𝐶𝐶 , 𝐴𝐶 , 𝐴𝐶 , 𝐴 ,𝐴 ,𝐶 ,𝐶 , 1 ⟩⟨ 𝐴𝐶 , 𝐴𝐶 , 𝐴 , 𝐴 ,𝐶 ,𝐶 , 1 ⟩Our system: Dummy system:

Once 4 values of are found, back-substitution can find corresponding values for and

Each solution represents an RR chain:

0

1

23

4

0

1

23

42 DOF

Pick 2 RR chains and connect to create a four-bar

Total of 4 choose 2 = 6 four-bars

Page 17: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Another Approach: Four-bar as a Constrained RR chain for Path Generation

Last time we started with 5 task positions

(x0, y0, θ0)

(x1, y1, θ1) (x2, y2, θ2)

(x3, y3, θ3)

(x4, y4, θ4)

Let’s start with a different problem statement

(x0, y0)

(x1, y1)

(x2, y2)

(x3, y3)

(x4, y4)A

C

D

B

Spec

ify 5

poi

nts

You pick an RR chain!

Solve for a 2nd constraining RR chain 2 DOF1 DOF

Page 18: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Inverse Kinematics of an RR chainWrite the loop equations for the known RR chain:

In this case we know dimensions: B and DWe know the end effector position: P = xj + iyj

We want to find joint angle parameters: ψj and θj

(or equivalently Sj=eiψj and Tj=eiθj)

This is inverse kinematics!

The loop equation can be rewritten as

and solved for all Tj using the quadratic equation.

Page 19: Kinematic Synthesis 2 October 8, 2015 Mark Plecnik

Solutions for a Constrained RR ChainNow let’s model the unknown side of the four-bar linkage:

Since we’ve already solved for Tj in the previous step, these are the exact same synthesis equations of an RR constraint.They can be reduced to a univariate quartic, and will return 4 solutions for .

One of these solutions will be the original RR chain BDP0.

It is possible that a solution will just be numbers that solve the equations and not correspond to physical joint coordinates i.e. or

These type of solutions always occur in pairs. This means of the 4 solutions:• 1 is BDP0, 1 is a physical design, 2 are not physical designs• 1 is BDP0, 3 are physical designs