# Instantaneous Centers of Rotation

```{raw} html
<link rel="stylesheet" href="_static/kinwidgets/jsxgraph.css">
<link rel="stylesheet" href="_static/kinwidgets/kinwidgets.css">
<script src="_static/kinwidgets/jsxgraphcore.js"></script>
<script src="_static/kinwidgets/kinwidgets.js"></script>
<link rel="stylesheet" href="_static/kinscenes/katex/katex.min.css">
<link rel="stylesheet" href="_static/kinscenes/kinscenes.css">
<script src="_static/kinscenes/katex/katex.min.js"></script>
<script src="_static/kinscenes/katex/contrib/auto-render.min.js"></script>
<script src="_static/kinscenes/kin.js"></script>
<script src="_static/kinscenes/kinscenes.js"></script>
<script src="_static/kinscenes/cirs.js"></script>
```

The **instantaneous center of rotation** (ICR, also called *instant center*) method is a graphical method to obtain velocities, alternative to the velocity polygon of {doc}`L02_03_velocity_analysis`.
It is especially useful to find the velocity of one particular point, or the relation between the angular velocities of two links, without solving the whole mechanism.

## Definition

At any instant, a link in planar motion that is not translating has a point with **zero velocity**: the link is rotating about that point at that instant.
To find it, start from the velocity of any point $A$ of the link and look for a point $I$ such that $\vec{v}_I = \vec{v}_A + \vec{\omega} \times \vec{r}_{AI} = \vec{0}$.
Multiplying both sides by $\hat{k} \times$ and using $\hat{k} \times (\hat{k} \times \vec{r}) = -\vec{r}$ for vectors on the plane:

$$
\hat{k} \times \vec{v}_A - \omega\,\vec{r}_{AI} = \vec{0}
\qquad\rightarrow\qquad
\vec{r}_{AI} = \frac{\hat{k} \times \vec{v}_A}{\omega}
$$

That is, $I$ lies **on the line through $A$ perpendicular to $\vec{v}_A$**, at a distance $|\vec{v}_A|/|\omega|$ from $A$. If $\omega = 0$ (pure translation), it is at infinity.
Since $\vec{v}_I = \vec{0}$, the velocity of any other point $P$ of the link is just:

$$
\vec{v}_P = \vec{\omega} \times \vec{r}_{IP}, \qquad |\vec{v}_P| = |\omega|\,\overline{IP}
$$

as if the link were pinned at $I$. This has three practical consequences:

* The velocity of every point of the link is **perpendicular to the line that joins it to the ICR**, and its magnitude is **proportional to its distance** to the ICR.
* If the **directions** of the velocities of two points of a link are known, its ICR is at the intersection of the lines perpendicular to them through each point.
* Once the ICR is located, the velocity of a single point gives the angular velocity of the link, and with it the velocity of any other point.

The following animation shows these ideas on a triangular body:

```{raw} html
<div class="ks-scene" data-scene="cir-def" data-lang="en" data-size="1080x860">
  <div>At this instant the body rotates about its ICR, $I$: the velocity of each point is perpendicular to the line joining it to $I$ (press "Restart" to replay the swing).</div>
  <div>If we know the <strong>direction</strong> of $\vec{v}_A$, the ICR lies on the <span style="color:#2ca02c">line through $A$ perpendicular to it</span>.</div>
  <div>The same for $\vec{v}_B$: the ICR also lies on the <span style="color:#9467bd">perpendicular through $B$</span>.</div>
  <div>The ICR is at the <strong>intersection of both perpendiculars</strong>.</div>
  <div>The magnitude of the velocity is <strong>proportional to the distance</strong> to the ICR: along the line $IC$ all the velocities are parallel, and their tips are aligned with $I$.</div>
</div>
```

More generally, for any two links $j$ and $k$, their instantaneous center $I_{jk}$ is the point (of both links, or of their imaginary extensions) that **has the same velocity in both links** at that instant. Seen from link $j$, link $k$ is rotating about $I_{jk}$.
Centers where one of the links is the ground ($I_{1k}$) are called **absolute**, and the rest are **relative** centers.

:::{warning}
The ICR is a point of zero velocity, but **not of zero acceleration**: its position changes from one instant to the next.
Therefore, it cannot be used to compute accelerations as if the link were rotating about a fixed pivot.
:::

## Number of instantaneous centers

There is one instantaneous center for each pair of links, including the ground. A mechanism with $N$ links has:

$$
n_{ICR} = C(N, 2) = \frac{N(N-1)}{2}
$$

For example, a four-bar linkage has $4 \cdot 3 / 2 = 6$ centers: $I_{12}, I_{13}, I_{14}, I_{23}, I_{24}$ and $I_{34}$.
It is advisable to write them all in a table, and cross them out as they are found.

## Primary centers

Some centers can be located directly by inspection of the joints:

* **Pin joint:** the center of the pin is a point of both links with the same velocity, so it is their center $I_{jk}$.
* **Slider on a straight guide:** all the points of the slider move parallel to the guide relative to the other link, so their center is **at infinity, in the direction perpendicular to the guide**. Any line perpendicular to the guide "passes" through it.
* **Slider on a curved guide:** at the center of curvature of the guide.
* **Rolling without slipping:** at the contact point, where both bodies have the same velocity.
* **Contact with sliding** (cams, gear teeth): somewhere on the common normal to both surfaces at the contact point. This gives a line, not a point: the exact location needs a second line, from Kennedy's theorem.

```{raw} html
<div class="ks-scene" data-scene="cir-types" data-lang="en" data-size="1080x860" data-first="1">
  <div><strong>Pin joint:</strong> the center $I_{jk}$ is at the center of the pin.</div>
  <div><strong>Straight slider:</strong> the center is at infinity, in the direction perpendicular to the guide.</div>
  <div><strong>Curved slider:</strong> the center is at the center of curvature of the guide.</div>
  <div><strong>Rolling without slipping:</strong> the center is at the contact point; the velocity of each point of the disk is proportional to its distance to it.</div>
</div>
```

## Kennedy's theorem

The rest of the centers are found with the **Aronhold-Kennedy theorem** (or *three centers theorem*):

> The three instantaneous centers of any three bodies in planar motion lie on a straight line.

*Proof.* Take the bodies 1, 2 and 3, with 1 as the reference (fixed), and assume $I_{12}$ and $I_{13}$ are known. Their common center $I_{23}$ has the same velocity as a point of body 2, which rotates about $I_{12}$, and as a point of body 3, which rotates about $I_{13}$.
As a point of body 2, its velocity is perpendicular to the line $I_{12}I_{23}$; as a point of body 3, it is perpendicular to $I_{13}I_{23}$. Both velocities can only be the same vector if both directions coincide, so $I_{12}$, $I_{13}$ and $I_{23}$ must be aligned.
On that line, $I_{23}$ is the point where the magnitudes also coincide: $\omega_2\,\overline{I_{12}I_{23}} = \omega_3\,\overline{I_{13}I_{23}}$.

```{raw} html
<div class="ks-scene" data-scene="kennedy-proof" data-lang="en" data-size="1080x860">
  <div>Bodies 2 and 3 are pinned to the ground (1) at $I_{12}$ and $I_{13}$, rotating with $\omega_2$ and $\omega_3$. Where is $I_{23}$?</div>
  <div>Take any point $P$: as a point of body 2, its velocity is <span style="color:#2ca02c">perpendicular to $I_{12}P$</span>; as a point of body 3, <span style="color:#9467bd">perpendicular to $I_{13}P$</span>. They do not match.</div>
  <div>Both directions only coincide if $P$ lies on the <strong>line $I_{12}I_{13}$</strong>: both are perpendicular to it.</div>
  <div>On that line, $I_{23}$ is the point where the magnitudes also coincide: $\omega_2\,\overline{I_{12}I_{23}} = \omega_3\,\overline{I_{13}I_{23}}$.</div>
  <div><strong>Drag the point $P$</strong> (orange) to see what happens depending on its position: both velocities only coincide at $I_{23}$.</div>
</div>
```

To locate an unknown center $I_{jk}$, apply the theorem **twice**, with two different third bodies $m$ and $n$ for which the other centers are known: $I_{jk}$ lies on the line $I_{jm}I_{mk}$ and also on the line $I_{jn}I_{nk}$, so it is at their intersection.

A simple way to choose the lines is an **auxiliary polygon**, with one vertex per link and one side (or diagonal) per known center. An unknown center is a diagonal that closes **two triangles** whose other sides are already known; each triangle gives one line.
The new center then becomes a known side, and the process is repeated until the table is complete:

```{raw} html
<div class="ks-scene" data-scene="poly-demo" data-lang="en" data-size="480x480">
  <div>Draw <strong>one vertex per link</strong> (1 = ground).</div>
  <div>Each <strong>known center</strong> is a side: join its two vertices. Here, the four primary centers of a four-bar linkage.</div>
  <div>An unknown center, such as $I_{13}$, is a <strong>diagonal</strong> (in red) that closes <strong>two triangles</strong> of known sides.</div>
  <div>Each triangle is a line (Kennedy): triangles <span style="color:#2ca02c">1-2-3</span> and <span style="color:#9467bd">1-4-3</span>, lines <span style="color:#2ca02c">$I_{12}I_{23}$</span> and <span style="color:#9467bd">$I_{14}I_{34}$</span>. $I_{13}$ is at their intersection.</div>
  <div>$I_{13}$ becomes a known side, and the process is repeated: $I_{24}$ closes triangles <span style="color:#2ca02c">2-1-4</span> and <span style="color:#9467bd">2-3-4</span>.</div>
</div>
```

The figure below shows the procedure for a four-bar linkage: a) the four primary centers, b) $I_{13}$ from triangles 1-2-3 and 1-4-3, and c) $I_{24}$ from triangles 2-1-4 and 2-3-4.

![fig_kennedy.jpg](./figs/fig_kennedy.jpg)

{ref}`Example 1 <icr-example-fourbar>`, below, repeats the procedure step by step as an interactive construction.

## Velocity analysis with instantaneous centers

### Using an absolute center

If the velocity of one point of a link is known, its absolute center gives the angular velocity of the link and the velocity of any other point.
In the four-bar linkage of the figure below, $\vec{v}_A$ is known from the crank, and link 3 rotates about $I_{13}$, so:

$$
|\omega_3| = \frac{|\vec{v}_A|}{\overline{I_{13}A}}, \qquad
|\vec{v}_B| = |\omega_3|\,\overline{I_{13}B}, \qquad
|\vec{v}_C| = |\omega_3|\,\overline{I_{13}C}
$$

with each velocity perpendicular to the line from $I_{13}$ to its point.
Graphically, the velocities of the points of link 3 are proportional to their distances to $I_{13}$, so they can be transferred by drawing arcs centered at $I_{13}$ (points $B'$ and $C'$ in the figure) onto the line $I_{13}A$, where the proportionality is just a triangle.

![fig_cirs.jpg](./figs/fig_cirs.jpg)

### Using a relative center: angular velocity ratio

The relative center $I_{24}$ of two links is a point that has the same velocity as a point of link 2 (rotating about $I_{12}$) and as a point of link 4 (rotating about $I_{14}$):

$$
\vec{v}_{I_{24}} = \vec{\omega}_2 \times \vec{r}_{I_{12}I_{24}} = \vec{\omega}_4 \times \vec{r}_{I_{14}I_{24}}
\qquad\rightarrow\qquad
\frac{\omega_4}{\omega_2} = \frac{\overline{I_{12}I_{24}}}{\overline{I_{14}I_{24}}}
$$

since the three centers $I_{12}$, $I_{14}$ and $I_{24}$ are aligned (Kennedy). This **angular velocity ratio theorem** relates the input and output links directly, without computing anything on the coupler. Regarding the senses of rotation:

* If $I_{24}$ lies **outside** the segment $I_{12}I_{14}$, both links rotate in the **same** sense.
* If it lies **between** $I_{12}$ and $I_{14}$, they rotate in **opposite** senses.

The same reasoning applies to any pair of links. For a slider, which translates, the relative center with the input link is a point of the input link that moves exactly as the slider, so it gives the output velocity directly. This is shown in the following construction for a slider-crank, where the center of the slider with the ground, $I_{14}$, is at infinity:

```{raw} html
<div class="kw-widget" data-widget="slidercrank-cirs" data-lang="en"></div>
```

## Step-by-step examples

(icr-example-fourbar)=
### Example 1: four-bar linkage

Find all the instantaneous centers of the four-bar linkage in the figure and, from them, the velocities.
Data: $O_2 = (0, 0)$, $O_4 = (4, 0)$, $\overline{O_2A} = 1.2$, $\overline{AB} = 3.5$, $\overline{O_4B} = 3$; point $C$ of the coupler is at a distance $2$ from $A$, at $30^\circ$ from $AB$; $\omega_2 = 1$ rad/s counterclockwise.
Move the crank to see how the centers change with the position of the mechanism; note that $I_{13}$ goes to infinity when links 2 and 4 are parallel, and that the numerical values are recomputed at each position.

```{raw} html
<div class="ks-scene" data-scene="ex-fourbar" data-lang="en" data-size="1100x880" data-poly data-drag>
  <div>$N = 4$ links → $4\cdot 3/2 = 6$ ICRs. Crank 2 rotates with $\omega_2 = 1$ rad/s counterclockwise. The auxiliary polygon (top right) is completed along with the construction.</div>
  <div><strong>1.</strong> Primary centers, at the pin joints. Ground-crank: $I_{12}=O_2$.</div>
  <div><strong>2.</strong> Crank-coupler: $I_{23}=A$.</div>
  <div><strong>3.</strong> Coupler-rocker: $I_{34}=B$.</div>
  <div><strong>4.</strong> Rocker-ground: $I_{14}=O_4$. $I_{13}$ and $I_{24}$ are still missing.</div>
  <div><strong>5.</strong> $I_{13}$, first line: triangle 1-2-3, line <span style="color:#2ca02c">$I_{12}I_{23}$</span>.</div>
  <div><strong>6.</strong> Second line: triangle 1-4-3, line <span style="color:#9467bd">$I_{14}I_{34}$</span>. $I_{13}$ is at the intersection.</div>
  <div><strong>7.</strong> $I_{24}$, first line: triangle 2-1-4, line <span style="color:#2ca02c">$I_{12}I_{14}$</span>.</div>
  <div><strong>8.</strong> Second line: triangle 2-3-4, line <span style="color:#9467bd">$I_{23}I_{34}$</span>. $I_{24}$ is at the intersection.</div>
  <div><strong>9.</strong> Coupler 3 rotates about $I_{13}$: $\omega_3 = v_A / \overline{I_{13}A}$, and the velocity of each point is perpendicular to its radius from $I_{13}$.</div>
  <div><strong>10.</strong> $I_{24}$ is shared by links 2 and 4: $\omega_2\,\overline{I_{12}I_{24}} = \omega_4\,\overline{I_{14}I_{24}}$, that is, $\omega_4 = \omega_2\,\overline{I_{12}I_{24}}/\overline{I_{14}I_{24}}$. Outside the segment $I_{12}I_{14}$: same sense.</div>
</div>
```

### Example 2: slider on a moving bar

Quick-return mechanism: crank 2 drives slider 3 (pinned at $A$), which slides along bar 4, which rotates about $O_4$.
Data: $O_2 = (0, 0)$, $O_4 = (0, -3)$, $\overline{O_2A} = 1.8$, bar length $6.4$; $\omega_2 = 1$ rad/s counterclockwise.
One of the centers is at infinity, and the straight-slider rule is all that is needed: any line perpendicular to bar 4 "passes" through it.

```{raw} html
<div class="ks-scene" data-scene="ex-quickreturn" data-lang="en" data-size="1100x880" data-poly data-drag>
  <div>Crank 2, slider 3 (pinned at $A$) sliding along bar 4, which rotates about $O_4$. $N = 4$ → 6 ICRs.</div>
  <div><strong>1.</strong> Primary centers. Ground-crank: $I_{12}=O_2$.</div>
  <div><strong>2.</strong> Crank-slider: $I_{23}=A$.</div>
  <div><strong>3.</strong> Bar-ground: $I_{14}=O_4$.</div>
  <div><strong>4.</strong> The slider slides along 4: <strong>$I_{34}$ is at infinity</strong>, perpendicular to bar 4.</div>
  <div><strong>5.</strong> $I_{13}$, first line: triangle 1-2-3, line <span style="color:#2ca02c">$I_{12}I_{23}$</span>.</div>
  <div><strong>6.</strong> Second line: triangle 1-4-3, line <span style="color:#9467bd">through $I_{14}$ towards $I_{34}$</span>, that is, perpendicular to bar 4.</div>
  <div><strong>7.</strong> $I_{24}$, first line: triangle 2-1-4, line <span style="color:#2ca02c">$I_{12}I_{14}$</span>.</div>
  <div><strong>8.</strong> Second line: triangle 2-3-4, line <span style="color:#9467bd">through $I_{23}$ perpendicular to bar 4</span>.</div>
  <div><strong>9.</strong> $\omega_4 = \omega_2\,\overline{I_{12}I_{24}}/\overline{I_{14}I_{24}}$. The sliding velocity is the difference between $\vec{v}_{A_2}$ and $\vec{v}_{A_4}$, along the bar.</div>
  <div><strong>10.</strong> When $I_{24}$ falls between $O_2$ and $O_4$, the bar rotates opposite to the crank (move the crank to see it). That is why the forward and return strokes take different times.</div>
</div>
```

Examples {doc}`L02_18_example14` and {doc}`L02_19_example15` apply the method to two exam problems.

## Summary

* The ICR of a body is its point of zero velocity: the whole body rotates about it at that instant.
* There are $N(N-1)/2$ ICRs. Primary centers are found at the joints; a straight slider has its center at infinity.
* Kennedy's theorem: the ICRs of any three bodies are aligned. Two lines give one ICR.
* Auxiliary polygon: each new ICR is a diagonal that closes two known triangles.
* Velocities: from an absolute ICR ($v = \omega\, r$), or from a relative one (ratio $\omega_4/\omega_2$).
* ICRs change with the position, and cannot be used to compute accelerations.
