NivaarExam PrepOfficial exam papers ↗

22-Mec-B12 Robotics · December 2019

Question 4 of 7: Inverse position kinematics of a 4R manipulator

Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)

Notes on this paper

Paper format. National Exams, December 2019 — 16-Mec-B12 Robot Mechanics. Three hours; CLOSED BOOK with one 8.5″×11″ two-sided formula sheet and an approved Casio or Sharp calculator. Five questions constitute a complete paper: Section 1 holds five questions of which the candidate answers any three, and Section 2 holds two questions which are both compulsory. Each question is worth 20 marks. All seven questions are solved here.

Reference texts.

Note. Where the printed paper rounds a value (for example the target height 1.707), the solution says so explicitly.

Question 4: Inverse position kinematics of a 4R manipulator (20 marks)

Question text not reproduced: the examination questions are © Engineers and Geoscientists BC. Open the official past paper (linked at the top of this page) to read the question, then follow the worked solution below.

Given. A four-revolute arm specified entirely by its nonzero modified Denavit–Hartenberg parameters, together with the Cartesian position that the origin of frame {4} must reach.

Given data
QuantitySymbolValue
Link length, link 1$a_{1}$$1$
Link twist, link 2$\alpha_{2}$$45^\circ$
Link offset, joint 3$d_{3}$$\sqrt2=1.41421$
Link length, link 3$a_{3}$$\sqrt2=1.41421$
All other link parameters—zero
Target position of the origin of {4}$^{0}P_{4ORG}$$[1.1,\,1.5,\,1.707]^{T}$
Joint limits$\theta_{i}$$\pm180^\circ$ on every joint

Find. Every value of $\theta_{3}$ that places the origin of frame {4} at the target point.

[Figure not reproduced: The 4R arm of Figure 1 redrawn with the four nonzero link parameters marked. Joint 4 rotates frame {4} about its own axis and therefore cannot move the origin of {4}, which is why the problem has three unknowns rather than four. See the official exam paper.]

Approach. Build $^{0}P_{4ORG}$ from the modified DH transforms, notice that its $z$ component contains $\theta_{3}$ and nothing else, solve that single scalar equation, and then confirm that each root is genuinely reachable by checking the remaining planar two-link problem.

  1. Write the DH table implied by the given parameters. In Craig’s modified convention each row is $(\alpha_{i-1},\,a_{i-1},\,d_{i},\,\theta_{i})$, so the four rows are $(0,0,0,\theta_{1})$, $(0,a_{1},0,\theta_{2})$, $(\alpha_{2},0,d_{3},\theta_{3})$ and $(0,a_{3},0,\theta_{4})$, with the general link transform $$^{i-1}_{\;\;i}T=\begin{bmatrix}c\theta_{i} & -s\theta_{i} & 0 & a_{i-1}\\ s\theta_{i}c\alpha_{i-1} & c\theta_{i}c\alpha_{i-1} & -s\alpha_{i-1} & -s\alpha_{i-1}d_{i}\\ s\theta_{i}s\alpha_{i-1} & c\theta_{i}s\alpha_{i-1} & c\alpha_{i-1} & c\alpha_{i-1}d_{i}\\ 0 & 0 & 0 & 1\end{bmatrix}.$$
  2. Locate the origin of {4}. Row 4 has $d_{4}=0$ and $\alpha_{3}=0$, so in frame {3} the origin of {4} sits at $^{3}P_{4ORG}=[a_{3},0,0]^{T}=[\sqrt2,0,0]^{T}$ and joint 4 does not move it. Hence $^{0}P_{4ORG}={}^{0}_{3}T\,[\sqrt2,0,0,1]^{T}$ — three unknowns, three equations.
  3. Confirm the model against the pictured pose. Substituting $\Theta=[0,90^\circ,-90^\circ,0]$ gives $^{0}P_{4ORG}=[3,0,0]^{T}$, a fully outstretched arm of reach $a_{1}+a_{3}\sin\alpha_{2}\cdot\ldots=3$ lying along $\hat X_{0}$. That the model reproduces the drawn configuration is the check that the DH table has been read off Figure 1 correctly.
  4. Isolate $\theta_{3}$ in the $z$ equation. Joint 1 rotates about $\hat Z_{0}$ and joint 2 about a parallel axis with only an $\hat X$ offset, so neither changes the $z$ coordinate. Therefore $^{0}P_{4ORG}\big|_{z}={}^{2}P_{4ORG}\big|_{z}$, and reading the third row of $^{2}_{3}T$, $$z=a_{3}\sin\alpha_{2}\sin\theta_{3}+d_{3}\cos\alpha_{2}.$$ With $a_{3}\sin45^\circ=\sqrt2\cdot\tfrac{\sqrt2}{2}=1$ and $d_{3}\cos45^\circ=1$ this collapses to the remarkably clean $$\boxed{z=\sin\theta_{3}+1}$$
  5. Solve for $\theta_{3}$. Setting $z=1.707$ gives $\sin\theta_{3}=0.707$. A sine equation always has two solutions in one turn, $\theta_{3}=\arcsin(0.707)$ and $180^\circ-\arcsin(0.707)$, so $$\boxed{\theta_{3}=45.0^\circ\quad\text{and}\quad\theta_{3}=135.0^\circ}$$ Both lie inside the $\pm180^\circ$ joint limits. (The paper’s $1.707$ is the three-decimal print of $1+\tfrac{\sqrt2}{2}=1.70711$; carrying the exact value gives $45.000^\circ$ and $135.000^\circ$, while the rounded value gives $44.991^\circ$ and $135.009^\circ$ — the intended answer is plainly the exact pair.)
  6. Confirm both roots are actually reachable. A root of the $z$ equation is only a solution if joints 1 and 2 can then deliver the required horizontal radius $\rho=\sqrt{1.1^{2}+1.5^{2}}=1.860$. For either root the horizontal part of $^{2}P_{4ORG}$ has the same length $r_{2}=\sqrt{(a_{3}c\theta_{3})^{2}+(a_{3}s\theta_{3}c\alpha_{2}-s\alpha_{2}d_{3})^{2}}=1.042$, and joint 2 places it on a circle of radius $r_{2}$ about a point at distance $a_{1}=1$ from the axis of joint 1. The reachable band is therefore $|r_{2}-a_{1}|\le\rho\le r_{2}+a_{1}$, i.e. $0.042\le1.860\le2.042$, which holds. Neither root is spurious.
  7. List the complete solution set. Each $\theta_{3}$ admits two elbow branches, so there are four full postures, all within the joint limits: $(\theta_{1},\theta_{2},\theta_{3})=(28.84^\circ,\,65.07^\circ,\,45^\circ)$, $(78.65^\circ,\,-32.42^\circ,\,45^\circ)$, $(28.84^\circ,\,-147.58^\circ,\,135^\circ)$ and $(78.65^\circ,\,114.93^\circ,\,135^\circ)$. Forward kinematics on each returns $[1.100,\,1.500,\,1.707]^{T}$, confirming the algebra. Joint 4 remains free, so each posture is really a one-parameter family of solutions.
Final results
QuantitySymbolValue
Decoupled height equation$z$$\sin\theta_{3}+1$
Required sine$\sin\theta_{3}$$0.707$
First solution$\theta_{3}$$45.0^\circ$
Second solution$\theta_{3}$$135.0^\circ$
Horizontal radius of the target$\rho$$1.860$
Reachable band for $\rho$—$0.042\le\rho\le2.042$ (satisfied)
Number of complete postures—4 (two elbow branches per $\theta_{3}$)
Status of joint 4$\theta_{4}$free — it cannot move the origin of {4}