I am reading the book "Introduction to Robotics Mechanics & Control", John J Craig., 3rd Ed., Forward transformation problem Examples 2.2 and 2.4.

Ex. 2.2 (Page 29): Frame {B} is rotated relative to frame {A} about X axis by 60 degrees clockwise, translated 20 units along Y axis and 15 units along z axis. Find P in frame {A} where P in frame {b} = [0 8 7]

The book's answer is [0.18.062 3.572]. But my answer is [0 30.062 11.572].

Ex. 2.4 (Page 33): Vector P1 has to be rotated by 60 degrees clockwise, about X axis and translated 20 units along Y axis, and 15 units along Z axis. If P1 is given by [0 8 7], find P2.

Essentially Ex.2.2 and 2.4 are the same problem. However, the Transformation matrix for Ex 2.4, has [0 8 7] as translation vector (The 4th column of T) instead of [0 20 15]. And, the given answer is [0.18.062 3.572].

I am not sure if it is just typo, or I am missing some genuine operation. Please let me know your opinion.


  • 1
    $\begingroup$ It will be helpful if you show your work, step by step. $\endgroup$
    – Paul
    May 31 '15 at 18:30
  • 1
    $\begingroup$ I don't think all of those (of frame {A}) statements are necessary; it's implied in the statement "Frame {B} is rotated relative to frame {A}". $\endgroup$
    – Chuck
    Jun 2 '15 at 21:31
  • $\begingroup$ @Paul , I have solved it the same way Chuck has done. $\endgroup$
    – Swagatika
    Jun 4 '15 at 14:59
  • $\begingroup$ Hey @Chuck, I would love to, but thought of posting the solution given in the book before that so that you can look at it. $\endgroup$
    – Swagatika
    Jun 4 '15 at 22:43
  • $\begingroup$ Sounds good. Just edit your question. $\endgroup$
    – Chuck
    Jun 5 '15 at 1:03

I think I would solve this as I believe you did, where I find a rotation matrix $E$, a translation vector $\overrightarrow {dr}$, and I locate point P in frame B by adding it to the origin of frame B; $\overrightarrow P_{B} = \overrightarrow P + F_B$. Recall that you are "unrotating" from frame B to frame A, so you need to transpose the rotation matrix. Assemble the $T$ matrix: $$ E_{A\rightarrow B} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & cos(-60) & sin(-60) \\ 0 & -sin(-60) & cos(-60) \end{bmatrix} \\~\\~\\ \\ E_{B\rightarrow A} = E_{A\rightarrow B}^T\\~\\~\\ \overrightarrow {dr} = \begin{bmatrix} 0 \\ 20 \\ 15 \end{bmatrix} \\ T_{B\rightarrow A}= \begin{bmatrix} E_{B\rightarrow A} & \overrightarrow {dr} \\ 0 & 1 \end{bmatrix} $$ Now, multiply $T \overrightarrow {P_B}$ to get $\overrightarrow {P_A}$, which is the same answer you gave in your statement. I believe you did everything correct. I actually drew the problem on a piece of paper to verify the solution. You are also correct that the second problem (2.4) is the same problem, just reworded. Again, try drawing it on a sheet of paper.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.