Difference between revisions of "MR Second Printing"

From Mech
Jump to navigationJump to search
(Created page with "[https://docs.google.com/forms/d/1iZ_3LsWR1iuPJmRsUQsa2ehZj6p-qKQfx8NRKaTlIuE/edit '''Please click here to report any corrections for the book, practice exercises, or linear a...")
 
 
(53 intermediate revisions by the same user not shown)
Line 1: Line 1:
=== Overall ===
[https://docs.google.com/forms/d/1iZ_3LsWR1iuPJmRsUQsa2ehZj6p-qKQfx8NRKaTlIuE/edit '''Please click here to report any corrections for the book, practice exercises, or linear algebra refresher appendix. (Please make sure you are using the May 3, 2017, online version of the book, or the hardcover book published by Cambridge University Press.)''']


<span style="color:#ff0000">'''Updates in red were added Aug 2019 or later, after the list of changes was given to David.'''</span>
Errata below are for [[Modern_Robotics|the hardcover book published by Cambridge University Press, the preprint version of the book posted on May 3, 2017, the practice exercises, and the linear algebra refresher appendix]]. Thanks to everyone who provided corrections to earlier versions!


In the "partial list of errata contributors," perhaps add "and" before the last name. Also, "posted in October, 2016" should be "posted online in October, 2016" to be more specific.


There are a few places in the book where we have an italic ''T'' instead of a roman T for transpose, often where they are preceded by a negative (inverse) sign. These should be corrected. The ones we're aware of are listed below:
== Book: Significant corrections ==


* Equation (5.4) p149
=== Chapter 2 ===
* Fifth line of p163
* p168 third line of Eq (5.27)
* Last line of p216
* p239: eq (8.21) and equation just above.


* p254: Eqs (8.75), (8.76), (8.78), (8.79), 8.80)
* Proposition 2.2 says that Grubler's formula "provides a lower bound on the number of degrees of freedom" of a mechanism to account for the case where the joint constraints are not independent. This statement is misleading, as it assumes a linear analysis of mobility. In fact, some mechanisms may have '''fewer''' dof than implied by Grubler's formula by a higher-order analysis. A more correct statement is that Grubler's formula yields the correct number of dof in the "generic" case (where the joint constraints are independent and a linear analysis of mobility suffices), but a mechanism may have more dof (e.g., if the joint constraints are not independent everywhere) or fewer dof (e.g., the zero-dof four-bar linkage where the sum of the lengths of three links equals the length of the fourth link). This comment also applies to the sentence immediately after Example 2.6, the fifth bullet of the Summary in Chapter 2.6, and the second-to-last sentence of the third paragraph of Chapter 1's summary of Chapter 2.


* pp256-7: several instances in Ch 8.6. Just after eq (8.87) (two times), four times in eq (8.88), just after (8.88), and (8.90) and (8.91).
=== Chapter 3 ===
* p272, in each of the two displayed equations in the 2nd bullet


* p491, second-to-last bullet, in each of the two displayed equations and the in-line equation just after.
* In the caption of Figure 3.3, it should read <math>\hat{\text{x}}_{\text{b}} = (1/2, \sqrt{3}/2)</math> and <math>\hat{\text{y}}_{\text{b}} = (-\sqrt{3}/2, 1/2)</math>.
* Under "Representing a configuration" in Chapter 3.3.1.2, the text says "<math>T_{bc} = (R_{bc},p_{bc})</math> represents {b} relative to {c}" but it should say "represents {c} relative to {b}".
* There is a typo in the final matrix, <math>T_{ce}</math>, of Example 3.19. The term <math>130/\sqrt{2}</math> should be <math>160/\sqrt{2}</math>. (Also, there is no need to use <math>T_{ad}</math> in this example.)
* In the displayed equation just after Equation (3.76), the left-hand side should be <math>[\mathcal{V}_s]</math> (the brackets are missing).
* Exercise 3.16(i) asks for "the <math>\{q,\hat{s},h\}</math> representation" but it should say "a <math>\{q,\hat{s},h\}</math> representation" since <math>q</math> is not unique.


=== Chapter 4 ===
=== Preface ===


* p xiv: Video lectures that accompany the textbook will also be available --> Video lectures that accompany the textbook are also available
* Example 4.1, last row of the table (screw axis for joint 3): The linear component <math>v_i</math> should be <math>(0, -L_2, 0)</math> (the <math>-</math> sign is missing).
(This is a very minor change, so I don't think we have to re-date the preface or provide a separate update.)


* p xv: '''Several updates at the end of the preface.''' Change "A partial list of errata contributors." in the preface to "Notes on the second printing." Then have:
=== Chapter 5 ===


Readers are encouraged to consult the companion website \url{http://modernrobotics.org} for more information on the Modern Robotics software library, videos, online courses, robot simulations, practice problems with solutions, errata, a linear algebra refresher chapter, and more.
* Equation (5.7): The the first two terms on the right-hand side of the equation should be <math>J_{s1} \dot{\theta}_1 + J_{s2}(\theta) \dot{\theta}_2</math>.


Then thanking the errata contributors.
* Exercise 5.2(b): The wrench applied by the last link, expressed in the {s} frame, is 5 N in the <math>\hat{\text{y}}_{\text{s}}</math> direction, with zeros in all other components. (The wording seems to imply that the force is through the tip of the last link, which is incorrect.)


=== Chapter 1 ===
* Exercise 5.16 and Figure 5.26: The robot is referred to as PRRRRR, but it is PRPRRR.


* p3, middle: Change "convenient way to calculate a lower bound on the dof" to "convenient way to calculate the dof"
=== Chapter 6 ===


=== Chapter 2 ===
* Chapter 6.3, first line after Eq (6.7): the matrices <math>T_{sd}^{-1} \dot{T}_{sd}</math> and <math>\dot{T}_{sd} T_{sd}^{-1}</math> are referred to as twists, but these are the se(3) matrix representations of the twists.


* Proposition 2.2, p16: "This formula holds only if all joint constraints are independent. If they are not independent then the formula provides a lower bound on the number of degrees of freedom." should be "This formula holds in "generic" cases, but it fails under certain configurations of the links and joints, such as when the joint constraints are not independent." (In your correction, you say ... "generic cases", ... as opposed to the suggested ... "generic" cases, ... . I prefer my suggested ... "generic" cases, ... but if there is a reason why your wording is better, shouldn't the comma be inside the quotes?)
=== Chapter 8 ===


* Chapter 2.2.2, Example 2.3, p16: "Substituting" is misspelled.
* In Equation (8.14), <math>\mathcal{K}(\theta)</math> should be replaced by <math>\mathcal{K}(\theta,\dot{\theta})</math>.


* Eliminate two sentences on p19: "Grubler's formula provides ... are discussed in Chapter 7."
* Figure 8.5 says the volume of the rectangular parallelepiped is <math>abc</math> but it should be <math>hlw</math>.


* Fifth bullet of Chapter 2.6 p32: Eliminate the last sentence "If the constraints enforced ... degrees of freedom."
* End of first sentence after Eq (8.26) in Section 8.2.1 should read "columns of <math>R_{bc}</math> correspond to the eigenvectors of <math>\mathcal{I}_b</math>." (The word "eigenvalues" should be replaced by "eigenvectors.")


=== Chapter 3 ===
* Caption of Figure 8.10: The operating region is light gray and the continuous operating region is dark gray.


* Exercise 8.6(a): The expression <math>\text{ad}_{J_i}(J_j)</math> has the indices switched; the correct expression is <math>\text{ad}_{J_j}(J_i)</math>.
* In the caption of Figure 3.3 p53, <math>(0.5,1/\sqrt{2})</math> should read <math>(1/2, \sqrt{3}/2)</math>, and <math>(-1/\sqrt{2},0.5)</math> should read <math>(-\sqrt{3}/2, 1/2)</math>.


* Under "Representing a configuration" in Chapter 3.3.1.2 p78 near the bottom, the text says "<math>T_{bc} = (R_{bc},p_{bc})</math> represents {b} relative to {c}" but it should say "represents {c} relative to {b}".
* Exercise 8.7: The expression should be written:
* There is a typo in the final matrix, <math>T_{ce}</math>, of Example 3.19, p82. The term <math>130/\sqrt{2}</math> should be <math>160/\sqrt{2}</math>.
<math>
* In the displayed equation just after Equation (3.76) p85, the left-hand side should be <math>[\mathcal{V}_s]</math> (the brackets are missing).
\dot{M} = -\mathcal{A}^{\rm T} \mathcal{L}^{\rm T} \mathcal{W}^{\rm T} [\mbox{ad}_{\mathcal{A} \dot{\theta}}]^{\rm T} \mathcal{L}^{\rm T} \mathcal{GLA} -
* Near the end of Chapter 3.6 Software p97, the function "AxisAng" should be written "AxisAng6."
\mathcal{A}^{\rm T} \mathcal{L}^{\rm T} \mathcal{GL} [\mbox{ad}_{\mathcal{A} \dot{\theta}}] \mathcal{WLA}
* Exercise 3.16(i) p103 asks for "the" <math>\{q,\hat{s},h\}</math> representation but it should say "a" <math>\{q,\hat{s},h\}</math> representation (since <math>q</math> is not unique). Replace "the" with "a".
</math>


=== Chapter 10 ===
=== Chapter 4 ===


* Example 4.1, last row of the table (screw axis for joint 3), middle of p122: The linear component <math>v_i</math> should be <math>(0, -L_2, 0)</math> (the <math>-</math> sign is missing).
* Equation (10.4) should read <math> u = F(q) - B \dot{q}</math> (the plus sign in the book should be a minus sign).


=== Chapter 11 ===
=== Chapter 5 ===


* Equation (5.7) p153: The the first two terms on the right-hand side of the equation should be <math>J_{s1} \dot{\theta}_1 + J_{s2}(\theta) \dot{\theta}_2</math>.
* In the displayed equation after Equation (11.18), the vector <math>X_e(t)</math> is a six-vector. The bottom three elements are written correctly, but the top three elements, an angular velocity, are written instead in their 3x3 <math>so(3)</math> form. Also, the term written <math>R^{\text{T}}(d)</math> should be written <math>R^{\text{T}}(t)</math>.


* Exercise 5.2(b) p173: Change (a) to "Suppose that the last link must apply a wrench corresponding to a force of ..." (then continue as current, "5 N in the..."). In (b), change "the tip" to "the last link". One more thing: let's add to the end of the first sentence in (b), so it is now "...direction, with zero components in other wrench directions."
* In Equation (11.33), the right-hand side should be zero (<math>c = 0</math>).


* Figure 5.15(b) p174: The circular arrow indicating the rotation of joint 3 is slightly misplaced. Kevin can provide.
* Figure 11.24, the Robonaut 2 series elastic actuator, 4th sentence of the caption: The words "outer" and "inner" should be switched, so the new sentence reads "The inner ring of hole mounts connects to the harmonic gearhead output, and the outer ring of hole mounts is the output of the SEA, connecting to the next link."


* Exercise 5.11(a) p178: Change "What are the..." to "Is this motion possible? If so, what are the ..."
=== Chapter 12 ===


* Exercise 5.16 p180: change "PRRRRR" to "PRPRRR". Similarly, caption of Figure 5.26, p181, change "PRRRRR" to "PRPRRR."
* In Example 12.4, the elements of the wrenches <math>\mathcal{F}_1, \mathcal{F}_2, \mathcal{F}_3</math> are erroneously written in the order <math>(f_x,f_y,m_z)</math>; they should be written in the order <math>(m_z,f_x,f_y)</math>, i.e., <math>(-2,0,1), (1,-1,0), (1,1,0)</math>, respectively.


* Exercise 5.25(b) p186: At the end of part (b), add the sentence "Comment on why it is usually preferred to use the body Jacobian instead of the space Jacobian for the manipulability ellipsoid."
=== Appendix C ===


=== Chapter 6 ===
* Section C.3, Equation (C.5): All instances of <math>\phi_{i-1}</math> should be replaced by <math>\phi_i</math>.


* Chapter 6.3, first sentence after Eq (6.7), p199: the matrices <math>T_{sd}^{-1} \dot{T}_{sd}</math> and <math>\dot{T}_{sd} T_{sd}^{-1}</math> are referred to as twists, but these are the se(3) matrix representations of the twists. Change the beginning of this sentence to "The matrix form <math>[\mathcal{V}_d(t)]</math> of the desired twist is either <math>T_{sd}^{-1}(t) \dot{T}_{sd}(t)</math> (the matrix form of the body twist of the desired trajectory at time <math>t</math>) or <math>\dot{T}_{sd}(t) T_{sd}^{-1}(t)</math> (the matrix form of the spatial twist), depending ..." and then complete the sentence as is.
* In Equation (C.12), two instances of <math>M_{i-1}</math> should be replaced by <math>M_i</math>.


=== Chapter 7 ===
== Book: Minor typos, etc., no danger of misunderstanding ==


* p218 displayed equation after (7.12): replace <math>\phi_5</math> with <math>\psi_5</math> in <math>q_p</math> to be consistent with definition of <math>q_a</math>.
=== Chapter 1 ===


* Just below caption for Figure 7.8 p222: There is an extraneous dot.
* (online version only) Description of Chapter 6: "jont positions" should be "joint positions."


=== Chapter 2 ===
=== Chapter 8 ===


* In Equation (8.14) p236, <math>\mathcal{K}(\theta)</math> should be replaced by <math>\mathcal{K}(\theta,\dot{\theta})</math>.
* Chapter 2.2.2, Example 2.3: "Substituting" is misspelled.


* Figure 8.5 p244 says the volume of the rectangular parallelepiped is <math>abc</math> but it should be <math>hlw</math>.
=== Chapter 3 ===


* End of first sentence after Eq (8.26) in Section 8.2.1 p244 should read "... columns of <math>R_{bc}</math> correspond to the eigenvectors of <math>\mathcal{I}_b</math>." (The word "eigenvalues" should be replaced by "eigenvectors.")
* Near the end of Chapter 3.6 Software, the function "AxisAng" should be written "AxisAng6."


* pp 249-50, between equations (8.46) and (8.47): We would like to clarify this derivation by replacing the text beginning "Then" and ending just before "Substituting" with the latex below, which can be cut-and-pasted. [[Media:MR-clarification-ch08-July1-2019.pdf|This is a pdf of what the revision should look like.]] The new text (replacing the old text) is in blue. [[Media:MR-clarification-ch08-July1-2019.zip|Here is a latex'able zip directory to create the pdf file; the main file to be latex'ed is modern_robotics.tex.]]
=== Chapter 5 ===


<nowiki>
* Figure 5.15(b): The circular arrow indicating the rotation of joint 3 is slightly misplaced.
From the fact $\dot{T}_{i,i-1} T_{i,i-1}^{-1}= -[\mathcal{A}_i \dot{\theta}_i]$, we have
\[
\dot{R}_{i,i-1} = -[\omega\dot{\theta}_i]R_{i,i-1}, \quad \dot{p} = -[\omega\dot{\theta}_i]p -v\dot{\theta}_i.
\]
Then
\begin{align*}
\frac{d}{dt} & ([\text{Ad}_{T_{i,i-1}}])\mathcal{V}_{i-1} \\
& = \frac{d}{dt}
\begin{bmatrix}
R_{i,i-1} && 0\\
[p]R_{i,i-1} && R_{i,i-1}
\end{bmatrix} \mathcal{V}_{i-1}\\
& = \begin{bmatrix}
-[\omega\dot{\theta}_i]R_{i,i-1} && 0\\
[-[\omega\dot{\theta}_i]p -v\dot{\theta}_i] R_{i,i-1}-[p][\omega\dot{\theta}_i]R_{i,i-1} && -[\omega\dot{\theta}_i]R_{i,i-1}
\end{bmatrix}\mathcal{V}_{i-1}\\
& = \underbrace{\begin{bmatrix}
-[\omega\dot{\theta}_i] && 0\\
-[v\dot{\theta}_i] && -[\omega\dot{\theta}_i]
\end{bmatrix}}_{-[\operatorname{ad}_{\mathcal{A}_i \dot{\theta}_i}]}
\underbrace{\begin{bmatrix}
R_{i,i-1} && 0\\
[p]R_{i,i-1} && R_{i,i-1}
\end{bmatrix}}_{[\operatorname{Ad}_{T_{i,i-1}}]} \mathcal{V}_{i-1} \\
& = -[\text{ad}_{\mathcal{A}_i\dot\theta_i}] \mathcal{V}_i\\
& = [\text{ad}_{\mathcal{V}_i}] \mathcal{A}_i\dot\theta_i,
\end{align*}
where the transition from the second equality to the third follows from the Jacobi identity
$a \times (b \times c) + b \times (c \times a) + c \times (a \times b) = 0$ for all $a, b, c \in \real^3$,
and the transition from the fourth equality to the fifth follows from the identity
$[\operatorname{ad}_{\twist_1}] \twist_2 = - [\operatorname{ad}_{\twist_2}] \twist_1$.
</nowiki>


* p258: In the parenthetical text a few lines before Equation (8.95): "...there is an equality constraint..." should instead be "...there is also an inequality constraint..."
* Exercise 5.25: This problem instructs you to use the space Jacobian, so you should use it for the manipulability ellipsoids in this problem (even though it is generally preferred to use the body Jacobian for manipulability ellipsoids).


* '''Update Chapter 8.7 with an example and clearer text describing the equations, as in the Dropbox directory "Robotics Textbook Second Edition Sandbox".'''
=== Chapter 6 ===


* Caption of Figure 8.10 p264: The operating region is light gray and the continuous operating region is dark gray (swap the two parenthetical statements).
* (online version only) Figure 6.7: <math>\theta_0</math> should be <math>\theta^0</math> (five times) and <math>\theta_1</math> should be <math>\theta^1</math> (one time).


* Exercise 8.6(a) p276: The expression <math>\text{ad}_{J_i}(J_j)</math> has the indices switched; the correct expression is <math>\text{ad}_{J_j}(J_i)</math>.
=== Chapter 7 ===


* Exercise 8.7 p276: The expression should be written:
* (online version only) Last line of first paragraph of Chapter 7.1: "valuees" should be "values."
<math>
* Just below caption for Figure 7.8: There is an extraneous dot.
\dot{M} = -\mathcal{A}^{\rm T} \mathcal{L}^{\rm T} \mathcal{W}^{\rm T} [\mbox{ad}_{\mathcal{A} \dot{\theta}}]^{\rm T} \mathcal{L}^{\rm T} \mathcal{GLA} -
\mathcal{A}^{\rm T} \mathcal{L}^{\rm T} \mathcal{GL} [\mbox{ad}_{\mathcal{A} \dot{\theta}}] \mathcal{WLA}
</math>


=== Chapter 8 ===
=== Chapter 10 ===

* Equation (10.4) p332 should read <math> u = F(q) - B \dot{q}</math> (the plus sign in the book should be a minus sign).

* p335, first line of chapter 10.6.4: should be <math>u = F(q) - B \dot{q}</math> (plus sign should be a minus sign). In the second-to-last line on the same page, the plus sign should be a minus sign.

=== Chapter 11 ===

* In the displayed equation after Equation (11.18) p360, the vector <math>X_e(t)</math> is a six-vector. The bottom three elements are written correctly, but the top three elements, an angular velocity, are written instead in their 3x3 <math>so(3)</math> form. Also, the term written <math>R^{\text{T}}(d)</math> should be written <math>R^{\text{T}}(t)</math>. So, replace the top three elements in the vector by <math>\omega_e(t)</math>, make the period after the equation a comma, and insert a line immediately following saying "where <math>[\omega_e(t)] = \log(R^{\text{T}}(t) R_d(t))</math>."

* In Equation (11.33) p366, the right-hand side should be zero, not <math>c</math>.


* Figure 11.24 p384, the Robonaut 2 series elastic actuator, fourth sentence of the caption: The words "outer" and "inner" should be switched, so the new sentence reads "The inner ring of hole mounts connects to the harmonic gearhead output, and the outer ring of hole mounts is the output of the SEA, connecting to the next link."
* (online version only) Chapter 8.1.1, last paragraph: <math>\dot{\theta}_1</math> is improperly typeset.


=== Chapter 12 ===
=== Chapter 12 ===


* In Example 12.4 p404, the elements of the wrenches <math>\mathcal{F}_1, \mathcal{F}_2, \mathcal{F}_3</math> are erroneously written in the order <math>(f_x,f_y,m_z)</math>; they should be written in the order <math>(m_z,f_x,f_y)</math>. In other words, change these to <math>(-2,0,1)</math>, <math>(1,-1,0)</math>, and <math>(1,1,0)</math>, respectively. Also, I think the word "yield" right after <math>\mathcal{F}_3</math> should be "yielding."
* Caption of Figure 12.14, second-to-last sentence: "rotation if possible" should be "rotation is possible."
* <span style="color:#ff0000">In Chapter 12.1.6, just before Example 12.5, mention that point at infinity on the contact normal line correspond to translations and have +/- labels. Parallel contact normals for multiple contacts leave that point at infinity still with the +/- label after intersecting their feasible CoRs. </span>
* (online version only) Example 12.11: The sentence "... can remain standing if there is a consistent solution if there exist <math>k_i \geq 0</math> ..." should read simply "... if there exist <math>k_i \geq 0</math> ..."
* Caption of Figure 12.14 p412, second-to-last sentence: "rotation if possible" should be "rotation is possible."


=== Chapter 13 ===
=== Chapter 13 ===


* Equation (13.29): <math>y_p</math> should be <math>y_P</math>.
* Equation (13.29) p467: <math>y_p</math> should be <math>y_P</math> (P is capitalized).


* p469, first line just below the figure: get rid of the absolute value signs, so should be $v_d \neq 0$. The statement is equivalent with and without the absolute value signs, so we got rid of them.
== A partial list of errata contributors ==


=== Appendix C ===
Thanks to the following people who provided corrections, starting from the preliminary version of the book posted in October, 2016:


* Section C.3, Equation (C.5) p507: All four instances of <math>\phi_{i-1}</math> should be replaced by <math>\phi_i</math>.
H. Andy Nam, Eric Lee, Yuchen Rao, Chainatee Tanakulrongson, Mengjiao Hong, Kevin Cheng, Jens Lundell, Elton Cheng, Michael Young, Jarvis Schultz, Logan Springgate, Sofya Akhmametyeva, Aykut Onol, Josh Holcomb, Yue Chen, Mark Shi, AJ Ibraheem, Yalun Wen, Seongjae Jeong, Josh Mehling, Felix Wang, Drew Warren, Chris Miller, Clemens Eppner, Zack Woodruff, Jian Shi, Jixiang Zhang, Shachar Liberman, Will Wu, Dirk Boysen, Awe Wang, Ville Kyrki, John Troll, Andrew Taylor, Nikhil Bakshi


* In Equation (C.12) p510, two instances of <math>M_{i-1}</math> should be replaced by <math>M_i</math>.
<!--

Other updates and corrections can be found in the google drive folder.



=== A partial list of errata contributors ===

Thanks to the following people who provided corrections, starting from the preliminary version of the book posted in October, 2016:


H. Andy Nam, Eric Lee, Yuchen Rao, Chainatee Tanakulrongson, Mengjiao Hong, Kevin Cheng, Jens Lundell, Elton Cheng, Michael Young, Jarvis Schultz, Logan Springgate, Sofya Akhmametyeva, Aykut Onol, Josh Holcomb, Yue Chen, Mark Shi, AJ Ibraheem, Yalun Wen, Seongjae Jeong, Josh Mehling, Felix Wang, Drew Warren, Chris Miller, Clemens Eppner, Zack Woodruff, Jian Shi, Jixiang Zhang, Shachar Liberman, Will Wu, Dirk Boysen, Awe Wang, Ville Kyrki, John Troll, Andrew Taylor, and Nikhil Bakshi
-->

Latest revision as of 22:09, 31 July 2019

Overall

Updates in red were added Aug 2019 or later, after the list of changes was given to David.

In the "partial list of errata contributors," perhaps add "and" before the last name. Also, "posted in October, 2016" should be "posted online in October, 2016" to be more specific.

There are a few places in the book where we have an italic T instead of a roman T for transpose, often where they are preceded by a negative (inverse) sign. These should be corrected. The ones we're aware of are listed below:

  • Equation (5.4) p149
  • Fifth line of p163
  • p168 third line of Eq (5.27)
  • Last line of p216
  • p239: eq (8.21) and equation just above.
  • p254: Eqs (8.75), (8.76), (8.78), (8.79), 8.80)
  • pp256-7: several instances in Ch 8.6. Just after eq (8.87) (two times), four times in eq (8.88), just after (8.88), and (8.90) and (8.91).
  • p272, in each of the two displayed equations in the 2nd bullet
  • p491, second-to-last bullet, in each of the two displayed equations and the in-line equation just after.

Preface

  • p xiv: Video lectures that accompany the textbook will also be available --> Video lectures that accompany the textbook are also available

(This is a very minor change, so I don't think we have to re-date the preface or provide a separate update.)

  • p xv: Several updates at the end of the preface. Change "A partial list of errata contributors." in the preface to "Notes on the second printing." Then have:

Readers are encouraged to consult the companion website \url{http://modernrobotics.org} for more information on the Modern Robotics software library, videos, online courses, robot simulations, practice problems with solutions, errata, a linear algebra refresher chapter, and more.

Then thanking the errata contributors.

Chapter 1

  • p3, middle: Change "convenient way to calculate a lower bound on the dof" to "convenient way to calculate the dof"

Chapter 2

  • Proposition 2.2, p16: "This formula holds only if all joint constraints are independent. If they are not independent then the formula provides a lower bound on the number of degrees of freedom." should be "This formula holds in "generic" cases, but it fails under certain configurations of the links and joints, such as when the joint constraints are not independent." (In your correction, you say ... "generic cases", ... as opposed to the suggested ... "generic" cases, ... . I prefer my suggested ... "generic" cases, ... but if there is a reason why your wording is better, shouldn't the comma be inside the quotes?)
  • Chapter 2.2.2, Example 2.3, p16: "Substituting" is misspelled.
  • Eliminate two sentences on p19: "Grubler's formula provides ... are discussed in Chapter 7."
  • Fifth bullet of Chapter 2.6 p32: Eliminate the last sentence "If the constraints enforced ... degrees of freedom."

Chapter 3

  • In the caption of Figure 3.3 p53, should read , and should read .
  • Under "Representing a configuration" in Chapter 3.3.1.2 p78 near the bottom, the text says " represents {b} relative to {c}" but it should say "represents {c} relative to {b}".
  • There is a typo in the final matrix, , of Example 3.19, p82. The term should be .
  • In the displayed equation just after Equation (3.76) p85, the left-hand side should be (the brackets are missing).
  • Near the end of Chapter 3.6 Software p97, the function "AxisAng" should be written "AxisAng6."
  • Exercise 3.16(i) p103 asks for "the" representation but it should say "a" representation (since is not unique). Replace "the" with "a".

Chapter 4

  • Example 4.1, last row of the table (screw axis for joint 3), middle of p122: The linear component should be (the sign is missing).

Chapter 5

  • Equation (5.7) p153: The the first two terms on the right-hand side of the equation should be .
  • Exercise 5.2(b) p173: Change (a) to "Suppose that the last link must apply a wrench corresponding to a force of ..." (then continue as current, "5 N in the..."). In (b), change "the tip" to "the last link". One more thing: let's add to the end of the first sentence in (b), so it is now "...direction, with zero components in other wrench directions."
  • Figure 5.15(b) p174: The circular arrow indicating the rotation of joint 3 is slightly misplaced. Kevin can provide.
  • Exercise 5.11(a) p178: Change "What are the..." to "Is this motion possible? If so, what are the ..."
  • Exercise 5.16 p180: change "PRRRRR" to "PRPRRR". Similarly, caption of Figure 5.26, p181, change "PRRRRR" to "PRPRRR."
  • Exercise 5.25(b) p186: At the end of part (b), add the sentence "Comment on why it is usually preferred to use the body Jacobian instead of the space Jacobian for the manipulability ellipsoid."

Chapter 6

  • Chapter 6.3, first sentence after Eq (6.7), p199: the matrices and are referred to as twists, but these are the se(3) matrix representations of the twists. Change the beginning of this sentence to "The matrix form of the desired twist is either (the matrix form of the body twist of the desired trajectory at time ) or (the matrix form of the spatial twist), depending ..." and then complete the sentence as is.

Chapter 7

  • p218 displayed equation after (7.12): replace with in to be consistent with definition of .
  • Just below caption for Figure 7.8 p222: There is an extraneous dot.

Chapter 8

  • In Equation (8.14) p236, should be replaced by .
  • Figure 8.5 p244 says the volume of the rectangular parallelepiped is but it should be .
  • End of first sentence after Eq (8.26) in Section 8.2.1 p244 should read "... columns of correspond to the eigenvectors of ." (The word "eigenvalues" should be replaced by "eigenvectors.")
From the fact $\dot{T}_{i,i-1} T_{i,i-1}^{-1}= -[\mathcal{A}_i \dot{\theta}_i]$, we have
\[
\dot{R}_{i,i-1} = -[\omega\dot{\theta}_i]R_{i,i-1}, \quad \dot{p} = -[\omega\dot{\theta}_i]p -v\dot{\theta}_i.
\]
Then 
\begin{align*}
\frac{d}{dt} & ([\text{Ad}_{T_{i,i-1}}])\mathcal{V}_{i-1} \\
& = \frac{d}{dt} 
\begin{bmatrix}
R_{i,i-1} && 0\\
[p]R_{i,i-1} && R_{i,i-1}
\end{bmatrix} \mathcal{V}_{i-1}\\
& = \begin{bmatrix}
-[\omega\dot{\theta}_i]R_{i,i-1} && 0\\
[-[\omega\dot{\theta}_i]p -v\dot{\theta}_i] R_{i,i-1}-[p][\omega\dot{\theta}_i]R_{i,i-1} && -[\omega\dot{\theta}_i]R_{i,i-1}
\end{bmatrix}\mathcal{V}_{i-1}\\
& = \underbrace{\begin{bmatrix}
-[\omega\dot{\theta}_i] && 0\\
-[v\dot{\theta}_i] && -[\omega\dot{\theta}_i]
\end{bmatrix}}_{-[\operatorname{ad}_{\mathcal{A}_i \dot{\theta}_i}]}
\underbrace{\begin{bmatrix}
R_{i,i-1} && 0\\
[p]R_{i,i-1} && R_{i,i-1}
\end{bmatrix}}_{[\operatorname{Ad}_{T_{i,i-1}}]} \mathcal{V}_{i-1} \\
& = -[\text{ad}_{\mathcal{A}_i\dot\theta_i}] \mathcal{V}_i\\
& = [\text{ad}_{\mathcal{V}_i}] \mathcal{A}_i\dot\theta_i,
\end{align*}
where the transition from the second equality to the third follows from the Jacobi identity
$a \times (b \times c) + b \times (c \times a) + c \times (a \times b) = 0$ for all $a, b, c \in \real^3$,
and the transition from the fourth equality to the fifth follows from the identity
$[\operatorname{ad}_{\twist_1}] \twist_2 = - [\operatorname{ad}_{\twist_2}] \twist_1$.

  • p258: In the parenthetical text a few lines before Equation (8.95): "...there is an equality constraint..." should instead be "...there is also an inequality constraint..."
  • Update Chapter 8.7 with an example and clearer text describing the equations, as in the Dropbox directory "Robotics Textbook Second Edition Sandbox".
  • Caption of Figure 8.10 p264: The operating region is light gray and the continuous operating region is dark gray (swap the two parenthetical statements).
  • Exercise 8.6(a) p276: The expression has the indices switched; the correct expression is .
  • Exercise 8.7 p276: The expression should be written:

Chapter 10

  • Equation (10.4) p332 should read (the plus sign in the book should be a minus sign).
  • p335, first line of chapter 10.6.4: should be (plus sign should be a minus sign). In the second-to-last line on the same page, the plus sign should be a minus sign.

Chapter 11

  • In the displayed equation after Equation (11.18) p360, the vector is a six-vector. The bottom three elements are written correctly, but the top three elements, an angular velocity, are written instead in their 3x3 form. Also, the term written should be written . So, replace the top three elements in the vector by , make the period after the equation a comma, and insert a line immediately following saying "where ."
  • In Equation (11.33) p366, the right-hand side should be zero, not .
  • Figure 11.24 p384, the Robonaut 2 series elastic actuator, fourth sentence of the caption: The words "outer" and "inner" should be switched, so the new sentence reads "The inner ring of hole mounts connects to the harmonic gearhead output, and the outer ring of hole mounts is the output of the SEA, connecting to the next link."

Chapter 12

  • In Example 12.4 p404, the elements of the wrenches are erroneously written in the order ; they should be written in the order . In other words, change these to , , and , respectively. Also, I think the word "yield" right after should be "yielding."
  • In Chapter 12.1.6, just before Example 12.5, mention that point at infinity on the contact normal line correspond to translations and have +/- labels. Parallel contact normals for multiple contacts leave that point at infinity still with the +/- label after intersecting their feasible CoRs.
  • Caption of Figure 12.14 p412, second-to-last sentence: "rotation if possible" should be "rotation is possible."

Chapter 13

  • Equation (13.29) p467: should be (P is capitalized).
  • p469, first line just below the figure: get rid of the absolute value signs, so should be $v_d \neq 0$. The statement is equivalent with and without the absolute value signs, so we got rid of them.

Appendix C

  • Section C.3, Equation (C.5) p507: All four instances of should be replaced by .
  • In Equation (C.12) p510, two instances of should be replaced by .



A partial list of errata contributors

Thanks to the following people who provided corrections, starting from the preliminary version of the book posted in October, 2016:

H. Andy Nam, Eric Lee, Yuchen Rao, Chainatee Tanakulrongson, Mengjiao Hong, Kevin Cheng, Jens Lundell, Elton Cheng, Michael Young, Jarvis Schultz, Logan Springgate, Sofya Akhmametyeva, Aykut Onol, Josh Holcomb, Yue Chen, Mark Shi, AJ Ibraheem, Yalun Wen, Seongjae Jeong, Josh Mehling, Felix Wang, Drew Warren, Chris Miller, Clemens Eppner, Zack Woodruff, Jian Shi, Jixiang Zhang, Shachar Liberman, Will Wu, Dirk Boysen, Awe Wang, Ville Kyrki, John Troll, Andrew Taylor, and Nikhil Bakshi